From 3bcba785be239093ee469fd99efb197ca1d1f246 Mon Sep 17 00:00:00 2001 From: cyBerta Date: Sat, 7 Dec 2024 03:09:01 +0100 Subject: Fix support for ed25519 private VPN keys, add signing capabilities for ed25519 in VpnProfile, so that such a key can be passed with OpenVPNs management-external-key option on runtime --- .../leap/bitmaskclient/base/utils/PrivateKeyHelperTest.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'app/src/test/java') diff --git a/app/src/test/java/se/leap/bitmaskclient/base/utils/PrivateKeyHelperTest.java b/app/src/test/java/se/leap/bitmaskclient/base/utils/PrivateKeyHelperTest.java index 5ad9d2e7..5b1d4554 100644 --- a/app/src/test/java/se/leap/bitmaskclient/base/utils/PrivateKeyHelperTest.java +++ b/app/src/test/java/se/leap/bitmaskclient/base/utils/PrivateKeyHelperTest.java @@ -12,13 +12,14 @@ import org.robolectric.annotation.Config; import java.io.IOException; import java.security.PrivateKey; +import java.security.interfaces.ECPrivateKey; import java.security.interfaces.EdECPrivateKey; import java.security.interfaces.RSAPrivateKey; import se.leap.bitmaskclient.testutils.TestSetupHelper; @RunWith(RobolectricTestRunner.class) -@Config(sdk = {Build.VERSION_CODES.P, Build.VERSION_CODES.O}) +@Config(sdk = {Build.VERSION_CODES.UPSIDE_DOWN_CAKE, Build.VERSION_CODES.P, Build.VERSION_CODES.O, Build.VERSION_CODES.N}) public class PrivateKeyHelperTest { @Test @@ -31,9 +32,17 @@ public class PrivateKeyHelperTest { @Test public void parsePrivateKeyFromString_testEd25519() throws IOException { - String ed25519_key = TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("private_ed25519_key.pem")); + String ed25519_key = TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("private_PKCS8_encoded_ed25519_key.pem")); PrivateKey pk = PrivateKeyHelper.parsePrivateKeyFromString(ed25519_key); assertNotNull(pk); assertTrue(pk instanceof EdECPrivateKey); } + + @Test + public void parsePrivateKeyFromString_testEcDSA() throws IOException { + String ed_dsa_key = TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("private_PKCS8_encoded_ecdsa_key.pem")); + PrivateKey pk = PrivateKeyHelper.parsePrivateKeyFromString(ed_dsa_key); + assertNotNull(pk); + assertTrue(pk instanceof ECPrivateKey); + } } \ No newline at end of file -- cgit v1.2.3