Add support for Ed25519 EC keys
See gh-35364
This commit is contained in:
@@ -27,8 +27,8 @@ import java.security.PrivateKey;
|
||||
import java.security.spec.InvalidKeySpecException;
|
||||
import java.security.spec.PKCS8EncodedKeySpec;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Base64;
|
||||
import java.util.Arrays;
|
||||
import java.util.Base64;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -70,8 +70,8 @@ final class PrivateKeyParser {
|
||||
PrivateKeyParser::createKeySpecForPkcs1));
|
||||
parsers.add(
|
||||
new PemParser(EC_HEADER, EC_FOOTER, Collections.singleton("EC"), PrivateKeyParser::createKeySpecForEc));
|
||||
parsers.add(
|
||||
new PemParser(PKCS8_HEADER, PKCS8_FOOTER, Arrays.asList("RSA", "EC", "DSA"), PKCS8EncodedKeySpec::new));
|
||||
parsers.add(new PemParser(PKCS8_HEADER, PKCS8_FOOTER, Arrays.asList("RSA", "EC", "DSA", "Ed25519"),
|
||||
PKCS8EncodedKeySpec::new));
|
||||
PEM_PARSERS = Collections.unmodifiableList(parsers);
|
||||
}
|
||||
|
||||
|
||||
@@ -59,6 +59,14 @@ class PrivateKeyParserTests {
|
||||
assertThat(privateKey.getAlgorithm()).isEqualTo("DSA");
|
||||
}
|
||||
|
||||
@Test
|
||||
void parsePkcs8Ed25519KeyFile() {
|
||||
PrivateKey privateKey = PrivateKeyParser.parse("classpath:ssl/pkcs8/key-ec-ed25519.pem");
|
||||
assertThat(privateKey).isNotNull();
|
||||
assertThat(privateKey.getFormat()).isEqualTo("PKCS#8");
|
||||
assertThat(privateKey.getAlgorithm()).isEqualTo("EdDSA");
|
||||
}
|
||||
|
||||
@Test
|
||||
void parsePkcs8KeyFileWithEcdsa() {
|
||||
PrivateKey privateKey = PrivateKeyParser.parse("classpath:test-ec-key.pem");
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MC4CAQAwBQYDK2VwBCIEIJOKNTaIJQTVuEqZ+yvclnjnlWJG6F+K+VsNCOlWRda+
|
||||
-----END PRIVATE KEY-----
|
||||
Reference in New Issue
Block a user