public 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