java.lang.Object
de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram
de.bsvrz.dav.daf.communication.lowLevel.telegrams.SrpAnswer
All Implemented Interfaces:
QueueableTelegram

public class SrpAnswer
extends DataTelegram
Zweites Telegramm der SRP-Authentifizierung, wird vom Server zum Client geschickt.

Sendet die SRP-Werte B und s sowie die kryptographischen Parameter an den Client

Kann SRP nicht benutzt werden, enthält das Telegramm einen B-Wert von 0 (was gemäß SRP kein gültiger Wert ist) und einen Fehlermeldungstext als String-Wert

  • Constructor Details

    • SrpAnswer

      public SrpAnswer()
      Erstellt eine neue nicht-initialisierte Instanz (zur Initialisierung über read(DataInputStream)).
    • SrpAnswer

      public SrpAnswer​(java.math.BigInteger b, java.math.BigInteger s, SrpCryptoParameter cryptoParameter)
      Erstellt eine neue Instanz mit vordefinierten Werten
      Parameters:
      b - Der öffentliche Server-Wert B
      s - Der Salt-Wert am Benutzernamen des Clients
      cryptoParameter - Crypto-Parameter, die der Server dem Client vorgibt
    • SrpAnswer

      public SrpAnswer​(java.lang.String errorMessage)
      Erstellt eine negative SRP-Antwort
      Parameters:
      errorMessage - Fehlermeldung
  • Method Details

    • getB

      public java.math.BigInteger getB()
      Gibt den öffentlichen Serverwert B zurück
      Returns:
      B
    • getS

      public java.math.BigInteger getS()
      Gibt das dem Client zugeordnete Salt s zurück
      Returns:
      s
    • getCryptoParams

      public SrpCryptoParameter getCryptoParams()
      Gibt die Crypto-Parameter zurück, die der Client (u.a.) zur Erzeugung des Verifiers benutzen soll
      Returns:
      SrpCryptoParameter oder null falls SRP nicht benutzt werden kann
    • isValid

      public boolean isValid()
      Gibt zurück, ob SRP benutzt werden kann.
      Returns:
      true falls SRp benutzt werden kann, somst false
    • read

      public void read​(java.io.DataInputStream in) throws java.io.IOException
      Description copied from class: DataTelegram
      Liest ein Telegramm vom übergegebenen DataInputStream.
      Specified by:
      read in class DataTelegram
      Parameters:
      in - Der DataInputStream.
      Throws:
      java.io.IOException - Falls der Datensatz nicht aus dem Stream gelesen werden kann.
    • write

      public void write​(java.io.DataOutputStream out) throws java.io.IOException
      Description copied from class: DataTelegram
      Schreibt ein Telegramm in den übergegebenen DataOutputStream.
      Specified by:
      write in class DataTelegram
      Parameters:
      out - Der DataOutputStream.
      Throws:
      java.io.IOException - Falls der Datensatz nicht in den Stream geschrieben werden kann.
    • getErrorMessage

      public java.lang.String getErrorMessage()
    • parseToString

      public java.lang.String parseToString()
      Description copied from class: DataTelegram
      Gibt eine String-Repräsentation dieses Datensatzes zurück.
      Specified by:
      parseToString in class DataTelegram
      Returns:
      Eine String-Repräsentation dieses Datensatzes.