aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ssl-utils.c
diff options
context:
space:
mode:
authorTomas Kukosa <tomas.kukosa@siemens.com>2007-01-04 09:20:18 +0000
committerTomas Kukosa <tomas.kukosa@siemens.com>2007-01-04 09:20:18 +0000
commitcf6f013568b65eaaa716f8c37edb3e4777b9e4f4 (patch)
tree95b5ae38c2250773fc22e3afac7987b922c8535d /epan/dissectors/packet-ssl-utils.c
parent1818a5c8cb3e91da2d13f331011b8a419a4e4121 (diff)
- new ssl_set_master_secret() which can set master secret (and optionally other parameters) into SSL dissector from external source, e.g. private 'trace protocol' dissector
- call 'data' subdissector for decrypted data in real dissector is not found svn path=/trunk/; revision=20300
Diffstat (limited to 'epan/dissectors/packet-ssl-utils.c')
-rw-r--r--epan/dissectors/packet-ssl-utils.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/epan/dissectors/packet-ssl-utils.c b/epan/dissectors/packet-ssl-utils.c
index 90472f7422..b7f9563019 100644
--- a/epan/dissectors/packet-ssl-utils.c
+++ b/epan/dissectors/packet-ssl-utils.c
@@ -34,7 +34,7 @@
static gint ver_major, ver_minor, ver_patch;
void
-ssl_data_set(StringInfo* str, guchar* data, guint len)
+ssl_data_set(StringInfo* str, const guchar* data, guint len)
{
memcpy(str->data, data, len);
str->data_len = len;
@@ -149,7 +149,7 @@ ssl_md5_cleanup(SSL_MD5_CTX* md)
gcry_md_close(*(md));
}
-static gint
+gint
ssl_cipher_setiv(gcry_cipher_hd_t *cipher,guchar* iv, gint iv_len)
{
/* guchar * ivp; */
@@ -1369,6 +1369,10 @@ ssl_session_init(SslDecryptSession* ssl_session)
ssl_session->client_random.data = ssl_session->_client_random;
ssl_session->server_random.data = ssl_session->_server_random;
ssl_session->master_secret.data_len = 48;
+ ssl_session->server_data_for_iv.data = 0;
+ ssl_session->server_data_for_iv.data = ssl_session->_server_data_for_iv;
+ ssl_session->client_data_for_iv.data = 0;
+ ssl_session->client_data_for_iv.data = ssl_session->_client_data_for_iv;
ssl_session->app_data_segment.data=NULL;
ssl_session->app_data_segment.data_len=0;
}
@@ -1465,6 +1469,11 @@ ssl_association_add(GTree* associations, dissector_handle_t handle, guint port,
(assoc->tcp)?"TCP":"UDP", port, protocol, assoc->handle);
+ if (!assoc->handle) {
+ ssl_debug_printf("association_add could not find handle for protocol '%s', try to find 'data' dissector\n", protocol);
+ assoc->handle = find_dissector("data");
+ }
+
if(!assoc->handle){
fprintf(stderr, "association_add() could not find handle for protocol:%s\n",protocol);
} else {