Mercurial > dropbear
comparison dss.c @ 1511:5916af64acd4 fuzz
merge from main
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Sat, 17 Feb 2018 19:29:51 +0800 |
parents | 5b25d86b865b 06d52bcb8094 |
children | 1051e4eea25a |
comparison
equal
deleted
inserted
replaced
1457:32f990cc96b1 | 1511:5916af64acd4 |
---|---|
137 * mpint p | 137 * mpint p |
138 * mpint q | 138 * mpint q |
139 * mpint g | 139 * mpint g |
140 * mpint y | 140 * mpint y |
141 */ | 141 */ |
142 void buf_put_dss_pub_key(buffer* buf, dropbear_dss_key *key) { | 142 void buf_put_dss_pub_key(buffer* buf, const dropbear_dss_key *key) { |
143 | 143 |
144 dropbear_assert(key != NULL); | 144 dropbear_assert(key != NULL); |
145 buf_putstring(buf, SSH_SIGNKEY_DSS, SSH_SIGNKEY_DSS_LEN); | 145 buf_putstring(buf, SSH_SIGNKEY_DSS, SSH_SIGNKEY_DSS_LEN); |
146 buf_putmpint(buf, key->p); | 146 buf_putmpint(buf, key->p); |
147 buf_putmpint(buf, key->q); | 147 buf_putmpint(buf, key->q); |
149 buf_putmpint(buf, key->y); | 149 buf_putmpint(buf, key->y); |
150 | 150 |
151 } | 151 } |
152 | 152 |
153 /* Same as buf_put_dss_pub_key, but with the private "x" key appended */ | 153 /* Same as buf_put_dss_pub_key, but with the private "x" key appended */ |
154 void buf_put_dss_priv_key(buffer* buf, dropbear_dss_key *key) { | 154 void buf_put_dss_priv_key(buffer* buf, const dropbear_dss_key *key) { |
155 | 155 |
156 dropbear_assert(key != NULL); | 156 dropbear_assert(key != NULL); |
157 buf_put_dss_pub_key(buf, key); | 157 buf_put_dss_pub_key(buf, key); |
158 buf_putmpint(buf, key->x); | 158 buf_putmpint(buf, key->x); |
159 | 159 |
160 } | 160 } |
161 | 161 |
162 #if DROPBEAR_SIGNKEY_VERIFY | 162 #if DROPBEAR_SIGNKEY_VERIFY |
163 /* Verify a DSS signature (in buf) made on data by the key given. | 163 /* Verify a DSS signature (in buf) made on data by the key given. |
164 * returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */ | 164 * returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */ |
165 int buf_dss_verify(buffer* buf, dropbear_dss_key *key, buffer *data_buf) { | 165 int buf_dss_verify(buffer* buf, const dropbear_dss_key *key, const buffer *data_buf) { |
166 unsigned char msghash[SHA1_HASH_SIZE]; | 166 unsigned char msghash[SHA1_HASH_SIZE]; |
167 hash_state hs; | 167 hash_state hs; |
168 int ret = DROPBEAR_FAILURE; | 168 int ret = DROPBEAR_FAILURE; |
169 DEF_MP_INT(val1); | 169 DEF_MP_INT(val1); |
170 DEF_MP_INT(val2); | 170 DEF_MP_INT(val2); |
278 } | 278 } |
279 #endif /* DROPBEAR_SIGNKEY_VERIFY */ | 279 #endif /* DROPBEAR_SIGNKEY_VERIFY */ |
280 | 280 |
281 /* Sign the data presented with key, writing the signature contents | 281 /* Sign the data presented with key, writing the signature contents |
282 * to the buffer */ | 282 * to the buffer */ |
283 void buf_put_dss_sign(buffer* buf, dropbear_dss_key *key, buffer *data_buf) { | 283 void buf_put_dss_sign(buffer* buf, const dropbear_dss_key *key, const buffer *data_buf) { |
284 unsigned char msghash[SHA1_HASH_SIZE]; | 284 unsigned char msghash[SHA1_HASH_SIZE]; |
285 unsigned int writelen; | 285 unsigned int writelen; |
286 unsigned int i; | 286 unsigned int i; |
287 DEF_MP_INT(dss_k); | 287 DEF_MP_INT(dss_k); |
288 DEF_MP_INT(dss_m); | 288 DEF_MP_INT(dss_m); |