version 1.7, 2000/05/08 17:42:24 |
version 1.8, 2000/06/19 02:56:17 |
|
|
buffer_append(&b, blob, blen); |
buffer_append(&b, blob, blen); |
ktype = buffer_get_string(&b, NULL); |
ktype = buffer_get_string(&b, NULL); |
if (strcmp(KEX_DSS, ktype) != 0) { |
if (strcmp(KEX_DSS, ktype) != 0) { |
error("dsa_key_from_blob: cannot handle type %s", ktype); |
error("dsa_key_from_blob: cannot handle type %s", ktype); |
key_free(key); |
key_free(key); |
return NULL; |
return NULL; |
} |
} |
|
|
DSA_SIG *sig; |
DSA_SIG *sig; |
EVP_MD *evp_md = EVP_sha1(); |
EVP_MD *evp_md = EVP_sha1(); |
EVP_MD_CTX md; |
EVP_MD_CTX md; |
char *ktype; |
|
unsigned char *sigblob; |
unsigned char *sigblob; |
char *txt; |
char *txt; |
unsigned int len; |
unsigned int len; |
|
|
len = signaturelen; |
len = signaturelen; |
} else { |
} else { |
/* ietf-drafts */ |
/* ietf-drafts */ |
|
char *ktype; |
buffer_init(&b); |
buffer_init(&b); |
buffer_append(&b, (char *) signature, signaturelen); |
buffer_append(&b, (char *) signature, signaturelen); |
ktype = buffer_get_string(&b, NULL); |
ktype = buffer_get_string(&b, NULL); |
|
if (strcmp(KEX_DSS, ktype) != 0) { |
|
error("dsa_verify: cannot handle type %s", ktype); |
|
buffer_free(&b); |
|
return -1; |
|
} |
sigblob = (unsigned char *)buffer_get_string(&b, &len); |
sigblob = (unsigned char *)buffer_get_string(&b, &len); |
rlen = buffer_len(&b); |
rlen = buffer_len(&b); |
if(rlen != 0) |
if(rlen != 0) { |
error("remaining bytes in signature %d", rlen); |
error("remaining bytes in signature %d", rlen); |
|
buffer_free(&b); |
|
return -1; |
|
} |
buffer_free(&b); |
buffer_free(&b); |
|
xfree(ktype); |
} |
} |
|
|
if (len != SIGBLOB_LEN) { |
if (len != SIGBLOB_LEN) { |