summaryrefslogtreecommitdiffstats
path: root/ssl/ssl3.h
diff options
context:
space:
mode:
authorBen Laurie <ben@openssl.org>2010-07-28 10:06:55 +0000
committerBen Laurie <ben@openssl.org>2010-07-28 10:06:55 +0000
commitee2ffc279417f15fef3b1073c7dc81a908991516 (patch)
treee2af21f279101d5a8f8e841bf7f70b940496907f /ssl/ssl3.h
parentb122e482f94f1dbda6a93b4c53ccdc92b4046deb (diff)
Add Next Protocol Negotiation.
Diffstat (limited to 'ssl/ssl3.h')
-rw-r--r--ssl/ssl3.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/ssl/ssl3.h b/ssl/ssl3.h
index baaa89e717..e98aac5aa8 100644
--- a/ssl/ssl3.h
+++ b/ssl/ssl3.h
@@ -455,6 +455,12 @@ typedef struct ssl3_state_st
void *server_opaque_prf_input;
size_t server_opaque_prf_input_len;
+#ifndef OPENSSL_NO_NPN
+ /* Set if we saw the Next Protocol Negotiation extension from
+ our peer. */
+ int next_proto_neg_seen;
+#endif
+
struct {
/* actually only needs to be 16+20 */
unsigned char cert_verify_md[EVP_MAX_MD_SIZE*2];
@@ -546,6 +552,10 @@ typedef struct ssl3_state_st
#define SSL3_ST_CW_CERT_VRFY_B (0x191|SSL_ST_CONNECT)
#define SSL3_ST_CW_CHANGE_A (0x1A0|SSL_ST_CONNECT)
#define SSL3_ST_CW_CHANGE_B (0x1A1|SSL_ST_CONNECT)
+#ifndef OPENSSL_NO_NPN
+#define SSL3_ST_CW_NEXT_PROTO_A (0x200|SSL_ST_CONNECT)
+#define SSL3_ST_CW_NEXT_PROTO_B (0x201|SSL_ST_CONNECT)
+#endif
#define SSL3_ST_CW_FINISHED_A (0x1B0|SSL_ST_CONNECT)
#define SSL3_ST_CW_FINISHED_B (0x1B1|SSL_ST_CONNECT)
/* read from server */
@@ -591,6 +601,10 @@ typedef struct ssl3_state_st
#define SSL3_ST_SR_CERT_VRFY_B (0x1A1|SSL_ST_ACCEPT)
#define SSL3_ST_SR_CHANGE_A (0x1B0|SSL_ST_ACCEPT)
#define SSL3_ST_SR_CHANGE_B (0x1B1|SSL_ST_ACCEPT)
+#ifndef OPENSSL_NO_NPN
+#define SSL3_ST_SR_NEXT_PROTO_A (0x210|SSL_ST_ACCEPT)
+#define SSL3_ST_SR_NEXT_PROTO_B (0x211|SSL_ST_ACCEPT)
+#endif
#define SSL3_ST_SR_FINISHED_A (0x1C0|SSL_ST_ACCEPT)
#define SSL3_ST_SR_FINISHED_B (0x1C1|SSL_ST_ACCEPT)
/* write to client */
@@ -615,6 +629,9 @@ typedef struct ssl3_state_st
#define SSL3_MT_CLIENT_KEY_EXCHANGE 16
#define SSL3_MT_FINISHED 20
#define SSL3_MT_CERTIFICATE_STATUS 22
+#ifndef OPENSSL_NO_NPN
+#define SSL3_MT_NEXT_PROTO 67
+#endif
#define DTLS1_MT_HELLO_VERIFY_REQUEST 3