8 - get list of available SSL_CIPHERs
12 #include <openssl/ssl.h>
14 STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *ssl);
15 const char *SSL_get_cipher_list(const SSL *ssl, int priority);
16 char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size);
20 SSL_get_ciphers() returns the stack of available SSL_CIPHERs for B<ssl>,
21 sorted by preference. If B<ssl> is NULL or no ciphers are available, NULL
24 SSL_get_cipher_list() returns a pointer to the name of the SSL_CIPHER
25 listed for B<ssl> with B<priority>. If B<ssl> is NULL, no ciphers are
26 available, or there are less ciphers than B<priority> available, NULL
29 SSL_get_shared_ciphers() creates a colon separated and NUL terminated list of
30 SSL_CIPHER names that are available in both the client and the server. B<buf> is
31 the buffer that should be populated with the list of names and B<size> is the
32 size of that buffer. A pointer to B<buf> is returned on success or NULL on
33 error. If the supplied buffer is not large enough to contain the complete list
34 of names then a truncated list of names will be returned. Note that just because
35 a ciphersuite is available (i.e. it is configured in the cipher list) and shared
36 by both the client and the server it does not mean that it is enabled (for
37 example some ciphers may not be usable by a server if there is not a suitable
38 certificate configured). This function will return available shared ciphersuites
39 whether or not they are enabled. This is a server side function only and must
40 only be called after the completion of the initial handshake.
44 The details of the ciphers obtained by SSL_get_ciphers() can be obtained using
45 the L<SSL_CIPHER_get_name(3)|SSL_CIPHER_get_name(3)> family of functions.
47 Call SSL_get_cipher_list() with B<priority> starting from 0 to obtain the
48 sorted list of available ciphers, until NULL is returned.
56 L<ssl(3)|ssl(3)>, L<SSL_CTX_set_cipher_list(3)|SSL_CTX_set_cipher_list(3)>,
57 L<SSL_CIPHER_get_name(3)|SSL_CIPHER_get_name(3)>