summaryrefslogtreecommitdiff
path: root/signkey.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2013-04-06 16:00:37 +0800
committerMatt Johnston <matt@ucc.asn.au>2013-04-06 16:00:37 +0800
commitc56b3437098b757289eb77b3a02142d3d8fe6681 (patch)
tree437434afaf02b00afa5493687e19c7acc5f21b8d /signkey.c
parent92d78720daabce7e98b73975043179a4ac539755 (diff)
downloaddropbear-c56b3437098b757289eb77b3a02142d3d8fe6681.tar.gz
Make _sign and _verify functions take a buffer* rather than void* and int
Diffstat (limited to 'signkey.c')
-rw-r--r--signkey.c24
1 files changed, 8 insertions, 16 deletions
diff --git a/signkey.c b/signkey.c
index 1d908f4..c130adb 100644
--- a/signkey.c
+++ b/signkey.c
@@ -218,10 +218,7 @@ void buf_put_pub_key(buffer* buf, sign_key *key, int type) {
dropbear_exit("Bad key types in buf_put_pub_key");
}
- buf_setpos(pubkeys, 0);
- buf_putstring(buf, buf_getptr(pubkeys, pubkeys->len),
- pubkeys->len);
-
+ buf_putbufstring(buf, pubkeys);
buf_free(pubkeys);
TRACE(("leave buf_put_pub_key"))
}
@@ -364,28 +361,24 @@ char * sign_key_fingerprint(unsigned char* keyblob, unsigned int keybloblen) {
}
void buf_put_sign(buffer* buf, sign_key *key, int type,
- const unsigned char *data, unsigned int len) {
-
+ buffer *data_buf) {
buffer *sigblob;
sigblob = buf_new(MAX_PUBKEY_SIZE);
#ifdef DROPBEAR_DSS
if (type == DROPBEAR_SIGNKEY_DSS) {
- buf_put_dss_sign(sigblob, key->dsskey, data, len);
+ buf_put_dss_sign(sigblob, key->dsskey, data_buf);
}
#endif
#ifdef DROPBEAR_RSA
if (type == DROPBEAR_SIGNKEY_RSA) {
- buf_put_rsa_sign(sigblob, key->rsakey, data, len);
+ buf_put_rsa_sign(sigblob, key->rsakey, data_buf);
}
#endif
if (sigblob->len == 0) {
dropbear_exit("Non-matching signing type");
}
- buf_setpos(sigblob, 0);
- buf_putstring(buf, buf_getptr(sigblob, sigblob->len),
- sigblob->len);
-
+ buf_putbufstring(buf, sigblob);
buf_free(sigblob);
}
@@ -395,8 +388,7 @@ void buf_put_sign(buffer* buf, sign_key *key, int type,
* If FAILURE is returned, the position of
* buf is undefined. If SUCCESS is returned, buf will be positioned after the
* signature blob */
-int buf_verify(buffer * buf, sign_key *key, const unsigned char *data,
- unsigned int len) {
+int buf_verify(buffer * buf, sign_key *key, buffer *data_buf) {
unsigned int bloblen;
unsigned char * ident = NULL;
@@ -414,7 +406,7 @@ int buf_verify(buffer * buf, sign_key *key, const unsigned char *data,
if (key->dsskey == NULL) {
dropbear_exit("No DSS key to verify signature");
}
- return buf_dss_verify(buf, key->dsskey, data, len);
+ return buf_dss_verify(buf, key->dsskey, data_buf);
}
#endif
@@ -424,7 +416,7 @@ int buf_verify(buffer * buf, sign_key *key, const unsigned char *data,
if (key->rsakey == NULL) {
dropbear_exit("No RSA key to verify signature");
}
- return buf_rsa_verify(buf, key->rsakey, data, len);
+ return buf_rsa_verify(buf, key->rsakey, data_buf);
}
#endif