public class SrpCryptoParameter
extends java.lang.Object
Parameter für die Authentifizierung mit SRP und die nachfolgende Verschlüsselung
Modifier and Type | Class and Description |
---|---|
private static class |
SrpCryptoParameter.DefaultInstanceHolder |
Modifier and Type | Field and Description |
---|---|
private int |
_aesKeyLengthBits
Anzahl Bits L der Schlüssellänge der AES-Verschlüsselung.
|
private int |
_gcmAuthenticationTagBits
Anzahl Bits t zur Sicherstellung der Nachrichtenintegrität mit AES-GCM.
|
private java.lang.String |
_hashFunction
Auswahl der Hashfunktion H in SRP zur Berechnung von u und dem Sitzungsschlüssel (unter anderem), beispielsweise “SHA-256”.
|
private java.lang.String |
_keyDerivationFunction
Auswahl der Schlüsselableitungsfunktion KDF zur Berechnung von x, beispielsweise “PBKDF2WithHmacSHA256”.
|
private int |
_keyDerivationHashBits
Anzahl Bits dkLen für das Resultat der Schlüsselableitungsfunktion.
|
private int |
_keyDerivationIterations
Anzahl der Iterationen c der Schlüsselableitungsfunktion zur Berechnung von x.
|
private int |
_srpPrimeBits
Anzahl Bits n der SRP-Primzahl N.
|
private int |
_srpSaltBytes
Anzahl Bytes sLen für das SRP-Salt.
|
private static java.util.regex.Pattern |
PARSE_PATTERN |
Modifier | Constructor and Description |
---|---|
private |
SrpCryptoParameter()
Erstellt eine Instanz mit Standardparametern
|
|
SrpCryptoParameter(int gcmAuthenticationTagBits,
int aesKeyLengthBits,
java.lang.String hashFunction,
java.lang.String keyDerivationFunction,
int keyDerivationIterations,
int keyDerivationHashBits,
int srpPrimeBits,
int srpSaltBytes)
Erstellt eine Instanz mit benutzerdefinierten Parametern
|
|
SrpCryptoParameter(java.lang.String cryptoParamsString)
Liest die Werte aus einem String ein, kompatibel mit
toString() |
Modifier and Type | Method and Description |
---|---|
int |
getAesKeyLengthBits() |
static SrpCryptoParameter |
getDefaultInstance()
Gibt die als Standard (ggf. über die Systemproperty) festgelegten kryptografischen Parameter zurück.
|
int |
getGcmAuthenticationTagBits() |
java.lang.String |
getHashFunction() |
java.lang.String |
getKeyDerivationFunction() |
int |
getKeyDerivationHashBits() |
int |
getKeyDerivationIterations() |
int |
getSrpPrimeBits() |
int |
getSrpSaltBytes() |
java.lang.String |
toString() |
private void |
validateValues() |
private static final java.util.regex.Pattern PARSE_PATTERN
private final int _gcmAuthenticationTagBits
Anzahl Bits t zur Sicherstellung der Nachrichtenintegrität mit AES-GCM. Jedes verschlüsselte Telegramm wird mit einer Prüfsumme dieser Länge versehen. Empfohlener Minimum-Wert: 96
private final int _aesKeyLengthBits
Anzahl Bits L der Schlüssellänge der AES-Verschlüsselung. Mögliche Werte: 128, 192, 256. (Größere Werte als 128 benötigen möglicherweise die “Unlimited Strength Java Cryptography Extension Policy Files”).
private final java.lang.String _hashFunction
Auswahl der Hashfunktion H in SRP zur Berechnung von u und dem Sitzungsschlüssel (unter anderem), beispielsweise “SHA-256”.
private final java.lang.String _keyDerivationFunction
Auswahl der Schlüsselableitungsfunktion KDF zur Berechnung von x, beispielsweise “PBKDF2WithHmacSHA256”.
private final int _keyDerivationIterations
Anzahl der Iterationen c der Schlüsselableitungsfunktion zur Berechnung von x. Empfohlener Minimum-Wert: 10_000
private final int _keyDerivationHashBits
Anzahl Bits dkLen für das Resultat der Schlüsselableitungsfunktion. Empfohlener Minimum-Wert: 128
private final int _srpPrimeBits
Anzahl Bits n der SRP-Primzahl N. Empfohlener Minimum-Wert: 1024
private final int _srpSaltBytes
Anzahl Bytes sLen für das SRP-Salt. Empfohlener Minimum-Wert: 16
private SrpCryptoParameter()
Erstellt eine Instanz mit Standardparametern
public SrpCryptoParameter(int gcmAuthenticationTagBits, int aesKeyLengthBits, java.lang.String hashFunction, java.lang.String keyDerivationFunction, int keyDerivationIterations, int keyDerivationHashBits, int srpPrimeBits, int srpSaltBytes)
Erstellt eine Instanz mit benutzerdefinierten Parametern
gcmAuthenticationTagBits
- Anzahl Bits zur Sicherstellung der Nachrichtenintegrität mit AES-GCM. Empfohlener Minimum-Wert: 96, kleinere Werte verringern den Overhead, vereinfachen es aber möglicherweise, Nachrichten zu fälschenaesKeyLengthBits
- Anzahl Bits der Schlüssellänge der AES-Verschlüsselung. Mögliche Werte: 128, 192, 256. (Größere Werte als 128 benötigen möglicherweise die “Unlimited Strength Java Cryptography Extension Policy Files”).hashFunction
- Hashfunktion H in SRP zur Berechnung von u und dem Sitzungsschlüssel (unter anderem), beispielsweise “SHA-256”.keyDerivationFunction
- Auswahl der Schlüsselableitungsfunktion zur Berechnung von x, beispielsweise “PBKDF2WithHmacSHA256”.keyDerivationIterations
- Anzahl der Iterationen der Schlüsselableitungsfunktion zur Berechnung von x. Empfohlener Minimum-Wert: 10_000keyDerivationHashBits
- Anzahl Bits für das Resultat der Schlüsselableitungsfunktion. Empfohlener Minimum-Wert: 128srpPrimeBits
- Anzahl Bits der SRP-Primzahl N. Empfohlener Minimum-Wert: 1024srpSaltBytes
- Anzahl Bytes für das SRP-Salt. Empfohlener Minimum-Wert: 16java.lang.NullPointerException
- wenn einer der Strings null ist.java.lang.IllegalArgumentException
- bei negativen oder anderweitig implausiblen Bit-/Byte-Werten. Dieser Konstruktor prüft nur auf offensichtlich fehlerhafte Werte und nimmt keine inhaltliche Prüfung auf sinnvolle Cryptoparameter vor.public SrpCryptoParameter(java.lang.String cryptoParamsString) throws java.lang.IllegalArgumentException
Liest die Werte aus einem String ein, kompatibel mit toString()
cryptoParamsString
- String-Darstellungjava.lang.IllegalArgumentException
- Bei einem String, der nicht dem erwarteten Format entsprichtpublic static SrpCryptoParameter getDefaultInstance()
Gibt die als Standard (ggf. über die Systemproperty) festgelegten kryptografischen Parameter zurück.
private void validateValues()
public int getGcmAuthenticationTagBits()
public int getAesKeyLengthBits()
public java.lang.String getHashFunction()
public java.lang.String getKeyDerivationFunction()
public int getKeyDerivationIterations()
public int getKeyDerivationHashBits()
public int getSrpPrimeBits()
public int getSrpSaltBytes()
public java.lang.String toString()
toString
in class java.lang.Object