Package tigase.auth.mechanisms
Class AbstractSaslSCRAM
java.lang.Object
tigase.auth.mechanisms.AbstractSasl
tigase.auth.mechanisms.AbstractSaslSCRAM
- All Implemented Interfaces:
SaslServer
- Direct Known Subclasses:
SaslSCRAM
,SaslSCRAMPlus
,SaslSCRAMSha256
,SaslSCRAMSha256Plus
,SaslSCRAMSha512
,SaslSCRAMSha512Plus
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionprotected static final byte[]
protected static final byte[]
static final String
static final String
Fields inherited from class tigase.auth.mechanisms.AbstractSasl
authorizedId, callbackHandler, complete, log, negotiatedProperty, PASSWORD_NOT_VERIFIED_MSG, props, SASL_STRICT_MODE_KEY
-
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractSaslSCRAM
(String mechanismName, String algorithm, byte[] clientKey, byte[] serverKey, Map<? super String, ?> props, CallbackHandler callbackHandler) protected
AbstractSaslSCRAM
(String mechanismName, String algorithm, byte[] clientKey, byte[] serverKey, Map<? super String, ?> props, CallbackHandler callbackHandler, String serverOnce) -
Method Summary
Modifier and TypeMethodDescriptionprotected byte[]
protected abstract void
checkRequestedBindType
(AbstractSaslSCRAM.BindType requestedBindType) byte[]
evaluateResponse
(byte[] response) static Element
protected byte[]
h
(byte[] data) static byte[]
protected static byte[]
protected SecretKey
key
(byte[] key) static byte[]
protected byte[]
processClientFirstMessage
(byte[] data) protected byte[]
processClientLastMessage
(byte[] data) byte[]
unwrap
(byte[] incoming, int offset, int len) protected void
validateBindingsData
(AbstractSaslSCRAM.BindType requestedBindType, byte[] bindingData) byte[]
wrap
(byte[] outgoing, int offset, int len) protected byte[]
xor
(byte[] a, byte[] b) Methods inherited from class tigase.auth.mechanisms.AbstractSasl
dispose, getNegotiatedProperty, handleCallbacks, isAuthzIDIgnored, isComplete, isEmpty, split
-
Field Details
-
TLS_UNIQUE_ID_KEY
- See Also:
-
LOCAL_CERTIFICATE_KEY
- See Also:
-
DEFAULT_CLIENT_KEY
protected static final byte[] DEFAULT_CLIENT_KEY -
DEFAULT_SERVER_KEY
protected static final byte[] DEFAULT_SERVER_KEY
-
-
Constructor Details
-
AbstractSaslSCRAM
protected AbstractSaslSCRAM(String mechanismName, String algorithm, byte[] clientKey, byte[] serverKey, Map<? super String, ?> props, CallbackHandler callbackHandler) -
AbstractSaslSCRAM
-
-
Method Details
-
getSupportedChannelBindings
-
hi
public static byte[] hi(String algorithm, byte[] password, byte[] salt, int iterations) throws InvalidKeyException, NoSuchAlgorithmException -
hmac
protected static byte[] hmac(SecretKey key, byte[] data) throws NoSuchAlgorithmException, InvalidKeyException -
normalize
-
calculateC
protected byte[] calculateC() -
checkRequestedBindType
protected abstract void checkRequestedBindType(AbstractSaslSCRAM.BindType requestedBindType) throws SaslException - Throws:
SaslException
-
evaluateResponse
- Throws:
SaslException
-
getAuthorizationID
-
getMechanismName
-
h
- Throws:
NoSuchAlgorithmException
-
key
-
processClientFirstMessage
protected byte[] processClientFirstMessage(byte[] data) throws SaslException, InvalidKeyException, NoSuchAlgorithmException -
processClientLastMessage
protected byte[] processClientLastMessage(byte[] data) throws SaslException, InvalidKeyException, NoSuchAlgorithmException -
unwrap
public byte[] unwrap(byte[] incoming, int offset, int len) -
validateBindingsData
protected void validateBindingsData(AbstractSaslSCRAM.BindType requestedBindType, byte[] bindingData) -
wrap
public byte[] wrap(byte[] outgoing, int offset, int len) -
xor
protected byte[] xor(byte[] a, byte[] b)
-