From 13cd69c5ec3bba7d3efbd99ba171e9d3591a8f86 Mon Sep 17 00:00:00 2001 From: R Kaja Mohideen Date: Thu, 9 Mar 2017 21:24:57 +0530 Subject: [PATCH] Recognizing TLS Extension "HeartBeat" as Valid TLS Packet Motivation: The widely used SSL Implementation, OpenSSL, already supports Heartbeat Extension; both sending and responding to Heartbeat Messages. But, since Netty is not recognizing that extension as valid packet, peers won't be able to use this extension. Modification: Update SslUtils.java to recognize Heartbeat Extension as valid tls packet. Result: With this change, softwares using Netty + OpenSSL will be able to respond for TLS Heartbeat requests (actually taken care by OpenSSL - no need of any extra implementation from Clients) --- handler/src/main/java/io/netty/handler/ssl/SslUtils.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/handler/src/main/java/io/netty/handler/ssl/SslUtils.java b/handler/src/main/java/io/netty/handler/ssl/SslUtils.java index 71c7c1c5d4..2f3b5b877f 100644 --- a/handler/src/main/java/io/netty/handler/ssl/SslUtils.java +++ b/handler/src/main/java/io/netty/handler/ssl/SslUtils.java @@ -48,6 +48,11 @@ final class SslUtils { */ static final int SSL_CONTENT_TYPE_APPLICATION_DATA = 23; + /** + * HeartBeat Extension + */ + static final int SSL_CONTENT_TYPE_EXTENSION_HEARTBEAT = 24; + /** * the length of the ssl record header (in bytes) */ @@ -90,6 +95,7 @@ final class SslUtils { case SSL_CONTENT_TYPE_ALERT: case SSL_CONTENT_TYPE_HANDSHAKE: case SSL_CONTENT_TYPE_APPLICATION_DATA: + case SSL_CONTENT_TYPE_EXTENSION_HEARTBEAT: tls = true; break; default: @@ -176,6 +182,7 @@ final class SslUtils { case SSL_CONTENT_TYPE_ALERT: case SSL_CONTENT_TYPE_HANDSHAKE: case SSL_CONTENT_TYPE_APPLICATION_DATA: + case SSL_CONTENT_TYPE_EXTENSION_HEARTBEAT: tls = true; break; default: