return BN_num_bits(pkey->pkey.rsa->n);
}
+static int rsa_security_bits(const EVP_PKEY *pkey)
+ {
+ return RSA_security_bits(pkey->pkey.rsa);
+ }
+
static void int_rsa_free(EVP_PKEY *pkey)
{
RSA_free(pkey->pkey.rsa);
if (i2a_ASN1_INTEGER(bp, pss->saltLength) <= 0)
goto err;
}
- else if (BIO_puts(bp, "0x14 (default)") <= 0)
+ else if (BIO_puts(bp, "14 (default)") <= 0)
goto err;
BIO_puts(bp, "\n");
static int rsa_cms_verify(CMS_SignerInfo *si)
{
- int nid;
+ int nid, nid2;
X509_ALGOR *alg;
EVP_PKEY_CTX *pkctx = CMS_SignerInfo_get0_pkey_ctx(si);
CMS_SignerInfo_get0_algs(si, NULL, NULL, NULL, &alg);
return 1;
if (nid == NID_rsassaPss)
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;
}
int_rsa_size,
rsa_bits,
+ rsa_security_bits,
0,0,0,0,0,0,