summaryrefslogtreecommitdiffstats
path: root/crypto/rsa/rsa_ameth.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2010-08-10 13:01:49 +0000
committerDr. Stephen Henson <steve@openssl.org>2010-08-10 13:01:49 +0000
commit0b789adc671b5b8bae94027d17e30696f01b23d8 (patch)
treea299419a58b33a47f01d32fe4ba3407bc97d1b33 /crypto/rsa/rsa_ameth.c
parent33d9c8348a91bcc7d58f481cef0d48f01d6708bf (diff)
PR: 2315
Use consistent calculation for PSS salt length.
Diffstat (limited to 'crypto/rsa/rsa_ameth.c')
-rw-r--r--crypto/rsa/rsa_ameth.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/crypto/rsa/rsa_ameth.c b/crypto/rsa/rsa_ameth.c
index 6f790c2548..cefac171a5 100644
--- a/crypto/rsa/rsa_ameth.c
+++ b/crypto/rsa/rsa_ameth.c
@@ -588,7 +588,11 @@ static int rsa_item_sign(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,
if (saltlen == -1)
saltlen = EVP_MD_size(sigmd);
else if (saltlen == -2)
+ {
saltlen = EVP_PKEY_size(pk) - EVP_MD_size(sigmd) - 2;
+ if (((EVP_PKEY_bits(pk) - 1) & 0x7) == 0)
+ saltlen--;
+ }
pss = RSA_PSS_PARAMS_new();
if (!pss)
goto err;