version 1.50, 2002/06/24 14:55:38 |
version 1.50.2.1, 2003/04/01 00:12:13 |
|
|
{ |
{ |
Buffer buffer; |
Buffer buffer; |
Key *pub; |
Key *pub; |
|
struct stat st; |
char *cp; |
char *cp; |
int i; |
int i; |
off_t len; |
off_t len; |
|
|
len = lseek(fd, (off_t) 0, SEEK_END); |
if (fstat(fd, &st) < 0) { |
lseek(fd, (off_t) 0, SEEK_SET); |
error("fstat for key file %.200s failed: %.100s", |
|
filename, strerror(errno)); |
|
return NULL; |
|
} |
|
len = st.st_size; |
|
|
buffer_init(&buffer); |
buffer_init(&buffer); |
cp = buffer_append_space(&buffer, len); |
cp = buffer_append_space(&buffer, len); |
|
|
CipherContext ciphercontext; |
CipherContext ciphercontext; |
Cipher *cipher; |
Cipher *cipher; |
Key *prv = NULL; |
Key *prv = NULL; |
|
struct stat st; |
|
|
len = lseek(fd, (off_t) 0, SEEK_END); |
if (fstat(fd, &st) < 0) { |
lseek(fd, (off_t) 0, SEEK_SET); |
error("fstat for key file %.200s failed: %.100s", |
|
filename, strerror(errno)); |
|
close(fd); |
|
return NULL; |
|
} |
|
len = st.st_size; |
|
|
buffer_init(&buffer); |
buffer_init(&buffer); |
cp = buffer_append_space(&buffer, len); |
cp = buffer_append_space(&buffer, len); |
|
|
rsa_generate_additional_parameters(prv->rsa); |
rsa_generate_additional_parameters(prv->rsa); |
|
|
buffer_free(&decrypted); |
buffer_free(&decrypted); |
|
|
|
/* enable blinding */ |
|
if (RSA_blinding_on(prv->rsa, NULL) != 1) { |
|
error("key_load_private_rsa1: RSA_blinding_on failed"); |
|
goto fail; |
|
} |
close(fd); |
close(fd); |
return prv; |
return prv; |
|
|
|
|
#ifdef DEBUG_PK |
#ifdef DEBUG_PK |
RSA_print_fp(stderr, prv->rsa, 8); |
RSA_print_fp(stderr, prv->rsa, 8); |
#endif |
#endif |
|
if (RSA_blinding_on(prv->rsa, NULL) != 1) { |
|
error("key_load_private_pem: RSA_blinding_on failed"); |
|
key_free(prv); |
|
prv = NULL; |
|
} |
} else if (pk->type == EVP_PKEY_DSA && |
} else if (pk->type == EVP_PKEY_DSA && |
(type == KEY_UNSPEC||type==KEY_DSA)) { |
(type == KEY_UNSPEC||type==KEY_DSA)) { |
prv = key_new(KEY_UNSPEC); |
prv = key_new(KEY_UNSPEC); |