mirror of https://github.com/openssl/openssl.git
				
				
				
			
		
			
				
	
	
		
			111 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| =pod
 | |
| 
 | |
| =head1 NAME
 | |
| 
 | |
| SSL_in_before,
 | |
| SSL_in_init,
 | |
| SSL_is_init_finished,
 | |
| SSL_in_connect_init,
 | |
| SSL_in_accept_init,
 | |
| SSL_get_state
 | |
| - retrieve information about the handshake state machine
 | |
| 
 | |
| =head1 SYNOPSIS
 | |
| 
 | |
|  #include <openssl/ssl.h>
 | |
| 
 | |
|  int SSL_in_init(const SSL *s);
 | |
|  int SSL_in_before(const SSL *s);
 | |
|  int SSL_is_init_finished(const SSL *s);
 | |
| 
 | |
|  int SSL_in_connect_init(SSL *s);
 | |
|  int SSL_in_accept_init(SSL *s);
 | |
| 
 | |
|  OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl);
 | |
| 
 | |
| =head1 DESCRIPTION
 | |
| 
 | |
| SSL_in_init() returns 1 if the SSL/TLS state machine is currently processing or
 | |
| awaiting handshake messages, or 0 otherwise.
 | |
| 
 | |
| SSL_in_before() returns 1 if no SSL/TLS handshake has yet been initiated, or 0
 | |
| otherwise.
 | |
| 
 | |
| SSL_is_init_finished() returns 1 if the SSL/TLS connection is in a state where
 | |
| fully protected application data can be transferred or 0 otherwise.
 | |
| 
 | |
| Note that in some circumstances (such as when early data is being transferred)
 | |
| SSL_in_init(), SSL_in_before() and SSL_is_init_finished() can all return 0.
 | |
| 
 | |
| SSL_in_connect_init() returns 1 if B<s> is acting as a client and SSL_in_init()
 | |
| would return 1, or 0 otherwise.
 | |
| 
 | |
| SSL_in_accept_init() returns 1 if B<s> is acting as a server and SSL_in_init()
 | |
| would return 1, or 0 otherwise.
 | |
| 
 | |
| SSL_in_connect_init() and SSL_in_accept_init() are implemented as macros.
 | |
| 
 | |
| SSL_get_state() returns a value indicating the current state of the handshake
 | |
| state machine. OSSL_HANDSHAKE_STATE is an enumerated type where each value
 | |
| indicates a discrete state machine state. Note that future versions of OpenSSL
 | |
| may define more states so applications should expect to receive unrecognised
 | |
| state values. The naming format is made up of a number of elements as follows:
 | |
| 
 | |
| B<protocol>_ST_B<role>_B<message>
 | |
| 
 | |
| B<protocol> is one of TLS or DTLS. DTLS is used where a state is specific to the
 | |
| DTLS protocol. Otherwise TLS is used.
 | |
| 
 | |
| B<role> is one of CR, CW, SR or SW to indicate "client reading",
 | |
| "client writing", "server reading" or "server writing" respectively.
 | |
| 
 | |
| B<message> is the name of a handshake message that is being or has been sent, or
 | |
| is being or has been processed.
 | |
| 
 | |
| Additionally there are some special states that do not conform to the above
 | |
| format. These are:
 | |
| 
 | |
| =over 4
 | |
| 
 | |
| =item TLS_ST_BEFORE
 | |
| 
 | |
| No handshake messages have yet been been sent or received.
 | |
| 
 | |
| =item TLS_ST_OK
 | |
| 
 | |
| Handshake message sending/processing has completed.
 | |
| 
 | |
| =item TLS_ST_EARLY_DATA
 | |
| 
 | |
| Early data is being processed
 | |
| 
 | |
| =item TLS_ST_PENDING_EARLY_DATA_END
 | |
| 
 | |
| Awaiting the end of early data processing
 | |
| 
 | |
| =back
 | |
| 
 | |
| =head1 RETURN VALUES
 | |
| 
 | |
| SSL_in_init(), SSL_in_before(), SSL_is_init_finished(), SSL_in_connect_init()
 | |
| and SSL_in_accept_init() return values as indicated above.
 | |
| 
 | |
| SSL_get_state() returns the current handshake state.
 | |
| 
 | |
| 
 | |
| =head1 SEE ALSO
 | |
| 
 | |
| L<ssl(7)>,
 | |
| L<SSL_read_early_data(3)>
 | |
| 
 | |
| =head1 COPYRIGHT
 | |
| 
 | |
| Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
 | |
| 
 | |
| Licensed under the Apache License 2.0 (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
 |