gcrypt: Add support for static salts when signing with RSA-PSS

This commit is contained in:
Tobias Brunner 2017-09-26 16:44:44 +02:00
parent f241a981aa
commit 37efb9787b
1 changed files with 17 additions and 6 deletions

View File

@ -177,14 +177,25 @@ static bool sign_pkcs1(private_gcrypt_rsa_private_key_t *this,
if (pss)
{
u_int slen = hasher_hash_size(hash_algorithm);
if (pss->salt_len > RSA_PSS_SALT_LEN_DEFAULT)
if (pss->salt.len)
{
slen = pss->salt_len;
err = gcry_sexp_build(&in, NULL,
"(data(flags pss)(salt-length %u)"
"(random-override %b)(hash %s %b))",
pss->salt.len, pss->salt.len, pss->salt.ptr,
hash_name, hash.len, hash.ptr);
}
else
{
u_int slen = hasher_hash_size(hash_algorithm);
if (pss->salt_len > RSA_PSS_SALT_LEN_DEFAULT)
{
slen = pss->salt_len;
}
err = gcry_sexp_build(&in, NULL,
"(data(flags pss)(salt-length %u)(hash %s %b))",
slen, hash_name, hash.len, hash.ptr);
}
err = gcry_sexp_build(&in, NULL,
"(data(flags pss)(salt-length %u)(hash %s %b))",
slen, hash_name, hash.len, hash.ptr);
}
else
{