Package com.nimbusds.jose.crypto
Class X25519Encrypter
- java.lang.Object
-
- com.nimbusds.jose.crypto.impl.ECDHCryptoProvider
-
- com.nimbusds.jose.crypto.X25519Encrypter
-
- All Implemented Interfaces:
JCAAware<JWEJCAContext>,JOSEProvider,JWEEncrypter,JWEProvider
@ThreadSafe public class X25519Encrypter extends ECDHCryptoProvider implements JWEEncrypter
Curve25519 Elliptic Curve Diffie-Hellman encrypter ofJWE objects. Expects a publicOctetKeyPairkey with"crv"X25519.See RFC 8037 for more information.
See also
ECDHEncrypterfor ECDH on other curves.This class is thread-safe.
Supports the following key management algorithms:
JWEAlgorithm.ECDH_ESJWEAlgorithm.ECDH_ES_A128KWJWEAlgorithm.ECDH_ES_A192KWJWEAlgorithm.ECDH_ES_A256KW
Supports the following elliptic curve:
Curve.X25519(Curve25519)
Supports the following content encryption algorithms:
- Version:
- 2018-07-12
- Author:
- Tim McLean
-
-
Field Summary
-
Fields inherited from class com.nimbusds.jose.crypto.impl.ECDHCryptoProvider
SUPPORTED_ALGORITHMS, SUPPORTED_ENCRYPTION_METHODS
-
-
Constructor Summary
Constructors Constructor Description X25519Encrypter(OctetKeyPair publicKey)Creates a new Curve25519 Elliptic Curve Diffie-Hellman encrypter.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JWECryptoPartsencrypt(JWEHeader header, byte[] clearText)Encrypts the specified clear text of aJWE object.JWEJCAContextgetJCAContext()Returns the Java Cryptography Architecture (JCA) context.OctetKeyPairgetPublicKey()Returns the public key.Set<Curve>supportedEllipticCurves()Returns the names of the supported elliptic curves.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.-
Methods inherited from class com.nimbusds.jose.crypto.impl.ECDHCryptoProvider
decryptWithZ, encryptWithZ, encryptWithZ, getConcatKDF, getCurve
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.nimbusds.jose.jca.JCAAware
getJCAContext
-
Methods inherited from interface com.nimbusds.jose.JWEProvider
supportedEncryptionMethods, supportedJWEAlgorithms
-
-
-
-
Constructor Detail
-
X25519Encrypter
public X25519Encrypter(OctetKeyPair publicKey) throws JOSEException
Creates a new Curve25519 Elliptic Curve Diffie-Hellman encrypter.- Parameters:
publicKey- The public key. Must not benull.- Throws:
JOSEException- If the key subtype is not supported.
-
-
Method Detail
-
supportedEllipticCurves
public Set<Curve> supportedEllipticCurves()
Description copied from class:ECDHCryptoProviderReturns the names of the supported elliptic curves. These correspond to thecrvEC JWK parameter.- Specified by:
supportedEllipticCurvesin classECDHCryptoProvider- Returns:
- The supported elliptic curves.
-
getPublicKey
public OctetKeyPair getPublicKey()
Returns the public key.- Returns:
- The public key.
-
encrypt
public JWECryptoParts encrypt(JWEHeader header, byte[] clearText) throws JOSEException
Description copied from interface:JWEEncrypterEncrypts the specified clear text of aJWE object.- Specified by:
encryptin interfaceJWEEncrypter- Parameters:
header- The JSON Web Encryption (JWE) header. Must specify a supported JWE algorithm and method. Must not benull.clearText- The clear text to encrypt. Must not benull.- Returns:
- The resulting JWE crypto parts.
- Throws:
JOSEException- If the JWE algorithm or method is not supported or if encryption failed for some other internal reason.
-
supportedJWEAlgorithms
public Set<JWEAlgorithm> supportedJWEAlgorithms()
Description copied from interface:JWEProviderReturns the names of the supported algorithms by the JWE provider instance. These correspond to thealgJWE header parameter.- Specified by:
supportedJWEAlgorithmsin interfaceJWEProvider- Returns:
- The supported JWE algorithms, empty set if none.
-
supportedEncryptionMethods
public Set<EncryptionMethod> supportedEncryptionMethods()
Description copied from interface:JWEProviderReturns the names of the supported encryption methods by the JWE provier. These correspond to theencJWE header parameter.- Specified by:
supportedEncryptionMethodsin interfaceJWEProvider- Returns:
- The supported encryption methods, empty set if none.
-
getJCAContext
public JWEJCAContext getJCAContext()
Description copied from interface:JCAAwareReturns the Java Cryptography Architecture (JCA) context. May be used to set a specific JCA security provider or secure random generator.- Specified by:
getJCAContextin interfaceJCAAware<JWEJCAContext>- Returns:
- The JCA context. Not
null.
-
-