summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNils Larsch <nils@openssl.org>2005-04-08 22:52:42 +0000
committerNils Larsch <nils@openssl.org>2005-04-08 22:52:42 +0000
commitdc0ed30cfeb37d64fc2bd26887b19e0898a96bde (patch)
tree9f0a4b1fdc3bebf3a0fc0e08d7ff769d7c3533b2
parente248596baca1b192787d3d717abda5158cc38d65 (diff)
downloadopenssl-new-dc0ed30cfeb37d64fc2bd26887b19e0898a96bde.tar.gz
add support for DER encoded private keys to SSL_CTX_use_PrivateKey_file()
and SSL_use_PrivateKey_file() PR: 1035 Submitted by: Walter Goulet Reviewed by: Nils Larsch
-rw-r--r--CHANGES4
-rw-r--r--ssl/ssl_rsa.c10
2 files changed, 14 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index 1c5baf2e57..458843b1aa 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,10 @@
Changes between 0.9.7f and 0.9.8 [xx XXX xxxx]
+ *) Add support for DER encoded private keys (SSL_FILETYPE_ASN1)
+ to SSL_CTX_use_PrivateKey_file() and SSL_use_PrivateKey_file()
+ [Walter Goulet]
+
*) Remove buggy and incompletet DH cert support from
ssl/ssl_rsa.c and ssl/s3_both.c
[Nils Larsch]
diff --git a/ssl/ssl_rsa.c b/ssl/ssl_rsa.c
index f639d9a08f..fc42dfa1ec 100644
--- a/ssl/ssl_rsa.c
+++ b/ssl/ssl_rsa.c
@@ -335,6 +335,11 @@ int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type)
pkey=PEM_read_bio_PrivateKey(in,NULL,
ssl->ctx->default_passwd_callback,ssl->ctx->default_passwd_callback_userdata);
}
+ else if (type == SSL_FILETYPE_ASN1)
+ {
+ j = ERR_R_ASN1_LIB;
+ pkey = d2i_PrivateKey_bio(in,NULL);
+ }
else
{
SSLerr(SSL_F_SSL_USE_PRIVATEKEY_FILE,SSL_R_BAD_SSL_FILETYPE);
@@ -649,6 +654,11 @@ int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type)
pkey=PEM_read_bio_PrivateKey(in,NULL,
ctx->default_passwd_callback,ctx->default_passwd_callback_userdata);
}
+ else if (type == SSL_FILETYPE_ASN1)
+ {
+ j = ERR_R_ASN1_LIB;
+ pkey = d2i_PrivateKey_bio(in,NULL);
+ }
else
{
SSLerr(SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE,SSL_R_BAD_SSL_FILETYPE);