Package com.nimbusds.jose.crypto.impl
Class MACProvider
java.lang.Object
com.nimbusds.jose.crypto.impl.BaseJWSProvider
com.nimbusds.jose.crypto.impl.MACProvider
- All Implemented Interfaces:
JCAAware<JCAContext>,JOSEProvider,JWSProvider
- Direct Known Subclasses:
MACSigner,MACVerifier
The base abstract class for Message Authentication Code (MAC) signers and
verifiers of
JWS objects.
Supports the following algorithms:
- Version:
- 2019-09-14
- Author:
- Vladimir Dzhuvinov, Ulrich Winter
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Set<JWSAlgorithm>The supported JWS algorithms by the MAC provider class. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedMACProvider(byte[] secret, Set<JWSAlgorithm> supportedAlgs) Creates a new Message Authentication (MAC) provider.protectedMACProvider(SecretKey secretKey, Set<JWSAlgorithm> supportedAlgs) Creates a new Message Authentication (MAC) provider. -
Method Summary
Modifier and TypeMethodDescriptionprotected static StringGets the matching Java Cryptography Architecture (JCA) algorithm name for the specified HMAC-based JSON Web Algorithm (JWA).byte[]Gets the secret bytes.Gets the secret key.Gets the secret as a UTF-8 encoded string.Methods inherited from class com.nimbusds.jose.crypto.impl.BaseJWSProvider
getJCAContext, supportedJWSAlgorithms
-
Field Details
-
SUPPORTED_ALGORITHMS
The supported JWS algorithms by the MAC provider class.
-
-
Constructor Details
-
MACProvider
Creates a new Message Authentication (MAC) provider.- Parameters:
secret- The secret. Must be at least 256 bits long and notnull.supportedAlgs- The supported HMAC algorithms. Must not benull.- Throws:
KeyLengthException- If the secret length is shorter than the minimum 256-bit requirement.
-
MACProvider
protected MACProvider(SecretKey secretKey, Set<JWSAlgorithm> supportedAlgs) throws KeyLengthException Creates a new Message Authentication (MAC) provider.- Parameters:
secretKey- The secret key. Must be at least 256 bits long and notnull.supportedAlgs- The supported HMAC algorithms. Must not benull.- Throws:
KeyLengthException- If the secret length is shorter than the minimum 256-bit requirement.
-
-
Method Details
-
getJCAAlgorithmName
Gets the matching Java Cryptography Architecture (JCA) algorithm name for the specified HMAC-based JSON Web Algorithm (JWA).- Parameters:
alg- The JSON Web Algorithm (JWA). Must be supported and notnull.- Returns:
- The matching JCA algorithm name.
- Throws:
JOSEException- If the algorithm is not supported.
-
getSecretKey
Gets the secret key.- Returns:
- The secret key.
-
getSecret
Gets the secret bytes.- Returns:
- The secret bytes,
nullif this provider was constructed with aSecretKeythat doesn't expose the key material.
-
getSecretString
Gets the secret as a UTF-8 encoded string.- Returns:
- The secret as a UTF-8 encoded string,
nullif this provider was constructed with aSecretKeythat doesn't expose the key material.
-