mirror of https://github.com/openssl/openssl.git
crmf_lib.c: Make sure Ed signature for POPO is called without digest
Fixes #18184
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18230)
(cherry picked from commit de56f726e1)
This commit is contained in:
parent
78a599b98e
commit
abd18d729a
|
|
@ -369,6 +369,8 @@ static int create_popo_signature(OSSL_CRMF_POPOSIGNINGKEY *ps,
|
|||
EVP_PKEY *pkey, const EVP_MD *digest,
|
||||
OSSL_LIB_CTX *libctx, const char *propq)
|
||||
{
|
||||
char name[80] = "";
|
||||
|
||||
if (ps == NULL || cr == NULL || pkey == NULL) {
|
||||
ERR_raise(ERR_LIB_CRMF, CRMF_R_NULL_ARGUMENT);
|
||||
return 0;
|
||||
|
|
@ -379,6 +381,10 @@ static int create_popo_signature(OSSL_CRMF_POPOSIGNINGKEY *ps,
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (EVP_PKEY_get_default_digest_name(pkey, name, sizeof(name)) > 0
|
||||
&& strcmp(name, "UNDEF") == 0) /* at least for Ed25519, Ed448 */
|
||||
digest = NULL;
|
||||
|
||||
return ASN1_item_sign_ex(ASN1_ITEM_rptr(OSSL_CRMF_CERTREQUEST),
|
||||
ps->algorithmIdentifier, NULL, ps->signature, cr,
|
||||
NULL, pkey, digest, libctx, propq);
|
||||
|
|
|
|||
|
|
@ -62,11 +62,13 @@ OSSL_CRMF_MSG_push0_extension() pushes the X509 extension I<ext> to the
|
|||
extensions in the certTemplate of I<crm>. Consumes I<ext>.
|
||||
|
||||
OSSL_CRMF_MSG_create_popo() creates and sets the Proof-of-Possession (POPO)
|
||||
according to the method I<meth> in I<crm>.<
|
||||
according to the method I<meth> in I<crm>.
|
||||
The library context I<libctx> and property query string I<propq>,
|
||||
may be NULL to select the defaults.
|
||||
In case the method is OSSL_CRMF_POPO_SIGNATURE the POPO is calculated
|
||||
using the private key I<pkey> and the digest method I<digest>.
|
||||
using the private key I<pkey> and the digest method I<digest>,
|
||||
where the I<digest> argument is ignored if I<pkey> is of a type (such as
|
||||
Ed25519 and Ed448) that is implicitly associated with a digest alorithm.
|
||||
|
||||
I<meth> can be one of the following:
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue