version 1.16, 2001/01/22 16:55:21 |
version 1.17, 2001/02/04 15:32:24 |
|
|
RSA * |
RSA * |
rsa_generate_private_key(u_int bits) |
rsa_generate_private_key(u_int bits) |
{ |
{ |
RSA *private; |
RSA *private; |
private = RSA_generate_key(bits, 35, NULL, NULL); |
private = RSA_generate_key(bits, 35, NULL, NULL); |
if (private == NULL) |
if (private == NULL) |
fatal("rsa_generate_private_key: key generation failed."); |
fatal("rsa_generate_private_key: key generation failed."); |
return private; |
return private; |
} |
} |
|
|
DSA* |
DSA* |
|
|
if (private == NULL) |
if (private == NULL) |
fatal("dsa_generate_private_key: DSA_generate_parameters failed"); |
fatal("dsa_generate_private_key: DSA_generate_parameters failed"); |
if (!DSA_generate_key(private)) |
if (!DSA_generate_key(private)) |
fatal("dsa_generate_private_key: DSA_generate_key failed."); |
fatal("dsa_generate_private_key: DSA_generate_key failed."); |
if (private == NULL) |
if (private == NULL) |
fatal("dsa_generate_private_key: NULL."); |
fatal("dsa_generate_private_key: NULL."); |
return private; |
return private; |
} |
} |
|
|
|
|
{ |
{ |
Key *k = key_new(KEY_UNSPEC); |
Key *k = key_new(KEY_UNSPEC); |
switch (type) { |
switch (type) { |
case KEY_DSA: |
case KEY_DSA: |
k->dsa = dsa_generate_private_key(bits); |
k->dsa = dsa_generate_private_key(bits); |
break; |
break; |
case KEY_RSA: |
case KEY_RSA: |
|
|
k->rsa = rsa_generate_private_key(bits); |
k->rsa = rsa_generate_private_key(bits); |
break; |
break; |
default: |
default: |
fatal("key_generate: unknown type %d", type); |
fatal("key_generate: unknown type %d", type); |
} |
} |
k->type = type; |
k->type = type; |
return k; |
return k; |
} |
} |
|
|
|
|
{ |
{ |
Key *n = NULL; |
Key *n = NULL; |
switch (k->type) { |
switch (k->type) { |
case KEY_DSA: |
case KEY_DSA: |
n = key_new(k->type); |
n = key_new(k->type); |
BN_copy(n->dsa->p, k->dsa->p); |
BN_copy(n->dsa->p, k->dsa->p); |
BN_copy(n->dsa->q, k->dsa->q); |
BN_copy(n->dsa->q, k->dsa->q); |
|
|
BN_copy(n->rsa->e, k->rsa->e); |
BN_copy(n->rsa->e, k->rsa->e); |
break; |
break; |
default: |
default: |
fatal("key_from_private: unknown type %d", k->type); |
fatal("key_from_private: unknown type %d", k->type); |
break; |
break; |
} |
} |
return n; |
return n; |