mirror of
https://github.com/QuasarApp/openssl.git
synced 2025-05-12 09:29:40 +00:00
Workaround for some CMS signature formats.
Some CMS SignedData structure use a signature algorithm OID such as SHA1WithRSA instead of the RSA algorithm OID. Workaround this case by tolerating the signature if we recognise the OID.
This commit is contained in:
parent
f04665a653
commit
3a98f9cf20
@ -700,7 +700,7 @@ static int rsa_pss_to_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pkctx,
|
|||||||
|
|
||||||
static int rsa_cms_verify(CMS_SignerInfo *si)
|
static int rsa_cms_verify(CMS_SignerInfo *si)
|
||||||
{
|
{
|
||||||
int nid;
|
int nid, nid2;
|
||||||
X509_ALGOR *alg;
|
X509_ALGOR *alg;
|
||||||
EVP_PKEY_CTX *pkctx = CMS_SignerInfo_get0_pkey_ctx(si);
|
EVP_PKEY_CTX *pkctx = CMS_SignerInfo_get0_pkey_ctx(si);
|
||||||
CMS_SignerInfo_get0_algs(si, NULL, NULL, NULL, &alg);
|
CMS_SignerInfo_get0_algs(si, NULL, NULL, NULL, &alg);
|
||||||
@ -709,6 +709,12 @@ static int rsa_cms_verify(CMS_SignerInfo *si)
|
|||||||
return 1;
|
return 1;
|
||||||
if (nid == NID_rsassaPss)
|
if (nid == NID_rsassaPss)
|
||||||
return rsa_pss_to_ctx(NULL, pkctx, alg, NULL);
|
return rsa_pss_to_ctx(NULL, pkctx, alg, NULL);
|
||||||
|
/* Workaround for some implementation that use a signature OID */
|
||||||
|
if (OBJ_find_sigid_algs(nid, NULL, &nid2))
|
||||||
|
{
|
||||||
|
if (nid2 == NID_rsaEncryption)
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user