[#OSSL_HANDSHAKE_STATE]
= OSSL&lowbar;HANDSHAKE&lowbar;STATE
:mrdocs:

Fine&hyphen;grained TLS&sol;DTLS handshake state machine values reported by SSL&lowbar;get&lowbar;state()&period;

== Synopsis

Declared in `&lt;openssl&sol;ssl&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
enum OSSL&lowbar;HANDSHAKE&lowbar;STATE;
----

== Members

[cols="1,4"]
|===
| Name| Description
| `TLS&lowbar;ST&lowbar;BEFORE` 
| No handshake has been initiated yet&period;
| `TLS&lowbar;ST&lowbar;OK` 
| Handshake completed successfully&semi; protected application data may flow&period;
| `DTLS&lowbar;ST&lowbar;CR&lowbar;HELLO&lowbar;VERIFY&lowbar;REQUEST` 
| Handshake completed successfully&semi; protected application data may flow&period;
| `TLS&lowbar;ST&lowbar;CR&lowbar;SRVR&lowbar;HELLO` 
| Client reading ServerHello&period;
| `TLS&lowbar;ST&lowbar;CR&lowbar;CERT` 
| Client reading Certificate&period;
| `TLS&lowbar;ST&lowbar;CR&lowbar;COMP&lowbar;CERT` 
| Client reading CompressedCertificate&period;
| `TLS&lowbar;ST&lowbar;CR&lowbar;CERT&lowbar;STATUS` 
| Client reading CertificateStatus (OCSP stapling)&period;
| `TLS&lowbar;ST&lowbar;CR&lowbar;KEY&lowbar;EXCH` 
| Client reading CertificateStatus (OCSP stapling)&period;
| `TLS&lowbar;ST&lowbar;CR&lowbar;CERT&lowbar;REQ` 
| Client reading CertificateStatus (OCSP stapling)&period;
| `TLS&lowbar;ST&lowbar;CR&lowbar;SRVR&lowbar;DONE` 
| Client reading CertificateStatus (OCSP stapling)&period;
| `TLS&lowbar;ST&lowbar;CR&lowbar;SESSION&lowbar;TICKET` 
| Client reading CertificateStatus (OCSP stapling)&period;
| `TLS&lowbar;ST&lowbar;CR&lowbar;CHANGE` 
| Client reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;CR&lowbar;FINISHED` 
| Client reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;CW&lowbar;CLNT&lowbar;HELLO` 
| Client writing ClientHello&period;
| `TLS&lowbar;ST&lowbar;CW&lowbar;CERT` 
| Client writing ClientHello&period;
| `TLS&lowbar;ST&lowbar;CW&lowbar;COMP&lowbar;CERT` 
| Client writing CompressedCertificate&period;
| `TLS&lowbar;ST&lowbar;CW&lowbar;KEY&lowbar;EXCH` 
| Client writing ClientKeyExchange&period;
| `TLS&lowbar;ST&lowbar;CW&lowbar;CERT&lowbar;VRFY` 
| Client writing ClientKeyExchange&period;
| `TLS&lowbar;ST&lowbar;CW&lowbar;CHANGE` 
| Client writing ClientKeyExchange&period;
| `TLS&lowbar;ST&lowbar;CW&lowbar;NEXT&lowbar;PROTO` 
| Client writing ClientKeyExchange&period;
| `TLS&lowbar;ST&lowbar;CW&lowbar;FINISHED` 
| Client writing ClientKeyExchange&period;
| `TLS&lowbar;ST&lowbar;SW&lowbar;HELLO&lowbar;REQ` 
| Client writing ClientKeyExchange&period;
| `TLS&lowbar;ST&lowbar;SR&lowbar;CLNT&lowbar;HELLO` 
| Client writing ClientKeyExchange&period;
| `DTLS&lowbar;ST&lowbar;SW&lowbar;HELLO&lowbar;VERIFY&lowbar;REQUEST` 
| DTLS server writing HelloVerifyRequest&period;
| `TLS&lowbar;ST&lowbar;SW&lowbar;SRVR&lowbar;HELLO` 
| DTLS server writing HelloVerifyRequest&period;
| `TLS&lowbar;ST&lowbar;SW&lowbar;CERT` 
| DTLS server writing HelloVerifyRequest&period;
| `TLS&lowbar;ST&lowbar;SW&lowbar;COMP&lowbar;CERT` 
| Server writing CompressedCertificate&period;
| `TLS&lowbar;ST&lowbar;SW&lowbar;KEY&lowbar;EXCH` 
| Server writing ServerKeyExchange&period;
| `TLS&lowbar;ST&lowbar;SW&lowbar;CERT&lowbar;REQ` 
| Server writing CertificateRequest&period;
| `TLS&lowbar;ST&lowbar;SW&lowbar;SRVR&lowbar;DONE` 
| Server writing ServerHelloDone&period;
| `TLS&lowbar;ST&lowbar;SR&lowbar;CERT` 
| Server writing ServerHelloDone&period;
| `TLS&lowbar;ST&lowbar;SR&lowbar;COMP&lowbar;CERT` 
| Server writing ServerHelloDone&period;
| `TLS&lowbar;ST&lowbar;SR&lowbar;KEY&lowbar;EXCH` 
| Server writing ServerHelloDone&period;
| `TLS&lowbar;ST&lowbar;SR&lowbar;CERT&lowbar;VRFY` 
| Server writing ServerHelloDone&period;
| `TLS&lowbar;ST&lowbar;SR&lowbar;NEXT&lowbar;PROTO` 
| Server writing ServerHelloDone&period;
| `TLS&lowbar;ST&lowbar;SR&lowbar;CHANGE` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;SR&lowbar;FINISHED` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;SW&lowbar;SESSION&lowbar;TICKET` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;SW&lowbar;CERT&lowbar;STATUS` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;SW&lowbar;CHANGE` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;SW&lowbar;FINISHED` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;SW&lowbar;ENCRYPTED&lowbar;EXTENSIONS` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;CR&lowbar;ENCRYPTED&lowbar;EXTENSIONS` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;CR&lowbar;CERT&lowbar;VRFY` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;SW&lowbar;CERT&lowbar;VRFY` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;CR&lowbar;HELLO&lowbar;REQ` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;SW&lowbar;KEY&lowbar;UPDATE` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;CW&lowbar;KEY&lowbar;UPDATE` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;SR&lowbar;KEY&lowbar;UPDATE` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;CR&lowbar;KEY&lowbar;UPDATE` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;EARLY&lowbar;DATA` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;PENDING&lowbar;EARLY&lowbar;DATA&lowbar;END` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;CW&lowbar;END&lowbar;OF&lowbar;EARLY&lowbar;DATA` 
| Server reading ChangeCipherSpec&period;
| `TLS&lowbar;ST&lowbar;SR&lowbar;END&lowbar;OF&lowbar;EARLY&lowbar;DATA` 
| Server reading ChangeCipherSpec&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
