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

This commit is contained in:
Tobias Brunner
2017-11-08 16:48:10 +01:00
parent f241a981aa
commit 37efb9787b
@@ -176,6 +176,16 @@ static bool sign_pkcs1(private_gcrypt_rsa_private_key_t *this,
hasher->destroy(hasher); hasher->destroy(hasher);
if (pss) if (pss)
{
if (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); u_int slen = hasher_hash_size(hash_algorithm);
if (pss->salt_len > RSA_PSS_SALT_LEN_DEFAULT) if (pss->salt_len > RSA_PSS_SALT_LEN_DEFAULT)
@@ -186,6 +196,7 @@ static bool sign_pkcs1(private_gcrypt_rsa_private_key_t *this,
"(data(flags pss)(salt-length %u)(hash %s %b))", "(data(flags pss)(salt-length %u)(hash %s %b))",
slen, hash_name, hash.len, hash.ptr); slen, hash_name, hash.len, hash.ptr);
} }
}
else else
{ {
err = gcry_sexp_build(&in, NULL, "(data(flags pkcs1)(hash %s %b))", err = gcry_sexp_build(&in, NULL, "(data(flags pkcs1)(hash %s %b))",