Commit 8eb67204 authored by kelsey's avatar kelsey
Browse files

Add multiple-middlebox support, plus improvements to the TLMSP envelope

parent 4db2c2c9
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1387,6 +1387,8 @@ SSL_F_TLMSP_MIDDLEBOX_PROCESS_CHANGE_CIPHER_SPEC:701:\
	tlmsp_middlebox_process_change_cipher_spec
SSL_F_TLMSP_MIDDLEBOX_PROCESS_CLIENT_HELLO:684:\
	tlmsp_middlebox_process_client_hello
SSL_F_TLMSP_MIDDLEBOX_PROCESS_MIDDLEBOX_HELLO_DONE:702:\
	tlmsp_middlebox_process_middlebox_hello_done
SSL_F_TLMSP_MIDDLEBOX_PROCESS_SERVER_HELLO:686:\
	tlmsp_middlebox_process_server_hello
SSL_F_TLMSP_MIDDLEBOX_SEND_MIDDLEBOX_HELLO:687:\
+1 −1
Original line number Diff line number Diff line
@@ -1046,7 +1046,7 @@ typedef enum {
    TLMSP_ST_SR_MB_KEY_EXCH,
    TLMSP_ST_SR_MB_HELLO_DONE,
    TLMSP_ST_CR_MB_HELLO,
    TLMSP_ST_CR_MB_CERT,
    TLMSP_ST_CR_MB_CERT,                /* 60 */
    TLMSP_ST_CR_MB_KEY_EXCH,
    TLMSP_ST_CR_MB_HELLO_DONE,
    TLMSP_ST_SR_MB_KEY_CONFIRM,
+1 −0
Original line number Diff line number Diff line
@@ -290,6 +290,7 @@ int ERR_load_SSL_strings(void);
# define SSL_F_TLMSP_MIDDLEBOX_POST_WRITE_CHANGE_CIPHER_SPEC 700
# define SSL_F_TLMSP_MIDDLEBOX_PROCESS_CHANGE_CIPHER_SPEC 701
# define SSL_F_TLMSP_MIDDLEBOX_PROCESS_CLIENT_HELLO       684
# define SSL_F_TLMSP_MIDDLEBOX_PROCESS_MIDDLEBOX_HELLO_DONE 702
# define SSL_F_TLMSP_MIDDLEBOX_PROCESS_SERVER_HELLO       686
# define SSL_F_TLMSP_MIDDLEBOX_SEND_MIDDLEBOX_HELLO       687
# define SSL_F_TLMSP_MIDDLEBOX_SEND_MIDDLEBOX_KEY_CONFIRMATION 698
+2 −0
Original line number Diff line number Diff line
@@ -441,6 +441,8 @@ static const ERR_STRING_DATA SSL_str_functs[] = {
     "tlmsp_middlebox_process_change_cipher_spec"},
    {ERR_PACK(ERR_LIB_SSL, SSL_F_TLMSP_MIDDLEBOX_PROCESS_CLIENT_HELLO, 0),
     "tlmsp_middlebox_process_client_hello"},
    {ERR_PACK(ERR_LIB_SSL, SSL_F_TLMSP_MIDDLEBOX_PROCESS_MIDDLEBOX_HELLO_DONE, 0),
     "tlmsp_middlebox_process_middlebox_hello_done"},
    {ERR_PACK(ERR_LIB_SSL, SSL_F_TLMSP_MIDDLEBOX_PROCESS_SERVER_HELLO, 0),
     "tlmsp_middlebox_process_server_hello"},
    {ERR_PACK(ERR_LIB_SSL, SSL_F_TLMSP_MIDDLEBOX_SEND_MIDDLEBOX_HELLO, 0),
+8 −1
Original line number Diff line number Diff line
@@ -293,7 +293,7 @@ int ossl_statem_server_read_transition(SSL *s, int mt)

    case TLMSP_ST_SR_MB_HELLO_DONE:
        if (mt == TLMSP_MT_MIDDLEBOX_HELLO) {
            st->hand_state = TLMSP_MT_MIDDLEBOX_HELLO;
            st->hand_state = TLMSP_ST_SR_MB_HELLO;
            return 1;
        }
        if (mt == SSL3_MT_CLIENT_KEY_EXCHANGE) {
@@ -344,6 +344,13 @@ int ossl_statem_server_read_transition(SSL *s, int mt)
        }
        break;

    case TLMSP_ST_SR_MB_KEY_CONFIRM:
        if (mt == TLMSP_MT_MIDDLEBOX_KEY_CONFIRMATION) {
            st->hand_state = TLMSP_ST_SR_MB_KEY_CONFIRM;
            return 1;
        }
        break;

    case TLS_ST_SR_CHANGE:
#ifndef OPENSSL_NO_NEXTPROTONEG
        if (s->s3->npn_seen) {
Loading