Skip to content

Commit 962639e

Browse files
committed
Example ML-KEM credentials from draft-ietf-lamps-kyber-certificates-11
1 parent 774f590 commit 962639e

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package org.bouncycastle.cert.test;
2+
3+
import java.security.GeneralSecurityException;
4+
import java.security.Security;
5+
6+
import org.bouncycastle.jce.provider.BouncyCastleProvider;
7+
import org.bouncycastle.util.test.SimpleTest;
8+
9+
public class MLKEMCredentialsTest
10+
extends SimpleTest
11+
{
12+
public String getName()
13+
{
14+
return "MLKEMCredentials";
15+
}
16+
17+
public void performTest()
18+
throws Exception
19+
{
20+
checkSampleCredentials(SampleCredentials.ML_KEM_512, SampleCredentials.ML_DSA_44);
21+
checkSampleCredentials(SampleCredentials.ML_KEM_768, SampleCredentials.ML_DSA_65);
22+
checkSampleCredentials(SampleCredentials.ML_KEM_1024, SampleCredentials.ML_DSA_87);
23+
}
24+
25+
private static void checkSampleCredentials(SampleCredentials subject, SampleCredentials issuer)
26+
throws GeneralSecurityException
27+
{
28+
subject.getCertificate().verify(issuer.getCertificate().getPublicKey(), BouncyCastleProvider.PROVIDER_NAME);
29+
}
30+
31+
public static void main(String[] args)
32+
{
33+
Security.addProvider(new BouncyCastleProvider());
34+
35+
runTest(new MLKEMCredentialsTest());
36+
}
37+
}

pkix/src/test/java/org/bouncycastle/cert/test/SampleCredentials.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ public class SampleCredentials
2727
public static final SampleCredentials ML_DSA_65 = load("ML-DSA-65", "pkix/cert/mldsa", "ML-DSA-65.pem");
2828
public static final SampleCredentials ML_DSA_87 = load("ML-DSA-87", "pkix/cert/mldsa", "ML-DSA-87.pem");
2929

30+
public static final SampleCredentials ML_KEM_512 = load("ML-KEM-512", "pkix/cert/mlkem", "ML-KEM-512.pem");
31+
public static final SampleCredentials ML_KEM_768 = load("ML-KEM-768", "pkix/cert/mlkem", "ML-KEM-768.pem");
32+
public static final SampleCredentials ML_KEM_1024 = load("ML-KEM-1024", "pkix/cert/mlkem", "ML-KEM-1024.pem");
33+
3034
public static final SampleCredentials SLH_DSA_SHA2_128S = load("SLH-DSA-SHA2-128S", "pkix/cert/slhdsa",
3135
"SLH-DSA-SHA2-128S.pem");
3236

0 commit comments

Comments
 (0)