aboutsummaryrefslogtreecommitdiffstats
path: root/lib/src/main/java/com/trilead/ssh2/signature/ECDSASHA2Verify.java
diff options
context:
space:
mode:
Diffstat (limited to 'lib/src/main/java/com/trilead/ssh2/signature/ECDSASHA2Verify.java')
-rw-r--r--lib/src/main/java/com/trilead/ssh2/signature/ECDSASHA2Verify.java17
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;