Improved signkey code

--HG--
extra : convert_revision : fcf64cb4d2e273f80bf8c5f1d2dd00a0f4dc1acf
This commit is contained in:
Matt Johnston
2004-08-03 15:51:55 +00:00
parent 9c91ea1caf
commit 7a854cb1f8
4 changed files with 90 additions and 47 deletions

View File

@@ -58,7 +58,6 @@ void svr_auth_pubkey() {
unsigned char* keyblob;
unsigned int keybloblen;
buffer * signbuf = NULL;
unsigned int sigoffset;
sign_key * key = NULL;
char* fp = NULL;
int type = -1;
@@ -99,14 +98,9 @@ void svr_auth_pubkey() {
* session_id, concatenated with the payload packet up to the signature */
signbuf = buf_new(ses.payload->pos + 4 + SHA1_HASH_SIZE);
buf_putstring(signbuf, ses.session_id, SHA1_HASH_SIZE);
sigoffset = ses.payload->pos;
buf_setpos(ses.payload, 0);
memcpy(buf_getwriteptr(signbuf, sigoffset),
buf_getptr(ses.payload, sigoffset), sigoffset);
buf_incrwritepos(signbuf, sigoffset);
buf_setpos(ses.payload, sigoffset);
buf_putbytes(signbuf, ses.payload->data, ses.payload->pos);
buf_setpos(signbuf, 0);
/* ... and finally verify the signature */
fp = sign_key_fingerprint(key, type);
if (buf_verify(ses.payload, key, buf_getptr(signbuf, signbuf->len),