Add internal version of X509_ALGOR_set_md()
authortb <tb@openbsd.org>
Wed, 11 Oct 2023 13:05:18 +0000 (13:05 +0000)
committertb <tb@openbsd.org>
Wed, 11 Oct 2023 13:05:18 +0000 (13:05 +0000)
commit05dcc22acee387a246c1d38036ee9dfa94bbff12
tree39da921d05adfa60d35c94b6597a3a6213aaa157
parent7e2b1f45a2fe35c726aa5e21279814a524fd4529
Add internal version of X509_ALGOR_set_md()

X509_ALGOR_set_md() is a void function that cannot easily be error checked.
The caller has to jump through hoops to make sure this function doesn't
fail. Prepare replacing this internally with X509_ALGOR_set_evp_md(), which
allows error checking. There is one slight change of behavior: if the EVP_MD
object passed in does not have an OID known to the library, then this new
API fails.

It is unclear what the library should do with such an object and people
who use EVP_MD_meth_new() need to know what they are doing anyway and they
are better off teaching the lib about the OID if they're going to be
messing with certs.

Oh, and the prototype is in x509_local.h because the rest of this API is
in x509.h despite being implemented in asn1/.

ok jsing
lib/libcrypto/asn1/x_algor.c
lib/libcrypto/x509/x509_local.h