aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShane Lontis <shane.lontis@oracle.com>2020-08-21 11:13:09 +1000
committerShane Lontis <shane.lontis@oracle.com>2020-08-30 16:17:17 +1000
commit3fab56631f597b969bb5849bd890e354d4062178 (patch)
tree2702758675d1b98189416589e599b8a3057f0b6f
parent835b2900168bfd1cc471bf1d798d3b5b7219cd4d (diff)
downloadopenssl-3fab56631f597b969bb5849bd890e354d4062178.zip
openssl-3fab56631f597b969bb5849bd890e354d4062178.tar.gz
openssl-3fab56631f597b969bb5849bd890e354d4062178.tar.bz2
Fix DH serializer import calls to use correct selection flags.
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/12698)
-rw-r--r--providers/implementations/encode_decode/encoder_dh_param.c6
-rw-r--r--providers/implementations/encode_decode/encoder_dh_priv.c9
-rw-r--r--providers/implementations/encode_decode/encoder_dh_pub.c9
3 files changed, 15 insertions, 9 deletions
diff --git a/providers/implementations/encode_decode/encoder_dh_param.c b/providers/implementations/encode_decode/encoder_dh_param.c
index 23cda02..32c8769 100644
--- a/providers/implementations/encode_decode/encoder_dh_param.c
+++ b/providers/implementations/encode_decode/encoder_dh_param.c
@@ -63,7 +63,7 @@ static int dh_param_der_data(void *ctx, const OSSL_PARAM params[],
/* ctx == provctx */
if ((dh = dh_new(ctx)) != NULL
- && dh_import(dh, OSSL_KEYMGMT_SELECT_ALL_PARAMETERS, params)
+ && dh_import(dh, OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS, params)
&& dh_param_der(ctx, dh, out, cb, cbarg))
ok = 1;
dh_free(dh);
@@ -100,7 +100,7 @@ static int dh_param_pem_data(void *ctx, const OSSL_PARAM params[],
/* ctx == provctx */
if ((dh = dh_new(ctx)) != NULL
- && dh_import(dh, OSSL_KEYMGMT_SELECT_ALL_PARAMETERS, params)
+ && dh_import(dh, OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS, params)
&& dh_param_pem(ctx, dh, out, cb, cbarg))
ok = 1;
dh_free(dh);
@@ -137,7 +137,7 @@ static int dh_param_print_data(void *ctx, const OSSL_PARAM params[],
/* ctx == provctx */
if ((dh = dh_new(ctx)) != NULL
- && dh_import(dh, OSSL_KEYMGMT_SELECT_ALL_PARAMETERS, params)
+ && dh_import(dh, OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS, params)
&& dh_param_print(ctx, dh, out, cb, cbarg))
ok = 1;
dh_free(dh);
diff --git a/providers/implementations/encode_decode/encoder_dh_priv.c b/providers/implementations/encode_decode/encoder_dh_priv.c
index a9373df..dd94223 100644
--- a/providers/implementations/encode_decode/encoder_dh_priv.c
+++ b/providers/implementations/encode_decode/encoder_dh_priv.c
@@ -25,6 +25,9 @@
#include "prov/provider_ctx.h"
#include "encoder_local.h"
+#define DH_SELECT_PRIVATE_IMPORTABLE \
+ (OSSL_KEYMGMT_SELECT_KEYPAIR | OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS)
+
static OSSL_FUNC_encoder_newctx_fn dh_priv_newctx;
static OSSL_FUNC_encoder_freectx_fn dh_priv_freectx;
static OSSL_FUNC_encoder_set_ctx_params_fn dh_priv_set_ctx_params;
@@ -132,7 +135,7 @@ static int dh_priv_der_data(void *vctx, const OSSL_PARAM params[],
DH *dh;
if ((dh = dh_new(ctx->provctx)) != NULL
- && dh_import(dh, OSSL_KEYMGMT_SELECT_KEYPAIR, params)
+ && dh_import(dh, DH_SELECT_PRIVATE_IMPORTABLE, params)
&& dh_priv_der(ctx, dh, out, cb, cbarg))
ok = 1;
dh_free(dh);
@@ -178,7 +181,7 @@ static int dh_pem_priv_data(void *vctx, const OSSL_PARAM params[],
DH *dh;
if ((dh = dh_new(ctx->provctx)) != NULL
- && dh_import(dh, OSSL_KEYMGMT_SELECT_KEYPAIR, params)
+ && dh_import(dh, DH_SELECT_PRIVATE_IMPORTABLE, params)
&& dh_pem_priv(ctx->provctx, dh, out, cb, cbarg))
ok = 1;
dh_free(dh);
@@ -235,7 +238,7 @@ static int dh_priv_print_data(void *vctx, const OSSL_PARAM params[],
DH *dh;
if ((dh = dh_new(ctx->provctx)) != NULL
- && dh_import(dh, OSSL_KEYMGMT_SELECT_KEYPAIR, params)
+ && dh_import(dh, DH_SELECT_PRIVATE_IMPORTABLE, params)
&& dh_priv_print(ctx, dh, out, cb, cbarg))
ok = 1;
dh_free(dh);
diff --git a/providers/implementations/encode_decode/encoder_dh_pub.c b/providers/implementations/encode_decode/encoder_dh_pub.c
index 99f9532..583dcd9 100644
--- a/providers/implementations/encode_decode/encoder_dh_pub.c
+++ b/providers/implementations/encode_decode/encoder_dh_pub.c
@@ -34,6 +34,9 @@ static OSSL_FUNC_encoder_encode_object_fn dh_pub_pem;
static OSSL_FUNC_encoder_encode_data_fn dh_pub_print_data;
static OSSL_FUNC_encoder_encode_object_fn dh_pub_print;
+#define DH_SELECT_PUBLIC_IMPORTABLE \
+ (OSSL_KEYMGMT_SELECT_PUBLIC_KEY | OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS)
+
/* Public key : context */
/*
@@ -63,7 +66,7 @@ static int dh_pub_der_data(void *ctx, const OSSL_PARAM params[],
/* ctx == provctx */
if ((dh = dh_new(ctx)) != NULL
- && dh_import(dh, OSSL_KEYMGMT_SELECT_KEYPAIR, params)
+ && dh_import(dh, DH_SELECT_PUBLIC_IMPORTABLE, params)
&& dh_pub_der(ctx, dh, out, cb, cbarg))
ok = 1;
dh_free(dh);
@@ -104,7 +107,7 @@ static int dh_pub_pem_data(void *ctx, const OSSL_PARAM params[],
/* ctx == provctx */
if ((dh = dh_new(ctx)) != NULL
- && dh_import(dh, OSSL_KEYMGMT_SELECT_KEYPAIR, params)
+ && dh_import(dh, DH_SELECT_PUBLIC_IMPORTABLE, params)
&& dh_pub_pem(ctx, dh, out, cb, cbarg))
ok = 1;
dh_free(dh);
@@ -144,7 +147,7 @@ static int dh_pub_print_data(void *ctx, const OSSL_PARAM params[],
/* ctx == provctx */
if ((dh = dh_new(ctx)) != NULL
- && dh_import(dh, OSSL_KEYMGMT_SELECT_KEYPAIR, params)
+ && dh_import(dh, DH_SELECT_PUBLIC_IMPORTABLE, params)
&& dh_pub_print(ctx, dh, out, cb, cbarg))
ok = 1;
dh_free(dh);