diff options
author | Nick Mathewson <nickm@torproject.org> | 2009-09-24 13:00:28 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2009-09-24 13:00:28 -0400 |
commit | a3f1da2ec067ada4231d0f1c0b6d597ff547d1d9 (patch) | |
tree | 17350c97a424198b373facdbaed96a4538560d2f /src/common | |
parent | b8b293536752725ebba5f14852095b512a009e75 (diff) | |
download | tor-a3f1da2ec067ada4231d0f1c0b6d597ff547d1d9.tar tor-a3f1da2ec067ada4231d0f1c0b6d597ff547d1d9.tar.gz |
Fix compilation on OpenSSLs with unusual state lists.
"Unusual" in this context means "not the same as nickm's." We should grow a
better list later.
(Also, move TLS state table to a separate header.)
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/Makefile.am | 2 | ||||
-rw-r--r-- | src/common/tortls.c | 135 | ||||
-rw-r--r-- | src/common/tortls_states.h | 393 |
3 files changed, 395 insertions, 135 deletions
diff --git a/src/common/Makefile.am b/src/common/Makefile.am index d57593d63..eecfeb83f 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -16,7 +16,7 @@ libor_a_SOURCES = address.c log.c util.c compat.c container.c mempool.c \ libor_crypto_a_SOURCES = crypto.c aes.c tortls.c torgzip.c libor_event_a_SOURCES = compat_libevent.c -noinst_HEADERS = address.h log.h crypto.h util.h compat.h aes.h torint.h tortls.h strlcpy.c strlcat.c torgzip.h container.h ht.h mempool.h memarea.h ciphers.inc compat_libevent.h +noinst_HEADERS = address.h log.h crypto.h util.h compat.h aes.h torint.h tortls.h strlcpy.c strlcat.c torgzip.h container.h ht.h mempool.h memarea.h ciphers.inc compat_libevent.h tortls_states.h common_sha1.i: $(libor_SOURCES) $(libor_crypto_a_SOURCES) $(noinst_HEADERS) if test "@SHA1SUM@" != none; then \ diff --git a/src/common/tortls.c b/src/common/tortls.c index 4d673bf1e..6e0932524 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -165,140 +165,7 @@ static int tls_library_is_initialized = 0; #define _TOR_TLS_SYSCALL (_MIN_TOR_TLS_ERROR_VAL - 2) #define _TOR_TLS_ZERORETURN (_MIN_TOR_TLS_ERROR_VAL - 1) -static const struct { int state; const char *name; } state_map[] = { -#define S(state) { state, #state } - S(DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A), - S(DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B), - S(DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A), - S(DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B), - S(SSL23_ST_CR_SRVR_HELLO_A), - S(SSL23_ST_CR_SRVR_HELLO_B), - S(SSL23_ST_CW_CLNT_HELLO_A), - S(SSL23_ST_CW_CLNT_HELLO_B), - S(SSL23_ST_SR_CLNT_HELLO_A), - S(SSL23_ST_SR_CLNT_HELLO_B), - S(SSL2_ST_CLIENT_START_ENCRYPTION), - S(SSL2_ST_GET_CLIENT_FINISHED_A), - S(SSL2_ST_GET_CLIENT_FINISHED_B), - S(SSL2_ST_GET_CLIENT_HELLO_A), - S(SSL2_ST_GET_CLIENT_HELLO_B), - S(SSL2_ST_GET_CLIENT_HELLO_C), - S(SSL2_ST_GET_CLIENT_MASTER_KEY_A), - S(SSL2_ST_GET_CLIENT_MASTER_KEY_B), - S(SSL2_ST_GET_SERVER_FINISHED_A), - S(SSL2_ST_GET_SERVER_FINISHED_B), - S(SSL2_ST_GET_SERVER_HELLO_A), - S(SSL2_ST_GET_SERVER_HELLO_B), - S(SSL2_ST_GET_SERVER_VERIFY_A), - S(SSL2_ST_GET_SERVER_VERIFY_B), - S(SSL2_ST_SEND_CLIENT_CERTIFICATE_A), - S(SSL2_ST_SEND_CLIENT_CERTIFICATE_B), - S(SSL2_ST_SEND_CLIENT_CERTIFICATE_C), - S(SSL2_ST_SEND_CLIENT_CERTIFICATE_D), - S(SSL2_ST_SEND_CLIENT_FINISHED_A), - S(SSL2_ST_SEND_CLIENT_FINISHED_B), - S(SSL2_ST_SEND_CLIENT_HELLO_A), - S(SSL2_ST_SEND_CLIENT_HELLO_B), - S(SSL2_ST_SEND_CLIENT_MASTER_KEY_A), - S(SSL2_ST_SEND_CLIENT_MASTER_KEY_B), - S(SSL2_ST_SEND_REQUEST_CERTIFICATE_A), - S(SSL2_ST_SEND_REQUEST_CERTIFICATE_B), - S(SSL2_ST_SEND_REQUEST_CERTIFICATE_C), - S(SSL2_ST_SEND_REQUEST_CERTIFICATE_D), - S(SSL2_ST_SEND_SERVER_FINISHED_A), - S(SSL2_ST_SEND_SERVER_FINISHED_B), - S(SSL2_ST_SEND_SERVER_HELLO_A), - S(SSL2_ST_SEND_SERVER_HELLO_B), - S(SSL2_ST_SEND_SERVER_VERIFY_A), - S(SSL2_ST_SEND_SERVER_VERIFY_B), - S(SSL2_ST_SEND_SERVER_VERIFY_C), - S(SSL2_ST_SERVER_START_ENCRYPTION), - S(SSL2_ST_X509_GET_CLIENT_CERTIFICATE), - S(SSL2_ST_X509_GET_SERVER_CERTIFICATE), - S(SSL3_ST_CR_CERT_A), - S(SSL3_ST_CR_CERT_B), - S(SSL3_ST_CR_CERT_REQ_A), - S(SSL3_ST_CR_CERT_REQ_B), - S(SSL3_ST_CR_CERT_STATUS_A), - S(SSL3_ST_CR_CERT_STATUS_B), - S(SSL3_ST_CR_CHANGE_A), - S(SSL3_ST_CR_CHANGE_B), - S(SSL3_ST_CR_FINISHED_A), - S(SSL3_ST_CR_FINISHED_B), - S(SSL3_ST_CR_KEY_EXCH_A), - S(SSL3_ST_CR_KEY_EXCH_B), - S(SSL3_ST_CR_SESSION_TICKET_A), - S(SSL3_ST_CR_SESSION_TICKET_B), - S(SSL3_ST_CR_SRVR_DONE_A), - S(SSL3_ST_CR_SRVR_DONE_B), - S(SSL3_ST_CR_SRVR_HELLO_A), - S(SSL3_ST_CR_SRVR_HELLO_B), - S(SSL3_ST_CW_CERT_A), - S(SSL3_ST_CW_CERT_B), - S(SSL3_ST_CW_CERT_C), - S(SSL3_ST_CW_CERT_D), - S(SSL3_ST_CW_CERT_VRFY_A), - S(SSL3_ST_CW_CERT_VRFY_B), - S(SSL3_ST_CW_CHANGE_A), - S(SSL3_ST_CW_CHANGE_B), - S(SSL3_ST_CW_CLNT_HELLO_A), - S(SSL3_ST_CW_CLNT_HELLO_B), - S(SSL3_ST_CW_FINISHED_A), - S(SSL3_ST_CW_FINISHED_B), - S(SSL3_ST_CW_FLUSH), - S(SSL3_ST_CW_KEY_EXCH_A), - S(SSL3_ST_CW_KEY_EXCH_B), - S(SSL3_ST_SR_CERT_A), - S(SSL3_ST_SR_CERT_B), - S(SSL3_ST_SR_CERT_VRFY_A), - S(SSL3_ST_SR_CERT_VRFY_B), - S(SSL3_ST_SR_CHANGE_A), - S(SSL3_ST_SR_CHANGE_B), - S(SSL3_ST_SR_CLNT_HELLO_A), - S(SSL3_ST_SR_CLNT_HELLO_B), - S(SSL3_ST_SR_CLNT_HELLO_C), - S(SSL3_ST_SR_FINISHED_A), - S(SSL3_ST_SR_FINISHED_B), - S(SSL3_ST_SR_KEY_EXCH_A), - S(SSL3_ST_SR_KEY_EXCH_B), - S(SSL3_ST_SW_CERT_A), - S(SSL3_ST_SW_CERT_B), - S(SSL3_ST_SW_CERT_REQ_A), - S(SSL3_ST_SW_CERT_REQ_B), - S(SSL3_ST_SW_CERT_STATUS_A), - S(SSL3_ST_SW_CERT_STATUS_B), - S(SSL3_ST_SW_CHANGE_A), - S(SSL3_ST_SW_CHANGE_B), - S(SSL3_ST_SW_FINISHED_A), - S(SSL3_ST_SW_FINISHED_B), - S(SSL3_ST_SW_FLUSH), - S(SSL3_ST_SW_HELLO_REQ_A), - S(SSL3_ST_SW_HELLO_REQ_B), - S(SSL3_ST_SW_HELLO_REQ_C), - S(SSL3_ST_SW_KEY_EXCH_A), - S(SSL3_ST_SW_KEY_EXCH_B), - S(SSL3_ST_SW_SESSION_TICKET_A), - S(SSL3_ST_SW_SESSION_TICKET_B), - S(SSL3_ST_SW_SRVR_DONE_A), - S(SSL3_ST_SW_SRVR_DONE_B), - S(SSL3_ST_SW_SRVR_HELLO_A), - S(SSL3_ST_SW_SRVR_HELLO_B), - S(SSL_CB_ACCEPT_EXIT), - S(SSL_CB_ACCEPT_LOOP), - S(SSL_CB_CONNECT_EXIT), - S(SSL_CB_CONNECT_LOOP), - S(SSL_ST_ACCEPT), - S(SSL_ST_BEFORE), - S(SSL_ST_CONNECT), - S(SSL_ST_INIT), - S(SSL_ST_MASK), - S(SSL_ST_OK), - S(SSL_ST_READ_BODY), - S(SSL_ST_READ_DONE), - S(SSL_ST_READ_HEADER), - S(SSL_ST_RENEGOTIATE), - { 0, NULL } -}; +#include "tortls_states.h" /** Return the symbolic name of an OpenSSL state. */ static const char * diff --git a/src/common/tortls_states.h b/src/common/tortls_states.h new file mode 100644 index 000000000..d5efd0877 --- /dev/null +++ b/src/common/tortls_states.h @@ -0,0 +1,393 @@ +/* Copyright (c) 2003, Roger Dingledine + * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. + * Copyright (c) 2007-2009, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +#ifndef _TORTLS_STATES_H +#define _TORTLS_STATES_H + +static const struct { int state; const char *name; } state_map[] = { +#define S(state) { state, #state } +#ifdef DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A + S(DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A), +#endif +#ifdef DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B + S(DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B), +#endif +#ifdef DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A + S(DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A), +#endif +#ifdef DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B + S(DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B), +#endif +#ifdef SSL23_ST_CR_SRVR_HELLO_A + S(SSL23_ST_CR_SRVR_HELLO_A), +#endif +#ifdef SSL23_ST_CR_SRVR_HELLO_B + S(SSL23_ST_CR_SRVR_HELLO_B), +#endif +#ifdef SSL23_ST_CW_CLNT_HELLO_A + S(SSL23_ST_CW_CLNT_HELLO_A), +#endif +#ifdef SSL23_ST_CW_CLNT_HELLO_B + S(SSL23_ST_CW_CLNT_HELLO_B), +#endif +#ifdef SSL23_ST_SR_CLNT_HELLO_A + S(SSL23_ST_SR_CLNT_HELLO_A), +#endif +#ifdef SSL23_ST_SR_CLNT_HELLO_B + S(SSL23_ST_SR_CLNT_HELLO_B), +#endif +#ifdef SSL2_ST_CLIENT_START_ENCRYPTION + S(SSL2_ST_CLIENT_START_ENCRYPTION), +#endif +#ifdef SSL2_ST_GET_CLIENT_FINISHED_A + S(SSL2_ST_GET_CLIENT_FINISHED_A), +#endif +#ifdef SSL2_ST_GET_CLIENT_FINISHED_B + S(SSL2_ST_GET_CLIENT_FINISHED_B), +#endif +#ifdef SSL2_ST_GET_CLIENT_HELLO_A + S(SSL2_ST_GET_CLIENT_HELLO_A), +#endif +#ifdef SSL2_ST_GET_CLIENT_HELLO_B + S(SSL2_ST_GET_CLIENT_HELLO_B), +#endif +#ifdef SSL2_ST_GET_CLIENT_HELLO_C + S(SSL2_ST_GET_CLIENT_HELLO_C), +#endif +#ifdef SSL2_ST_GET_CLIENT_MASTER_KEY_A + S(SSL2_ST_GET_CLIENT_MASTER_KEY_A), +#endif +#ifdef SSL2_ST_GET_CLIENT_MASTER_KEY_B + S(SSL2_ST_GET_CLIENT_MASTER_KEY_B), +#endif +#ifdef SSL2_ST_GET_SERVER_FINISHED_A + S(SSL2_ST_GET_SERVER_FINISHED_A), +#endif +#ifdef SSL2_ST_GET_SERVER_FINISHED_B + S(SSL2_ST_GET_SERVER_FINISHED_B), +#endif +#ifdef SSL2_ST_GET_SERVER_HELLO_A + S(SSL2_ST_GET_SERVER_HELLO_A), +#endif +#ifdef SSL2_ST_GET_SERVER_HELLO_B + S(SSL2_ST_GET_SERVER_HELLO_B), +#endif +#ifdef SSL2_ST_GET_SERVER_VERIFY_A + S(SSL2_ST_GET_SERVER_VERIFY_A), +#endif +#ifdef SSL2_ST_GET_SERVER_VERIFY_B + S(SSL2_ST_GET_SERVER_VERIFY_B), +#endif +#ifdef SSL2_ST_SEND_CLIENT_CERTIFICATE_A + S(SSL2_ST_SEND_CLIENT_CERTIFICATE_A), +#endif +#ifdef SSL2_ST_SEND_CLIENT_CERTIFICATE_B + S(SSL2_ST_SEND_CLIENT_CERTIFICATE_B), +#endif +#ifdef SSL2_ST_SEND_CLIENT_CERTIFICATE_C + S(SSL2_ST_SEND_CLIENT_CERTIFICATE_C), +#endif +#ifdef SSL2_ST_SEND_CLIENT_CERTIFICATE_D + S(SSL2_ST_SEND_CLIENT_CERTIFICATE_D), +#endif +#ifdef SSL2_ST_SEND_CLIENT_FINISHED_A + S(SSL2_ST_SEND_CLIENT_FINISHED_A), +#endif +#ifdef SSL2_ST_SEND_CLIENT_FINISHED_B + S(SSL2_ST_SEND_CLIENT_FINISHED_B), +#endif +#ifdef SSL2_ST_SEND_CLIENT_HELLO_A + S(SSL2_ST_SEND_CLIENT_HELLO_A), +#endif +#ifdef SSL2_ST_SEND_CLIENT_HELLO_B + S(SSL2_ST_SEND_CLIENT_HELLO_B), +#endif +#ifdef SSL2_ST_SEND_CLIENT_MASTER_KEY_A + S(SSL2_ST_SEND_CLIENT_MASTER_KEY_A), +#endif +#ifdef SSL2_ST_SEND_CLIENT_MASTER_KEY_B + S(SSL2_ST_SEND_CLIENT_MASTER_KEY_B), +#endif +#ifdef SSL2_ST_SEND_REQUEST_CERTIFICATE_A + S(SSL2_ST_SEND_REQUEST_CERTIFICATE_A), +#endif +#ifdef SSL2_ST_SEND_REQUEST_CERTIFICATE_B + S(SSL2_ST_SEND_REQUEST_CERTIFICATE_B), +#endif +#ifdef SSL2_ST_SEND_REQUEST_CERTIFICATE_C + S(SSL2_ST_SEND_REQUEST_CERTIFICATE_C), +#endif +#ifdef SSL2_ST_SEND_REQUEST_CERTIFICATE_D + S(SSL2_ST_SEND_REQUEST_CERTIFICATE_D), +#endif +#ifdef SSL2_ST_SEND_SERVER_FINISHED_A + S(SSL2_ST_SEND_SERVER_FINISHED_A), +#endif +#ifdef SSL2_ST_SEND_SERVER_FINISHED_B + S(SSL2_ST_SEND_SERVER_FINISHED_B), +#endif +#ifdef SSL2_ST_SEND_SERVER_HELLO_A + S(SSL2_ST_SEND_SERVER_HELLO_A), +#endif +#ifdef SSL2_ST_SEND_SERVER_HELLO_B + S(SSL2_ST_SEND_SERVER_HELLO_B), +#endif +#ifdef SSL2_ST_SEND_SERVER_VERIFY_A + S(SSL2_ST_SEND_SERVER_VERIFY_A), +#endif +#ifdef SSL2_ST_SEND_SERVER_VERIFY_B + S(SSL2_ST_SEND_SERVER_VERIFY_B), +#endif +#ifdef SSL2_ST_SEND_SERVER_VERIFY_C + S(SSL2_ST_SEND_SERVER_VERIFY_C), +#endif +#ifdef SSL2_ST_SERVER_START_ENCRYPTION + S(SSL2_ST_SERVER_START_ENCRYPTION), +#endif +#ifdef SSL2_ST_X509_GET_CLIENT_CERTIFICATE + S(SSL2_ST_X509_GET_CLIENT_CERTIFICATE), +#endif +#ifdef SSL2_ST_X509_GET_SERVER_CERTIFICATE + S(SSL2_ST_X509_GET_SERVER_CERTIFICATE), +#endif +#ifdef SSL3_ST_CR_CERT_A + S(SSL3_ST_CR_CERT_A), +#endif +#ifdef SSL3_ST_CR_CERT_B + S(SSL3_ST_CR_CERT_B), +#endif +#ifdef SSL3_ST_CR_CERT_REQ_A + S(SSL3_ST_CR_CERT_REQ_A), +#endif +#ifdef SSL3_ST_CR_CERT_REQ_B + S(SSL3_ST_CR_CERT_REQ_B), +#endif +#ifdef SSL3_ST_CR_CERT_STATUS_A + S(SSL3_ST_CR_CERT_STATUS_A), +#endif +#ifdef SSL3_ST_CR_CERT_STATUS_B + S(SSL3_ST_CR_CERT_STATUS_B), +#endif +#ifdef SSL3_ST_CR_CHANGE_A + S(SSL3_ST_CR_CHANGE_A), +#endif +#ifdef SSL3_ST_CR_CHANGE_B + S(SSL3_ST_CR_CHANGE_B), +#endif +#ifdef SSL3_ST_CR_FINISHED_A + S(SSL3_ST_CR_FINISHED_A), +#endif +#ifdef SSL3_ST_CR_FINISHED_B + S(SSL3_ST_CR_FINISHED_B), +#endif +#ifdef SSL3_ST_CR_KEY_EXCH_A + S(SSL3_ST_CR_KEY_EXCH_A), +#endif +#ifdef SSL3_ST_CR_KEY_EXCH_B + S(SSL3_ST_CR_KEY_EXCH_B), +#endif +#ifdef SSL3_ST_CR_SESSION_TICKET_A + S(SSL3_ST_CR_SESSION_TICKET_A), +#endif +#ifdef SSL3_ST_CR_SESSION_TICKET_B + S(SSL3_ST_CR_SESSION_TICKET_B), +#endif +#ifdef SSL3_ST_CR_SRVR_DONE_A + S(SSL3_ST_CR_SRVR_DONE_A), +#endif +#ifdef SSL3_ST_CR_SRVR_DONE_B + S(SSL3_ST_CR_SRVR_DONE_B), +#endif +#ifdef SSL3_ST_CR_SRVR_HELLO_A + S(SSL3_ST_CR_SRVR_HELLO_A), +#endif +#ifdef SSL3_ST_CR_SRVR_HELLO_B + S(SSL3_ST_CR_SRVR_HELLO_B), +#endif +#ifdef SSL3_ST_CW_CERT_A + S(SSL3_ST_CW_CERT_A), +#endif +#ifdef SSL3_ST_CW_CERT_B + S(SSL3_ST_CW_CERT_B), +#endif +#ifdef SSL3_ST_CW_CERT_C + S(SSL3_ST_CW_CERT_C), +#endif +#ifdef SSL3_ST_CW_CERT_D + S(SSL3_ST_CW_CERT_D), +#endif +#ifdef SSL3_ST_CW_CERT_VRFY_A + S(SSL3_ST_CW_CERT_VRFY_A), +#endif +#ifdef SSL3_ST_CW_CERT_VRFY_B + S(SSL3_ST_CW_CERT_VRFY_B), +#endif +#ifdef SSL3_ST_CW_CHANGE_A + S(SSL3_ST_CW_CHANGE_A), +#endif +#ifdef SSL3_ST_CW_CHANGE_B + S(SSL3_ST_CW_CHANGE_B), +#endif +#ifdef SSL3_ST_CW_CLNT_HELLO_A + S(SSL3_ST_CW_CLNT_HELLO_A), +#endif +#ifdef SSL3_ST_CW_CLNT_HELLO_B + S(SSL3_ST_CW_CLNT_HELLO_B), +#endif +#ifdef SSL3_ST_CW_FINISHED_A + S(SSL3_ST_CW_FINISHED_A), +#endif +#ifdef SSL3_ST_CW_FINISHED_B + S(SSL3_ST_CW_FINISHED_B), +#endif +#ifdef SSL3_ST_CW_FLUSH + S(SSL3_ST_CW_FLUSH), +#endif +#ifdef SSL3_ST_CW_KEY_EXCH_A + S(SSL3_ST_CW_KEY_EXCH_A), +#endif +#ifdef SSL3_ST_CW_KEY_EXCH_B + S(SSL3_ST_CW_KEY_EXCH_B), +#endif +#ifdef SSL3_ST_SR_CERT_A + S(SSL3_ST_SR_CERT_A), +#endif +#ifdef SSL3_ST_SR_CERT_B + S(SSL3_ST_SR_CERT_B), +#endif +#ifdef SSL3_ST_SR_CERT_VRFY_A + S(SSL3_ST_SR_CERT_VRFY_A), +#endif +#ifdef SSL3_ST_SR_CERT_VRFY_B + S(SSL3_ST_SR_CERT_VRFY_B), +#endif +#ifdef SSL3_ST_SR_CHANGE_A + S(SSL3_ST_SR_CHANGE_A), +#endif +#ifdef SSL3_ST_SR_CHANGE_B + S(SSL3_ST_SR_CHANGE_B), +#endif +#ifdef SSL3_ST_SR_CLNT_HELLO_A + S(SSL3_ST_SR_CLNT_HELLO_A), +#endif +#ifdef SSL3_ST_SR_CLNT_HELLO_B + S(SSL3_ST_SR_CLNT_HELLO_B), +#endif +#ifdef SSL3_ST_SR_CLNT_HELLO_C + S(SSL3_ST_SR_CLNT_HELLO_C), +#endif +#ifdef SSL3_ST_SR_FINISHED_A + S(SSL3_ST_SR_FINISHED_A), +#endif +#ifdef SSL3_ST_SR_FINISHED_B + S(SSL3_ST_SR_FINISHED_B), +#endif +#ifdef SSL3_ST_SR_KEY_EXCH_A + S(SSL3_ST_SR_KEY_EXCH_A), +#endif +#ifdef SSL3_ST_SR_KEY_EXCH_B + S(SSL3_ST_SR_KEY_EXCH_B), +#endif +#ifdef SSL3_ST_SW_CERT_A + S(SSL3_ST_SW_CERT_A), +#endif +#ifdef SSL3_ST_SW_CERT_B + S(SSL3_ST_SW_CERT_B), +#endif +#ifdef SSL3_ST_SW_CERT_REQ_A + S(SSL3_ST_SW_CERT_REQ_A), +#endif +#ifdef SSL3_ST_SW_CERT_REQ_B + S(SSL3_ST_SW_CERT_REQ_B), +#endif +#ifdef SSL3_ST_SW_CERT_STATUS_A + S(SSL3_ST_SW_CERT_STATUS_A), +#endif +#ifdef SSL3_ST_SW_CERT_STATUS_B + S(SSL3_ST_SW_CERT_STATUS_B), +#endif +#ifdef SSL3_ST_SW_CHANGE_A + S(SSL3_ST_SW_CHANGE_A), +#endif +#ifdef SSL3_ST_SW_CHANGE_B + S(SSL3_ST_SW_CHANGE_B), +#endif +#ifdef SSL3_ST_SW_FINISHED_A + S(SSL3_ST_SW_FINISHED_A), +#endif +#ifdef SSL3_ST_SW_FINISHED_B + S(SSL3_ST_SW_FINISHED_B), +#endif +#ifdef SSL3_ST_SW_FLUSH + S(SSL3_ST_SW_FLUSH), +#endif +#ifdef SSL3_ST_SW_HELLO_REQ_A + S(SSL3_ST_SW_HELLO_REQ_A), +#endif +#ifdef SSL3_ST_SW_HELLO_REQ_B + S(SSL3_ST_SW_HELLO_REQ_B), +#endif +#ifdef SSL3_ST_SW_HELLO_REQ_C + S(SSL3_ST_SW_HELLO_REQ_C), +#endif +#ifdef SSL3_ST_SW_KEY_EXCH_A + S(SSL3_ST_SW_KEY_EXCH_A), +#endif +#ifdef SSL3_ST_SW_KEY_EXCH_B + S(SSL3_ST_SW_KEY_EXCH_B), +#endif +#ifdef SSL3_ST_SW_SESSION_TICKET_A + S(SSL3_ST_SW_SESSION_TICKET_A), +#endif +#ifdef SSL3_ST_SW_SESSION_TICKET_B + S(SSL3_ST_SW_SESSION_TICKET_B), +#endif +#ifdef SSL3_ST_SW_SRVR_DONE_A + S(SSL3_ST_SW_SRVR_DONE_A), +#endif +#ifdef SSL3_ST_SW_SRVR_DONE_B + S(SSL3_ST_SW_SRVR_DONE_B), +#endif +#ifdef SSL3_ST_SW_SRVR_HELLO_A + S(SSL3_ST_SW_SRVR_HELLO_A), +#endif +#ifdef SSL3_ST_SW_SRVR_HELLO_B + S(SSL3_ST_SW_SRVR_HELLO_B), +#endif +#ifdef SSL_ST_ACCEPT + S(SSL_ST_ACCEPT), +#endif +#ifdef SSL_ST_BEFORE + S(SSL_ST_BEFORE), +#endif +#ifdef SSL_ST_CONNECT + S(SSL_ST_CONNECT), +#endif +#ifdef SSL_ST_INIT + S(SSL_ST_INIT), +#endif +#ifdef SSL_ST_MASK + S(SSL_ST_MASK), +#endif +#ifdef SSL_ST_OK + S(SSL_ST_OK), +#endif +#ifdef SSL_ST_READ_BODY + S(SSL_ST_READ_BODY), +#endif +#ifdef SSL_ST_READ_DONE + S(SSL_ST_READ_DONE), +#endif +#ifdef SSL_ST_READ_HEADER + S(SSL_ST_READ_HEADER), +#endif +#ifdef SSL_ST_RENEGOTIATE + S(SSL_ST_RENEGOTIATE), +#endif + { 0, NULL } +}; + +#endif + |