Package org.bouncycastle.cert.plants.bc
Class BcMTCCosignerVerifierProvider
- java.lang.Object
-
- org.bouncycastle.cert.plants.bc.BcMTCCosignerVerifierProvider
-
- All Implemented Interfaces:
MTCCosignerVerifierProvider
public class BcMTCCosignerVerifierProvider extends java.lang.Object implements MTCCosignerVerifierProvider
Lightweight-sideMTCCosignerVerifierProviderthat holds a table of cosigner trust anchor IDs mapped toMTCSignatureVerifierinstances.The convenience
BcMTCCosignerVerifierProvider.Builder.addCosigner(byte[], AsymmetricKeyParameter)overload wraps a lightweightAsymmetricKeyParameterin aBcMTCSignatureVerifier, auto-detecting the draft algorithm identifier from the key type:ECPublicKeyParameterswith a 256-bit field →ECDSA-P256-SHA256ECPublicKeyParameterswith a 384-bit field →ECDSA-P384-SHA384Ed25519PublicKeyParameters→Ed25519MLDSAPublicKeyParameters→ML-DSA-44/ML-DSA-65/ML-DSA-87per the key's parameter set
Callers needing a different algorithm string for the same key type, or a key flavour from another module (e.g. a JCA
java.security.PublicKeywrapped inorg.bouncycastle.cert.plants.jcajce.JcaMTCSignatureVerifier), can useBcMTCCosignerVerifierProvider.Builder.addCosigner(byte[], MTCSignatureVerifier)directly.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classBcMTCCosignerVerifierProvider.BuilderBuilder forBcMTCCosignerVerifierProvider.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description MTCCosignerVerifierget(byte[] cosignerId)static BcMTCCosignerVerifierProvidersingleCosigner(byte[] cosignerId, MTCSignatureVerifier verifier)Convenience factory for the single-cosigner case — wrapsBuilder().addCosigner(cosignerId, verifier).build().static BcMTCCosignerVerifierProvidersingleCosigner(byte[] cosignerId, org.bouncycastle.crypto.params.AsymmetricKeyParameter publicKey)Convenience factory for the single-cosigner case taking a lightweight public key; the draft algorithm identifier is detected from the key type.
-
-
-
Method Detail
-
singleCosigner
public static BcMTCCosignerVerifierProvider singleCosigner(byte[] cosignerId, MTCSignatureVerifier verifier)
Convenience factory for the single-cosigner case — wrapsBuilder().addCosigner(cosignerId, verifier).build(). Suitable when the relying party trusts exactly one cosigner (e.g. the CA itself, per Section 5.3 of draft-ietf-plants-merkle-tree-certs).
-
singleCosigner
public static BcMTCCosignerVerifierProvider singleCosigner(byte[] cosignerId, org.bouncycastle.crypto.params.AsymmetricKeyParameter publicKey)
Convenience factory for the single-cosigner case taking a lightweight public key; the draft algorithm identifier is detected from the key type.- Throws:
java.lang.IllegalArgumentException- if the public key type is unsupported
-
get
public MTCCosignerVerifier get(byte[] cosignerId)
- Specified by:
getin interfaceMTCCosignerVerifierProvider- Parameters:
cosignerId- the binary trust anchor ID of the cosigner- Returns:
- a verifier for the cosigner, or
nullif the cosigner is unknown
-
-