aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ssl-utils.c
diff options
context:
space:
mode:
authorkukosa <kukosa@f5534014-38df-0310-8fa8-9805f1628bb7>2007-01-04 09:20:18 +0000
committerkukosa <kukosa@f5534014-38df-0310-8fa8-9805f1628bb7>2007-01-04 09:20:18 +0000
commite678a3e831736f8d01179e7a3dbc4ec538b2e1d1 (patch)
tree95b5ae38c2250773fc22e3afac7987b922c8535d /epan/dissectors/packet-ssl-utils.c
parentc00ec50979ebcb09d84ae0c2f86102cf1e3688ba (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 git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@20300 f5534014-38df-0310-8fa8-9805f1628bb7
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 {