| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | =pod | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 NAME | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-29 05:00:05 +08:00
										 |  |  | SSL_get_current_cipher, SSL_get_cipher_name, SSL_get_cipher, | 
					
						
							| 
									
										
										
										
											2017-08-02 04:28:14 +08:00
										 |  |  | SSL_get_cipher_bits, SSL_get_cipher_version, | 
					
						
							|  |  |  | SSL_get_pending_cipher - get SSL_CIPHER of a connection | 
					
						
							| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 SYNOPSIS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  #include <openssl/ssl.h> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-03-30 19:50:14 +08:00
										 |  |  |  SSL_CIPHER *SSL_get_current_cipher(const SSL *ssl); | 
					
						
							| 
									
										
										
										
											2017-08-02 04:28:14 +08:00
										 |  |  |  SSL_CIPHER *SSL_get_pending_cipher(const SSL *ssl); | 
					
						
							| 
									
										
										
										
											2016-07-09 00:55:45 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |  const char *SSL_get_cipher_name(const SSL *s); | 
					
						
							|  |  |  |  const char *SSL_get_cipher(const SSL *s); | 
					
						
							| 
									
										
										
										
											2018-06-13 03:46:50 +08:00
										 |  |  |  int SSL_get_cipher_bits(const SSL *s, int *np); | 
					
						
							| 
									
										
										
										
											2016-07-09 00:55:45 +08:00
										 |  |  |  const char *SSL_get_cipher_version(const SSL *s); | 
					
						
							| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 DESCRIPTION | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SSL_get_current_cipher() returns a pointer to an SSL_CIPHER object containing | 
					
						
							|  |  |  | the description of the actually used cipher of a connection established with | 
					
						
							|  |  |  | the B<ssl> object. | 
					
						
							| 
									
										
										
										
											2016-07-09 00:55:45 +08:00
										 |  |  | See L<SSL_CIPHER_get_name(3)> for more details. | 
					
						
							| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-09 00:55:45 +08:00
										 |  |  | SSL_get_cipher_name() obtains the | 
					
						
							|  |  |  | name of the currently used cipher. | 
					
						
							|  |  |  | SSL_get_cipher() is identical to SSL_get_cipher_name(). | 
					
						
							|  |  |  | SSL_get_cipher_bits() is a | 
					
						
							| 
									
										
										
										
											2016-05-20 20:11:46 +08:00
										 |  |  | macro to obtain the number of secret/algorithm bits used and | 
					
						
							| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | SSL_get_cipher_version() returns the protocol name. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-02 04:28:14 +08:00
										 |  |  | SSL_get_pending_cipher() returns a pointer to an SSL_CIPHER object containing | 
					
						
							|  |  |  | the description of the cipher (if any) that has been negotiated for future use | 
					
						
							|  |  |  | on the connection established with the B<ssl> object, but is not yet in use. | 
					
						
							|  |  |  | This may be the case during handshake processing, when control flow can be | 
					
						
							|  |  |  | returned to the application via any of several callback methods.  The internal | 
					
						
							|  |  |  | sequencing of handshake processing and callback invocation is not guaranteed | 
					
						
							|  |  |  | to be stable from release to release, and at present only the callback set | 
					
						
							|  |  |  | by SSL_CTX_set_alpn_select_cb() is guaranteed to have a non-NULL return value. | 
					
						
							|  |  |  | Other callbacks may be added to this list over time. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | =head1 RETURN VALUES | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-09 00:55:45 +08:00
										 |  |  | SSL_get_current_cipher() returns the cipher actually used, or NULL if | 
					
						
							| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | no session has been established. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-02 04:28:14 +08:00
										 |  |  | SSL_get_pending_cipher() returns the cipher to be used at the next change | 
					
						
							|  |  |  | of cipher suite, or NULL if no such cipher is known. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-09 00:55:45 +08:00
										 |  |  | =head1 NOTES | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-02 04:28:14 +08:00
										 |  |  | SSL_get_cipher, SSL_get_cipher_bits, SSL_get_cipher_version, and | 
					
						
							|  |  |  | SSL_get_cipher_name are implemented as macros. | 
					
						
							| 
									
										
										
										
											2016-07-09 00:55:45 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | =head1 SEE ALSO | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-11 16:33:09 +08:00
										 |  |  | L<ssl(7)>, L<SSL_CIPHER_get_name(3)> | 
					
						
							| 
									
										
										
										
											2000-09-19 00:42:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-18 23:44:05 +08:00
										 |  |  | =head1 COPYRIGHT | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-20 22:25:43 +08:00
										 |  |  | Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. | 
					
						
							| 
									
										
										
										
											2016-05-18 23:44:05 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-06 21:04:44 +08:00
										 |  |  | Licensed under the Apache License 2.0 (the "License").  You may not use | 
					
						
							| 
									
										
										
										
											2016-05-18 23:44:05 +08:00
										 |  |  | 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 |