public class SrpTelegramEncryption
extends java.lang.Object
encrypt(byte[])
Daten vor dem Versand verschlüsseln und mit
decrypt(byte[])
empfangene Daten entschlüsseln.
Es ist wichtig, dass die Reihenfolge der Telegramme beibehalten wird und kein Telegramm ausgelassen wird, da die GCM-Noncen durch einen einfachen Zähler realisiert werden,
der auf beiden Seiten der Verbindung denselben Wert annehmen muss.
Diese Klasse ist nur eingeschränkt threadsafe, es dürfen nicht mehrere Verschlüsselungen oder Entschlüsselungen gleichzeitig durchgeführt werden, was allerdings sowieso verboten ist,
da es eine fest definierte Telegramm-Reihenfolge geben muss. Es ist kein Problem, parallel eine Verschlüsselung und eine Entschlüsselung durchzuführen.Constructor and Description |
---|
SrpTelegramEncryption(byte[] sessionKey,
boolean isClient,
SrpCryptoParameter srpCryptoParameter)
Erstellt eine neue SrpTelegramEncryption-Instanz für eine Verbindung.
|
Modifier and Type | Method and Description |
---|---|
static byte[] |
computeHash(int outputMinimumSize,
java.lang.String hashAlgorithm,
byte[] data)
Berechnet einen Hashwert der angegebenen Länge aus den übergebenen Daten
|
byte[] |
decrypt(byte[] telegram)
Entschlüsselt ein Telegramm von der Gegenseite
|
byte[] |
encrypt(byte[] telegram)
Verschlüsselt ein Telegramm zum Versand an die Gegenseite
|
java.lang.String |
getCipherName()
Gibt den Namen der verwendeten Verschlüsselung zurück
|
static void |
increment(byte[] bytes)
Inkrementiert ein Byte-Array wie einen Integer.
|
public SrpTelegramEncryption(byte[] sessionKey, boolean isClient, SrpCryptoParameter srpCryptoParameter) throws SrpNotSupportedException
sessionKey
- Sitzungsschlüssel (z.B. aus SRP-Authentifizierung)isClient
- Handelt es sich hierbei um den Client?srpCryptoParameter
- Cryptographische VerschlüsselungsparameterSrpNotSupportedException
public byte[] encrypt(byte[] telegram) throws java.io.IOException
telegram
- Telegrammjava.io.IOException
- Fehler beim Verschlüsselnpublic byte[] decrypt(byte[] telegram) throws java.io.IOException
telegram
- Verschlüsselte Datenjava.io.IOException
- Fehler beim Entschlüsselnpublic static void increment(byte[] bytes)
bytes
- Byte-Arraypublic static byte[] computeHash(int outputMinimumSize, java.lang.String hashAlgorithm, byte[] data) throws java.security.NoSuchAlgorithmException, java.security.DigestException
outputMinimumSize
- Mindestlänge in Bytes des Ergebniswerts. Das zurückgegebene Array kann größer sein, aber nicht kleiner.hashAlgorithm
- Algorithmus zum Hashendata
- Ein oder mehrere Byte-Arrays die zu hashende Daten enthalten. Die Arrays werden aneinander gehängt. Leere Arrays sind nicht zulässig.java.security.NoSuchAlgorithmException
- Der Algorithmus existiert nichtjava.security.DigestException
- Fehler beim Hashwert berechnenpublic java.lang.String getCipherName()