Hello,
I'm working on CMS rsassa-pss signature validation. I'm using the source
code from the trunk repository of openssl to do so. I've found that there
is a problem when the signature algorithm identifier is
sha1withRSAEncryption instead of RSAEncryption (a bouncy castle signature
for exemple).
this comes from the function
rsa_ameth.c - l701:
static int rsa_cms_verify(CMS_SignerInfo *si)
{
int nid;
X509_ALGOR *alg;
EVP_PKEY_CTX *pkctx = CMS_SignerInfo_get0_pkey_ctx(si);
CMS_SignerInfo_get0_algs(si, NULL, NULL, NULL, &alg);
nid = OBJ_obj2nid(alg->algorithm);
if (nid == NID_rsaEncryption)
return 1;
if (nid == NID_rsassaPss)
return rsa_pss_to_ctx(NULL, pkctx, alg, NULL);
return 0;
}
i think it should be:
static int rsa_cms_verify(CMS_SignerInfo *si)
{
int nid;
X509_ALGOR *alg;
EVP_PKEY_CTX *pkctx = CMS_SignerInfo_get0_pkey_ctx(si);
CMS_SignerInfo_get0_algs(si, NULL, NULL, NULL, &alg);
nid = OBJ_obj2nid(alg->algorithm);
if (nid == NID_rsassaPss)
return rsa_pss_to_ctx(NULL, pkctx, alg, NULL);
return 1;
}
I'm at your disposal if you need sample of such signature.
Kind regards,
Franck Levionnois.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [email protected]