Mercurial > dropbear
annotate ecdsa.c @ 1804:f0cd000f3bca
Prevent multiple shells being spawned
Existing shells would be leaked.
The old check only caught multiple commands, not shells.
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Sat, 06 Mar 2021 23:06:43 +0800 |
parents | d68d61e7056a |
children | 35d504d59c05 |
rev | line source |
---|---|
766 | 1 #include "includes.h" |
2 #include "dbutil.h" | |
3 #include "crypto_desc.h" | |
767
e465ed10c51d
Be safer with how we handle ltc_ecc_sets[] (particularly with
Matt Johnston <matt@ucc.asn.au>
parents:
766
diff
changeset
|
4 #include "ecc.h" |
793
70625eed40c9
A bit of work on ecdsa for host/auth keys
Matt Johnston <matt@ucc.asn.au>
parents:
767
diff
changeset
|
5 #include "ecdsa.h" |
795 | 6 #include "signkey.h" |
766 | 7 |
1295
750ec4ec4cbe
Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents:
1250
diff
changeset
|
8 #if DROPBEAR_ECDSA |
766 | 9 |
846
b298bb438625
refactor key generation, make it generate as required.
Matt Johnston <matt@ucc.asn.au>
parents:
801
diff
changeset
|
10 int signkey_is_ecdsa(enum signkey_type type) |
b298bb438625
refactor key generation, make it generate as required.
Matt Johnston <matt@ucc.asn.au>
parents:
801
diff
changeset
|
11 { |
b298bb438625
refactor key generation, make it generate as required.
Matt Johnston <matt@ucc.asn.au>
parents:
801
diff
changeset
|
12 return type == DROPBEAR_SIGNKEY_ECDSA_NISTP256 |
b298bb438625
refactor key generation, make it generate as required.
Matt Johnston <matt@ucc.asn.au>
parents:
801
diff
changeset
|
13 || type == DROPBEAR_SIGNKEY_ECDSA_NISTP384 |
b298bb438625
refactor key generation, make it generate as required.
Matt Johnston <matt@ucc.asn.au>
parents:
801
diff
changeset
|
14 || type == DROPBEAR_SIGNKEY_ECDSA_NISTP521; |
b298bb438625
refactor key generation, make it generate as required.
Matt Johnston <matt@ucc.asn.au>
parents:
801
diff
changeset
|
15 } |
b298bb438625
refactor key generation, make it generate as required.
Matt Johnston <matt@ucc.asn.au>
parents:
801
diff
changeset
|
16 |
1459
06d52bcb8094
Pointer parameter could be declared as pointing to const
Francois Perrad <francois.perrad@gadz.org>
parents:
1295
diff
changeset
|
17 enum signkey_type ecdsa_signkey_type(const ecc_key * key) { |
1295
750ec4ec4cbe
Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents:
1250
diff
changeset
|
18 #if DROPBEAR_ECC_256 |
795 | 19 if (key->dp == ecc_curve_nistp256.dp) { |
20 return DROPBEAR_SIGNKEY_ECDSA_NISTP256; | |
21 } | |
22 #endif | |
1295
750ec4ec4cbe
Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents:
1250
diff
changeset
|
23 #if DROPBEAR_ECC_384 |
795 | 24 if (key->dp == ecc_curve_nistp384.dp) { |
25 return DROPBEAR_SIGNKEY_ECDSA_NISTP384; | |
26 } | |
27 #endif | |
1295
750ec4ec4cbe
Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents:
1250
diff
changeset
|
28 #if DROPBEAR_ECC_521 |
795 | 29 if (key->dp == ecc_curve_nistp521.dp) { |
30 return DROPBEAR_SIGNKEY_ECDSA_NISTP521; | |
31 } | |
32 #endif | |
33 return DROPBEAR_SIGNKEY_NONE; | |
34 } | |
35 | |
766 | 36 ecc_key *gen_ecdsa_priv_key(unsigned int bit_size) { |
857 |