version 1.39, 2002/01/25 22:07:40 |
version 1.40, 2002/02/24 19:14:59 |
|
|
EVP_MD_CTX ctx; |
EVP_MD_CTX ctx; |
u_char *blob = NULL; |
u_char *blob = NULL; |
u_char *retval = NULL; |
u_char *retval = NULL; |
int len = 0; |
u_int len = 0; |
int nlen, elen; |
int nlen, elen; |
|
|
*dgst_raw_length = 0; |
*dgst_raw_length = 0; |
|
|
int |
int |
key_write(Key *key, FILE *f) |
key_write(Key *key, FILE *f) |
{ |
{ |
int success = 0; |
int n, success = 0; |
u_int bits = 0; |
u_int len, bits = 0; |
|
u_char *blob, *uu; |
|
|
if (key->type == KEY_RSA1 && key->rsa != NULL) { |
if (key->type == KEY_RSA1 && key->rsa != NULL) { |
/* size of modulus 'n' */ |
/* size of modulus 'n' */ |
|
|
} |
} |
} else if ((key->type == KEY_DSA && key->dsa != NULL) || |
} else if ((key->type == KEY_DSA && key->dsa != NULL) || |
(key->type == KEY_RSA && key->rsa != NULL)) { |
(key->type == KEY_RSA && key->rsa != NULL)) { |
int len, n; |
|
u_char *blob, *uu; |
|
key_to_blob(key, &blob, &len); |
key_to_blob(key, &blob, &len); |
uu = xmalloc(2*len); |
uu = xmalloc(2*len); |
n = uuencode(blob, len, uu, 2*len); |
n = uuencode(blob, len, uu, 2*len); |
|
|
int |
int |
key_sign( |
key_sign( |
Key *key, |
Key *key, |
u_char **sigp, int *lenp, |
u_char **sigp, u_int *lenp, |
u_char *data, int datalen) |
u_char *data, u_int datalen) |
{ |
{ |
switch (key->type) { |
switch (key->type) { |
case KEY_DSA: |
case KEY_DSA: |
|
|
int |
int |
key_verify( |
key_verify( |
Key *key, |
Key *key, |
u_char *signature, int signaturelen, |
u_char *signature, u_int signaturelen, |
u_char *data, int datalen) |
u_char *data, u_int datalen) |
{ |
{ |
if (signaturelen == 0) |
if (signaturelen == 0) |
return -1; |
return -1; |