Promote the LMS and HSS hash-based signature implementation from org.bouncycastle.pqc.crypto.lms into org.bouncycastle.crypto as ML-KEM, ML-DSA and SLH-DSA were, splitting it the same way with the key parameter classes in crypto.params, the key pair generators in crypto.generators, LMSSigner, HSSSigner, LMSContext and the LMSContextBased interfaces in crypto.signers and the engine classes in crypto.signers.lms, the signers now implementing crypto.Signer and an exhausted key raising the new crypto.ExhaustedPrivateKeyException that the pqc one extends, with the LMS half of the crypto.util key factories held in one LmsKeyUtil hook so the distributions excluding LMS replace a stub rather than fork four factories, the BC provider's LMS services and the pkix HSS/LMS operators moved onto the promoted classes, the JCE parameter specs given constructors and accessors for the new types alongside their deprecated originals, and pqc.crypto.lms deprecated for removal in the next release with its own suites kept and a new LMSPromotionCompatibilityTest asserting the two implementations agree byte for byte.
D
David Hook committed
0423971ae72466a53b8ff6e34c992bc0f6e16342
Parent: 818292a