Skip to content

Commit 382ad29

Browse files
committed
Add AsymmetricAlgorithmProvider.addKEMAlgorithm
- use with ML-KEM (ensures ".OID." aliases are registered)
1 parent 0fbdb60 commit 382ad29

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

prov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/MLKEM.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,10 @@ public void configure(ConfigurableProvider provider)
5757
{
5858
// "This algorithm supports keys with ML-KEM-512, ML-KEM-768, and ML-KEM-1024 parameter sets."
5959
provider.addAlgorithm("KEM.ML-KEM", PREFIX + "MLKEMSpi$MLKEM");
60-
// "[..] (ML-KEM) using the ML-KEM-512 parameter set [..]."
61-
provider.addAlgorithm("KEM.ML-KEM-512", PREFIX + "MLKEMSpi$MLKEM512");
62-
// "[..] (ML-KEM) using the ML-KEM-768 parameter set [..]."
63-
provider.addAlgorithm("KEM.ML-KEM-768", PREFIX + "MLKEMSpi$MLKEM768");
64-
// "[..] (ML-KEM) using the ML-KEM-1024 parameter set [..]."
65-
provider.addAlgorithm("KEM.ML-KEM-1024", PREFIX + "MLKEMSpi$MLKEM1024");
6660

67-
provider.addAlgorithm("Alg.Alias.KEM." + NISTObjectIdentifiers.id_alg_ml_kem_512, "ML-KEM-512");
68-
provider.addAlgorithm("Alg.Alias.KEM." + NISTObjectIdentifiers.id_alg_ml_kem_768, "ML-KEM-768");
69-
provider.addAlgorithm("Alg.Alias.KEM." + NISTObjectIdentifiers.id_alg_ml_kem_1024, "ML-KEM-1024");
61+
addKEMAlgorithm(provider, "ML-KEM-512", PREFIX + "MLKEMSpi$MLKEM512", NISTObjectIdentifiers.id_alg_ml_kem_512);
62+
addKEMAlgorithm(provider, "ML-KEM-768", PREFIX + "MLKEMSpi$MLKEM768", NISTObjectIdentifiers.id_alg_ml_kem_768);
63+
addKEMAlgorithm(provider, "ML-KEM-1024", PREFIX + "MLKEMSpi$MLKEM1024", NISTObjectIdentifiers.id_alg_ml_kem_1024);
7064
}
7165
}
7266
}

prov/src/main/java/org/bouncycastle/jcajce/provider/util/AsymmetricAlgorithmProvider.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,20 @@ protected void addCipherAlgorithm(
147147
}
148148
}
149149

150+
protected void addKEMAlgorithm(
151+
ConfigurableProvider provider,
152+
String algorithm,
153+
String className,
154+
ASN1ObjectIdentifier oid)
155+
{
156+
provider.addAlgorithm("KEM." + algorithm, className);
157+
if (oid != null)
158+
{
159+
provider.addAlgorithm("Alg.Alias.KEM." + oid, algorithm);
160+
provider.addAlgorithm("Alg.Alias.KEM.OID." + oid, algorithm);
161+
}
162+
}
163+
150164
protected void registerKeyFactoryOid(ConfigurableProvider provider, ASN1ObjectIdentifier oid, String name, AsymmetricKeyInfoConverter keyFactory)
151165
{
152166
provider.addAlgorithm("Alg.Alias.KeyFactory." + oid, name);

0 commit comments

Comments
 (0)