| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | =pod | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 NAME | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-12-08 22:29:13 +08:00
										 |  |  | SSL_CTX_set_cipher_list, SSL_set_cipher_list - choose list of available SSL_CIPHERs | 
					
						
							| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 SYNOPSIS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  #include <openssl/ssl.h> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  int SSL_CTX_set_cipher_list(SSL_CTX *ctx, const char *str); | 
					
						
							|  |  |  |  int SSL_set_cipher_list(SSL *ssl, const char *str); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 DESCRIPTION | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SSL_CTX_set_cipher_list() sets the list of available ciphers for B<ctx> | 
					
						
							|  |  |  | using the control string B<str>. The format of the string is described | 
					
						
							| 
									
										
										
										
											2015-08-18 03:21:33 +08:00
										 |  |  | in L<ciphers(1)>. The list of ciphers is inherited by all | 
					
						
							| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | B<ssl> objects created from B<ctx>. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SSL_set_cipher_list() sets the list of ciphers only for B<ssl>. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 NOTES | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-09-19 06:58:02 +08:00
										 |  |  | The control string B<str> should be universally usable and not depend | 
					
						
							| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | on details of the library configuration (ciphers compiled in). Thus no | 
					
						
							|  |  |  | syntax checking takes place. Items that are not recognized, because the | 
					
						
							| 
									
										
										
										
											2000-09-19 06:58:02 +08:00
										 |  |  | corresponding ciphers are not compiled in or because they are mistyped, | 
					
						
							| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | are simply ignored. Failure is only flagged if no ciphers could be collected | 
					
						
							|  |  |  | at all. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-09-20 07:10:32 +08:00
										 |  |  | It should be noted, that inclusion of a cipher to be used into the list is | 
					
						
							|  |  |  | a necessary condition. On the client side, the inclusion into the list is | 
					
						
							| 
									
										
										
										
											2014-03-29 00:40:56 +08:00
										 |  |  | also sufficient unless the security level excludes it. On the server side, | 
					
						
							|  |  |  | additional restrictions apply. All ciphers have additional requirements. | 
					
						
							|  |  |  | ADH ciphers don't need a certificate, but DH-parameters must have been set. | 
					
						
							|  |  |  | All other ciphers need a corresponding certificate and key. | 
					
						
							| 
									
										
										
										
											2001-07-21 03:23:43 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | A RSA cipher can only be chosen, when a RSA certificate is available. | 
					
						
							| 
									
										
										
										
											2013-12-20 04:23:05 +08:00
										 |  |  | RSA ciphers using DHE need a certificate and key and additional DH-parameters | 
					
						
							| 
									
										
										
										
											2015-08-18 03:21:33 +08:00
										 |  |  | (see L<SSL_CTX_set_tmp_dh_callback(3)>). | 
					
						
							| 
									
										
										
										
											2001-07-21 03:23:43 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | A DSA cipher can only be chosen, when a DSA certificate is available. | 
					
						
							| 
									
										
										
										
											2001-07-23 20:57:37 +08:00
										 |  |  | DSA ciphers always use DH key exchange and therefore need DH-parameters | 
					
						
							| 
									
										
										
										
											2015-08-18 03:21:33 +08:00
										 |  |  | (see L<SSL_CTX_set_tmp_dh_callback(3)>). | 
					
						
							| 
									
										
										
										
											2001-07-21 03:23:43 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | When these conditions are not met for any cipher in the list (e.g. a | 
					
						
							| 
									
										
										
										
											2016-03-20 23:51:06 +08:00
										 |  |  | client only supports export RSA ciphers with an asymmetric key length | 
					
						
							| 
									
										
										
										
											2001-07-21 03:23:43 +08:00
										 |  |  | of 512 bits and the server is not configured to use temporary RSA | 
					
						
							|  |  |  | keys), the "no shared cipher" (SSL_R_NO_SHARED_CIPHER) error is generated | 
					
						
							|  |  |  | and the handshake will fail. | 
					
						
							| 
									
										
										
										
											2000-09-20 07:10:32 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | =head1 RETURN VALUES | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SSL_CTX_set_cipher_list() and SSL_set_cipher_list() return 1 if any cipher | 
					
						
							|  |  |  | could be selected and 0 on complete failure. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 SEE ALSO | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-11 16:33:09 +08:00
										 |  |  | L<ssl(7)>, L<SSL_get_ciphers(3)>, | 
					
						
							| 
									
										
										
										
											2015-08-18 03:21:33 +08:00
										 |  |  | L<SSL_CTX_use_certificate(3)>, | 
					
						
							|  |  |  | L<SSL_CTX_set_tmp_dh_callback(3)>, | 
					
						
							|  |  |  | L<ciphers(1)> | 
					
						
							| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-18 23:44:05 +08:00
										 |  |  | =head1 COPYRIGHT | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Licensed under the OpenSSL license (the "License").  You may not use | 
					
						
							|  |  |  | this file except in compliance with the License.  You can obtain a copy | 
					
						
							|  |  |  | in the file LICENSE in the source distribution or at | 
					
						
							|  |  |  | L<https://www.openssl.org/source/license.html>. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =cut |