Ethereal-dev: [Ethereal-dev] New update of packet-wsp with snapshot of 2001-01-28
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: "Alexandre P. Ferreira" <alexandref@xxxxxxxxxxxxxxx>
Date: Mon, 29 Jan 2001 14:21:46 -0200
Hi, I've updated my original patch using sugestions of Guy Harris, and reporting it back. My patch is a lot of insertions and some corrections of header decodings and a bug in POST decoding code. Best regards, Alexandre P. Ferreira
59d58
< static int proto_wtls = HF_EMPTY;
84d82
< static int hf_wsp_header_accept_language_str = HF_EMPTY;
100,165d97
< static int hf_wsp_header_transfer_encoding = HF_EMPTY;
< static int hf_wsp_header_transfer_encoding_str = HF_EMPTY;
< static int hf_wsp_header_via = HF_EMPTY;
<
< static int hf_wtls_record = HF_EMPTY;
< static int hf_wtls_record_type = HF_EMPTY;
< static int hf_wtls_record_length = HF_EMPTY;
< static int hf_wtls_record_sequence = HF_EMPTY;
< static int hf_wtls_record_ciphered = HF_EMPTY;
< static int hf_wtls_hands = HF_EMPTY;
< static int hf_wtls_hands_type = HF_EMPTY;
< static int hf_wtls_hands_length = HF_EMPTY;
< static int hf_wtls_hands_cli_hello = HF_EMPTY;
< static int hf_wtls_hands_cli_hello_version = HF_EMPTY;
< static int hf_wtls_hands_cli_hello_gmt = HF_EMPTY;
< static int hf_wtls_hands_cli_hello_random = HF_EMPTY;
< static int hf_wtls_hands_cli_hello_session = HF_EMPTY;
< static int hf_wtls_hands_cli_hello_cli_key_id = HF_EMPTY;
< static int hf_wtls_hands_cli_hello_trust_key_id = HF_EMPTY;
< static int hf_wtls_hands_cli_hello_key_exchange =HF_EMPTY;
< static int hf_wtls_hands_cli_hello_key_exchange_suite =HF_EMPTY;
< static int hf_wtls_hands_cli_hello_key_parameter_index =HF_EMPTY;
< static int hf_wtls_hands_cli_hello_key_parameter_set =HF_EMPTY;
< static int hf_wtls_hands_cli_hello_key_identifier_type =HF_EMPTY;
< static int hf_wtls_hands_cli_hello_cipher_suite =HF_EMPTY;
< static int hf_wtls_hands_cli_hello_cipher_suite_item =HF_EMPTY;
< static int hf_wtls_hands_cli_hello_cipher_bulk =HF_EMPTY;
< static int hf_wtls_hands_cli_hello_cipher_mac =HF_EMPTY;
< static int hf_wtls_hands_cli_hello_compression_methods =HF_EMPTY;
< static int hf_wtls_hands_cli_hello_compression =HF_EMPTY;
< static int hf_wtls_hands_cli_hello_sequence_mode =HF_EMPTY;
< static int hf_wtls_hands_cli_hello_key_refresh =HF_EMPTY;
< static int hf_wtls_hands_serv_hello = HF_EMPTY;
< static int hf_wtls_hands_serv_hello_version = HF_EMPTY;
< static int hf_wtls_hands_serv_hello_gmt = HF_EMPTY;
< static int hf_wtls_hands_serv_hello_random = HF_EMPTY;
< static int hf_wtls_hands_serv_hello_session = HF_EMPTY;
< static int hf_wtls_hands_serv_hello_cli_key_id =HF_EMPTY;
< static int hf_wtls_hands_serv_hello_cipher_suite_item =HF_EMPTY;
< static int hf_wtls_hands_serv_hello_cipher_bulk =HF_EMPTY;
< static int hf_wtls_hands_serv_hello_cipher_mac =HF_EMPTY;
< static int hf_wtls_hands_serv_hello_compression =HF_EMPTY;
< static int hf_wtls_hands_serv_hello_sequence_mode =HF_EMPTY;
< static int hf_wtls_hands_serv_hello_key_refresh =HF_EMPTY;
< static int hf_wtls_hands_certificates =HF_EMPTY;
< static int hf_wtls_hands_certificate =HF_EMPTY;
< static int hf_wtls_hands_certificate_type =HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_version =HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_signature_type =HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_issuer_type =HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_issuer_charset =HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_issuer_name =HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_valid_not_before =HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_valid_not_after =HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_subject_type =HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_subject_charset =HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_subject_name = HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_public_key_type = HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_key_parameter_index = HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_key_parameter_set = HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_rsa_exponent = HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_rsa_modules = HF_EMPTY;
< static int hf_wtls_hands_certificate_wtls_signature = HF_EMPTY;
< static int hf_wtls_alert = HF_EMPTY;
< static int hf_wtls_alert_level = HF_EMPTY;
< static int hf_wtls_alert_description = HF_EMPTY;
173,177d104
< static gint ett_wtls_rec = ETT_EMPTY;
< static gint ett_wtls_msg_type = ETT_EMPTY;
< static gint ett_wtls_msg_type_item = ETT_EMPTY;
< static gint ett_wtls_msg_type_item_sub = ETT_EMPTY;
< static gint ett_wtls_msg_type_item_sub_sub = ETT_EMPTY;
336,431c263
< { 0x01,"Afar(aa)" },
< { 0x02,"Abkhazian(ab)" },
< { 0x03,"Afrikaans(af)" },
< { 0x04,"Amharic(am)" },
< { 0x05,"Arabic(ar)" },
< { 0x06,"Assamese(as)" },
< { 0x07,"Aymara(ay)" },
< { 0x08,"Azerbaijani(az)" },
< { 0x09,"Bashkir(ba)" },
< { 0x0A,"Byelorussian(be)" },
< { 0x0B,"Bulgarian(bg)" },
< { 0x0C,"Bihari(bh)" },
< { 0x0D,"Bislama(bi)" },
< { 0x0E,"Bengali; Bangla(bn)" },
< { 0x0F,"Tibetan(bo)" },
< { 0x10,"Breton(br)" },
< { 0x11,"Catalan(ca)" },
< { 0x12,"Corsican(co)" },
< { 0x13,"Czech(cs)" },
< { 0x14,"Welsh(cy)" },
< { 0x15,"Danish(da)" },
< { 0x16,"German(de)" },
< { 0x17,"Bhutani(dz)" },
< { 0x18,"Greek(el)" },
< { 0x19,"English(en)" },
< { 0x1A,"Esperanto(eo)" },
< { 0x1B,"Spanish(es)" },
< { 0x1C,"Estonian(et)" },
< { 0x1D,"Basque(eu)" },
< { 0x1E,"Persian(fa)" },
< { 0x1F,"Finnish(fi)" },
< { 0x20,"Fiji(fj)" },
< { 0x22,"French(fr)" },
< { 0x24,"Irish(ga)" },
< { 0x25,"Scots Gaelic(gd)" },
< { 0x26,"Galician(gl)" },
< { 0x27,"Guarani(gn)" },
< { 0x28,"Gujarati(gu)" },
< { 0x29,"Hausa(ha)" },
< { 0x2A,"Hebrew (formerly iw)(he)" },
< { 0x2B,"Hindi(hi)" },
< { 0x2C,"Croatian(hr)" },
< { 0x2D,"Hungarian(hu)" },
< { 0x2E,"Armenian(hy)" },
< { 0x30,"Indonesian (formerly in)(id)" },
< { 0x47,"Maori(mi)" },
< { 0x48,"Macedonian(mk)" },
< { 0x49,"Malayalam(ml)" },
< { 0x4A,"Mongolian(mn)" },
< { 0x4B,"Moldavian(mo)" },
< { 0x4C,"Marathi(mr)" },
< { 0x4D,"Malay(ms)" },
< { 0x4E,"Maltese(mt)" },
< { 0x4F,"Burmese(my)" },
< { 0x51,"Nepali(ne)" },
< { 0x52,"Dutch(nl)" },
< { 0x53,"Norwegian(no)" },
< { 0x54,"Occitan(oc)" },
< { 0x55,"(Afan) Oromo(om)" },
< { 0x56,"Oriya(or)" },
< { 0x57,"Punjabi(pa)" },
< { 0x58,"Polish(po)" },
< { 0x59,"Pashto, Pushto(ps)" },
< { 0x5A,"Portuguese(pt)" },
< { 0x5B,"Quechua(qu)" },
< { 0x5D,"Kirundi(rn)" },
< { 0x5E,"Romanian(ro)" },
< { 0x5F,"Russian(ru)" },
< { 0x60,"Kinyarwanda(rw)" },
< { 0x61,"Sanskrit(sa)" },
< { 0x62,"Sindhi(sd)" },
< { 0x63,"Sangho(sg)" },
< { 0x64,"Serbo-Croatian(sh)" },
< { 0x65,"Sinhalese(si)" },
< { 0x66,"Slovak(sk)" },
< { 0x67,"Slovenian(sl)" },
< { 0x68,"Samoan(sm)" },
< { 0x69,"Shona(sn)" },
< { 0x6A,"Somali(so)" },
< { 0x6B,"Albanian(sq)" },
< { 0x6C,"Serbian(sr)" },
< { 0x6D,"Siswati(ss)" },
< { 0x6E,"Sesotho(st)" },
< { 0x6F,"Sundanese(su)" },
< { 0x70,"Swedish(sv)" },
< { 0x71,"Swahili(sw)" },
< { 0x72,"Tamil(ta)" },
< { 0x73,"Telugu(te)" },
< { 0x74,"Tajik(tg)" },
< { 0x75,"Thai(th)" },
< { 0x76,"Tigrinya(ti)" },
< { 0x81,"Nauru(na)" },
< { 0x82,"Faeroese(fo)" },
< { 0x83,"Frisian(fy)" },
< { 0x84,"Interlingua(ia)" },
< { 0x8C,"Rhaeto-Romance(rm)" },
---
> { 0x19, "English (en)" },
456,617d287
< static const value_string vals_transfer_encoding[] = {
< { 0x80, "Chunked" },
< { 0x00, NULL }
< };
< static const value_string wtls_vals_record_type[] = {
< { 0x01, "change_cipher_data" },
< { 0x02, "alert" },
< { 0x03, "handshake" },
< { 0x04, "application_data" },
< { 0x00, NULL }
< };
<
< static const value_string wtls_vals_cipher_bulk[] = {
< { 0x00, "Null" },
< { 0x01, "RC5 CBC 40" },
< { 0x02, "RC5 CBC 56" },
< { 0x03, "RC5 CBC" },
< { 0x04, "DES CBC 40" },
< { 0x05, "DES CBC" },
< { 0x06, "3DES CBC cwEDE40" },
< { 0x07, "IDEA CBC 40" },
< { 0x08, "IDEA CBC 56" },
< { 0x09, "IDEA CBC" },
< { 0x00, NULL }
< };
<
< static const value_string wtls_vals_cipher_mac[] = {
< { 0x00, "SHA 0" },
< { 0x01, "SHA 40 " },
< { 0x02, "SHA 80" },
< { 0x03, "SHA" },
< { 0x04, "SHA XOR 40" },
< { 0x05, "MD5 40" },
< { 0x06, "MD5 80" },
< { 0x07, "MD5" },
< { 0x00, NULL }
< };
<
< static const value_string wtls_vals_handshake_type[] = {
< { 0, "Hello Request" },
< { 1, "Client Hello" },
< { 2, "Server Hello" },
< { 11, "Certificate" },
< { 12, "Server Key Exchange" },
< { 13, "Certificate Request" },
< { 14, "Server Hello Done" },
< { 15, "Certificate Verify" },
< { 16, "Client Key Exchange" },
< { 20, "Finished" },
< { 0x00, NULL }
< };
<
< static const value_string wtls_vals_key_exchange_suite[] = {
< { 0, "NULL" },
< { 1, "Shared Secret" },
< { 2, "Diffie Hellman Anonymous" },
< { 3, "Diffie Hellman Anonymous 512" },
< { 4, "Diffie Hellman Anonymous 768" },
< { 5, "RSA Anonymous" },
< { 6, "RSA Anonymous 512" },
< { 7, "RSA Anonymous 768" },
< { 8, "RSA" },
< { 9, "RSA 512" },
< { 10, "RSA 768" },
< { 11, "EC Diffie Hellman Anonymous" },
< { 12, "EC Diffie Hellman Anonymous 113" },
< { 13, "EC Diffie Hellman Anonymous 131" },
< { 14, "EC Diffie Hellman ECDSA" },
< { 15, "EC Diffie Hellman Anonymous Uncomp" },
< { 16, "EC Diffie Hellman Anonymous Uncomp 113" },
< { 17, "EC Diffie Hellman Anonymous Uncomp 131" },
< { 18, "EC Diffie Hellman ECDSA Uncomp" },
< { 0x00, NULL }
< };
<
< static const value_string wtls_vals_identifier_type[] = {
< { 0, "No identifier" },
< { 1, "Textual Name" },
< { 2, "Binary Name" },
< { 254, "SHA-1 Hash Publie Key" },
< { 255, "x509 Distinguished Name" },
< { 0x00, NULL }
< };
<
< static const value_string wtls_vals_certificate_type[] = {
< { 1, "WTLS" },
< { 2, "X509" },
< { 3, "X968" },
< { 4, "Url" },
< { 0x00, NULL }
< };
<
< static const value_string wtls_vals_compression[] = {
< { 0, "Null" },
< { 0x00, NULL }
< };
<
< static const value_string wtls_vals_sequence_mode[] = {
< { 0, "Off" },
< { 1, "Implicit" },
< { 2, "Explicit" },
< { 0x00, NULL }
< };
<
< static const value_string wtls_vals_certificate_signature[] = {
< { 0, "Anonymous" },
< { 1, "ECDSA_SHA" },
< { 2, "RSA_SHA" },
< { 0x00, NULL }
< };
<
< static const value_string wtls_vals_public_key_type[] = {
< { 2, "RSA" },
< { 3, "ECDH" },
< { 4, "ECSA" },
< { 0x00, NULL }
< };
<
< static const value_string wtls_vals_alert_level[] = {
< { 1, "Warning" },
< { 2, "Critical" },
< { 3, "Fatal" },
< { 0x00, NULL }
< };
<
< static const value_string wtls_vals_alert_description[] = {
< { 0,"connection_close_notify"},
< { 1,"session_close_notify"},
< { 5,"no_connection"},
< { 10,"unexpected_message"},
< { 11,"time_required"},
< { 20,"bad_record_mac"},
< { 21,"decryption_failed"},
< { 22,"record_overflow"},
< { 30,"decompression_failure"},
< { 40,"handshake_failure"},
< { 42,"bad_certificate"},
< { 43,"unsupported_certificate"},
< { 44,"certificate_revoked"},
< { 45,"certificate_expired"},
< { 46,"certificate_unknown"},
< { 47,"illegal_parameter"},
< { 48,"unknown_ca"},
< { 49,"access_denied"},
< { 50,"decode_error"},
< { 51,"decrypt_error"},
< { 52,"unknown_key_id"},
< { 53,"disabled_key_id"},
< { 54,"key_exchange_disabled"},
< { 55,"session_not_ready"},
< { 56,"unknown_parameter_index"},
< { 57,"duplicate_finished_received"},
< { 60,"export_restriction"},
< { 70,"protocol_version"},
< { 71,"insufficient_security"},
< { 80,"internal_error"},
< { 90,"user_canceled"},
< { 100,"no_renegotiation"},
< { 0x00, NULL }
< };
<
<
647,673d316
< #define WTLS_RECORD_TYPE_LENGTH 0x80
< #define WTLS_RECORD_TYPE_SEQUENCE 0x40
< #define WTLS_RECORD_TYPE_CIPHER_CUR 0x20
< #define WTLS_RECORD_CONTENT_TYPE 0x0f
<
< #define WTLS_ALERT 0x02
< #define WTLS_PLAIN_HANDSHAKE 0x03
<
< #define WTLS_HANDSHAKE_CLIENT_HELLO 1
< #define WTLS_HANDSHAKE_SERVER_HELLO 2
< #define WTLS_HANDSHAKE_CERTIFICATE 11
<
< #define CERTIFICATE_WTLS 1
< #define CERTIFICATE_X509 2
< #define CERTIFICATE_X968 3
< #define CERTIFICATE_URL 4
<
< #define IDENTIFIER_NULL 0
< #define IDENTIFIER_TEXT 1
< #define IDENTIFIER_BIN 2
< #define IDENTIFIER_SHA_1 254
< #define IDENTIFIER_X509 255
<
< #define PUBLIC_KEY_RSA 2
< #define PUBLIC_KEY_ECDH 3
< #define PUBLIC_KEY_ECDSA 4
<
683d325
< static void dissect_wtls_handshake (proto_tree *, tvbuff_t *, guint, guint);
772c414,422
< col_set_str(fdata, COL_PROTOCOL, "WSP" );
---
> switch ( pinfo->match_port )
> {
> case UDP_PORT_WSP:
> col_set_str(fdata, COL_PROTOCOL, "WSP" );
> break;
> case UDP_PORT_WTLS_WSP:
> col_set_str(fdata, COL_PROTOCOL, "WTLS+WSP" );
> break;
> }
779c429,432
< offset++;
---
> if ((pinfo->match_port == UDP_PORT_WSP) || (pinfo->match_port == UDP_PORT_WTLS_WSP))
> {
> offset++;
> };
805c458,461
< ti = proto_tree_add_item (wsp_tree, hf_wsp_header_tid,tvb,0,1,bo_little_endian);
---
> if ((pinfo->match_port == UDP_PORT_WSP) || (pinfo->match_port == UDP_PORT_WTLS_WSP))
> {
> ti = proto_tree_add_item (wsp_tree, hf_wsp_header_tid,tvb,0,1,bo_little_endian);
> }
949,1476d604
< /* Code to actually dissect the packets */
< static void
< dissect_wtls(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
< {
< frame_data *fdata = pinfo->fd;
< int offset = 0;
<
< char szInfo[ 50 ];
< int cchInfo;
< char pdut;
< char pdu_msg_type;
< guint count = 0;
< guint offset_wtls = 0;
<
< /* Set up structures we will need to add the protocol subtree and manage it */
< proto_item *ti;
< proto_tree *wtls_tree;
< proto_tree *wtls_rec_tree;
< proto_tree *wtls_msg_type_tree;
<
< /* This field shows up as the "Info" column in the display; you should make
< it, if possible, summarize what's in the packet, so that a user looking
< at the list of packets can tell what type of packet it is. */
<
< /* Display protocol type depending on the port */
< if (check_col(fdata, COL_PROTOCOL))
< {
< col_set_str(fdata, COL_PROTOCOL, "WTLS+WSP" );
< }
<
< /* Develop the string to put in the Info column */
< cchInfo = snprintf( szInfo, sizeof( szInfo ), "WTLS");
< if (check_col(fdata, COL_INFO)) {
< col_add_str(fdata, COL_INFO, szInfo );
< };
<
< /* In the interest of speed, if "tree" is NULL, don't do any work not
< necessary to generate protocol tree items. */
<
< if (tree) {
< ti = proto_tree_add_item(tree, proto_wtls, tvb, offset_wtls,
< tvb_length(tvb), bo_little_endian);
< wtls_tree = proto_item_add_subtree(ti, ett_wsp);
<
< for (offset_wtls=0; offset_wtls < (tvb_length(tvb)-1);) {
< pdut = tvb_get_guint8 (tvb, offset_wtls);
<
< offset = offset_wtls+1;
<
< if (pdut & WTLS_RECORD_TYPE_SEQUENCE) {
< offset+=2;
< }
< if (pdut & WTLS_RECORD_TYPE_LENGTH) {
< count = tvb_get_ntohs(tvb, offset);
< offset+=2;
< count += offset-offset_wtls;
< }
< else {
< count = tvb_length (tvb)-offset_wtls;
< }
< ti = proto_tree_add_item(wtls_tree, hf_wtls_record, tvb, offset_wtls,
< count, bo_little_endian);
< wtls_rec_tree = proto_item_add_subtree(ti, ett_wtls_rec);
<
< offset = offset_wtls;
<
< ti = proto_tree_add_item (wtls_rec_tree, hf_wtls_record_type,
< tvb,offset,1,bo_big_endian);
<
< offset++;
<
< offset_wtls += count;
<
< if (pdut & WTLS_RECORD_TYPE_SEQUENCE) {
< ti = proto_tree_add_item (wtls_rec_tree, hf_wtls_record_sequence,
< tvb,offset,2,bo_big_endian);
< offset+=2;
< }
< if (pdut & WTLS_RECORD_TYPE_LENGTH) {
< count = tvb_get_ntohs(tvb, offset);
< ti = proto_tree_add_item (wtls_rec_tree, hf_wtls_record_length,
< tvb,offset,2,bo_big_endian);
< offset+=2;
< }
< else {
< count = tvb_length (tvb)-offset;
< }
<
< if (pdut & WTLS_RECORD_TYPE_CIPHER_CUR) {
< ti = proto_tree_add_item (wtls_rec_tree, hf_wtls_record_ciphered,
< tvb,offset,count,bo_big_endian);
< continue;
< }
<
< switch (pdut & WTLS_RECORD_CONTENT_TYPE) {
< case WTLS_PLAIN_HANDSHAKE :
< dissect_wtls_handshake(wtls_rec_tree,tvb,offset,count);
< break;
< case WTLS_ALERT :
< ti = proto_tree_add_item(wtls_rec_tree, hf_wtls_alert, tvb, offset,
< count, bo_little_endian);
< wtls_msg_type_tree = proto_item_add_subtree(ti, ett_wtls_msg_type);
< pdu_msg_type = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item (wtls_msg_type_tree, hf_wtls_alert_level,
< tvb,offset,1,bo_big_endian);
< offset+=1;
< count = tvb_get_ntohs (tvb, offset);
< ti = proto_tree_add_item (wtls_msg_type_tree, hf_wtls_alert_description,
< tvb,offset,1,bo_big_endian);
< offset+=1;
< default:
< offset+=count;
< break;
< }
< }
< }
< }
<
< static void
< dissect_wtls_handshake(proto_tree *tree, tvbuff_t *tvb, guint offset, guint count)
< {
< char pdu_msg_type;
< struct timeval timeValue;
< int client_size = 0;
< guint value = 0;
< int size = 0;
< guint public_key = 0;
< guint signature = 0;
<
< proto_item *ti;
< proto_item *cli_key_item;
< proto_tree *wtls_msg_type_tree;
< proto_tree *wtls_msg_type_item_tree;
< proto_tree *wtls_msg_type_item_sub_tree;
< proto_tree *wtls_msg_type_item_sub_sub_tree;
<
< ti = proto_tree_add_item(tree, hf_wtls_hands, tvb, offset,count, bo_little_endian);
< wtls_msg_type_tree = proto_item_add_subtree(ti, ett_wtls_msg_type);
<
< pdu_msg_type = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item (wtls_msg_type_tree, hf_wtls_hands_type,
< tvb,offset,1,bo_big_endian);
< offset+=1;
< count = tvb_get_ntohs (tvb, offset);
< ti = proto_tree_add_item (wtls_msg_type_tree, hf_wtls_hands_length,
< tvb,offset,2,bo_big_endian);
< offset+=2;
< switch(pdu_msg_type) {
< case WTLS_HANDSHAKE_CLIENT_HELLO :
< ti = proto_tree_add_item(wtls_msg_type_tree, hf_wtls_hands_cli_hello, tvb, offset,
< count, bo_little_endian);
< wtls_msg_type_item_tree = proto_item_add_subtree(ti, ett_wtls_msg_type_item);
< ti = proto_tree_add_item (wtls_msg_type_item_tree, hf_wtls_hands_cli_hello_version,
< tvb,offset,1,bo_big_endian);
< offset++;
< timeValue.tv_sec = tvb_get_ntohl (tvb, offset);
< ti = proto_tree_add_time (wtls_msg_type_item_tree, hf_wtls_hands_cli_hello_gmt, tvb,
< offset, 4, &timeValue);
< offset+=4;
< ti = proto_tree_add_item (wtls_msg_type_item_tree, hf_wtls_hands_cli_hello_random,
< tvb,offset,12,bo_big_endian);
< offset+=12;
< count = tvb_get_guint8(tvb, offset);
< ti = proto_tree_add_item (wtls_msg_type_item_tree, hf_wtls_hands_cli_hello_session,
< tvb,offset,count+1,bo_big_endian);
< offset+=1+count;
< count = tvb_get_ntohs (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_tree,
< hf_wtls_hands_cli_hello_cli_key_id, tvb, offset,
< count+2, bo_little_endian);
< wtls_msg_type_item_sub_tree = proto_item_add_subtree(ti, ett_wtls_msg_type_item_sub);
< offset+=2;
< for (;count > 0;count-=client_size) {
< cli_key_item = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_cli_hello_key_exchange, tvb, offset,1,
< bo_little_endian);
< client_size=1;
< wtls_msg_type_item_sub_sub_tree = proto_item_add_subtree(cli_key_item,
< ett_wtls_msg_type_item_sub_sub);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
< hf_wtls_hands_cli_hello_key_exchange_suite,
< tvb,offset,1,bo_big_endian);
< offset++;
< value = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
< hf_wtls_hands_cli_hello_key_parameter_index,
< tvb,offset,1,bo_big_endian);
< offset++;
< client_size++;
< if (value == 0xff) {
< size = tvb_get_ntohs (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
< hf_wtls_hands_cli_hello_key_parameter_set,
< tvb,offset,size+2,bo_big_endian);
< offset+=size+2;
< client_size+=size+2;
< }
< value = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
< hf_wtls_hands_cli_hello_key_identifier_type,
< tvb,offset,1,bo_big_endian);
< offset++;
< client_size++;
< proto_item_set_len(cli_key_item, client_size);
< }
< count = tvb_get_ntohs (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_tree,
< hf_wtls_hands_cli_hello_trust_key_id, tvb, offset,
< count+2, bo_little_endian);
< wtls_msg_type_item_sub_tree = proto_item_add_subtree(ti, ett_wtls_msg_type_item_sub);
< offset+=2;
< for (;count > 0;count-=client_size) {
< cli_key_item = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_cli_hello_key_exchange, tvb, offset,1,
< bo_little_endian);
< client_size=1;
< wtls_msg_type_item_sub_sub_tree = proto_item_add_subtree(cli_key_item,
< ett_wtls_msg_type_item_sub_sub);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
< hf_wtls_hands_cli_hello_key_exchange_suite,
< tvb,offset,1,bo_big_endian);
< offset++;
< value = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
< hf_wtls_hands_cli_hello_key_parameter_index,
< tvb,offset,1,bo_big_endian);
< offset++;
< client_size++;
< if (value == 0xff) {
< size = tvb_get_ntohs (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
< hf_wtls_hands_cli_hello_key_parameter_set,
< tvb,offset,size+2,bo_big_endian);
< offset+=size+2;
< client_size+=size+2;
< }
< value = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
< hf_wtls_hands_cli_hello_key_identifier_type,
< tvb,offset,1,bo_big_endian);
< offset++;
< client_size++;
< proto_item_set_len(cli_key_item, client_size);
< }
< count = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_tree,
< hf_wtls_hands_cli_hello_cipher_suite, tvb, offset,
< count+1, bo_little_endian);
< wtls_msg_type_item_sub_tree = proto_item_add_subtree(ti, ett_wtls_msg_type_item_sub);
< offset+=1;
< for (;count > 0;count-=client_size) {
< cli_key_item = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_cli_hello_cipher_suite_item, tvb, offset,1,
< bo_little_endian);
< client_size=1;
< wtls_msg_type_item_sub_sub_tree = proto_item_add_subtree(cli_key_item,
< ett_wtls_msg_type_item_sub_sub);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
< hf_wtls_hands_cli_hello_cipher_bulk,
< tvb,offset,1,bo_big_endian);
< offset++;
< value = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
< hf_wtls_hands_cli_hello_cipher_mac,
< tvb,offset,1,bo_big_endian);
< offset++;
< client_size++;
< proto_item_set_len(cli_key_item, client_size);
< }
< count = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_tree,
< hf_wtls_hands_cli_hello_compression_methods, tvb, offset,
< count+1, bo_little_endian);
< wtls_msg_type_item_sub_tree = proto_item_add_subtree(ti, ett_wtls_msg_type_item_sub);
< offset+=1;
< for (;count > 0;count-=client_size) {
< client_size=0;
< ti = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_cli_hello_compression, tvb, offset,1,
< bo_little_endian);
< offset++;
< client_size++;
< }
< ti = proto_tree_add_item(wtls_msg_type_item_tree,
< hf_wtls_hands_cli_hello_sequence_mode, tvb, offset,
< 1, bo_little_endian);
< offset++;
< ti = proto_tree_add_item(wtls_msg_type_item_tree,
< hf_wtls_hands_cli_hello_key_refresh, tvb, offset,
< 1, bo_little_endian);
< break;
< case WTLS_HANDSHAKE_SERVER_HELLO :
< ti = proto_tree_add_item(wtls_msg_type_tree, hf_wtls_hands_serv_hello, tvb, offset,
< count, bo_little_endian);
< wtls_msg_type_item_tree = proto_item_add_subtree(ti, ett_wtls_msg_type_item);
< ti = proto_tree_add_item (wtls_msg_type_item_tree, hf_wtls_hands_serv_hello_version,
< tvb,offset,1,bo_big_endian);
< offset++;
< timeValue.tv_sec = tvb_get_ntohl (tvb, offset);
< ti = proto_tree_add_time (wtls_msg_type_item_tree, hf_wtls_hands_serv_hello_gmt, tvb,
< offset, 4, &timeValue);
< offset+=4;
< ti = proto_tree_add_item (wtls_msg_type_item_tree, hf_wtls_hands_serv_hello_random,
< tvb,offset,12,bo_big_endian);
< offset+=12;
< count = tvb_get_guint8(tvb, offset);
< ti = proto_tree_add_item (wtls_msg_type_item_tree, hf_wtls_hands_serv_hello_session,
< tvb,offset,count+1,bo_big_endian);
< offset+=1+count;
< ti = proto_tree_add_item(wtls_msg_type_item_tree,
< hf_wtls_hands_serv_hello_cli_key_id,
< tvb,offset,1,bo_big_endian);
< offset++;
< cli_key_item = proto_tree_add_item(wtls_msg_type_item_tree,
< hf_wtls_hands_serv_hello_cipher_suite_item, tvb, offset,2,
< bo_little_endian);
< wtls_msg_type_item_sub_tree = proto_item_add_subtree(cli_key_item,
< ett_wtls_msg_type_item_sub);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_serv_hello_cipher_bulk,
< tvb,offset,1,bo_big_endian);
< offset++;
< value = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_serv_hello_cipher_mac,
< tvb,offset,1,bo_big_endian);
< offset++;
< ti = proto_tree_add_item(wtls_msg_type_item_tree,
< hf_wtls_hands_serv_hello_compression, tvb, offset,1,
< bo_little_endian);
< offset++;
< ti = proto_tree_add_item(wtls_msg_type_item_tree,
< hf_wtls_hands_serv_hello_sequence_mode, tvb, offset,
< 1, bo_little_endian);
< offset++;
< ti = proto_tree_add_item(wtls_msg_type_item_tree,
< hf_wtls_hands_serv_hello_key_refresh, tvb, offset,
< 1, bo_little_endian);
< offset++;
< break;
< case WTLS_HANDSHAKE_CERTIFICATE :
< ti = proto_tree_add_item(wtls_msg_type_tree, hf_wtls_hands_certificates,
< tvb, offset,count, bo_little_endian);
< wtls_msg_type_item_tree = proto_item_add_subtree(ti, ett_wtls_msg_type_item);
< count = tvb_get_ntohs (tvb, offset);
< offset+=2;
< for (;count > 0;count-=client_size) {
< cli_key_item = proto_tree_add_item(wtls_msg_type_item_tree,
< hf_wtls_hands_certificate, tvb, offset,1,
< bo_little_endian);
< client_size=0;
< wtls_msg_type_item_sub_tree = proto_item_add_subtree(cli_key_item,
< ett_wtls_msg_type_item_sub);
< proto_item_set_len(cli_key_item, client_size);
< value = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_type, tvb, offset,1,
< bo_little_endian);
< offset++;
< client_size++;
< switch(value) {
< case CERTIFICATE_WTLS:
< ti = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_version,
< tvb, offset,1,
< bo_little_endian);
< offset++;
< client_size++;
< signature = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_signature_type,
< tvb, offset,1,
< bo_little_endian);
< offset++;
< client_size++;
< value = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_issuer_type,
< tvb, offset,1,
< bo_little_endian);
< offset++;
< client_size++;
< switch (value) {
< case IDENTIFIER_NULL :
< break;
< case IDENTIFIER_TEXT :
< ti = proto_tree_add_item(
< wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_issuer_charset,
< tvb, offset,2,
< bo_big_endian);
< offset+=2;
< client_size+=2;
< value = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(
< wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_issuer_name,
< tvb, offset,1+value,
< bo_big_endian);
< offset+=1+value;
< client_size+=1+value;
< break;
< case IDENTIFIER_BIN :
< break;
< case IDENTIFIER_SHA_1 :
< break;
< case IDENTIFIER_X509 :
< break;
< }
< timeValue.tv_sec = tvb_get_ntohl (tvb, offset);
< ti = proto_tree_add_time (wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_valid_not_before,
< tvb, offset, 4, &timeValue);
< offset+=4;
< client_size+=4;
< timeValue.tv_sec = tvb_get_ntohl (tvb, offset);
< ti = proto_tree_add_time (wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_valid_not_after,
< tvb, offset, 4, &timeValue);
< offset+=4;
< client_size+=4;
< value = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_subject_type,
< tvb, offset,1,
< bo_little_endian);
< offset++;
< client_size++;
< switch (value) {
< case IDENTIFIER_NULL :
< break;
< case IDENTIFIER_TEXT :
< ti = proto_tree_add_item(
< wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_subject_charset,
< tvb, offset,2,
< bo_big_endian);
< offset+=2;
< client_size+=2;
< value = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(
< wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_subject_name,
< tvb, offset,1+value,
< bo_big_endian);
< offset+=1+value;
< client_size+=1+value;
< break;
< case IDENTIFIER_BIN :
< break;
< case IDENTIFIER_SHA_1 :
< break;
< case IDENTIFIER_X509 :
< break;
< }
< public_key = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_public_key_type,
< tvb, offset,1,
< bo_little_endian);
< offset++;
< client_size++;
< value = tvb_get_guint8 (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_key_parameter_index,
< tvb,offset,1,bo_big_endian);
< offset++;
< client_size++;
< if (value == 0xff) {
< size = tvb_get_ntohs (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_key_parameter_set,
< tvb,offset,size+2,bo_big_endian);
< offset+=size+2;
< client_size+=size+2;
< }
< switch (public_key) {
< case PUBLIC_KEY_RSA :
< value = tvb_get_ntohs (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_rsa_exponent,
< tvb,offset,value+2,bo_big_endian);
< offset+=2+value;
< client_size+=2+value;
< value = tvb_get_ntohs (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_rsa_modules,
< tvb,offset,value+2,bo_big_endian);
< offset+=2+value;
< client_size+=2+value;
< break;
< case PUBLIC_KEY_ECDH :
< break;
< case PUBLIC_KEY_ECDSA :
< break;
< }
< value = tvb_get_ntohs (tvb, offset);
< ti = proto_tree_add_item(wtls_msg_type_item_sub_tree,
< hf_wtls_hands_certificate_wtls_signature,
< tvb,offset,2+value,bo_big_endian);
< offset+=2+value;
< client_size+=2+value;
< break;
< case CERTIFICATE_X509:
< case CERTIFICATE_X968:
< value = tvb_get_ntohs (tvb, offset);
< offset+=2;
< client_size+=2;
< client_size += value;
< offset += value;
< break;
< case CERTIFICATE_URL:
< value = tvb_get_guint8 (tvb, offset);
< offset++;
< client_size++;
< client_size += value;
< offset += value;
< break;
< }
< proto_item_set_len(cli_key_item, client_size);
< }
< break;
< default:
< offset+=count;
< break;
< }
< }
<
1577a706
> valueStart++;
1663,1705d791
< value = tvb_get_guint8 (value_buff, 1);
< /* decode Charset */
< if (value & 0x80) {
< proto_tree_add_uint (tree, hf_wsp_header_accept_charset, header_buff, offset, headerLen, value & 0x7f);
< }
< else if (value < 31) {
< switch (value)
< {
< case 1:
< proto_tree_add_uint (tree, hf_wsp_header_accept_charset, header_buff, offset, headerLen, tvb_get_guint8 (value_buff, 2) );
< break;
< case 2:
< proto_tree_add_uint (tree, hf_wsp_header_accept_charset, header_buff, offset, headerLen, tvb_get_ntohs (value_buff, 2) );
< break;
< case 3:
< proto_tree_add_uint (tree, hf_wsp_header_accept_charset, header_buff, offset, headerLen,
< (tvb_get_ntohs (value_buff, 2) << 8) + tvb_get_guint8 (value_buff, 4));
< break;
< case 4:
< proto_tree_add_uint (tree, hf_wsp_header_accept_charset, header_buff, offset, headerLen, tvb_get_ntohl (value_buff, 2) );
< break;
< default:
< fprintf (stderr, "dissect_wsp: accept-charset size %d NYI\n", peek);
< }
< }
< else {
< fprintf (stderr, "dissect_wsp: Accept-Charset value %d (0x%02X) NYI\n", peek, value);
< }
< }
< else if (peek & 0x80)
< {
< proto_tree_add_uint (tree, hf_wsp_header_accept_charset, header_buff, offset, headerLen, (peek & 0x7F) );
< }
< else
< {
< fprintf (stderr, "dissect_wsp: Accept-Charset value %d (0x%02X) NYI\n", peek, peek);
< }
< break;
<
< case 0x03: /* Accept-Language */
< if (peek < 31)
< {
< /* Peek contains the number of octets to follow */
1709,1710c795
< proto_tree_add_uint (tree, hf_wsp_header_accept_language, header_buff, offset,
< headerLen, tvb_get_guint8 (value_buff, 1) );
---
> proto_tree_add_uint (tree, hf_wsp_header_accept_charset, header_buff, offset, headerLen, tvb_get_guint8 (value_buff, 1) );
1713,1714c798
< proto_tree_add_uint (tree, hf_wsp_header_accept_language, header_buff, offset,
< headerLen, tvb_get_ntohs (value_buff, 1) );
---
> proto_tree_add_uint (tree, hf_wsp_header_accept_charset, header_buff, offset, headerLen, tvb_get_ntohs (value_buff, 1) );
1717,1718c801
< proto_tree_add_uint (tree, hf_wsp_header_accept_language, header_buff, offset,
< headerLen, tvb_get_ntohl (value_buff, 1) );
---
> proto_tree_add_uint (tree, hf_wsp_header_accept_charset, header_buff, offset, headerLen, tvb_get_ntohl (value_buff, 1) );
1721c804
< fprintf (stderr, "dissect_wsp: accept-language size %d NYI\n", peek);
---
> fprintf (stderr, "dissect_wsp: accept-charset size %d NYI\n", peek);
1726c809
< proto_tree_add_uint (tree, hf_wsp_header_accept_language, header_buff, offset, headerLen, (peek & 0x7F) );
---
> proto_tree_add_uint (tree, hf_wsp_header_accept_charset, header_buff, offset, headerLen, (peek & 0x7F) );
1730,1731c813
< proto_tree_add_string (tree, hf_wsp_header_accept_language_str, header_buff, offset,headerLen,
< tvb_get_ptr (value_buff, 0, valueLen));
---
> fprintf (stderr, "dissect_wsp: Accept-Charset value %d (0x%02X) NYI\n", peek, peek);
1734a817,820
> case 0x03: /* Accept-Language */
> proto_tree_add_uint (tree, hf_wsp_header_accept_language, header_buff, offset, headerLen, (peek & 0x7F));
> break;
>
1815,1837d900
< else if (peek < 31) {
< switch (peek)
< {
< case 1:
< proto_tree_add_uint (tree, hf_wsp_header_content_length, header_buff, offset, headerLen,
< tvb_get_guint8 (value_buff, 1) );
< break;
< case 2:
< proto_tree_add_uint (tree, hf_wsp_header_content_length, header_buff, offset, headerLen,
< tvb_get_ntohs (value_buff, 1) );
< break;
< case 3:
< proto_tree_add_uint (tree, hf_wsp_header_content_length, header_buff, offset, headerLen,
< (tvb_get_ntohs (value_buff, 1) << 8) + tvb_get_guint8 (value_buff, 3) );
< break;
< case 4:
< proto_tree_add_uint (tree, hf_wsp_header_content_length, header_buff, offset, headerLen,
< tvb_get_ntohl (value_buff, 1) );
< break;
< default:
< fprintf (stderr, "dissect_wsp: accept-charset size %d NYI\n", peek);
< }
< }
1906,1917d968
< case 0x27: /* Transfer encoding */
< if (peek & 0x80)
< {
< proto_tree_add_uint (tree, hf_wsp_header_transfer_encoding, header_buff, offset, headerLen, peek);
< }
< else
< {
< proto_tree_add_string (tree, hf_wsp_header_transfer_encoding_str, header_buff, offset,headerLen,tvb_get_ptr (value_buff, 0, valueLen));
< }
< break;
<
<
1922,1926d972
< case 0x2B: /* Via */
< ti = proto_tree_add_string (tree, hf_wsp_header_via,header_buff,offset,headerLen,tvb_get_ptr (value_buff, 0, valueLen));
< break;
<
<
1938,1954c984,991
< switch( peek) {
< case 1:
< timeValue.tv_sec = tvb_get_guint8 (value_buff, 1);
< break;
< case 2:
< timeValue.tv_sec = tvb_get_ntohs (value_buff, 1);
< break;
< case 3:
< timeValue.tv_sec = (tvb_get_ntohs (value_buff, 1) << 8) + tvb_get_guint8 (value_buff, 3);
< break;
< case 4:
< timeValue.tv_sec = tvb_get_ntohl (value_buff, 1);
< break;
< default:
< timeValue.tv_sec = 0;
< fprintf (stderr, "dissect_wsp: x-wap-top unkown\n");
< break;
---
> if (tvb_reported_length (value_buff) == 4) /* Probably a date value */
> {
> timeValue.tv_sec = tvb_get_ntohl (value_buff, 0);
> ti = proto_tree_add_time (tree, hf_wsp_header_x_wap_tod, header_buff, offset, headerLen, &timeValue);
> }
> else
> {
> ti = proto_tree_add_text (tree, header_buff, 0, headerLen, "%s: %s", tvb_get_ptr (header_buff, 0, headerLen), tvb_get_ptr (value_buff, 0, valueLen));
1956d992
< ti = proto_tree_add_time (tree, hf_wsp_header_x_wap_tod, header_buff, offset, headerLen, &timeValue);
2082c1118
< ti = proto_tree_add_item (tree, hf_wsp_post_data,tvb,offset,tvb_reported_length(tvb),bo_little_endian);
---
> ti = proto_tree_add_item (tree, hf_wsp_post_data,tvb,offset,END_OF_FRAME,bo_little_endian);
2304,2310d1339
< { &hf_wsp_header_accept_language_str,
< { "Accept-Language",
< "wsp.header.accept-language.string",
< FT_STRING, BASE_NONE, NULL, 0x00,
< "Accept-Language"
< }
< },
2426,2859d1454
< { &hf_wtls_record,
< { "Record",
< "wsp.wtls.record",
< FT_NONE, BASE_NONE, NULL, 0x00,
< "Record"
< }
< },
< { &hf_wtls_record_type,
< { "Record Type",
< "wsp.wtls.rec_type",
< FT_UINT8, BASE_DEC, VALS ( wtls_vals_record_type ), 0x0f,
< "Record Type"
< }
< },
< { &hf_wtls_record_length,
< { "Record Length",
< "wsp.wtls.rec_length",
< FT_UINT16, BASE_DEC, NULL, 0x00,
< "Record Length"
< }
< },
< { &hf_wtls_record_sequence,
< { "Record Sequence",
< "wsp.wtls.rec_seq",
< FT_UINT16, BASE_DEC, NULL, 0x00,
< "Record Sequence"
< }
< },
< { &hf_wtls_record_ciphered,
< { "Record Ciphered",
< "wsp.wtls.rec_cipher",
< FT_NONE, BASE_DEC, NULL, 0x00,
< "Record Ciphered"
< }
< },
< { &hf_wtls_hands,
< { "Handshake",
< "wsp.wtls.handshake",
< FT_NONE, BASE_DEC, NULL, 0x00,
< "Handshake"
< }
< },
< { &hf_wtls_hands_type,
< { "Type",
< "wsp.wtls.handshake.type",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_handshake_type ), 0x00,
< "Type"
< }
< },
< { &hf_wtls_hands_length,
< { "Length",
< "wsp.wtls.handshake.length",
< FT_UINT16, BASE_DEC, NULL, 0x00,
< "Length"
< }
< },
< { &hf_wtls_hands_cli_hello,
< { "Client Hello",
< "wsp.wtls.handshake.client_hello",
< FT_NONE, BASE_NONE,NULL, 0x00,
< "Client Hello"
< }
< },
< { &hf_wtls_hands_cli_hello_version,
< { "Version",
< "wsp.wtls.handshake.client_hello.version",
< FT_UINT8, BASE_DEC, NULL, 0x00,
< "Version"
< }
< },
< { &hf_wtls_hands_cli_hello_gmt,
< { "Time GMT",
< "wsp.wtls.handshake.client_hello.gmt",
< FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x00,
< "Time GMT"
< }
< },
< { &hf_wtls_hands_cli_hello_random,
< { "Random",
< "wsp.wtls.handshake.client_hello.random",
< FT_NONE, BASE_DEC, NULL, 0x00,
< "Random"
< }
< },
< { &hf_wtls_hands_cli_hello_session,
< { "Session ID",
< "wsp.wtls.handshake.client_hello.sessionid",
< FT_NONE, BASE_DEC, NULL, 0x00,
< "Session ID"
< }
< },
< { &hf_wtls_hands_cli_hello_cli_key_id,
< { "Client Keys",
< "wsp.wtls.handshake.client_hello.client_keys_id",
< FT_NONE, BASE_DEC, NULL, 0x00,
< "Client Keys"
< }
< },
< { &hf_wtls_hands_cli_hello_trust_key_id,
< { "Trusted Keys",
< "wsp.wtls.handshake.client_hello.trusted_keys_id",
< FT_NONE, BASE_DEC, NULL, 0x00,
< "Trusted Keys"
< }
< },
< { &hf_wtls_hands_cli_hello_key_exchange,
< { "Key Exchange",
< "wsp.wtls.handshake.client_hello.key.key_exchange",
< FT_NONE, BASE_NONE, NULL, 0x00,
< "Key Exchange"
< }
< },
< { &hf_wtls_hands_cli_hello_key_exchange_suite,
< { "Suite",
< "wsp.wtls.handshake.client_hello.key.key_exchange.suite",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_key_exchange_suite ), 0x00,
< "Suite"
< }
< },
< { &hf_wtls_hands_cli_hello_key_parameter_index,
< { "Parameter Index",
< "wsp.wtls.handshake.client_hello.parameter_index",
< FT_UINT8, BASE_DEC, NULL, 0x00,
< "Parameter Index"
< }
< },
< { &hf_wtls_hands_cli_hello_key_parameter_set,
< { "Parameter Set",
< "wsp.wtls.handshake.client_hello.parameter",
< FT_STRING, BASE_NONE, NULL, 0x00,
< "Parameter Set"
< }
< },
< { &hf_wtls_hands_cli_hello_key_identifier_type,
< { "Identifier Type",
< "wsp.wtls.handshake.client_hello.ident_type",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_identifier_type ), 0x00,
< "Identifier Type"
< }
< },
< { &hf_wtls_hands_cli_hello_cipher_suite,
< { "Cipher Suites",
< "wsp.wtls.handshake.client_hello.ciphers",
< FT_NONE, BASE_DEC, NULL, 0x00,
< "Cipher Suite"
< }
< },
< { &hf_wtls_hands_cli_hello_cipher_suite_item,
< { "Cipher",
< "wsp.wtls.handshake.client_hello.cipher",
< FT_NONE, BASE_DEC, NULL, 0x00,
< "Cipher"
< }
< },
< { &hf_wtls_hands_cli_hello_cipher_bulk,
< { "Cipher Bulk",
< "wsp.wtls.handshake.client_hello.cipher.bulk",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_cipher_bulk ), 0x00,
< "Cipher Bulk"
< }
< },
< { &hf_wtls_hands_cli_hello_cipher_mac,
< { "Cipher MAC",
< "wsp.wtls.handshake.client_hello.cipher.mac",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_cipher_mac ), 0x00,
< "Cipher MAC"
< }
< },
< { &hf_wtls_hands_cli_hello_compression_methods,
< { "Compression Methods",
< "wsp.wtls.handshake.client_hello.comp_methods",
< FT_NONE, BASE_DEC, NULL, 0x00,
< "Compression Methods"
< }
< },
< { &hf_wtls_hands_cli_hello_compression,
< { "Compression",
< "wsp.wtls.handshake.client_hello.compression",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_compression ), 0x00,
< "Compression"
< }
< },
< { &hf_wtls_hands_cli_hello_sequence_mode,
< { "Sequence Mode",
< "wsp.wtls.handshake.client_hello.sequence_mode",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_sequence_mode ), 0x00,
< "Sequence Mode"
< }
< },
< { &hf_wtls_hands_cli_hello_key_refresh,
< { "Refresh",
< "wsp.wtls.handshake.client_hello.refresh",
< FT_UINT8, BASE_DEC,NULL, 0x00,
< "Refresh"
< }
< },
< { &hf_wtls_hands_serv_hello,
< { "Server Hello",
< "wsp.wtls.handshake.server_hello",
< FT_NONE, BASE_NONE,NULL, 0x00,
< "Server Hello"
< }
< },
< { &hf_wtls_hands_serv_hello_version,
< { "Version",
< "wsp.wtls.handshake.server_hello.version",
< FT_UINT8, BASE_DEC, NULL, 0x00,
< "Version"
< }
< },
< { &hf_wtls_hands_serv_hello_gmt,
< { "Time GMT",
< "wsp.wtls.handshake.server_hello.gmt",
< FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x00,
< "Time GMT"
< }
< },
< { &hf_wtls_hands_serv_hello_random,
< { "Random",
< "wsp.wtls.handshake.server_hello.random",
< FT_NONE, BASE_DEC, NULL, 0x00,
< "Random"
< }
< },
< { &hf_wtls_hands_serv_hello_session,
< { "Session ID",
< "wsp.wtls.handshake.server_hello.sessionid",
< FT_NONE, BASE_DEC, NULL, 0x00,
< "Session ID"
< }
< },
< { &hf_wtls_hands_serv_hello_cli_key_id,
< { "Client Key ID",
< "wsp.wtls.handshake.server_hello.key",
< FT_UINT8, BASE_HEX, NULL, 0x00,
< "Client Key ID"
< }
< },
< { &hf_wtls_hands_serv_hello_cipher_suite_item,
< { "Cipher",
< "wsp.wtls.handshake.server_hello.cipher",
< FT_NONE, BASE_DEC, NULL, 0x00,
< "Cipher"
< }
< },
< { &hf_wtls_hands_serv_hello_cipher_bulk,
< { "Cipher Bulk",
< "wsp.wtls.handshake.server_hello.cipher.bulk",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_cipher_bulk ), 0x00,
< "Cipher Bulk"
< }
< },
< { &hf_wtls_hands_serv_hello_cipher_mac,
< { "Cipher MAC",
< "wsp.wtls.handshake.server_hello.cipher.mac",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_cipher_mac ), 0x00,
< "Cipher MAC"
< }
< },
< { &hf_wtls_hands_serv_hello_compression,
< { "Compression",
< "wsp.wtls.handshake.server_hello.compression",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_compression ), 0x00,
< "Compression"
< }
< },
< { &hf_wtls_hands_serv_hello_sequence_mode,
< { "Sequence Mode",
< "wsp.wtls.handshake.server_hello.sequence_mode",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_sequence_mode ), 0x00,
< "Sequence Mode"
< }
< },
< { &hf_wtls_hands_serv_hello_key_refresh,
< { "Refresh",
< "wsp.wtls.handshake.server_hello.refresh",
< FT_UINT8, BASE_DEC,NULL, 0x00,
< "Refresh"
< }
< },
< { &hf_wtls_hands_certificates,
< { "Certificates",
< "wsp.wtls.handshake.certificates",
< FT_NONE, BASE_DEC, NULL, 0x00,
< "Certificates"
< }
< },
< { &hf_wtls_hands_certificate,
< { "Certificate",
< "wsp.wtls.handshake.certificate",
< FT_NONE, BASE_DEC, NULL, 0x00,
< "Certificate"
< }
< },
< { &hf_wtls_hands_certificate_type,
< { "Type",
< "wsp.wtls.handshake.certificate.type",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_certificate_type ), 0x00,
< "Type"
< }
< },
< { &hf_wtls_hands_certificate_wtls_version,
< { "Version",
< "wsp.wtls.handshake.certificate.version",
< FT_UINT8, BASE_HEX, NULL, 0x00,
< "Version"
< }
< },
< { &hf_wtls_hands_certificate_wtls_signature_type,
< { "Signature Type",
< "wsp.wtls.handshake.certificate.signature.type",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_certificate_signature ), 0x00,
< "Signature Type"
< }
< },
< { &hf_wtls_hands_certificate_wtls_signature,
< { "Signature",
< "wsp.wtls.handshake.certificate.signature.signature",
< FT_NONE, BASE_HEX, NULL, 0x00,
< "Signature"
< }
< },
< { &hf_wtls_hands_certificate_wtls_issuer_type,
< { "Issuer",
< "wsp.wtls.handshake.certificate.issuer.type",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_identifier_type ), 0x00,
< "Issuer"
< }
< },
< { &hf_wtls_hands_certificate_wtls_issuer_charset,
< { "Charset",
< "wsp.wtls.handshake.certificate.issuer.charset",
< FT_UINT16, BASE_HEX, VALS ( vals_character_sets ), 0x00,
< "Charset"
< }
< },
< { &hf_wtls_hands_certificate_wtls_issuer_name,
< { "Name",
< "wsp.wtls.handshake.certificate.issuer.name",
< FT_NONE, BASE_HEX, NULL, 0x00,
< "Name"
< }
< },
< { &hf_wtls_hands_certificate_wtls_valid_not_before,
< { "Valid not before",
< "wsp.wtls.handshake.certificate.before",
< FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x00,
< "Valid not before"
< }
< },
< { &hf_wtls_hands_certificate_wtls_valid_not_after,
< { "Valid not after",
< "wsp.wtls.handshake.certificate.after",
< FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x00,
< "Valid not after"
< }
< },
< { &hf_wtls_hands_certificate_wtls_subject_type,
< { "Subject",
< "wsp.wtls.handshake.certificate.subject.type",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_identifier_type ), 0x00,
< "Subject"
< }
< },
< { &hf_wtls_hands_certificate_wtls_subject_charset,
< { "Charset",
< "wsp.wtls.handshake.certificate.subject.charset",
< FT_UINT16, BASE_HEX, VALS ( vals_character_sets ), 0x00,
< "Charset"
< }
< },
< { &hf_wtls_hands_certificate_wtls_subject_name,
< { "Name",
< "wsp.wtls.handshake.certificate.subject.name",
< FT_NONE, BASE_HEX, NULL, 0x00,
< "Name"
< }
< },
< { &hf_wtls_hands_certificate_wtls_public_key_type,
< { "Public Key Type",
< "wsp.wtls.handshake.certificate.public.type",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_public_key_type ), 0x00,
< "Public Key Type"
< }
< },
< { &hf_wtls_hands_certificate_wtls_key_parameter_index,
< { "Parameter Index",
< "wsp.wtls.handshake.certificate.parameter_index",
< FT_UINT8, BASE_DEC, NULL, 0x00,
< "Parameter Index"
< }
< },
< { &hf_wtls_hands_certificate_wtls_key_parameter_set,
< { "Parameter Set",
< "wsp.wtls.handshake.certificate.parameter",
< FT_STRING, BASE_NONE, NULL, 0x00,
< "Parameter Set"
< }
< },
< { &hf_wtls_hands_certificate_wtls_rsa_exponent,
< { "RSA Exponent",
< "wsp.wtls.handshake.certificate.rsa.exponent",
< FT_NONE, BASE_HEX, NULL, 0x00,
< "RSA Exponent"
< }
< },
< { &hf_wtls_hands_certificate_wtls_rsa_modules,
< { "RSA Modulus",
< "wsp.wtls.handshake.certificate.rsa.modulus",
< FT_NONE, BASE_HEX, NULL, 0x00,
< "RSA Modulus"
< }
< },
< { &hf_wtls_alert,
< { "Alert",
< "wsp.wtls.alert",
< FT_NONE, BASE_HEX, NULL, 0x00,
< "Alert"
< }
< },
< { &hf_wtls_alert_level,
< { "Level",
< "wsp.wtls.alert.level",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_alert_level ), 0x00,
< "Level"
< }
< },
< { &hf_wtls_alert_description,
< { "Description",
< "wsp.wtls.alert.description",
< FT_UINT8, BASE_HEX, VALS ( wtls_vals_alert_description ), 0x00,
< "Description"
< }
< },
2869,2873d1463
< &ett_wtls_rec,
< &ett_wtls_msg_type,
< &ett_wtls_msg_type_item,
< &ett_wtls_msg_type_item_sub,
< &ett_wtls_msg_type_item_sub_sub,
2885,2892d1474
< proto_wtls = proto_register_protocol(
< "Wireless Transport Layer Security", /* protocol name for use by ethereal */
< "WTLS", /* short version of name */
< "wap-wtls" /* Abbreviated protocol name, should Match IANA
< < URL:http://www.isi.edu/in-notes/iana/assignments/port-numbers/ >
< */
< );
<
2898d1479
< register_dissector("wtls", dissect_wtls, proto_wtls);
2907c1488
< dissector_add("udp.port", UDP_PORT_WTLS_WSP, dissect_wtls, proto_wtls);
---
> /* dissector_add("udp.port", UDP_PORT_WTLS_WSP, dissect_wsp, proto_wsp); */
- Follow-Ups:
- Prev by Date: [Ethereal-dev] Re: [tcpdump-workers] New capture file format ideas?
- Next by Date: RE: [Ethereal-dev] question RE:conversations
- Previous by thread: Re: [Ethereal-dev] feature request: using filters to specify packet decoders
- Next by thread: Re: [Ethereal-dev] New update of packet-wsp with snapshot of 2001-01-28
- Index(es):





