version 1.164, 2010/02/09 00:50:36 |
version 1.165, 2010/02/26 20:29:54 |
|
|
int type, success = 0, death = 0, confirm = 0; |
int type, success = 0, death = 0, confirm = 0; |
char *type_name, *comment; |
char *type_name, *comment; |
Key *k = NULL; |
Key *k = NULL; |
|
u_char *cert; |
|
u_int len; |
|
|
switch (version) { |
switch (version) { |
case 1: |
case 1: |
|
|
buffer_get_bignum2(&e->request, k->dsa->pub_key); |
buffer_get_bignum2(&e->request, k->dsa->pub_key); |
buffer_get_bignum2(&e->request, k->dsa->priv_key); |
buffer_get_bignum2(&e->request, k->dsa->priv_key); |
break; |
break; |
|
case KEY_DSA_CERT: |
|
cert = buffer_get_string(&e->request, &len); |
|
if ((k = key_from_blob(cert, len)) == NULL) |
|
fatal("Certificate parse failed"); |
|
xfree(cert); |
|
key_add_private(k); |
|
buffer_get_bignum2(&e->request, k->dsa->priv_key); |
|
break; |
case KEY_RSA: |
case KEY_RSA: |
k = key_new_private(type); |
k = key_new_private(type); |
buffer_get_bignum2(&e->request, k->rsa->n); |
buffer_get_bignum2(&e->request, k->rsa->n); |
|
|
/* Generate additional parameters */ |
/* Generate additional parameters */ |
rsa_generate_additional_parameters(k->rsa); |
rsa_generate_additional_parameters(k->rsa); |
break; |
break; |
|
case KEY_RSA_CERT: |
|
cert = buffer_get_string(&e->request, &len); |
|
if ((k = key_from_blob(cert, len)) == NULL) |
|
fatal("Certificate parse failed"); |
|
xfree(cert); |
|
key_add_private(k); |
|
buffer_get_bignum2(&e->request, k->rsa->d); |
|
buffer_get_bignum2(&e->request, k->rsa->iqmp); |
|
buffer_get_bignum2(&e->request, k->rsa->p); |
|
buffer_get_bignum2(&e->request, k->rsa->q); |
|
break; |
default: |
default: |
buffer_clear(&e->request); |
buffer_clear(&e->request); |
goto send; |
goto send; |
|
|
/* enable blinding */ |
/* enable blinding */ |
switch (k->type) { |
switch (k->type) { |
case KEY_RSA: |
case KEY_RSA: |
|
case KEY_RSA_CERT: |
case KEY_RSA1: |
case KEY_RSA1: |
if (RSA_blinding_on(k->rsa, NULL) != 1) { |
if (RSA_blinding_on(k->rsa, NULL) != 1) { |
error("process_add_identity: RSA_blinding_on failed"); |
error("process_add_identity: RSA_blinding_on failed"); |