diff options
Diffstat (limited to 'crypto/encode_decode/encoder_meth.c')
-rw-r--r-- | crypto/encode_decode/encoder_meth.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/crypto/encode_decode/encoder_meth.c b/crypto/encode_decode/encoder_meth.c index bb319460b9..3b2bc2d83e 100644 --- a/crypto/encode_decode/encoder_meth.c +++ b/crypto/encode_decode/encoder_meth.c @@ -58,6 +58,7 @@ void OSSL_ENCODER_free(OSSL_ENCODER *encoder) CRYPTO_DOWN_REF(&encoder->base.refcnt, &ref, encoder->base.lock); if (ref > 0) return; + OPENSSL_free(encoder->base.name); ossl_provider_free(encoder->base.prov); CRYPTO_THREAD_lock_free(encoder->base.lock); OPENSSL_free(encoder); @@ -169,6 +170,10 @@ static void *encoder_from_algorithm(int id, const OSSL_ALGORITHM *algodef, if ((encoder = ossl_encoder_new()) == NULL) return NULL; encoder->base.id = id; + if ((encoder->base.name = ossl_algorithm_get1_first_name(algodef)) == NULL) { + OSSL_ENCODER_free(encoder); + return NULL; + } encoder->base.propdef = algodef->property_definition; encoder->base.description = algodef->algorithm_description; @@ -438,6 +443,11 @@ int OSSL_ENCODER_number(const OSSL_ENCODER *encoder) return encoder->base.id; } +const char *OSSL_ENCODER_name(const OSSL_ENCODER *encoder) +{ + return encoder->base.name; +} + const char *OSSL_ENCODER_description(const OSSL_ENCODER *encoder) { return encoder->base.description; |