@ThreadSafe public class MACSigner extends Object implements JWSSigner
JWS objects
. Expects a secret key.
See RFC 7518 section 3.2 for more information.
This class is thread-safe.
Supports the following algorithms:
Modifier and Type | Field and Description |
---|---|
static Set<JWSAlgorithm> |
SUPPORTED_ALGORITHMS
The supported JWS algorithms by the MAC provider class.
|
Constructor and Description |
---|
MACSigner(byte[] secret)
Creates a new Message Authentication (MAC) signer.
|
MACSigner(OctetSequenceKey jwk)
Creates a new Message Authentication (MAC) signer.
|
MACSigner(SecretKey secretKey)
Creates a new Message Authentication (MAC) signer.
|
MACSigner(String secretString)
Creates a new Message Authentication (MAC) signer.
|
Modifier and Type | Method and Description |
---|---|
static Set<JWSAlgorithm> |
getCompatibleAlgorithms(int secretLength)
Returns the compatible JWS HMAC algorithms for the specified secret
length.
|
protected static String |
getJCAAlgorithmName(JWSAlgorithm alg)
Gets the matching Java Cryptography Architecture (JCA) algorithm
name for the specified HMAC-based JSON Web Algorithm (JWA).
|
JCAContext |
getJCAContext()
Returns the Java Cryptography Architecture (JCA) context.
|
static int |
getMinRequiredSecretLength(JWSAlgorithm alg)
Returns the minimal required secret length for the specified HMAC
JWS algorithm.
|
byte[] |
getSecret()
Gets the secret bytes.
|
SecretKey |
getSecretKey()
Gets the secret key.
|
String |
getSecretString()
Gets the secret as a UTF-8 encoded string.
|
Base64URL |
sign(JWSHeader header,
byte[] signingInput)
Signs the specified
input of a
JWS object . |
Set<JWSAlgorithm> |
supportedJWSAlgorithms()
Returns the names of the supported algorithms by the JWS provider
instance.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
supportedJWSAlgorithms
getJCAContext
public static final Set<JWSAlgorithm> SUPPORTED_ALGORITHMS
public MACSigner(byte[] secret) throws KeyLengthException
secret
- The secret. Must be at least 256 bits long and not
null
.KeyLengthException
- If the secret length is shorter than the
minimum 256-bit requirement.public MACSigner(String secretString) throws KeyLengthException
secretString
- The secret as a UTF-8 encoded string. Must be at
least 256 bits long and not null
.KeyLengthException
- If the secret length is shorter than the
minimum 256-bit requirement.public MACSigner(SecretKey secretKey) throws KeyLengthException
secretKey
- The secret key. Must be at least 256 bits long and
not null
.KeyLengthException
- If the secret length is shorter than the
minimum 256-bit requirement.public MACSigner(OctetSequenceKey jwk) throws KeyLengthException
jwk
- The secret as a JWK. Must be at least 256 bits long and
not null
.KeyLengthException
- If the secret length is shorter than the
minimum 256-bit requirement.public static int getMinRequiredSecretLength(JWSAlgorithm alg) throws JOSEException
alg
- The HMAC JWS algorithm. Must be
supported
and not
null
.JOSEException
- If the algorithm is not supported.public static Set<JWSAlgorithm> getCompatibleAlgorithms(int secretLength)
secretLength
- The secret length in bits. Must not be negative.public Base64URL sign(JWSHeader header, byte[] signingInput) throws JOSEException
JWSSigner
input
of a
JWS object
.sign
in interface JWSSigner
header
- The JSON Web Signature (JWS) header. Must
specify a supported JWS algorithm and must not
be null
.signingInput
- The input to sign. Must not be null
.JOSEException
- If the JWS algorithm is not supported, if a
critical header parameter is not supported or
marked for deferral to the application, or if
signing failed for some other internal reason.protected static String getJCAAlgorithmName(JWSAlgorithm alg) throws JOSEException
alg
- The JSON Web Algorithm (JWA). Must be supported and not
null
.JOSEException
- If the algorithm is not supported.public SecretKey getSecretKey()
public byte[] getSecret()
public String getSecretString()
public Set<JWSAlgorithm> supportedJWSAlgorithms()
JWSProvider
alg
JWS header parameter.supportedJWSAlgorithms
in interface JWSProvider
public JCAContext getJCAContext()
JCAAware
getJCAContext
in interface JCAAware<JCAContext>
null
.Copyright © 2016 Connect2id Ltd.. All rights reserved.