diff ecc.c @ 793:70625eed40c9 ecc

A bit of work on ecdsa for host/auth keys
author Matt Johnston <matt@ucc.asn.au>
date Sun, 14 Apr 2013 00:50:03 +0800
parents 6e6ce39da2fc
children 724c3e0c8734
line wrap: on
line diff
--- a/ecc.c	Tue Apr 09 22:47:03 2013 +0800
+++ b/ecc.c	Sun Apr 14 00:50:03 2013 +0800
@@ -10,21 +10,21 @@
 #ifdef DROPBEAR_ECC_256
 struct dropbear_ecc_curve ecc_curve_nistp256 = {
 	.ltc_size = 32,
-	.hashdesc = &sha256_desc,
+	.hash_desc = &sha256_desc,
 	.name = "nistp256"
 };
 #endif
 #ifdef DROPBEAR_ECC_384
 struct dropbear_ecc_curve ecc_curve_nistp384 = {
 	.ltc_size = 48,
-	.hashdesc = &sha384_desc,
+	.hash_desc = &sha384_desc,
 	.name = "nistp384"
 };
 #endif
 #ifdef DROPBEAR_ECC_521
 struct dropbear_ecc_curve ecc_curve_nistp521 = {
 	.ltc_size = 66,
-	.hashdesc = &sha512_desc,
+	.hash_desc = &sha512_desc,
 	.name = "nistp521"
 };
 #endif
@@ -59,6 +59,17 @@
 	}
 }
 
+struct dropbear_ecc_curve* curve_for_dp(const ltc_ecc_set_type *dp) {
+	struct dropbear_ecc_curve **curve = NULL;
+	for (curve = dropbear_ecc_curves; *curve; curve++) {
+		if ((*curve)->dp == dp) {
+			break;
+		}
+	}
+	assert(*curve);
+	return *curve;
+}
+
 ecc_key * new_ecc_key(void) {
 	ecc_key *key = m_malloc(sizeof(*key));
 	key->pubkey.x = m_malloc(sizeof(mp_int));