aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libstrongswan/plugins/gmp/gmp_rsa_private_key.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libstrongswan/plugins/gmp/gmp_rsa_private_key.c b/src/libstrongswan/plugins/gmp/gmp_rsa_private_key.c
index e24fda8c2..aca232c86 100644
--- a/src/libstrongswan/plugins/gmp/gmp_rsa_private_key.c
+++ b/src/libstrongswan/plugins/gmp/gmp_rsa_private_key.c
@@ -380,7 +380,11 @@ static bool build_emsa_pss_signature(private_gmp_rsa_private_key_t *this,
}
salt.len = hash.len;
- if (params->salt_len > RSA_PSS_SALT_LEN_DEFAULT)
+ if (params->salt.len)
+ {
+ salt = params->salt;
+ }
+ else if (params->salt_len > RSA_PSS_SALT_LEN_DEFAULT)
{
salt.len = params->salt_len;
}
@@ -388,7 +392,7 @@ static bool build_emsa_pss_signature(private_gmp_rsa_private_key_t *this,
{ /* too long */
goto error;
}
- if (salt.len)
+ if (salt.len && !params->salt.len)
{
salt = chunk_alloca(salt.len);
rng = lib->crypto->create_rng(lib->crypto, RNG_STRONG);