@ThreadSafe public class DirectEncrypter extends DirectCryptoProvider implements JWEEncrypter
JWE objects
with a
shared symmetric key.
See RFC 7518 section 4.5 for more information.
This class is thread-safe.
Supports the following key management algorithms:
Supports the following content encryption algorithms:
EncryptionMethod.A128CBC_HS256
(requires 256 bit key)
EncryptionMethod.A192CBC_HS384
(requires 384 bit key)
EncryptionMethod.A256CBC_HS512
(requires 512 bit key)
EncryptionMethod.A128GCM
(requires 128 bit key)
EncryptionMethod.A192GCM
(requires 192 bit key)
EncryptionMethod.A256GCM
(requires 256 bit key)
EncryptionMethod.A128CBC_HS256_DEPRECATED
(requires 256 bit key)
EncryptionMethod.A256CBC_HS512_DEPRECATED
(requires 512 bit key)
SUPPORTED_ALGORITHMS, SUPPORTED_ENCRYPTION_METHODS
Constructor and Description |
---|
DirectEncrypter(byte[] keyBytes)
Creates a new direct encrypter.
|
DirectEncrypter(OctetSequenceKey octJWK)
Creates a new direct encrypter.
|
DirectEncrypter(SecretKey key)
Creates a new direct encrypter.
|
Modifier and Type | Method and Description |
---|---|
JWECryptoParts |
encrypt(JWEHeader header,
byte[] clearText)
Encrypts the specified clear text of a
JWE object . |
JWEJCAContext |
getJCAContext()
Returns the Java Cryptography Architecture (JCA) context.
|
Set<EncryptionMethod> |
supportedEncryptionMethods()
Returns the names of the supported encryption methods by the JWE
provier.
|
Set<JWEAlgorithm> |
supportedJWEAlgorithms()
Returns the names of the supported algorithms by the JWE provider
instance.
|
getKey
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
supportedEncryptionMethods, supportedJWEAlgorithms
getJCAContext
public DirectEncrypter(SecretKey key) throws KeyLengthException
key
- The symmetric key. Its algorithm should be "AES". Must be
128 bits (16 bytes), 192 bits (24 bytes), 256 bits (32
bytes), 384 bits (48 bytes) or 512 bits (64 bytes) long.
Must not be null
.KeyLengthException
- If the symmetric key length is not
compatible.public DirectEncrypter(byte[] keyBytes) throws KeyLengthException
keyBytes
- The symmetric key, as a byte array. Must be 128 bits
(16 bytes), 192 bits (24 bytes), 256 bits (32
bytes), 384 bits (48 bytes) or 512 bits (64 bytes)
long. Must not be null
.KeyLengthException
- If the symmetric key length is not
compatible.public DirectEncrypter(OctetSequenceKey octJWK) throws KeyLengthException
octJWK
- The symmetric key, as a JWK. Must be 128 bits (16
bytes), 192 bits (24 bytes), 256 bits (32 bytes), 384
bits (48 bytes) or 512 bits (64 bytes) long. Must not
be null
.KeyLengthException
- If the symmetric key length is not
compatible.public JWECryptoParts encrypt(JWEHeader header, byte[] clearText) throws JOSEException
JWEEncrypter
JWE object
.encrypt
in interface JWEEncrypter
header
- The JSON Web Encryption (JWE) header. Must specify
a supported JWE algorithm and method. Must not be
null
.clearText
- The clear text to encrypt. Must not be null
.JOSEException
- If the JWE algorithm or method is not
supported or if encryption failed for some
other internal reason.public Set<JWEAlgorithm> supportedJWEAlgorithms()
JWEProvider
alg
JWE header parameter.supportedJWEAlgorithms
in interface JWEProvider
public Set<EncryptionMethod> supportedEncryptionMethods()
JWEProvider
enc
JWE header parameter.supportedEncryptionMethods
in interface JWEProvider
public JWEJCAContext getJCAContext()
JCAAware
getJCAContext
in interface JCAAware<JWEJCAContext>
null
.Copyright © 2020 Connect2id Ltd.. All rights reserved.