public final class SrpClientAuthentication
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
SrpClientAuthentication.AuthenticationResult
Ergebnis einer ARP-Authentifizierung
|
static interface |
SrpClientAuthentication.TelegramInterface
Interface mit dem ein Anwender der
SrpClientAuthentication -Klasse Telegramme sendet und empfängt |
Modifier and Type | Method and Description |
---|---|
static SrpClientAuthentication.AuthenticationResult |
authenticate(java.lang.String userName,
int passwordIndex,
ClientCredentials clientCredentials,
SrpClientAuthentication.TelegramInterface telegramInterface)
SRP-Authentifizierung auf Client-Seite
|
static ClientCredentials |
createLoginToken(SrpVerifierData srpVerifierData,
java.lang.String user,
char[] password)
Erstellt ein Login-Token, welcher ein binärer Code ist, bit dem sich der Client beim Server ausweisen kann ohne das Passwort im Klartext
zu kennen.
|
static ClientCredentials |
createRandomToken(SrpCryptoParameter cryptoParams)
Erstellt ein zufälligen Login-Token, dem also kein (bekanntes) Klartext-Passwort zugrunde liegt.
|
static SrpVerifierData |
createVerifier(SrpCryptoParameter cryptoParams,
java.lang.String user,
ClientCredentials clientCredentials)
Erstellt einen SRP-Überprüfungscode mit einem zufälligen Salt.
|
static SrpVerifierData |
createVerifier(SrpCryptoParameter cryptoParams,
java.lang.String user,
ClientCredentials clientCredentials,
byte[] saltBytes)
Erstellt einen SRP-Überprüfungscode mit einem festen Salt.
|
static boolean |
validateVerifier(SrpVerifierData verifier,
java.lang.String user,
ClientCredentials clientCredentials)
Überprüft, ob ein Verifier zu einem Benutzernamen und Passwort passt.
|
public static SrpClientAuthentication.AuthenticationResult authenticate(java.lang.String userName, int passwordIndex, ClientCredentials clientCredentials, SrpClientAuthentication.TelegramInterface telegramInterface) throws CommunicationError, InconsistentLoginException, SrpNotSupportedException
userName
- BenutzernameclientCredentials
- Passwort oder Login-Schlüssel (SRP-"x")telegramInterface
- Klasse/Interface zum Empfangen von Telegrammen über diese VerbindungCommunicationError
- Server antwortet nichtInconsistentLoginException
- Fehlerhafte Authentifikationsdaten (Passwort wahrscheinlich falsch)SrpNotSupportedException
- Server/Konfiguration unterstützt kein SRPpublic static SrpVerifierData createVerifier(SrpCryptoParameter cryptoParams, java.lang.String user, ClientCredentials clientCredentials)
cryptoParams
- Cryptoparameteruser
- BenutzerclientCredentials
- Passwort oder Login-Tokenpublic static SrpVerifierData createVerifier(SrpCryptoParameter cryptoParams, java.lang.String user, ClientCredentials clientCredentials, byte[] saltBytes)
cryptoParams
- Cryptoparameteruser
- BenutzerclientCredentials
- Passwort oder Login-TokensaltBytes
- Saltpublic static ClientCredentials createLoginToken(SrpVerifierData srpVerifierData, java.lang.String user, char[] password) throws InconsistentLoginException
srpVerifierData
- Bestehender Überprüfungscode. Wird beim setzen des Passworts mit createVerifier(SrpCryptoParameter,
String, ClientCredentials)
erzeugt und kann auch später mit
UserAdministration.getSrpVerifier(String,
String, String, int)
abgefragt werden.user
- Benutzernamepassword
- Zugehöriges PasswortClientCredentials.hasPassword()
liefert false, da es sich um einen Login-Token handelt). Kann mit toString in
eine Hex-Darstellung umgewandelt/serialisiert werden. Die einzelnen Bytes sind mit ClientCredentials.getTokenData()
abrufbar.InconsistentLoginException
- Falls die angegebenen Daten (Benutzername/Passwort) nicht zum Verifier passenpublic static ClientCredentials createRandomToken(SrpCryptoParameter cryptoParams)
cryptoParams
- Kryptographische Parameterpublic static boolean validateVerifier(SrpVerifierData verifier, java.lang.String user, ClientCredentials clientCredentials)
verifier
- Bestehender Verifieruser
- BenutzernameclientCredentials
- Passwort oder Login-Token