Repository: mina-sshd Updated Branches: refs/heads/master fc7a8e7c2 -> c305bc494
[SSHD-757] Added ECC 256 and 521 bits PGP keys test cases Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/c305bc49 Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/c305bc49 Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/c305bc49 Branch: refs/heads/master Commit: c305bc4945f571415dc5ef9bf76f93716644071a Parents: 3767115 Author: Lyor Goldstein <[email protected]> Authored: Wed Nov 21 09:04:55 2018 +0200 Committer: Lyor Goldstein <[email protected]> Committed: Thu Nov 22 07:05:16 2018 +0200 ---------------------------------------------------------------------- .../loader/openpgp/PGPPublicKeyExtractor.java | 7 +++--- .../openpgp/PGPKeyPairResourceParserTest.java | 2 ++ .../openpgp/PGPUtilsKeyFingerprintTest.java | 2 ++ .../keys/loader/openpgp/EC-256-gpg2-public.asc | 15 +++++++++++ .../keys/loader/openpgp/EC-521-gpg2-public.asc | 21 ++++++++++++++++ ...er-secret-passphrase-EC-256-gpg2-private.gpg | 19 ++++++++++++++ ...er-secret-passphrase-EC-521-gpg2-private.gpg | 26 ++++++++++++++++++++ 7 files changed, 89 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c305bc49/sshd-openpgp/src/main/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPPublicKeyExtractor.java ---------------------------------------------------------------------- diff --git a/sshd-openpgp/src/main/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPPublicKeyExtractor.java b/sshd-openpgp/src/main/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPPublicKeyExtractor.java index cb68837..e9efc1f 100644 --- a/sshd-openpgp/src/main/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPPublicKeyExtractor.java +++ b/sshd-openpgp/src/main/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPPublicKeyExtractor.java @@ -45,6 +45,7 @@ import org.apache.sshd.common.util.security.SecurityUtils; import org.bouncycastle.asn1.ASN1ObjectIdentifier; import org.bouncycastle.bcpg.BCPGKey; import org.bouncycastle.bcpg.DSAPublicBCPGKey; +import org.bouncycastle.bcpg.ECDHPublicBCPGKey; import org.bouncycastle.bcpg.ECDSAPublicBCPGKey; import org.bouncycastle.bcpg.ECPublicBCPGKey; import org.bouncycastle.bcpg.EdDSAPublicBCPGKey; @@ -97,14 +98,14 @@ public interface PGPPublicKeyExtractor { return null; } else if (bcKey instanceof EdDSAPublicBCPGKey) { return extractEdDSAPublicKey(resourceKey, (EdDSAPublicBCPGKey) bcKey); - } else if (bcKey instanceof ECDSAPublicBCPGKey) { - return extractECDSAPublicKey(resourceKey, (ECDSAPublicBCPGKey) bcKey); + } else if ((bcKey instanceof ECDSAPublicBCPGKey) || (bcKey instanceof ECDHPublicBCPGKey)) { + return extractECDSAPublicKey(resourceKey, bcKey); } else { throw new NoSuchAlgorithmException("Unsupported EC public key type: " + bcKey.getClass().getSimpleName()); } } - default ECPublicKey extractECDSAPublicKey(NamedResource resourceKey, ECDSAPublicBCPGKey bcKey) + default ECPublicKey extractECDSAPublicKey(NamedResource resourceKey, ECPublicBCPGKey bcKey) throws IOException, GeneralSecurityException { if (bcKey == null) { return null; http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c305bc49/sshd-openpgp/src/test/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPKeyPairResourceParserTest.java ---------------------------------------------------------------------- diff --git a/sshd-openpgp/src/test/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPKeyPairResourceParserTest.java b/sshd-openpgp/src/test/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPKeyPairResourceParserTest.java index 5b77181..ae9dad2 100644 --- a/sshd-openpgp/src/test/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPKeyPairResourceParserTest.java +++ b/sshd-openpgp/src/test/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPKeyPairResourceParserTest.java @@ -130,7 +130,9 @@ public class PGPKeyPairResourceParserTest extends JUnitTestSupport { add(new Object[] {"super-secret-passphrase-RSA-2048-v1p6p1-private.gpg", result, PASSWORD}); add(new Object[] {"super-secret-passphrase-RSA-4096-v2p0p8-private.gpg", result, PASSWORD}); add(new Object[] {"super-secret-passphrase-DSA-2048-gpg4win-3.1.3.gpg", result, PASSWORD}); + add(new Object[] {"super-secret-passphrase-EC-256-gpg2-private.gpg", result, PASSWORD}); add(new Object[] {"super-secret-passphrase-EC-384-v1p0-private.gpg", result, PASSWORD}); + add(new Object[] {"super-secret-passphrase-EC-521-gpg2-private.gpg", result, PASSWORD}); // TODO add(new Object[] {"super-secret-passphrase-ed25519-gpg4win-3.1.3.gpg, result", PASSWORD}); } } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c305bc49/sshd-openpgp/src/test/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPUtilsKeyFingerprintTest.java ---------------------------------------------------------------------- diff --git a/sshd-openpgp/src/test/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPUtilsKeyFingerprintTest.java b/sshd-openpgp/src/test/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPUtilsKeyFingerprintTest.java index d83e505..a75928d 100644 --- a/sshd-openpgp/src/test/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPUtilsKeyFingerprintTest.java +++ b/sshd-openpgp/src/test/java/org/apache/sshd/common/config/keys/loader/openpgp/PGPUtilsKeyFingerprintTest.java @@ -92,7 +92,9 @@ public class PGPUtilsKeyFingerprintTest extends JUnitTestSupport { @Parameters(name = "{0}") public static List<Object[]> parameters() { return parameterize(Arrays.asList( + "EC-256-gpg2-public.asc", "EC-348-v1p0-public.asc", + "EC-521-gpg2-public.asc", "RSA-2048-v1p0-public.asc", "RSA-2048-v1p6p1-public.asc", "RSA-4096-vp2p0p8-public.asc", http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c305bc49/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/EC-256-gpg2-public.asc ---------------------------------------------------------------------- diff --git a/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/EC-256-gpg2-public.asc b/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/EC-256-gpg2-public.asc new file mode 100644 index 0000000..cebba85 --- /dev/null +++ b/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/EC-256-gpg2-public.asc @@ -0,0 +1,15 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mFIEW/UCHBMIKoZIzj0DAQcCAwRwthfsRaS0mRDLNIaSr33Z3BlN/jkRyjcPB6Pb +7YgIsx6SduOzO6nS5jXLByMQies7RP6yTU/toaw9ZgeHOsxetENMeW9yIEdvbGRz +dGVpbiAoTUlOQSBTU0hEIEVDQyAyNTYgYml0cyBrZXkpIDxsZ29sZHN0ZWluQGFw +YWNoZS5vcmc+iJAEExMIADgWIQR0WNzQXYwc0XfdokuXaUwevKnY5AUCW/UCHAIb +AwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCXaUwevKnY5NYHAQD20Ssv+Qyc +6TqGAWYQK8Nn2JlnyZpfZa8GsRaMHFkfGQD5ATVE5hH0YzqCJQlXIFhkRhnb1y7e +gVwk8e2j6exv2I+4VgRb9QIcEggqhkjOPQMBBwIDBAAir4mj7T+LXOLouc0H3E+6 +c5meEAzG7jyZt6lV8ROGH6pwiG+lsle/iu3kizvoiOtiXdtr+gAKfoHPkpQ7MNUD +AQgHiHgEGBMIACAWIQR0WNzQXYwc0XfdokuXaUwevKnY5AUCW/UCHAIbDAAKCRCX +aUwevKnY5EOMAP43QNoih5T92eTR3fgFCs2fmzNEYNQmTbZtrAsbvMecMQEAgOPn +dtxNt41SlS+O3x8En65gzaiKMusVbBaCIF+jR8c= +=eZ7T +-----END PGP PUBLIC KEY BLOCK----- http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c305bc49/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/EC-521-gpg2-public.asc ---------------------------------------------------------------------- diff --git a/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/EC-521-gpg2-public.asc b/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/EC-521-gpg2-public.asc new file mode 100644 index 0000000..6e05147 --- /dev/null +++ b/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/EC-521-gpg2-public.asc @@ -0,0 +1,21 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mJMEW/T7qBMFK4EEACMEIwQBJlVreO43JyBB4xrzGqOrWtQ2PeZSFYG8cCRNhA6V +gWy0iyTaeelWbx1v8JLLFFR5FEJauyaPFVcr5Yt6K8/KllMAwYkXA1Fgfomly3CK +cw0be5ba2l6LZf012OMfL95W7N2n8pGTQVouHCXOfttgceVhd0t9vc3KJ/ndwMqq +QzdNZZm0Q0x5b3IgR29sZHN0ZWluIChNSU5BIFNTSEQgRUNDIDUyMSBiaXRzIGtl +eSkgPGxnb2xkc3RlaW5AYXBhY2hlLm9yZz6I0gQTEwoAOBYhBHO0L8Vu8dyBYR41 +TWC6tW9HfvBjBQJb9PuoAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEGC6 +tW9HfvBjxLcCB1uHVLoj/YglRxm0avQ4w+7+/i5zCyrWD+9QwIk5hUtdVrLRnqxJ +BH+FdPpiWLpiisqf0tWv3RQjXgew0XB0b/eRAgjsbPiBRZFsnDQz0vpHJFj/l471 +zrNAwNsXZq1Q0Km1tVTP75CN+GUxR45hQ9SXfzPheK+P5/pQyjE3XfPuZlnFfbiX +BFv0+6gSBSuBBAAjBCMEAFiFexuRMnSfngDTPWTxWSh699tvXoOqfRTWCy40hsBP +LBqmpOeYBPoQ93cYCEFnyMnHI/G+g0umQSxZvfZBWKYsALEAdOFmI6alDfFNpLa+ +FS0+XFVhwRz/gehZG7XZRwBX8FSzXaahfcL6ivz6zRXkvh2jbAPnZNohWxx9UgfN +YT+3AwEKCYi8BBgTCgAgFiEEc7QvxW7x3IFhHjVNYLq1b0d+8GMFAlv0+6gCGwwA +CgkQYLq1b0d+8GPpZgIJAR9cvxAMZV0GjBkFFy8vGKF6HINVV6kx3TJLGwrdIOaE +CTIyERWhMHoV8s37RhWwgsnmxt0ExhXDnjgtXnQAYwipAgkB7q4vpOp6y+f78PY6 +26j0O57Qk3D3HMk2RDwb301O2XbvXnac6s5/M7cUmsF3axktP0KUK0qSdu0u3BqL +hWes7XE= +=jpkH +-----END PGP PUBLIC KEY BLOCK----- http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c305bc49/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/super-secret-passphrase-EC-256-gpg2-private.gpg ---------------------------------------------------------------------- diff --git a/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/super-secret-passphrase-EC-256-gpg2-private.gpg b/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/super-secret-passphrase-EC-256-gpg2-private.gpg new file mode 100644 index 0000000..dd93db4 --- /dev/null +++ b/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/super-secret-passphrase-EC-256-gpg2-private.gpg @@ -0,0 +1,19 @@ +-----BEGIN PGP PRIVATE KEY BLOCK----- + +lKUEW/UCHBMIKoZIzj0DAQcCAwRwthfsRaS0mRDLNIaSr33Z3BlN/jkRyjcPB6Pb +7YgIsx6SduOzO6nS5jXLByMQies7RP6yTU/toaw9ZgeHOsxe/gcDAtKiQ15aX4xK +7RKctzKLT0+GvpeMwocKxJY4cKPLdVUafeG/oNTRUZxhpCZxhNQF72RRYWVJUSWa +FYc7PAlq9bpdjaEilzvKrbkOUSGghga0Q0x5b3IgR29sZHN0ZWluIChNSU5BIFNT +SEQgRUNDIDI1NiBiaXRzIGtleSkgPGxnb2xkc3RlaW5AYXBhY2hlLm9yZz6IkAQT +EwgAOBYhBHRY3NBdjBzRd92iS5dpTB68qdjkBQJb9QIcAhsDBQsJCAcCBhUKCQgL +AgQWAgMBAh4BAheAAAoJEJdpTB68qdjk1gcBAPbRKy/5DJzpOoYBZhArw2fYmWfJ +ml9lrwaxFowcWR8ZAPkBNUTmEfRjOoIlCVcgWGRGGdvXLt6BXCTx7aPp7G/Yj5yp +BFv1AhwSCCqGSM49AwEHAgMEACKviaPtP4tc4ui5zQfcT7pzmZ4QDMbuPJm3qVXx +E4YfqnCIb6WyV7+K7eSLO+iI62Jd22v6AAp+gc+SlDsw1QMBCAf+BwMCXAs4w3kX +lmTtMIuR/VfNPMZQnc12Lea0iLwQSZidPI/TMZ/vQecK1UUN2PD1WsAecAAg3g5K +NcY5r4dAvmpeadRq32xuHqQYgted7ZxImIh4BBgTCAAgFiEEdFjc0F2MHNF33aJL +l2lMHryp2OQFAlv1AhwCGwwACgkQl2lMHryp2ORDjAD+N0DaIoeU/dnk0d34BQrN +n5szRGDUJk22bawLG7zHnDEBAIDj53bcTbeNUpUvjt8fBJ+uYM2oijLrFWwWgiBf +o0fH +=76uM +-----END PGP PRIVATE KEY BLOCK----- http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c305bc49/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/super-secret-passphrase-EC-521-gpg2-private.gpg ---------------------------------------------------------------------- diff --git a/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/super-secret-passphrase-EC-521-gpg2-private.gpg b/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/super-secret-passphrase-EC-521-gpg2-private.gpg new file mode 100644 index 0000000..2c5ce5b --- /dev/null +++ b/sshd-openpgp/src/test/resources/org/apache/sshd/common/config/keys/loader/openpgp/super-secret-passphrase-EC-521-gpg2-private.gpg @@ -0,0 +1,26 @@ +-----BEGIN PGP PRIVATE KEY BLOCK----- + +lQEIBFv0+6gTBSuBBAAjBCMEASZVa3juNycgQeMa8xqjq1rUNj3mUhWBvHAkTYQO +lYFstIsk2nnpVm8db/CSyxRUeRRCWrsmjxVXK+WLeivPypZTAMGJFwNRYH6Jpctw +inMNG3uW2tpei2X9NdjjHy/eVuzdp/KRk0FaLhwlzn7bYHHlYXdLfb3Nyif53cDK +qkM3TWWZ/gcDAgIh5ahe2+kM7XlDnlGFeZ1ERSsbinlleEH3eiRMwzhz/yVRbrmR +H/daJrGc64SEuJ48N+fjNTrrmjt4k+IoWY5DF1MZkZny/mrN/fQy0pN7emAn0K+6 +h8y9EyW6cJ+JMnncF2eukpgfusesKPyyvx1jtENMeW9yIEdvbGRzdGVpbiAoTUlO +QSBTU0hEIEVDQyA1MjEgYml0cyBrZXkpIDxsZ29sZHN0ZWluQGFwYWNoZS5vcmc+ +iNIEExMKADgWIQRztC/FbvHcgWEeNU1gurVvR37wYwUCW/T7qAIbAwULCQgHAgYV +CgkICwIEFgIDAQIeAQIXgAAKCRBgurVvR37wY8S3Agdbh1S6I/2IJUcZtGr0OMPu +/v4ucwsq1g/vUMCJOYVLXVay0Z6sSQR/hXT6Yli6YorKn9LVr90UI14HsNFwdG/3 +kQII7Gz4gUWRbJw0M9L6RyRY/5eO9c6zQMDbF2atUNCptbVUz++QjfhlMUeOYUPU +l38z4Xivj+f6UMoxN13z7mZZxX2dAQwEW/T7qBIFK4EEACMEIwQAWIV7G5EydJ+e +ANM9ZPFZKHr3229eg6p9FNYLLjSGwE8sGqak55gE+hD3dxgIQWfIyccj8b6DS6ZB +LFm99kFYpiwAsQB04WYjpqUN8U2ktr4VLT5cVWHBHP+B6FkbtdlHAFfwVLNdpqF9 +wvqK/PrNFeS+HaNsA+dk2iFbHH1SB81hP7cDAQoJ/gcDAgVW5i5FCB9x7apr07na +S34ODn8O8qqzX32ren40RbUTuexwReROUQAhMgF3FlL99hoyzHc//7exNREPDRkF +eNkxRqStUxkmqbzIDIVb148nUfJMqzruwN81rwkEZA/adcmD+9mgw8secp+qRWKr +nU6GiLwEGBMKACAWIQRztC/FbvHcgWEeNU1gurVvR37wYwUCW/T7qAIbDAAKCRBg +urVvR37wY+lmAgkBH1y/EAxlXQaMGQUXLy8YoXocg1VXqTHdMksbCt0g5oQJMjIR +FaEwehXyzftGFbCCyebG3QTGFcOeOC1edABjCKkCCQHuri+k6nrL5/vw9jrbqPQ7 +ntCTcPccyTZEPBvfTU7Zdu9edpzqzn8ztxSawXdrGS0/QpQrSpJ27S7cGouFZ6zt +cQ== +=nmhU +-----END PGP PRIVATE KEY BLOCK-----
