public final class DigestMD5Server extends DigestMD5Base implements javax.security.sasl.SaslServer
The DIGEST-MD5 SASL mechanism specifies two modes of authentication.
DigestMD5Base.DigestIntegrity, DigestMD5Base.DigestPrivacy| Modifier and Type | Field and Description |
|---|---|
private static java.lang.String |
ALGORITHM_DIRECTIVE |
private static java.lang.String |
ALTERNATIVE_PROTOCOLS_PROPERTY |
private static int |
AUTHZID |
private static int |
CHARSET |
private static int |
CIPHER |
private static int |
CNONCE |
private static int |
DIGEST_URI |
private java.util.List<java.lang.String> |
digestUris |
private static java.lang.String[] |
DIRECTIVE_KEY |
private static org.jboss.logging.Logger |
log |
private static int |
MAXBUF |
private static java.lang.String |
MY_CLASS_NAME |
private byte[] |
myCiphers |
private static int |
NONCE |
private static int |
NONCE_COUNT |
private static int |
NONCE_COUNT_VALUE |
private boolean |
preDigestedPasswords
Should the impl request and use pre-digested passwords instead of generating the {username : realm : password} hash?
|
private static int |
QOP |
private static int |
REALM |
private static java.lang.String |
REALM_PROPERTY |
private static int |
RESPONSE |
private java.util.List<java.lang.String> |
serverRealms |
private java.lang.String |
specifiedQops |
private static int |
USERNAME |
private static java.lang.String |
UTF8_DIRECTIVE |
private static java.lang.String |
UTF8_PROPERTY |
authzid, cbh, CIPHER_MASKS, CIPHER_TOKENS, DEFAULT_MAXBUF, DES, DES_3_STRENGTH, DES_STRENGTH, DES3, EMPTY_BYTE_ARRAY, encoding, H_A1, MAX_CHALLENGE_LENGTH, MAX_RESPONSE_LENGTH, negotiatedCipher, negotiatedQop, negotiatedRealm, negotiatedStrength, nonce, PRE_DIGESTED_PROPERTY, RC4, RC4_40, RC4_40_STRENGTH, RC4_56, RC4_56_STRENGTH, RC4_STRENGTH, secCtx, step, UNSET, useUTF8allQop, completed, HIGH_STRENGTH, integrity, INTEGRITY_ONLY_PROTECTION, LOW_STRENGTH, MAX_SEND_BUF, MEDIUM_STRENGTH, myClassName, NO_PROTECTION, privacy, PRIVACY_PROTECTION, qop, rawSendSize, recvMaxBufSize, sendMaxBufSize, strength| Constructor and Description |
|---|
DigestMD5Server(java.lang.String protocol,
java.lang.String serverName,
java.util.Map<java.lang.String,?> props,
javax.security.auth.callback.CallbackHandler cbh) |
| Modifier and Type | Method and Description |
|---|---|
byte[] |
evaluateResponse(byte[] response) |
private byte[] |
generateChallenge(byte[] responseValue) |
private byte[] |
generateChallenge(java.util.List<java.lang.String> realms,
java.lang.String qopStr,
java.lang.String cipherStr)
Generates challenge to be sent to client.
|
private byte[] |
generateResponseAuth(java.lang.String digestUri,
byte[] urpHash,
byte[] cnonce,
int nonceCount,
byte[] authzidBytes)
Server sends a message formatted as follows:
response-auth = "rspauth" "=" response-value
where response-value is calculated as above, using the values sent in
step two, except that if qop is "auth", then A2 is
A2 = { ":", digest-uri-value }
And if qop is "auth-int" or "auth-conf" then A2 is
A2 = { ":", digest-uri-value, ":00000000000000000000000000000000" }
|
private byte[] |
generateResponseAuth(java.lang.String digestUri,
java.lang.String username,
char[] passwd,
byte[] cnonce,
int nonceCount,
byte[] authzidBytes)
Server sends a message formatted as follows:
response-auth = "rspauth" "=" response-value
where response-value is calculated as above, using the values sent in
step two, except that if qop is "auth", then A2 is
A2 = { ":", digest-uri-value }
And if qop is "auth-int" or "auth-conf" then A2 is
A2 = { ":", digest-uri-value, ":00000000000000000000000000000000" }
|
java.lang.String |
getAuthorizationID() |
private byte[] |
validateClientResponse(byte[][] responseVal)
Validates client's response.
|
binaryToHex, dispose, generateNonce, generateResponseValue, generateResponseValue, getMechanismName, getNegotiatedProperty, getPlatformCiphers, nonceCountToHex, parseDirectives, quotedStringValue, unwrap, wrap, writeQuotedStringValuecombineMasks, findPreferredMask, intToNetworkByteOrder, isComplete, networkByteOrderToInt, parseQopprivate static final java.lang.String MY_CLASS_NAME
private static final java.lang.String UTF8_DIRECTIVE
private static final java.lang.String ALGORITHM_DIRECTIVE
private static final org.jboss.logging.Logger log
private static final int NONCE_COUNT_VALUE
private static final java.lang.String UTF8_PROPERTY
private static final java.lang.String REALM_PROPERTY
private static final java.lang.String ALTERNATIVE_PROTOCOLS_PROPERTY
private static final java.lang.String[] DIRECTIVE_KEY
private static final int USERNAME
private static final int REALM
private static final int NONCE
private static final int CNONCE
private static final int NONCE_COUNT
private static final int QOP
private static final int DIGEST_URI
private static final int RESPONSE
private static final int MAXBUF
private static final int CHARSET
private static final int CIPHER
private static final int AUTHZID
private java.lang.String specifiedQops
private byte[] myCiphers
private final java.util.List<java.lang.String> serverRealms
private boolean preDigestedPasswords
private final java.util.List<java.lang.String> digestUris
DigestMD5Server(java.lang.String protocol,
java.lang.String serverName,
java.util.Map<java.lang.String,?> props,
javax.security.auth.callback.CallbackHandler cbh)
throws javax.security.sasl.SaslException
javax.security.sasl.SaslExceptionpublic byte[] evaluateResponse(byte[] response)
throws javax.security.sasl.SaslException
evaluateResponse in interface javax.security.sasl.SaslServerjavax.security.sasl.SaslExceptionprivate byte[] generateChallenge(java.util.List<java.lang.String> realms,
java.lang.String qopStr,
java.lang.String cipherStr)
throws java.io.IOException
java.io.IOExceptionprivate byte[] validateClientResponse(byte[][] responseVal)
throws javax.security.sasl.SaslException,
java.io.UnsupportedEncodingException
javax.security.sasl.SaslExceptionjava.io.UnsupportedEncodingExceptionprivate byte[] generateResponseAuth(java.lang.String digestUri,
java.lang.String username,
char[] passwd,
byte[] cnonce,
int nonceCount,
byte[] authzidBytes)
throws javax.security.sasl.SaslException
javax.security.sasl.SaslExceptionprivate byte[] generateResponseAuth(java.lang.String digestUri,
byte[] urpHash,
byte[] cnonce,
int nonceCount,
byte[] authzidBytes)
throws javax.security.sasl.SaslException
javax.security.sasl.SaslExceptionprivate byte[] generateChallenge(byte[] responseValue)
throws java.io.UnsupportedEncodingException
java.io.UnsupportedEncodingExceptionpublic java.lang.String getAuthorizationID()
getAuthorizationID in interface javax.security.sasl.SaslServer