Interface SignatureContext

All Superinterfaces:
AutoCloseable, Closeable, CryptoContext, TagEngine<Signature>
All Known Implementing Classes:
CommonEdDSASignatureContext, Ed25519SignatureContext, Ed448SignatureContext, GenericJcaSignatureContext, LmsSignatureContext, MldsaSignatureContext, RsaSignatureContext, SlhDsaSignatureContext, SphincsPlusSignatureContext, XmssSignatureContext

public non-sealed interface SignatureContext extends TagEngine<Signature>, CryptoContext
Context for streaming digital signature operations in pull-based pipelines.

A SignatureContext encapsulates the state of a signature algorithm such as Ed25519, ECDSA, or RSA-PSS and exposes it through the TagEngine contract. In produce (SIGN) mode it consumes the message bytes and appends the computed signature as a trailer; in verify (VERIFY) mode it consumes the message bytes and checks an expected signature supplied by the caller.

Operation

Usage

Sign with Ed25519


TagEngine<java.security.Signature> eng =
    TagEngineBuilder.ed25519Sign(session, privateKey).get();

try (java.io.InputStream in = eng.wrap(upstream)) {
    in.transferTo(out); // body, then detached signature trailer
}

Verify a detached signature and throw on mismatch


byte[] expectedSig = ...; // obtained via a trusted channel
TagEngine<java.security.Signature> eng =
    TagEngineBuilder.ed25519Verify(publicKey).get();

// Throw if verification fails at EOF:
eng.setVerificationApproach(eng.getVerificationCore().getThrowOnMismatch());
eng.setExpectedTag(expectedSig);

try (java.io.InputStream in = eng.wrap(bodyWithoutTrailer)) {
    in.transferTo(java.io.OutputStream.nullOutputStream()); // compare at EOF
}

Notes

Since:
1.0