Ethereal-dev: [Ethereal-dev] Re: packet-ssl.c patch - add AES (per rfc3268)

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Yaniv Kaul <ykaul@xxxxxxxxxxxx>
Date: Mon, 27 Jan 2003 14:37:49 +0200
This patch adds the below mentioned as well as compression method ZLIB and categorization of other compression methods (reserved by IANA, private range), as specified in http://www.ietf.org/internet-drafts/draft-ietf-tls-compression-04.txt.

Diffed' against 0.9.9 version.

(should be used instead the below mentioned patch).

Yaniv Kaul wrote:

Attached patch adds AES ciphersuites to the SSL dissector.
Diff'ed against 0.9.9 version.


--- packet-ssl.c.orig	Mon Jan 27 12:45:08 2003
+++ packet-ssl.c	Mon Jan 27 14:32:09 2003
@@ -366,6 +366,7 @@
 
 static const value_string ssl_31_compression_method[] = {
     { 0, "null" },
+    { 1, "ZLIB" },
     { 0x00, NULL }
 };
 
@@ -428,6 +429,18 @@
     { 0x001c, "SSL_FORTEZZA_KEA_WITH_NULL_SHA" },
     { 0x001d, "SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA" },
     { 0x001e, "SSL_FORTEZZA_KEA_WITH_RC4_128_SHA" },
+    { 0x002f, "TLS_RSA_WITH_AES_128_CBC_SHA" },
+    { 0x0030, "TLS_DH_DSS_WITH_AES_128_CBC_SHA" },
+    { 0x0031, "TLS_DH_RSA_WITH_AES_128_CBC_SHA" },
+    { 0x0032, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA" },
+    { 0x0033, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA" },
+    { 0x0034, "TLS_DH_anon_WITH_AES_128_CBC_SHA" },
+    { 0x0035, "TLS_RSA_WITH_AES_256_CBC_SHA" },
+    { 0x0036, "TLS_DH_DSS_WITH_AES_256_CBC_SHA" },
+    { 0x0037, "TLS_DH_RSA_WITH_AES_256_CBC_SHA" },
+    { 0x0038, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA" },
+    { 0x0039, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA" },
+    { 0x003A, "TLS_DH_anon_WITH_AES_256_CBC_SHA" },
     { 0x0062, "TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA" },
     { 0x0063, "TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA" },
     { 0x0064, "TLS_RSA_EXPORT1024_WITH_RC4_56_SHA" },
@@ -1283,7 +1296,7 @@
     proto_tree *cs_tree;
     guint16 cipher_suite_length = 0;
     guint8  compression_methods_length = 0;
-
+    guint8  compression_method;
     if (tree)
     {
         /* show the client version */
@@ -1350,8 +1363,15 @@
 
             while (compression_methods_length > 0)
             {
-                proto_tree_add_item(cs_tree, hf_ssl_handshake_comp_method,
+		compression_method = tvb_get_guint8(tvb, offset);
+		if (compression_method < 64)
+                   proto_tree_add_item(cs_tree, hf_ssl_handshake_comp_method,
                                     tvb, offset, 1, FALSE);
+		else
+		if (compression_method > 63 && compression_method < 193)
+		  proto_tree_add_text(cs_tree, tvb, offset, 1, "Compression Method: Reserved - to be assigned by IANA (%d)", compression_method);
+		else
+		  proto_tree_add_text(cs_tree, tvb, offset, 1, "Compression Method: Private use range (%d)", compression_method);
                 offset++;
                 compression_methods_length--;
             }