77import java .util .Set ;
88
99import org .bouncycastle .asn1 .ASN1ObjectIdentifier ;
10+ import org .bouncycastle .crypto .Digest ;
11+ import org .bouncycastle .crypto .digests .SHA256Digest ;
12+ import org .bouncycastle .crypto .digests .SHA384Digest ;
13+ import org .bouncycastle .crypto .digests .SHA512Digest ;
14+ import org .bouncycastle .crypto .digests .SHAKEDigest ;
1015import org .bouncycastle .internal .asn1 .misc .MiscObjectIdentifiers ;
1116import org .bouncycastle .jce .spec .ECNamedCurveGenParameterSpec ;
1217
@@ -15,72 +20,72 @@ public class CompositeIndex
1520 private static Map <ASN1ObjectIdentifier , String []> pairings = new HashMap <ASN1ObjectIdentifier , String []>();
1621 private static Map <ASN1ObjectIdentifier , AlgorithmParameterSpec []> kpgInitSpecs = new HashMap <ASN1ObjectIdentifier , AlgorithmParameterSpec []>();
1722 private static Map <ASN1ObjectIdentifier , String > algorithmNames = new HashMap <ASN1ObjectIdentifier , String >();
18-
23+
1924 static
2025 {
21- pairings .put (MiscObjectIdentifiers .id_MLDSA44_RSA2048_PSS_SHA256 , new String [] { "ML-DSA-44" , "RSASSA-PSS" });
22- pairings .put (MiscObjectIdentifiers .id_MLDSA44_RSA2048_PKCS15_SHA256 , new String [] { "ML-DSA-44" , "sha256WithRSAEncryption" });
23- pairings .put (MiscObjectIdentifiers .id_MLDSA44_Ed25519_SHA512 , new String [] { "ML-DSA-44" , "Ed25519" });
24- pairings .put (MiscObjectIdentifiers .id_MLDSA44_ECDSA_P256_SHA256 , new String [] { "ML-DSA-44" , "SHA256withECDSA" });
25- pairings .put (MiscObjectIdentifiers .id_MLDSA65_RSA3072_PSS_SHA512 , new String [] { "ML-DSA-65" , "RSASSA-PSS" });
26- pairings .put (MiscObjectIdentifiers .id_MLDSA65_RSA3072_PKCS15_SHA512 , new String [] { "ML-DSA-65" , "sha256WithRSAEncryption" });
27- pairings .put (MiscObjectIdentifiers .id_MLDSA65_RSA4096_PSS_SHA512 , new String [] { "ML-DSA-65" , "RSASSA-PSS" });
26+ pairings .put (MiscObjectIdentifiers .id_MLDSA44_RSA2048_PSS_SHA256 , new String []{ "ML-DSA-44" , "RSASSA-PSS" });
27+ pairings .put (MiscObjectIdentifiers .id_MLDSA44_RSA2048_PKCS15_SHA256 , new String []{ "ML-DSA-44" , "sha256WithRSAEncryption" });
28+ pairings .put (MiscObjectIdentifiers .id_MLDSA44_Ed25519_SHA512 , new String []{ "ML-DSA-44" , "Ed25519" });
29+ pairings .put (MiscObjectIdentifiers .id_MLDSA44_ECDSA_P256_SHA256 , new String []{ "ML-DSA-44" , "SHA256withECDSA" });
30+ pairings .put (MiscObjectIdentifiers .id_MLDSA65_RSA3072_PSS_SHA512 , new String []{ "ML-DSA-65" , "RSASSA-PSS" });
31+ pairings .put (MiscObjectIdentifiers .id_MLDSA65_RSA3072_PKCS15_SHA512 , new String []{ "ML-DSA-65" , "sha256WithRSAEncryption" });
32+ pairings .put (MiscObjectIdentifiers .id_MLDSA65_RSA4096_PSS_SHA512 , new String []{ "ML-DSA-65" , "RSASSA-PSS" });
2833 // id_MLDSA65_RSA4096_PKCS15_SHA512
29- pairings .put (MiscObjectIdentifiers .id_MLDSA65_RSA4096_PKCS15_SHA512 , new String [] { "ML-DSA-65" , "sha384WithRSAEncryption" });
30- pairings .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_P256_SHA512 , new String [] { "ML-DSA-65" , "SHA256withECDSA" });
31- pairings .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_P384_SHA512 , new String [] { "ML-DSA-65" , "SHA384withECDSA" });
32- pairings .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_brainpoolP256r1_SHA512 , new String [] { "ML-DSA-65" , "SHA256withECDSA" });
33- pairings .put (MiscObjectIdentifiers .id_MLDSA65_Ed25519_SHA512 , new String [] { "ML-DSA-65" , "Ed25519" });
34- pairings .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_P384_SHA512 , new String [] { "ML-DSA-87" , "SHA384withECDSA" });
35- pairings .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_brainpoolP384r1_SHA512 , new String [] { "ML-DSA-87" , "SHA384withECDSA" });
36- pairings .put (MiscObjectIdentifiers .id_MLDSA87_Ed448_SHAKE256 , new String [] { "ML-DSA-87" , "Ed448" });
37- pairings .put (MiscObjectIdentifiers .id_MLDSA87_RSA3072_PSS_SHA512 , new String [] { "ML-DSA-87" , "RSASSA-PSS" });
38- pairings .put (MiscObjectIdentifiers .id_MLDSA87_RSA4096_PSS_SHA512 , new String [] { "ML-DSA-87" , "RSASSA-PSS" });
39- pairings .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_P521_SHA512 , new String [] { "ML-DSA-87" , "SHA512withECDSA" });
40-
41- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA3072_PSS_SHA256 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (3072 , RSAKeyGenParameterSpec .F4 )});
42- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA3072_PKCS15_SHA256 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (3072 , RSAKeyGenParameterSpec .F4 )});
43- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA4096_PSS_SHA384 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (4096 , RSAKeyGenParameterSpec .F4 )});
44- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA4096_PKCS15_SHA384 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (4096 , RSAKeyGenParameterSpec .F4 )});
45- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_P384_SHA384 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("P-384" )});
46- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_brainpoolP256r1_SHA256 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("brainpoolP256r1" )});
47- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_P384_SHA384 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("P-384" )});
48- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_brainpoolP384r1_SHA384 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("brainpoolP384r1" )});
49- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_Ed448_SHA512 , new AlgorithmParameterSpec [] { null , null });
50-
51- kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA44_RSA2048_PSS_SHA256 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (2048 , RSAKeyGenParameterSpec .F4 )});
52- kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA44_RSA2048_PKCS15_SHA256 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (2048 , RSAKeyGenParameterSpec .F4 )});
53- kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA44_Ed25519_SHA512 , new AlgorithmParameterSpec [] { null , null });
54- kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA44_ECDSA_P256_SHA256 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("P-256" )});
55- kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA65_RSA3072_PSS_SHA512 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (3072 , RSAKeyGenParameterSpec .F4 )});
56- kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA65_RSA3072_PKCS15_SHA512 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (3072 , RSAKeyGenParameterSpec .F4 )});
57- kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA65_RSA4096_PSS_SHA512 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (4096 , RSAKeyGenParameterSpec .F4 )});
58- kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA65_RSA4096_PKCS15_SHA512 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (4096 , RSAKeyGenParameterSpec .F4 )});
59- kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA65_ECDSA_P384_SHA512 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("P-384" )});
60- kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA65_ECDSA_brainpoolP256r1_SHA512 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("brainpoolP256r1" )});
61- kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA65_Ed25519_SHA512 , new AlgorithmParameterSpec [] { null , null });
62- kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA87_ECDSA_P384_SHA512 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("P-384" )});
63- kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA87_ECDSA_brainpoolP384r1_SHA512 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("brainpoolP384r1" )});
64- kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA87_Ed448_SHA512 , new AlgorithmParameterSpec [] { null , null });
65-
66- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA44_RSA2048_PSS_SHA256 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (2048 , RSAKeyGenParameterSpec .F4 )});
67- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA44_RSA2048_PKCS15_SHA256 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (2048 , RSAKeyGenParameterSpec .F4 )});
68- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA44_Ed25519_SHA512 , new AlgorithmParameterSpec [] { null , null });
69- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA44_ECDSA_P256_SHA256 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("P-256" )});
70- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA3072_PSS_SHA512 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (3072 , RSAKeyGenParameterSpec .F4 )});
71- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA3072_PKCS15_SHA512 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (3072 , RSAKeyGenParameterSpec .F4 )});
72- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA4096_PSS_SHA512 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (4096 , RSAKeyGenParameterSpec .F4 )});
73- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA4096_PKCS15_SHA512 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (4096 , RSAKeyGenParameterSpec .F4 )});
74- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_P256_SHA512 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("P-256" )});
75- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_P384_SHA512 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("P-384" )});
76- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_brainpoolP256r1_SHA512 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("brainpoolP256r1" )});
77- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_Ed25519_SHA512 , new AlgorithmParameterSpec [] { null , null });
78- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_P384_SHA512 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("P-384" )});
79- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_brainpoolP384r1_SHA512 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("brainpoolP384r1" )});
80- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_Ed448_SHAKE256 , new AlgorithmParameterSpec [] { null , null });
81- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_RSA4096_PSS_SHA512 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (4096 , RSAKeyGenParameterSpec .F4 )});
82- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_P521_SHA512 , new AlgorithmParameterSpec [] { null , new ECNamedCurveGenParameterSpec ("P-521" )});
83- kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_RSA3072_PSS_SHA512 , new AlgorithmParameterSpec [] { null , new RSAKeyGenParameterSpec (3072 , RSAKeyGenParameterSpec .F4 )});
34+ pairings .put (MiscObjectIdentifiers .id_MLDSA65_RSA4096_PKCS15_SHA512 , new String []{ "ML-DSA-65" , "sha384WithRSAEncryption" });
35+ pairings .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_P256_SHA512 , new String []{ "ML-DSA-65" , "SHA256withECDSA" });
36+ pairings .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_P384_SHA512 , new String []{ "ML-DSA-65" , "SHA384withECDSA" });
37+ pairings .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_brainpoolP256r1_SHA512 , new String []{ "ML-DSA-65" , "SHA256withECDSA" });
38+ pairings .put (MiscObjectIdentifiers .id_MLDSA65_Ed25519_SHA512 , new String []{ "ML-DSA-65" , "Ed25519" });
39+ pairings .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_P384_SHA512 , new String []{ "ML-DSA-87" , "SHA384withECDSA" });
40+ pairings .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_brainpoolP384r1_SHA512 , new String []{ "ML-DSA-87" , "SHA384withECDSA" });
41+ pairings .put (MiscObjectIdentifiers .id_MLDSA87_Ed448_SHAKE256 , new String []{ "ML-DSA-87" , "Ed448" });
42+ pairings .put (MiscObjectIdentifiers .id_MLDSA87_RSA3072_PSS_SHA512 , new String []{ "ML-DSA-87" , "RSASSA-PSS" });
43+ pairings .put (MiscObjectIdentifiers .id_MLDSA87_RSA4096_PSS_SHA512 , new String []{ "ML-DSA-87" , "RSASSA-PSS" });
44+ pairings .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_P521_SHA512 , new String []{ "ML-DSA-87" , "SHA512withECDSA" });
45+
46+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA3072_PSS_SHA256 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (3072 , RSAKeyGenParameterSpec .F4 )});
47+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA3072_PKCS15_SHA256 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (3072 , RSAKeyGenParameterSpec .F4 )});
48+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA4096_PSS_SHA384 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (4096 , RSAKeyGenParameterSpec .F4 )});
49+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA4096_PKCS15_SHA384 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (4096 , RSAKeyGenParameterSpec .F4 )});
50+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_P384_SHA384 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("P-384" )});
51+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_brainpoolP256r1_SHA256 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("brainpoolP256r1" )});
52+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_P384_SHA384 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("P-384" )});
53+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_brainpoolP384r1_SHA384 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("brainpoolP384r1" )});
54+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_Ed448_SHA512 , new AlgorithmParameterSpec []{ null , null });
55+
56+ kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA44_RSA2048_PSS_SHA256 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (2048 , RSAKeyGenParameterSpec .F4 )});
57+ kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA44_RSA2048_PKCS15_SHA256 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (2048 , RSAKeyGenParameterSpec .F4 )});
58+ kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA44_Ed25519_SHA512 , new AlgorithmParameterSpec []{ null , null });
59+ kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA44_ECDSA_P256_SHA256 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("P-256" )});
60+ kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA65_RSA3072_PSS_SHA512 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (3072 , RSAKeyGenParameterSpec .F4 )});
61+ kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA65_RSA3072_PKCS15_SHA512 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (3072 , RSAKeyGenParameterSpec .F4 )});
62+ kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA65_RSA4096_PSS_SHA512 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (4096 , RSAKeyGenParameterSpec .F4 )});
63+ kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA65_RSA4096_PKCS15_SHA512 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (4096 , RSAKeyGenParameterSpec .F4 )});
64+ kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA65_ECDSA_P384_SHA512 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("P-384" )});
65+ kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA65_ECDSA_brainpoolP256r1_SHA512 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("brainpoolP256r1" )});
66+ kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA65_Ed25519_SHA512 , new AlgorithmParameterSpec []{ null , null });
67+ kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA87_ECDSA_P384_SHA512 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("P-384" )});
68+ kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA87_ECDSA_brainpoolP384r1_SHA512 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("brainpoolP384r1" )});
69+ kpgInitSpecs .put (MiscObjectIdentifiers .id_HashMLDSA87_Ed448_SHA512 , new AlgorithmParameterSpec []{ null , null });
70+
71+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA44_RSA2048_PSS_SHA256 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (2048 , RSAKeyGenParameterSpec .F4 )});
72+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA44_RSA2048_PKCS15_SHA256 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (2048 , RSAKeyGenParameterSpec .F4 )});
73+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA44_Ed25519_SHA512 , new AlgorithmParameterSpec []{ null , null });
74+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA44_ECDSA_P256_SHA256 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("P-256" )});
75+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA3072_PSS_SHA512 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (3072 , RSAKeyGenParameterSpec .F4 )});
76+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA3072_PKCS15_SHA512 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (3072 , RSAKeyGenParameterSpec .F4 )});
77+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA4096_PSS_SHA512 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (4096 , RSAKeyGenParameterSpec .F4 )});
78+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_RSA4096_PKCS15_SHA512 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (4096 , RSAKeyGenParameterSpec .F4 )});
79+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_P256_SHA512 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("P-256" )});
80+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_P384_SHA512 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("P-384" )});
81+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_ECDSA_brainpoolP256r1_SHA512 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("brainpoolP256r1" )});
82+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA65_Ed25519_SHA512 , new AlgorithmParameterSpec []{ null , null });
83+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_P384_SHA512 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("P-384" )});
84+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_brainpoolP384r1_SHA512 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("brainpoolP384r1" )});
85+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_Ed448_SHAKE256 , new AlgorithmParameterSpec []{ null , null });
86+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_RSA4096_PSS_SHA512 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (4096 , RSAKeyGenParameterSpec .F4 )});
87+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_ECDSA_P521_SHA512 , new AlgorithmParameterSpec []{ null , new ECNamedCurveGenParameterSpec ("P-521" )});
88+ kpgInitSpecs .put (MiscObjectIdentifiers .id_MLDSA87_RSA3072_PSS_SHA512 , new AlgorithmParameterSpec []{ null , new RSAKeyGenParameterSpec (3072 , RSAKeyGenParameterSpec .F4 )});
8489
8590 algorithmNames .put (MiscObjectIdentifiers .id_MLDSA65_RSA3072_PSS_SHA256 , "MLDSA65-RSA3072-PSS-SHA256" );
8691 algorithmNames .put (MiscObjectIdentifiers .id_MLDSA65_RSA3072_PKCS15_SHA256 , "MLDSA65-RSA3072-PKCS15-SHA256" );
@@ -152,6 +157,28 @@ static AlgorithmParameterSpec[] getKeyPairSpecs(ASN1ObjectIdentifier algorithm)
152157 return kpgInitSpecs .get (algorithm );
153158 }
154159
160+ static Digest getDigest (ASN1ObjectIdentifier algOid )
161+ {
162+ String algName = algorithmNames .get (algOid );
163+
164+ if (algName .endsWith ("SHA256" ))
165+ {
166+ return new SHA256Digest ();
167+ }
168+
169+ if (algName .endsWith ("SHA384" ))
170+ {
171+ return new SHA384Digest ();
172+ }
173+
174+ if (algName .endsWith ("SHA512" ))
175+ {
176+ return new SHA512Digest ();
177+ }
178+
179+ return new SHAKEDigest (256 );
180+ }
181+
155182 static String getBaseName (String name )
156183 {
157184 if (name .indexOf ("RSA" ) >= 0 )
0 commit comments