Mercurial > dropbear
comparison ecdsa.c @ 1318:10e2a7727253 coverity
merge coverity
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Fri, 22 Jul 2016 00:08:02 +0800 |
parents | 750ec4ec4cbe |
children | 06d52bcb8094 |
comparison
equal
deleted
inserted
replaced
1286:7d02b83c61fd | 1318:10e2a7727253 |
---|---|
4 #include "crypto_desc.h" | 4 #include "crypto_desc.h" |
5 #include "ecc.h" | 5 #include "ecc.h" |
6 #include "ecdsa.h" | 6 #include "ecdsa.h" |
7 #include "signkey.h" | 7 #include "signkey.h" |
8 | 8 |
9 #ifdef DROPBEAR_ECDSA | 9 #if DROPBEAR_ECDSA |
10 | 10 |
11 int signkey_is_ecdsa(enum signkey_type type) | 11 int signkey_is_ecdsa(enum signkey_type type) |
12 { | 12 { |
13 return type == DROPBEAR_SIGNKEY_ECDSA_NISTP256 | 13 return type == DROPBEAR_SIGNKEY_ECDSA_NISTP256 |
14 || type == DROPBEAR_SIGNKEY_ECDSA_NISTP384 | 14 || type == DROPBEAR_SIGNKEY_ECDSA_NISTP384 |
15 || type == DROPBEAR_SIGNKEY_ECDSA_NISTP521; | 15 || type == DROPBEAR_SIGNKEY_ECDSA_NISTP521; |
16 } | 16 } |
17 | 17 |
18 enum signkey_type ecdsa_signkey_type(ecc_key * key) { | 18 enum signkey_type ecdsa_signkey_type(ecc_key * key) { |
19 #ifdef DROPBEAR_ECC_256 | 19 #if DROPBEAR_ECC_256 |
20 if (key->dp == ecc_curve_nistp256.dp) { | 20 if (key->dp == ecc_curve_nistp256.dp) { |
21 return DROPBEAR_SIGNKEY_ECDSA_NISTP256; | 21 return DROPBEAR_SIGNKEY_ECDSA_NISTP256; |
22 } | 22 } |
23 #endif | 23 #endif |
24 #ifdef DROPBEAR_ECC_384 | 24 #if DROPBEAR_ECC_384 |
25 if (key->dp == ecc_curve_nistp384.dp) { | 25 if (key->dp == ecc_curve_nistp384.dp) { |
26 return DROPBEAR_SIGNKEY_ECDSA_NISTP384; | 26 return DROPBEAR_SIGNKEY_ECDSA_NISTP384; |
27 } | 27 } |
28 #endif | 28 #endif |
29 #ifdef DROPBEAR_ECC_521 | 29 #if DROPBEAR_ECC_521 |
30 if (key->dp == ecc_curve_nistp521.dp) { | 30 if (key->dp == ecc_curve_nistp521.dp) { |
31 return DROPBEAR_SIGNKEY_ECDSA_NISTP521; | 31 return DROPBEAR_SIGNKEY_ECDSA_NISTP521; |
32 } | 32 } |
33 #endif | 33 #endif |
34 return DROPBEAR_SIGNKEY_NONE; | 34 return DROPBEAR_SIGNKEY_NONE; |
36 | 36 |
37 ecc_key *gen_ecdsa_priv_key(unsigned int bit_size) { | 37 ecc_key *gen_ecdsa_priv_key(unsigned int bit_size) { |
38 const ltc_ecc_set_type *dp = NULL; /* curve domain parameters */ | 38 const ltc_ecc_set_type *dp = NULL; /* curve domain parameters */ |
39 ecc_key *new_key = NULL; | 39 ecc_key *new_key = NULL; |
40 switch (bit_size) { | 40 switch (bit_size) { |
41 #ifdef DROPBEAR_ECC_256 | 41 #if DROPBEAR_ECC_256 |
42 case 256: | 42 case 256: |
43 dp = ecc_curve_nistp256.dp; | 43 dp = ecc_curve_nistp256.dp; |
44 break; | 44 break; |
45 #endif | 45 #endif |
46 #ifdef DROPBEAR_ECC_384 | 46 #if DROPBEAR_ECC_384 |
47 case 384: | 47 case 384: |
48 dp = ecc_curve_nistp384.dp; | 48 dp = ecc_curve_nistp384.dp; |
49 break; | 49 break; |
50 #endif | 50 #endif |
51 #ifdef DROPBEAR_ECC_521 | 51 #if DROPBEAR_ECC_521 |
52 case 521: | 52 case 521: |
53 dp = ecc_curve_nistp521.dp; | 53 dp = ecc_curve_nistp521.dp; |
54 break; | 54 break; |
55 #endif | 55 #endif |
56 } | 56 } |
57 if (!dp) { | 57 if (!dp) { |
58 dropbear_exit("Key size %d isn't valid. Try " | 58 dropbear_exit("Key size %d isn't valid. Try " |
59 #ifdef DROPBEAR_ECC_256 | 59 #if DROPBEAR_ECC_256 |
60 "256 " | 60 "256 " |
61 #endif | 61 #endif |
62 #ifdef DROPBEAR_ECC_384 | 62 #if DROPBEAR_ECC_384 |
63 "384 " | 63 "384 " |
64 #endif | 64 #endif |
65 #ifdef DROPBEAR_ECC_521 | 65 #if DROPBEAR_ECC_521 |
66 "521 " | 66 "521 " |
67 #endif | 67 #endif |
68 , bit_size); | 68 , bit_size); |
69 } | 69 } |
70 | 70 |