version 1.61, 2001/05/25 14:37:32 |
version 1.62, 2001/06/23 06:41:10 |
|
|
{ |
{ |
Buffer b; |
Buffer b; |
Key *key = NULL; |
Key *key = NULL; |
int ignore, magic, rlen, ktype; |
int magic, rlen, ktype, i1, i2, i3, i4; |
|
u_long e; |
char *type, *cipher; |
char *type, *cipher; |
|
|
buffer_init(&b); |
buffer_init(&b); |
|
|
buffer_free(&b); |
buffer_free(&b); |
return NULL; |
return NULL; |
} |
} |
ignore = buffer_get_int(&b); |
i1 = buffer_get_int(&b); |
type = buffer_get_string(&b, NULL); |
type = buffer_get_string(&b, NULL); |
cipher = buffer_get_string(&b, NULL); |
cipher = buffer_get_string(&b, NULL); |
ignore = buffer_get_int(&b); |
i2 = buffer_get_int(&b); |
ignore = buffer_get_int(&b); |
i3 = buffer_get_int(&b); |
ignore = buffer_get_int(&b); |
i4 = buffer_get_int(&b); |
|
debug("ignore (%d %d %d %d)", i1,i2,i3,i4); |
if (strcmp(cipher, "none") != 0) { |
if (strcmp(cipher, "none") != 0) { |
error("unsupported cipher %s", cipher); |
error("unsupported cipher %s", cipher); |
xfree(cipher); |
xfree(cipher); |
|
|
buffer_get_bignum_bits(&b, key->dsa->priv_key); |
buffer_get_bignum_bits(&b, key->dsa->priv_key); |
break; |
break; |
case KEY_RSA: |
case KEY_RSA: |
if (!BN_set_word(key->rsa->e, (u_long) buffer_get_char(&b))) { |
e = buffer_get_char(&b); |
|
debug("e %lx", e); |
|
if (e < 30) { |
|
e <<= 8; |
|
e += buffer_get_char(&b); |
|
debug("e %lx", e); |
|
e <<= 8; |
|
e += buffer_get_char(&b); |
|
debug("e %lx", e); |
|
} |
|
if (!BN_set_word(key->rsa->e, e)) { |
buffer_free(&b); |
buffer_free(&b); |
key_free(key); |
key_free(key); |
return NULL; |
return NULL; |
|
|
u_int slen; |
u_int slen; |
u_char *sig, data[10] = "abcde12345"; |
u_char *sig, data[10] = "abcde12345"; |
|
|
key_sign(key, &sig, &slen, data, sizeof data); |
key_sign(key, &sig, &slen, data, sizeof(data)); |
key_verify(key, sig, slen, data, sizeof data); |
key_verify(key, sig, slen, data, sizeof(data)); |
xfree(sig); |
xfree(sig); |
} |
} |
#endif |
#endif |