Using openSSL, on a TLS client, I specified a unique cipher suite with SSL_CTX_set_cipher_list().

When I use wireshark to look at the messages, I see in the Client Hello message, the cipher suites allowed are the ones I specified.

But if I look at the Extension: signature algorithms, I see that the client seems to accept a large number of algos, including some that don't seem very secure to me, like MD5.

How can I change this behavior?

  • Sorry, I have no idea why this question was moved here. I thought security.stackexchange.com was the best place for it. This question is definitely not fitting superuser.com, because it is about programming. I am asking about the openssl API, not commandline tools.
    – Jacques
    Commented Mar 15, 2015 at 19:43

1 Answer 1


(Found researching something else. I don't know if security, or even SO, would be better.)

In release 1.0.2 (only) there are new SSL_[CTX_]set1[_client]_sigalgs[_list] for this. I've seen no doc in any release yet, but it apparently is in "master" (i.e. the development "trunk") on the website at https://www.openssl.org/docs/manmaster/ssl/SSL_CTX_set1_sigalgs.html so presumably it will be in future releases.

In earlier versions you can set a verify callback, or just check the result chain, and reject any cert or chain using MD5, or RSA<=1024, or ECC using curves suspected of NSA backdoors, or anything else you dislike, such as CA policy that says "we hate cats".

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .