*/
if (params && (scheme == hashsig_scheme ||
(!scheme &&
- type == key_type_from_signature_scheme(params->scheme))))
+ type == key_type_from_signature_scheme(params->scheme) &&
+ filter_signature_scheme_config(hashsig_scheme))))
{
if (key->sign(key, params->scheme, params->params, data, &sig))
{
for (i = 0; i < countof(schemes); i++)
{
if (schemes[i].min_version <= max_version &&
- schemes[i].max_version >= min_version)
+ schemes[i].max_version >= min_version &&
+ filter_signature_scheme_config(schemes[i].sig))
{
lookup = key_type_from_signature_scheme(schemes[i].params.scheme);
if (!ht->get(ht, &lookup))