Class JcaMTCSignatureVerifier

java.lang.Object
org.bouncycastle.cert.plants.jcajce.JcaMTCSignatureVerifier
All Implemented Interfaces:
MTCSignatureVerifier

public class JcaMTCSignatureVerifier extends Object implements MTCSignatureVerifier
JCA-side implementation of MTCSignatureVerifier.

Bound to a PublicKey and one of the algorithm identifiers defined by Section 6.1 of draft-ietf-plants-merkle-tree-certs: "ECDSA-P256-SHA256", "ECDSA-P384-SHA384", "Ed25519", "ML-DSA-44", "ML-DSA-65", "ML-DSA-87".

The draft identifiers are mapped to JCA Signature names internally — the plain (r||s) ECDSA encoding used by MTCProof requires SHA256WITHPLAIN-ECDSA / SHA384WITHPLAIN-ECDSA, which BC's JCE provider registers (DER-encoded SHA256withECDSA is wire-incompatible with the MTCProof signature byte format).

Instances are created via JcaMTCSignatureVerifier.Builder.

  • Method Details

    • getAlgorithm

      public String getAlgorithm()
      Specified by:
      getAlgorithm in interface MTCSignatureVerifier
      Returns:
      the MTC signature algorithm this verifier is bound to — one of the MTCSignatureAlgorithm constants. Lets callers check a registered verifier against the algorithm a CA publishes for its cosigner (Section 5.5 sigAlg).
    • verify

      public boolean verify(byte[] cosignedMessage, byte[] signature)
      Specified by:
      verify in interface MTCSignatureVerifier
      Parameters:
      cosignedMessage - the encoded CosignedMessage bytes
      signature - the candidate signature
      Returns:
      true if the signature is valid for the bound public key and algorithm