Package com.nimbusds.jose.crypto
Class Ed25519Verifier
java.lang.Object
com.nimbusds.jose.crypto.impl.BaseJWSProvider
com.nimbusds.jose.crypto.impl.EdDSAProvider
com.nimbusds.jose.crypto.Ed25519Verifier
- All Implemented Interfaces:
CriticalHeaderParamsAware
,JCAAware<JCAContext>
,JOSEProvider
,JWSProvider
,JWSVerifier
@ThreadSafe
public class Ed25519Verifier
extends EdDSAProvider
implements JWSVerifier, CriticalHeaderParamsAware
Ed25519 verifier of
JWS objects
.
Expects a public OctetKeyPair
with "crv"
Ed25519.
Uses the Edwards-curve Digital Signature Algorithm (EdDSA).
See RFC 8037 for more information.
This class is thread-safe.
Supports the following algorithm:
- Version:
- 2024-05-07
- Author:
- Tim McLean
-
Field Summary
Fields inherited from class com.nimbusds.jose.crypto.impl.EdDSAProvider
SUPPORTED_ALGORITHMS, SUPPORTED_CURVES
-
Constructor Summary
ConstructorDescriptionEd25519Verifier
(OctetKeyPair publicKey) Creates a new Ed25519 verifier.Ed25519Verifier
(OctetKeyPair publicKey, Set<String> defCritHeaders) Creates an Ed25519 verifier. -
Method Summary
Modifier and TypeMethodDescriptionReturns the names of the critical (crit
) header parameters that are deferred to the application for processing and will be ignored by the JWS verifier / JWE decrypter.Returns the names of the critical (crit
) header parameters that are understood and processed by the JWS verifier / JWE decrypter.Returns the public key.boolean
Verifies the specifiedsignature
of aJWS object
.Methods inherited from class com.nimbusds.jose.crypto.impl.BaseJWSProvider
getJCAContext, supportedJWSAlgorithms
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.JWSProvider
supportedJWSAlgorithms
-
Constructor Details
-
Ed25519Verifier
Creates a new Ed25519 verifier.- Parameters:
publicKey
- The public Ed25519 key. Must not benull
.- Throws:
JOSEException
- If the key subtype is not supported
-
Ed25519Verifier
Creates an Ed25519 verifier.- Parameters:
publicKey
- The public Ed25519 key. Must not benull
.defCritHeaders
- The names of the critical header parameters that are deferred to the application for processing, empty set ornull
if none.- Throws:
JOSEException
- If the key subtype is not supported.
-
-
Method Details
-
getPublicKey
Returns the public key.- Returns:
- An OctetKeyPair without the private part
-
getProcessedCriticalHeaderParams
Description copied from interface:CriticalHeaderParamsAware
Returns the names of the critical (crit
) header parameters that are understood and processed by the JWS verifier / JWE decrypter.- Specified by:
getProcessedCriticalHeaderParams
in interfaceCriticalHeaderParamsAware
- Returns:
- The names of the critical header parameters that are understood and processed, empty set if none.
-
getDeferredCriticalHeaderParams
Description copied from interface:CriticalHeaderParamsAware
Returns the names of the critical (crit
) header parameters that are deferred to the application for processing and will be ignored by the JWS verifier / JWE decrypter.- Specified by:
getDeferredCriticalHeaderParams
in interfaceCriticalHeaderParamsAware
- Returns:
- The names of the critical header parameters that are deferred to the application for processing, empty set if none.
-
verify
public boolean verify(JWSHeader header, byte[] signedContent, Base64URL signature) throws JOSEException Description copied from interface:JWSVerifier
Verifies the specifiedsignature
of aJWS object
.- Specified by:
verify
in interfaceJWSVerifier
- Parameters:
header
- The JSON Web Signature (JWS) header. Must specify a supported JWS algorithm and must not benull
.signedContent
- The signing input. Must not benull
.signature
- The signature part of the JWS object. Must not benull
.- Returns:
true
if the signature was successfully verified,false
if the signature is invalid or if a critical header is neither supported nor marked for deferral to the application.- Throws:
JOSEException
- If the JWS algorithm is not supported, or if signature verification failed for some other internal reason.
-