Class SrpCryptoParameter

java.lang.Object
de.bsvrz.dav.daf.communication.srpAuthentication.SrpCryptoParameter

public class SrpCryptoParameter extends Object
Parameter für die Authentifizierung mit SRP und die nachfolgende Verschlüsselung
  • Constructor Details

    • SrpCryptoParameter

      public SrpCryptoParameter(int gcmAuthenticationTagBits, int aesKeyLengthBits, String hashFunction, String keyDerivationFunction, int keyDerivationIterations, int keyDerivationHashBits, int srpPrimeBits, int srpSaltBytes)
      Erstellt eine Instanz mit benutzerdefinierten Parametern
      Parameters:
      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älschen
      aesKeyLengthBits - 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_000
      keyDerivationHashBits - Anzahl Bits für das Resultat der Schlüsselableitungsfunktion. Empfohlener Minimum-Wert: 128
      srpPrimeBits - Anzahl Bits der SRP-Primzahl N. Empfohlener Minimum-Wert: 1024
      srpSaltBytes - Anzahl Bytes für das SRP-Salt. Empfohlener Minimum-Wert: 16
      Throws:
      NullPointerException - wenn einer der Strings null ist.
      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.
    • SrpCryptoParameter

      public SrpCryptoParameter(String cryptoParamsString) throws IllegalArgumentException
      Liest die Werte aus einem String ein, kompatibel mit toString()
      Parameters:
      cryptoParamsString - String-Darstellung
      Throws:
      IllegalArgumentException - Bei einem String, der nicht dem erwarteten Format entspricht
  • Method Details

    • getDefaultInstance

      public static SrpCryptoParameter getDefaultInstance()
      Gibt die als Standard (ggf. über die Systemproperty) festgelegten kryptografischen Parameter zurück.
      Returns:
      Standard-Parameter für Authentifizierung und Verschlüsselung
    • getGcmAuthenticationTagBits

      public int getGcmAuthenticationTagBits()
      Returns:
      Anzahl Bits zur Sicherstellung der Nachrichtenintegrität mit AES-GCM.
    • getAesKeyLengthBits

      public int getAesKeyLengthBits()
      Returns:
      Anzahl Bits der Schlüssellänge der AES-Verschlüsselung.
    • getHashFunction

      public String getHashFunction()
      Returns:
      Hashfunktion H in SRP
    • getKeyDerivationFunction

      public String getKeyDerivationFunction()
      Returns:
      Schlüsselableitungsfunktion zur Berechnung von x, beispielsweise "PBKDF2WithHmacSHA256"
    • getKeyDerivationIterations

      public int getKeyDerivationIterations()
      Returns:
      Anzahl der Iterationen der Schlüsselableitungsfunktion
    • getKeyDerivationHashBits

      public int getKeyDerivationHashBits()
      Returns:
      Anzahl Bits für das Resultat der Schlüsselableitungsfunktion.
    • getSrpPrimeBits

      public int getSrpPrimeBits()
      Returns:
      Anzahl Bits der SRP-Primzahl N.
    • getSrpSaltBytes

      public int getSrpSaltBytes()
      Returns:
      Anzahl Bytes für das SRP-Salt.
    • toString

      public String toString()
      Overrides:
      toString in class Object