Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions cryptotest/tests/KEMTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,8 @@ protected void checkAlgorithm(Provider.Service service, String alias) throws Alg
KeyPairGenerator kpg = null;
if (service.getAlgorithm().equals("DHKEM")) {
kpg = KeysNaiveGenerator.getKeyPairGenerator("X25519", service.getProvider());
} else if (service.getAlgorithm().startsWith("ML-")) {
kpg = KeysNaiveGenerator.getKeyPairGenerator(service.getAlgorithm(), service.getProvider());
} else {
throw new RuntimeException("Unsupported KEM algorithm: " + service.getAlgorithm());
}
Expand Down
27 changes: 6 additions & 21 deletions cryptotest/tests/KeyFactoryTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ protected void checkAlgorithm(Provider.Service service, String alias) throws Alg
privateKeySpec = keyFactory.getKeySpec(kp.getPrivate(), privateKeyClass);
publicKeySpec = keyFactory.getKeySpec(kp.getPublic(), publicKeyClass);
}
} else if (service.getAlgorithm().contains("DSA")) {
} else if (service.getAlgorithm().contains("DSA") && !service.getAlgorithm().startsWith("ML-")) {
KeyPair kp = KeysNaiveGenerator.getDsaKeyPair(p);
translated = keyFactory.translateKey(kp.getPublic());
if (!pkcs11fips) {
Expand All @@ -123,26 +123,11 @@ protected void checkAlgorithm(Provider.Service service, String alias) throws Alg
privateKeySpec = keyFactory.getKeySpec(kp.getPrivate(), RSAPrivateKeySpec.class);
publicKeySpec = keyFactory.getKeySpec(kp.getPublic(), RSAPublicKeySpec.class);
}
} else if (service.getAlgorithm().contains("X25519")) {
KeyPairGenerator kpg = KeysNaiveGenerator.getKeyPairGenerator("X25519", p);
KeyPair kp = kpg.generateKeyPair();
translated = keyFactory.translateKey(kp.getPublic());
if (!pkcs11fips) {
// pkcs11 provider in FIPS mode cannot obtain RAW keys
privateKeySpec = keyFactory.getKeySpec(kp.getPrivate(), PKCS8EncodedKeySpec.class);
publicKeySpec = keyFactory.getKeySpec(kp.getPublic(), X509EncodedKeySpec.class);
}
} else if (service.getAlgorithm().contains("X448")) {
KeyPairGenerator kpg = KeysNaiveGenerator.getKeyPairGenerator("X448", p);
KeyPair kp = kpg.generateKeyPair();
translated = keyFactory.translateKey(kp.getPublic());
if (!pkcs11fips) {
// pkcs11 provider in FIPS mode cannot obtain RAW keys
privateKeySpec = keyFactory.getKeySpec(kp.getPrivate(), PKCS8EncodedKeySpec.class);
publicKeySpec = keyFactory.getKeySpec(kp.getPublic(), X509EncodedKeySpec.class);
}
} else if (service.getAlgorithm().contains("XDH")) {
KeyPairGenerator kpg = KeysNaiveGenerator.getKeyPairGenerator("XDH", p);
} else if (service.getAlgorithm().contains("X25519")
|| service.getAlgorithm().contains("X448")
|| service.getAlgorithm().contains("XDH")
|| service.getAlgorithm().startsWith("ML-")) {
KeyPairGenerator kpg = KeysNaiveGenerator.getKeyPairGenerator(service.getAlgorithm(), p);
KeyPair kp = kpg.generateKeyPair();
translated = keyFactory.translateKey(kp.getPublic());
if (!pkcs11fips) {
Expand Down
8 changes: 8 additions & 0 deletions cryptotest/tests/KeyPairGeneratorTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,14 @@ protected void checkAlgorithm(Provider.Service service, String alias) throws
keySize = 2048;
} else if (service.getAlgorithm().contains("RSA")) {
keySize = 2048;
} else if (service.getAlgorithm().contains("ML-")) {
// keySize is intentionally -1 here, KPG of this provider [1]
// does not override default initialize method [2],
// internal (in-tree) tests do the same [3], see:
// [1] https://github.com/openjdk/jdk/blob/da2b4f0749dffc99fa42c7311fbc74231af273bd/src/java.base/share/classes/com/sun/crypto/provider/ML_KEM_Impls.java#L40
// [2] https://github.com/openjdk/jdk/blob/da2b4f0749dffc99fa42c7311fbc74231af273bd/src/java.base/share/classes/sun/security/provider/NamedKeyPairGenerator.java#L153
// [3] https://github.com/openjdk/jdk/blob/da2b4f0749dffc99fa42c7311fbc74231af273bd/test/jdk/sun/security/provider/all/Deterministic.java#L208
keySize = -1;
}
keyPairGenerator.initialize(keySize, random);
KeyPair pair = keyPairGenerator.genKeyPair();
Expand Down
2 changes: 1 addition & 1 deletion cryptotest/tests/SignatureTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ protected void checkAlgorithm(Provider.Service service, String alias) throws Alg
}
}
key = getEcPrivateKey(service.getProvider());
} else if (service.getAlgorithm().equals("Ed25519") || service.getAlgorithm().equals("EdDSA") || service.getAlgorithm().equals("Ed448")) {
} else if (service.getAlgorithm().equals("Ed25519") || service.getAlgorithm().equals("EdDSA") || service.getAlgorithm().equals("Ed448") || service.getAlgorithm().startsWith("ML-")) {
KeyPairGenerator kpg = KeyPairGenerator.getInstance(service.getAlgorithm(), service.getProvider());
KeyPair kp = kpg.generateKeyPair();
key = kp.getPrivate();
Expand Down