public class SrpServerAuthentication
extends java.lang.Object
Constructor | Description |
---|---|
SrpServerAuthentication(SrpCryptoParameter srpCryptoParams) |
Erstellt eine neue SrpServerAuthentication-Instanz
|
Modifier and Type | Method | Description |
---|---|---|
java.lang.String |
getAuthenticatedUser() |
Gibt den Namen des authentifizierten Benutzers zurück
|
java.math.BigInteger |
getSessionKey() |
Gibt den Sitzungsschlüssel zurück
|
SrpCryptoParameter |
getSrpCryptoParams() |
Gibt die kryptographischen Parameter zurück
|
java.math.BigInteger |
step1(java.lang.String userName,
java.math.BigInteger salt,
java.math.BigInteger verifier,
boolean mockUser) |
SRP-Authentifizierung Schritt 1.
|
java.math.BigInteger |
step2(java.math.BigInteger a,
java.math.BigInteger m1) |
SRP-Authentifizierung Schritt 2.
|
public SrpServerAuthentication(SrpCryptoParameter srpCryptoParams)
srpCryptoParams
- Kryptographische Parameter, die der Server zur Verifizierung verwendet und an den Client übermitteltpublic java.math.BigInteger step1(java.lang.String userName, java.math.BigInteger salt, java.math.BigInteger verifier, boolean mockUser)
userName
- Benutzername (vom Client)salt
- Salt (von der Konfiguration)verifier
- Überprüfungscode (von der Konfiguration)mockUser
- Der Benutzer existiert nicht. Falls true können daher vorgetäuschte Fake-Verifier- und Salt-Werte an den Benutzer gesendet werden, damit dieser
nicht unterscheiden kann, ob der Benutzer existiert oder nicht (und damit kein zusätzliches Telegramm für eine negative Quittung gebraucht wird).
Das Verhalten dieser Methode ist identisch, egal wie dieser Parameter gesetzt wird, aber falls dieser Parameter true ist, wird ein Flag gesetzt,
sodass in Schritt 2 die Authentifizierung auf jeden Fall abgelehnt wird, auch wenn der Client irgendwie eine gültige Antwort generieren kann
(was aber praktisch ausgeschlossen ist).public java.math.BigInteger step2(java.math.BigInteger a, java.math.BigInteger m1) throws InconsistentLoginException
a
- Öffentlicher Client-Wert Am1
- Überprüfungscode M1InconsistentLoginException
- Wenn der Client falsche Login-Daten benutztpublic java.math.BigInteger getSessionKey()
public java.lang.String getAuthenticatedUser()
public SrpCryptoParameter getSrpCryptoParams()