only send heartbeat extension from server if client sent one
[openssl.git] / ssl / ssl3.h
index 93f9ead3059b807c2d4e78122f551326d9a3bd3f..68a66e2b0017d1f47406c5c385bd7e340f0c46de 100644 (file)
@@ -389,6 +389,17 @@ typedef struct ssl3_buffer_st
 #define TLS1_FLAGS_SKIP_CERT_VERIFY            0x0010
 #define TLS1_FLAGS_KEEP_HANDSHAKE              0x0020
 
+/* SSL3_FLAGS_SGC_RESTART_DONE is set when we
+ * restart a handshake because of MS SGC and so prevents us
+ * from restarting the handshake in a loop. It's reset on a
+ * renegotiation, so effectively limits the client to one restart
+ * per negotiation. This limits the possibility of a DDoS
+ * attack where the client handshakes in a loop using SGC to
+ * restart. Servers which permit renegotiation can still be
+ * effected, but we can't prevent that.
+ */
+#define SSL3_FLAGS_SGC_RESTART_DONE            0x0040
+
 #ifndef OPENSSL_NO_SSL_INTERN
 
 typedef struct ssl3_state_st