@ThreadSafe public class RSAEncrypter extends RSACryptoProvider implements JWEEncrypter
JWE objects
. Expects a
public RSA key.
Encrypts the plain text with a generated AES key (the Content Encryption Key) according to the specified JOSE encryption method, then encrypts the CEK with the public RSA key and returns it alongside the IV, cipher text and authentication tag. See RFC 7518, sections 4.2 and 4.3 for more information.
This class is thread-safe.
Supports the following key management algorithms:
JWEAlgorithm.RSA_OAEP_256
JWEAlgorithm.RSA_OAEP
(deprecated)
JWEAlgorithm.RSA1_5
(deprecated)
Supports the following content encryption algorithms:
SUPPORTED_ALGORITHMS, SUPPORTED_ENCRYPTION_METHODS
Constructor and Description |
---|
RSAEncrypter(RSAKey rsaJWK)
Creates a new RSA encrypter.
|
RSAEncrypter(RSAPublicKey publicKey)
Creates a new RSA encrypter.
|
RSAEncrypter(RSAPublicKey publicKey,
SecretKey contentEncryptionKey)
Creates a new RSA encrypter with an optionally specified content
encryption key (CEK).
|
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.
|
RSAPublicKey |
getPublicKey()
Gets the public RSA key.
|
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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
supportedEncryptionMethods, supportedJWEAlgorithms
getJCAContext
public RSAEncrypter(RSAPublicKey publicKey)
publicKey
- The public RSA key. Must not be null
.public RSAEncrypter(RSAKey rsaJWK) throws JOSEException
rsaJWK
- The RSA JSON Web Key (JWK). Must not be null
.JOSEException
- If the RSA JWK extraction failed.public RSAEncrypter(RSAPublicKey publicKey, SecretKey contentEncryptionKey)
publicKey
- The public RSA key. Must not be
null
.contentEncryptionKey
- The content encryption key (CEK) to use.
If specified its algorithm must be "AES"
and its length must match the expected
for the JWE encryption method ("enc").
If null
a CEK will be generated
for each JWE.public RSAPublicKey getPublicKey()
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 © 2021 Connect2id Ltd.. All rights reserved.