version 1.1, 2000/11/12 19:50:38 |
version 1.2, 2000/12/19 23:17:58 |
|
|
int |
int |
ssh_dss_sign( |
ssh_dss_sign( |
Key *key, |
Key *key, |
unsigned char **sigp, int *lenp, |
u_char **sigp, int *lenp, |
unsigned char *data, int datalen) |
u_char *data, int datalen) |
{ |
{ |
unsigned char *digest; |
u_char *digest; |
unsigned char *ret; |
u_char *ret; |
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; |
unsigned int rlen; |
u_int rlen; |
unsigned int slen; |
u_int slen; |
unsigned int len; |
u_int len; |
unsigned char sigblob[SIGBLOB_LEN]; |
u_char sigblob[SIGBLOB_LEN]; |
Buffer b; |
Buffer b; |
|
|
if (key == NULL || key->type != KEY_DSA || key->dsa == NULL) { |
if (key == NULL || key->type != KEY_DSA || key->dsa == NULL) { |
|
|
int |
int |
ssh_dss_verify( |
ssh_dss_verify( |
Key *key, |
Key *key, |
unsigned char *signature, int signaturelen, |
u_char *signature, int signaturelen, |
unsigned char *data, int datalen) |
u_char *data, int datalen) |
{ |
{ |
Buffer b; |
Buffer b; |
unsigned char *digest; |
u_char *digest; |
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; |
unsigned char *sigblob; |
u_char *sigblob; |
char *txt; |
char *txt; |
unsigned int len, dlen; |
u_int len, dlen; |
int rlen; |
int rlen; |
int ret; |
int ret; |
|
|
|
|
buffer_free(&b); |
buffer_free(&b); |
return -1; |
return -1; |
} |
} |
sigblob = (unsigned char *)buffer_get_string(&b, &len); |
sigblob = (u_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); |