Convert PKCS7_SIGNER_INFO_set() to X509_ALGOR_set0_by_nid()
authortb <tb@openbsd.org>
Thu, 9 Nov 2023 19:00:53 +0000 (19:00 +0000)
committertb <tb@openbsd.org>
Thu, 9 Nov 2023 19:00:53 +0000 (19:00 +0000)
commit57f590cdc4233351f83eea5a2547259f4e173a1e
treec5836b303c9a3d0c00fc766e131aa837ef82252a
parent067bf70efe8d840cecf50542de8f47199c209f13
Convert PKCS7_SIGNER_INFO_set() to X509_ALGOR_set0_by_nid()

This is a straightforward conversion because I'm not going to start a
cleanup here. Explain why this is not using X509_ALGOR_set_md(). See
below.

ok jca

Let me include a beautiful note from RFC 5754 in its entirety:

   NOTE: There are two possible encodings for the AlgorithmIdentifier
   parameters field associated with these object identifiers.  The two
   alternatives arise from the loss of the OPTIONAL associated with the
   algorithm identifier parameters when the 1988 syntax for
   AlgorithmIdentifier was translated into the 1997 syntax.  Later, the
   OPTIONAL was recovered via a defect report, but by then many people
   thought that algorithm parameters were mandatory.  Because of this
   history, some implementations encode parameters as a NULL element
   while others omit them entirely.  The correct encoding is to omit the
   parameters field; however, when some uses of these algorithms were
   defined, it was done using the NULL parameters rather than absent
   parameters.  For example, PKCS#1 [RFC3447] requires that the padding
   used for RSA signatures (EMSA-PKCS1-v1_5) MUST use SHA2
   AlgorithmIdentifiers with NULL parameters (to clarify, the
   requirement "MUST generate SHA2 AlgorithmIdentifiers with absent
   parameters" in the previous paragraph does not apply to this
   padding).
lib/libcrypto/pkcs7/pk7_lib.c