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);