aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/evp/evp_pkey.c
diff options
context:
space:
mode:
authorBodo Möller <bodo@openssl.org>2002-03-14 09:52:03 +0000
committerBodo Möller <bodo@openssl.org>2002-03-14 09:52:03 +0000
commit690ecff7953193cc8e66b588216805f3014df778 (patch)
treec21fb14c3d0b01ae50dd4c9d8a485b8824d78e35 /crypto/evp/evp_pkey.c
parent234c73767daf1dfadbdbff3f884d7cfffff2846c (diff)
downloadopenssl-690ecff7953193cc8e66b588216805f3014df778.tar.gz
Fixes for 'no-hw' combined with 'no-SOME_CIPHER'.
Fix dsaparam usage output. Submitted by: Nils Larsch
Diffstat (limited to 'crypto/evp/evp_pkey.c')
-rw-r--r--crypto/evp/evp_pkey.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/crypto/evp/evp_pkey.c b/crypto/evp/evp_pkey.c
index 15d4d66721..3577837fa9 100644
--- a/crypto/evp/evp_pkey.c
+++ b/crypto/evp/evp_pkey.c
@@ -83,7 +83,7 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8)
#ifndef OPENSSL_NO_ECDSA
ECDSA *ecdsa = NULL;
#endif
-#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_ECDSA)
+#if !defined(OPENSSL_NO_DSA) || !defined(OPENSSL_NO_ECDSA)
ASN1_INTEGER *privkey;
ASN1_TYPE *t1, *t2, *param = NULL;
STACK_OF(ASN1_TYPE) *n_stack = NULL;
@@ -92,9 +92,7 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8)
#endif
X509_ALGOR *a;
unsigned char *p;
-#ifndef OPENSSL_NO_RSA
const unsigned char *cp;
-#endif
int pkeylen;
int nid;
char obj_tmp[80];
@@ -126,7 +124,7 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8)
EVP_PKEY_assign_RSA (pkey, rsa);
break;
#endif
-#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_ECDSA)
+#if !defined(OPENSSL_NO_DSA) || !defined(OPENSSL_NO_ECDSA)
case NID_ecdsa_with_SHA1:
case NID_dsa:
/* PKCS#8 DSA/ECDSA is weird: you just get a private key integer
@@ -279,8 +277,12 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8)
err:
if (ctx) BN_CTX_free(ctx);
sk_ASN1_TYPE_pop_free(n_stack, ASN1_TYPE_free);
+#ifndef OPENSSL_NO_DSA
if (dsa) DSA_free(dsa);
+#endif
+#ifndef OPENSSL_NO_ECDSA
if (ecdsa) ECDSA_free(ecdsa);
+#endif
if (pkey) EVP_PKEY_free(pkey);
return NULL;
break;