Fix DSA serializer import calls to use correct selection flags.
authorShane Lontis <shane.lontis@oracle.com>
Fri, 21 Aug 2020 01:14:34 +0000 (11:14 +1000)
committerShane Lontis <shane.lontis@oracle.com>
Sun, 30 Aug 2020 06:17:17 +0000 (16:17 +1000)
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12698)

providers/implementations/encode_decode/encoder_dsa_param.c
providers/implementations/encode_decode/encoder_dsa_priv.c
providers/implementations/encode_decode/encoder_dsa_pub.c

index 87abde7212075682af6c3fb3e330cc5558348243..0438b14cc82d9e8f75f1bc1ff50cb0af63a4867d 100644 (file)
@@ -63,7 +63,7 @@ static int dsa_param_der_data(void *ctx, const OSSL_PARAM params[],
 
         /* ctx == provctx */
         if ((dsa = dsa_new(ctx)) != NULL
-            && dsa_import(dsa, OSSL_KEYMGMT_SELECT_ALL_PARAMETERS, params)
+            && dsa_import(dsa, OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS, params)
             && dsa_param_der(ctx, dsa, out, cb, cbarg))
             ok = 1;
         dsa_free(dsa);
@@ -101,7 +101,7 @@ static int dsa_param_pem_data(void *ctx, const OSSL_PARAM params[],
 
         /* ctx == provctx */
         if ((dsa = dsa_new(ctx)) != NULL
-            && dsa_import(dsa, OSSL_KEYMGMT_SELECT_ALL_PARAMETERS, params)
+            && dsa_import(dsa, OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS, params)
             && dsa_param_pem(ctx, dsa, out, cb, cbarg))
             ok = 1;
         dsa_free(dsa);
@@ -138,7 +138,7 @@ static int dsa_param_print_data(void *ctx, const OSSL_PARAM params[],
 
         /* ctx == provctx */
         if ((dsa = dsa_new(ctx)) != NULL
-            && dsa_import(dsa, OSSL_KEYMGMT_SELECT_ALL_PARAMETERS, params)
+            && dsa_import(dsa, OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS, params)
             && dsa_param_print(ctx, dsa, out, cb, cbarg))
             ok = 1;
         dsa_free(dsa);
index c37c9f9f3c82ebf3f7feaa8637337e4b1f714b91..be5b7ee3265ccb87f00a3c2a36ed5aed93058334 100644 (file)
@@ -25,6 +25,9 @@
 #include "prov/provider_ctx.h"
 #include "encoder_local.h"
 
+#define DSA_SELECT_PRIVATE_IMPORTABLE                                          \
+    (OSSL_KEYMGMT_SELECT_KEYPAIR | OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS)
+
 static OSSL_FUNC_encoder_newctx_fn dsa_priv_newctx;
 static OSSL_FUNC_encoder_freectx_fn dsa_priv_freectx;
 static OSSL_FUNC_encoder_set_ctx_params_fn dsa_priv_set_ctx_params;
@@ -132,7 +135,7 @@ static int dsa_priv_der_data(void *vctx, const OSSL_PARAM params[],
         DSA *dsa;
 
         if ((dsa = dsa_new(ctx->provctx)) != NULL
-            && dsa_import(dsa, OSSL_KEYMGMT_SELECT_KEYPAIR, params)
+            && dsa_import(dsa, DSA_SELECT_PRIVATE_IMPORTABLE, params)
             && dsa_priv_der(ctx, dsa, out, cb, cbarg))
             ok = 1;
         dsa_free(dsa);
@@ -177,7 +180,7 @@ static int dsa_pem_priv_data(void *vctx, const OSSL_PARAM params[],
         DSA *dsa;
 
         if ((dsa = dsa_new(ctx->provctx)) != NULL
-            && dsa_import(dsa, OSSL_KEYMGMT_SELECT_KEYPAIR, params)
+            && dsa_import(dsa, DSA_SELECT_PRIVATE_IMPORTABLE, params)
             && dsa_pem_priv(ctx, dsa, out, cb, cbarg))
             ok = 1;
         dsa_free(dsa);
@@ -233,7 +236,7 @@ static int dsa_priv_print_data(void *vctx, const OSSL_PARAM params[],
         DSA *dsa;
 
         if ((dsa = dsa_new(ctx->provctx)) != NULL
-            && dsa_import(dsa, OSSL_KEYMGMT_SELECT_KEYPAIR, params)
+            && dsa_import(dsa, DSA_SELECT_PRIVATE_IMPORTABLE, params)
             && dsa_priv_print(ctx, dsa, out, cb, cbarg))
             ok = 1;
         dsa_free(dsa);
index ca7dd4bf1ea9cec72f4cdf5be809bc64276ca6dc..f99388e150f0d27786766c79c4f32886c6fa9c01 100644 (file)
 #include "prov/provider_ctx.h"
 #include "encoder_local.h"
 
+#define DSA_SELECT_PUBLIC_IMPORTABLE                                           \
+    (OSSL_KEYMGMT_SELECT_PUBLIC_KEY | OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS)
+
 static OSSL_FUNC_encoder_newctx_fn dsa_pub_newctx;
 static OSSL_FUNC_encoder_freectx_fn dsa_pub_freectx;
 static OSSL_FUNC_encoder_encode_data_fn dsa_pub_der_data;
 static OSSL_FUNC_encoder_encode_object_fn dsa_pub_der;
 static OSSL_FUNC_encoder_encode_data_fn dsa_pub_pem_data;
 static OSSL_FUNC_encoder_encode_object_fn dsa_pub_pem;
-
 static OSSL_FUNC_encoder_encode_data_fn dsa_pub_print_data;
 static OSSL_FUNC_encoder_encode_object_fn dsa_pub_print;
 
@@ -63,7 +65,7 @@ static int dsa_pub_der_data(void *ctx, const OSSL_PARAM params[],
 
         /* ctx == provctx */
         if ((dsa = dsa_new(ctx)) != NULL
-            && dsa_import(dsa, OSSL_KEYMGMT_SELECT_KEYPAIR, params)
+            && dsa_import(dsa, DSA_SELECT_PUBLIC_IMPORTABLE, params)
             && dsa_pub_der(ctx, dsa, out, cb, cbarg))
             ok = 1;
         dsa_free(dsa);
@@ -114,7 +116,7 @@ static int dsa_pub_pem_data(void *ctx, const OSSL_PARAM params[],
 
         /* ctx == provctx */
         if ((dsa = dsa_new(ctx)) != NULL
-            && dsa_import(dsa, OSSL_KEYMGMT_SELECT_KEYPAIR, params)
+            && dsa_import(dsa, DSA_SELECT_PUBLIC_IMPORTABLE, params)
             && dsa_pub_pem(ctx, dsa, out, cb, cbarg))
             ok = 1;
         dsa_free(dsa);
@@ -154,7 +156,7 @@ static int dsa_pub_print_data(void *ctx, const OSSL_PARAM params[],
 
         /* ctx == provctx */
         if ((dsa = dsa_new(ctx)) != NULL
-            && dsa_import(dsa, OSSL_KEYMGMT_SELECT_KEYPAIR, params)
+            && dsa_import(dsa, DSA_SELECT_PUBLIC_IMPORTABLE, params)
             && dsa_pub_print(ctx, dsa, out, cb, cbarg))
             ok = 1;
         dsa_free(dsa);