Mercurial > dropbear
comparison signkey.h @ 1675:ae41624c2198
split signkey_type and signature_type for RSA sha1 vs sha256
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Sun, 17 May 2020 23:58:31 +0800 |
parents | ba6fc7afe1c5 |
children | d5cdc60db08e |
comparison
equal
deleted
inserted
replaced
1674:ba6fc7afe1c5 | 1675:ae41624c2198 |
---|---|
30 /* Forward declarations */ | 30 /* Forward declarations */ |
31 struct dropbear_DSS_Key; | 31 struct dropbear_DSS_Key; |
32 struct dropbear_RSA_Key; | 32 struct dropbear_RSA_Key; |
33 struct dropbear_ED25519_Key; | 33 struct dropbear_ED25519_Key; |
34 | 34 |
35 /* Must match with signature_type below */ | |
35 enum signkey_type { | 36 enum signkey_type { |
36 #if DROPBEAR_RSA | 37 #if DROPBEAR_RSA |
37 DROPBEAR_SIGNKEY_RSA, | 38 DROPBEAR_SIGNKEY_RSA, |
38 #endif | 39 #endif |
39 #if DROPBEAR_DSS | 40 #if DROPBEAR_DSS |
47 #if DROPBEAR_ED25519 | 48 #if DROPBEAR_ED25519 |
48 DROPBEAR_SIGNKEY_ED25519, | 49 DROPBEAR_SIGNKEY_ED25519, |
49 #endif | 50 #endif |
50 DROPBEAR_SIGNKEY_NUM_NAMED, | 51 DROPBEAR_SIGNKEY_NUM_NAMED, |
51 DROPBEAR_SIGNKEY_ECDSA_KEYGEN = 70, /* just "ecdsa" for keygen */ | 52 DROPBEAR_SIGNKEY_ECDSA_KEYGEN = 70, /* just "ecdsa" for keygen */ |
52 #if DROPBEAR_RSA_SHA256 | |
53 DROPBEAR_SIGNKEY_RSA_SHA256, /* rsa-sha2-256 signature. has a ssh-rsa key */ | |
54 #endif | |
55 DROPBEAR_SIGNKEY_ANY = 80, | 53 DROPBEAR_SIGNKEY_ANY = 80, |
56 DROPBEAR_SIGNKEY_NONE = 90, | 54 DROPBEAR_SIGNKEY_NONE = 90, |
55 }; | |
56 | |
57 /* Must match with signkey_type above, apart from rsa */ | |
58 enum signature_type { | |
59 #if DROPBEAR_DSS | |
60 DROPBEAR_SIGNATURE_DSS = DROPBEAR_SIGNKEY_DSS, | |
61 #endif | |
62 #if DROPBEAR_ECDSA | |
63 DROPBEAR_SIGNATURE_ECDSA_NISTP256 = DROPBEAR_SIGNKEY_ECDSA_NISTP256, | |
64 DROPBEAR_SIGNATURE_ECDSA_NISTP384 = DROPBEAR_SIGNKEY_ECDSA_NISTP384, | |
65 DROPBEAR_SIGNATURE_ECDSA_NISTP521 = DROPBEAR_SIGNKEY_ECDSA_NISTP521, | |
66 #endif /* DROPBEAR_ECDSA */ | |
67 #if DROPBEAR_ED25519 | |
68 DROPBEAR_SIGNATURE_ED25519 = DROPBEAR_SIGNKEY_ED25519, | |
69 #endif | |
70 #if DROPBEAR_RSA_SHA1 | |
71 DROPBEAR_SIGNATURE_RSA_SHA1 = 100, /* ssh-rsa signature (sha1) */ | |
72 #endif | |
73 #if DROPBEAR_RSA_SHA256 | |
74 DROPBEAR_SIGNATURE_RSA_SHA256 = 101, /* rsa-sha2-256 signature. has a ssh-rsa key */ | |
75 #endif | |
76 DROPBEAR_SIGNATURE_NONE = DROPBEAR_SIGNKEY_NONE, | |
57 }; | 77 }; |
58 | 78 |
59 | 79 |
60 /* Sources for signing keys */ | 80 /* Sources for signing keys */ |
61 typedef enum { | 81 typedef enum { |
95 typedef struct SIGN_key sign_key; | 115 typedef struct SIGN_key sign_key; |
96 | 116 |
97 sign_key * new_sign_key(void); | 117 sign_key * new_sign_key(void); |
98 const char* signkey_name_from_type(enum signkey_type type, unsigned int *namelen); | 118 const char* signkey_name_from_type(enum signkey_type type, unsigned int *namelen); |
99 enum signkey_type signkey_type_from_name(const char* name, unsigned int namelen); | 119 enum signkey_type signkey_type_from_name(const char* name, unsigned int namelen); |
100 const char* signature_name_from_type(enum signkey_type type, unsigned int *namelen); | 120 const char* signature_name_from_type(enum signature_type type, unsigned int *namelen); |
101 enum signkey_type signature_type_from_name(const char* name, unsigned int namelen); | 121 enum signature_type signature_type_from_name(const char* name, unsigned int namelen); |
102 enum signkey_type signkey_type_from_signature(enum signkey_type sigtype); | 122 enum signkey_type signkey_type_from_signature(enum signature_type sigtype); |
103 int buf_get_pub_key(buffer *buf, sign_key *key, enum signkey_type *type); | 123 int buf_get_pub_key(buffer *buf, sign_key *key, enum signkey_type *type); |
104 int buf_get_priv_key(buffer* buf, sign_key *key, enum signkey_type *type); | 124 int buf_get_priv_key(buffer* buf, sign_key *key, enum signkey_type *type); |
105 void buf_put_pub_key(buffer* buf, sign_key *key, enum signkey_type type); | 125 void buf_put_pub_key(buffer* buf, sign_key *key, enum signkey_type type); |
106 void buf_put_priv_key(buffer* buf, sign_key *key, enum signkey_type type); | 126 void buf_put_priv_key(buffer* buf, sign_key *key, enum signkey_type type); |
107 void sign_key_free(sign_key *key); | 127 void sign_key_free(sign_key *key); |
108 void buf_put_sign(buffer* buf, sign_key *key, enum signkey_type sigtype, const buffer *data_buf); | 128 void buf_put_sign(buffer* buf, sign_key *key, enum signature_type sigtype, const buffer *data_buf); |
109 #if DROPBEAR_SIGNKEY_VERIFY | 129 #if DROPBEAR_SIGNKEY_VERIFY |
110 int buf_verify(buffer * buf, sign_key *key, enum signkey_type type, const buffer *data_buf); | 130 int buf_verify(buffer * buf, sign_key *key, enum signature_type expect_sigtype, const buffer *data_buf); |
111 char * sign_key_fingerprint(const unsigned char* keyblob, unsigned int keybloblen); | 131 char * sign_key_fingerprint(const unsigned char* keyblob, unsigned int keybloblen); |
112 #endif | 132 #endif |
113 int cmp_base64_key(const unsigned char* keyblob, unsigned int keybloblen, | 133 int cmp_base64_key(const unsigned char* keyblob, unsigned int keybloblen, |
114 const unsigned char* algoname, unsigned int algolen, | 134 const unsigned char* algoname, unsigned int algolen, |
115 const buffer * line, char ** fingerprint); | 135 const buffer * line, char ** fingerprint); |