summaryrefslogtreecommitdiff
path: root/crypto/dh/dh_pmeth.c
diff options
context:
space:
mode:
authorDavid Bar <david.bar@gmail.com>2015-08-03 12:45:26 -0400
committerRich Salz <rsalz@openssl.org>2015-09-03 14:45:15 -0400
commite968561d5e762e6c05e74541137916b4f20a144b (patch)
tree5d027d197adcb63ee3457d38534cd4cdb9ea6739 /crypto/dh/dh_pmeth.c
parent231efb936548320e81c3259b41c26bb71e83720a (diff)
downloadopenssl-new-e968561d5e762e6c05e74541137916b4f20a144b.tar.gz
RT3674: Make no-cms build work.
Also has changes from from David Woodhouse <David.Woodhouse@intel.com> and some tweaks from me. Signed-off-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org>
Diffstat (limited to 'crypto/dh/dh_pmeth.c')
-rw-r--r--crypto/dh/dh_pmeth.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/crypto/dh/dh_pmeth.c b/crypto/dh/dh_pmeth.c
index 763e42fe22..751428cb66 100644
--- a/crypto/dh/dh_pmeth.c
+++ b/crypto/dh/dh_pmeth.c
@@ -205,7 +205,11 @@ static int pkey_dh_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
case EVP_PKEY_CTRL_DH_KDF_TYPE:
if (p1 == -2)
return dctx->kdf_type;
+#ifdef OPENSSL_NO_CMS
+ if (p1 != EVP_PKEY_DH_KDF_NONE)
+#else
if (p1 != EVP_PKEY_DH_KDF_NONE && p1 != EVP_PKEY_DH_KDF_X9_42)
+#endif
return -2;
dctx->kdf_type = p1;
return 1;
@@ -447,7 +451,10 @@ static int pkey_dh_derive(EVP_PKEY_CTX *ctx, unsigned char *key,
return ret;
*keylen = ret;
return 1;
- } else if (dctx->kdf_type == EVP_PKEY_DH_KDF_X9_42) {
+ }
+#ifndef OPENSSL_NO_CMS
+ else if (dctx->kdf_type == EVP_PKEY_DH_KDF_X9_42) {
+
unsigned char *Z = NULL;
size_t Zlen = 0;
if (!dctx->kdf_outlen || !dctx->kdf_oid)
@@ -475,7 +482,8 @@ static int pkey_dh_derive(EVP_PKEY_CTX *ctx, unsigned char *key,
OPENSSL_clear_free(Z, Zlen);
return ret;
}
- return 1;
+#endif
+ return 0;
}
const EVP_PKEY_METHOD dh_pkey_meth = {