diff options
author | Kenny Root <kenny@the-b.org> | 2013-04-12 23:13:55 -0700 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2013-04-13 00:37:18 -0700 |
commit | 47ba1033e11d5548f13179d9abee2b2a8a2b54d8 (patch) | |
tree | 1d046bd82624fe5300dc478cfa3b0bd43b941171 /lib/src/main/java/com/trilead/ssh2/signature | |
parent | 1adfa1979549740665d0e6d845d7575ebad5faae (diff) | |
download | sshlib-47ba1033e11d5548f13179d9abee2b2a8a2b54d8.tar.gz sshlib-47ba1033e11d5548f13179d9abee2b2a8a2b54d8.tar.bz2 sshlib-47ba1033e11d5548f13179d9abee2b2a8a2b54d8.zip |
Partial support for importing EC keys
Diffstat (limited to 'lib/src/main/java/com/trilead/ssh2/signature')
-rw-r--r-- | lib/src/main/java/com/trilead/ssh2/signature/ECDSASHA2Verify.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/src/main/java/com/trilead/ssh2/signature/ECDSASHA2Verify.java b/lib/src/main/java/com/trilead/ssh2/signature/ECDSASHA2Verify.java index 7b4f6af..49028e6 100644 --- a/lib/src/main/java/com/trilead/ssh2/signature/ECDSASHA2Verify.java +++ b/lib/src/main/java/com/trilead/ssh2/signature/ECDSASHA2Verify.java @@ -38,8 +38,11 @@ public class ECDSASHA2Verify { public static final String ECDSA_SHA2_PREFIX = "ecdsa-sha2-"; private static final String NISTP256 = "nistp256"; + private static final String NISTP256_OID = "1.2.840.10045.3.1.7"; private static final String NISTP384 = "nistp384"; + private static final String NISTP384_OID = "1.3.132.0.34"; private static final String NISTP521 = "nistp521"; + private static final String NISTP521_OID = "1.3.132.0.35"; private static final Map<String, ECParameterSpec> CURVES = new TreeMap<String, ECParameterSpec>(); static { @@ -55,6 +58,13 @@ public class ECDSASHA2Verify { CURVE_SIZES.put(521, NISTP521); } + private static final Map<String, String> CURVE_OIDS = new TreeMap<String, String>(); + static { + CURVE_OIDS.put(NISTP256_OID, NISTP256); + CURVE_OIDS.put(NISTP384_OID, NISTP256); + CURVE_OIDS.put(NISTP521_OID, NISTP256); + } + public static int[] getCurveSizes() { int[] keys = new int[CURVE_SIZES.size()]; int i = 0; @@ -156,6 +166,13 @@ public class ECDSASHA2Verify { return params.getCurve().getField().getFieldSize(); } + public static ECParameterSpec getCurveForOID(String oid) { + String name = CURVE_OIDS.get(oid); + if (name == null) + return null; + return CURVES.get(name); + } + public static byte[] decodeSSHECDSASignature(byte[] sig) throws IOException { byte[] rsArray = null; |