diff options
author | Tomas Mraz <tomas@openssl.org> | 2023-07-21 17:40:31 +0200 |
---|---|---|
committer | Todd Short <todd.short@me.com> | 2023-08-04 10:13:40 -0400 |
commit | 137ba0567417441cd8b3d43cf23e27d73f7a7684 (patch) | |
tree | af24f3f41223934a448e0e8c4242974a54368d2a /crypto | |
parent | 8865d7c4e8f9afac969fc927f2b24ee6d03868bd (diff) |
When exporting/importing decoded keys do not use 0 as selection
When decoding 0 as the selection means to decode anything
you get.
However when exporting and then importing the key data 0 as
selection is not meaningful.
So we set it to OSSL_KEYMGMT_SELECT_ALL to make the export/import
function export/import everything that we have decoded.
Fixes #21493
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Todd Short <todd.short@me.com>
(Merged from https://github.com/openssl/openssl/pull/21519)
(cherry picked from commit 2acb0d363c0032b5b97c4f6596609f40bd7d842f)
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/encode_decode/decoder_pkey.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/crypto/encode_decode/decoder_pkey.c b/crypto/encode_decode/decoder_pkey.c index fa32f2b9fb..fa66cbe735 100644 --- a/crypto/encode_decode/decoder_pkey.c +++ b/crypto/encode_decode/decoder_pkey.c @@ -152,7 +152,11 @@ static int decoder_construct_pkey(OSSL_DECODER_INSTANCE *decoder_inst, import_data.keymgmt = keymgmt; import_data.keydata = NULL; - import_data.selection = data->selection; + if (data->selection == 0) + /* import/export functions do not tolerate 0 selection */ + import_data.selection = OSSL_KEYMGMT_SELECT_ALL; + else + import_data.selection = data->selection; /* * No need to check for errors here, the value of |