RSA keys in the 'base' provider are different from a fips provider RSA key (since they have different object structures).
To use a fips provider key in the base serializer the key needs to be exported.
The fix was suggested by @levitte.
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12162)
if (ctx->ser == NULL)
return 0;
- if (ctx->ser->serialize_object == NULL) {
+ if (ctx->ser->serialize_object == NULL
+ || OSSL_SERIALIZER_provider(ctx->ser) != EVP_KEYMGMT_provider(keymgmt)) {
struct serializer_write_data_st write_data;
write_data.ctx = ctx;