Additional compatibility fix for MDC2 signature format.
Update RSA EVP_PKEY_METHOD to use the OCTET STRING form of MDC2 signature: this will make all versions of MDC2 signature equivalent.
This commit is contained in:
parent
16b7c81d55
commit
0cd7a0325f
2 changed files with 18 additions and 1 deletions
4
CHANGES
4
CHANGES
|
@ -4,6 +4,10 @@
|
|||
|
||||
Changes between 1.0.0f and 1.0.1 [xx XXX xxxx]
|
||||
|
||||
*) Add compatibility with old MDC2 signatures which use an ASN1 OCTET
|
||||
STRING form instead of a DigestInfo.
|
||||
[Steve Henson]
|
||||
|
||||
*) The format used for MDC2 RSA signatures is inconsistent between EVP
|
||||
and the RSA_sign/RSA_verify functions. This was made more apparent when
|
||||
OpenSSL used RSA_sign/RSA_verify for some RSA signatures in particular
|
||||
|
|
|
@ -222,7 +222,20 @@ static int pkey_rsa_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
|
|||
return ret;
|
||||
}
|
||||
#endif
|
||||
if (rctx->pad_mode == RSA_X931_PADDING)
|
||||
|
||||
if (EVP_MD_type(rctx->md) == NID_mdc2)
|
||||
{
|
||||
unsigned int sltmp;
|
||||
if (rctx->pad_mode != RSA_PKCS1_PADDING)
|
||||
return -1;
|
||||
ret = RSA_sign_ASN1_OCTET_STRING(NID_mdc2,
|
||||
tbs, tbslen, sig, &sltmp, rsa);
|
||||
|
||||
if (ret <= 0)
|
||||
return ret;
|
||||
ret = sltmp;
|
||||
}
|
||||
else if (rctx->pad_mode == RSA_X931_PADDING)
|
||||
{
|
||||
if (!setup_tbuf(rctx, ctx))
|
||||
return -1;
|
||||
|
|
Loading…
Reference in a new issue