diff --git a/acme4j-utils/src/main/java/org/shredzone/acme4j/util/KeyPairUtils.java b/acme4j-utils/src/main/java/org/shredzone/acme4j/util/KeyPairUtils.java index 2b80a57b..280fb57c 100644 --- a/acme4j-utils/src/main/java/org/shredzone/acme4j/util/KeyPairUtils.java +++ b/acme4j-utils/src/main/java/org/shredzone/acme4j/util/KeyPairUtils.java @@ -46,6 +46,19 @@ public class KeyPairUtils { // utility class without constructor } + /** + * Creates a new standard {@link KeyPair}. + *
+ * This method can be used if no specific key type is required. It returns a + * "secp384r1" ECDSA key pair. + * + * @return Generated {@link KeyPair} + * @since 2.8 + */ + public static KeyPair createKeyPair() { + return createECKeyPair("secp384r1"); + } + /** * Creates a new RSA {@link KeyPair}. * diff --git a/acme4j-utils/src/test/java/org/shredzone/acme4j/util/KeyPairUtilsTest.java b/acme4j-utils/src/test/java/org/shredzone/acme4j/util/KeyPairUtilsTest.java index 24b9fa55..f6005925 100644 --- a/acme4j-utils/src/test/java/org/shredzone/acme4j/util/KeyPairUtilsTest.java +++ b/acme4j-utils/src/test/java/org/shredzone/acme4j/util/KeyPairUtilsTest.java @@ -42,6 +42,19 @@ public class KeyPairUtilsTest { Security.addProvider(new BouncyCastleProvider()); } + /** + * Test that standard keypair generates a secure key pair. + */ + @Test + public void testCreateStandardKeyPair() { + KeyPair pair = KeyPairUtils.createKeyPair(); + assertThat(pair, is(notNullValue())); + assertThat(pair.getPublic(), is(instanceOf(ECPublicKey.class))); + ECPublicKey pk = (ECPublicKey) pair.getPublic(); + assertThat(pk.getAlgorithm(), is("ECDSA")); + assertThat(pk.getParams().getCurve().getField().getFieldSize(), is(384)); + } + /** * Test that RSA keypairs of the correct size are generated. */