Wireshark-dev: [Wireshark-dev] New DHCPv6 options...
From: Michał Kowalczuk <michal@xxxxxxxxxxxx>
Date: Fri, 28 Sep 2007 15:48:58 +0200
Hello, what do you think about implementing new options for authentication and authorisation (OPTION_AAAAUTH, OPTION_KEYGEN and new format of OPTION_AUTH) from draft-ram-dhc-dhcpv6-aakey-01.txt in DHCPv6 dissector? All values marked in draft as TBD are chosen by me. They will be compatible with probably first implementation of these options (in Dibbler -- http://klub.com.pl/dhcpv6/). I'm working on it as my master thesis. The patch is in attachment. -- Michał Kowalczuk http://kowalczuk.eu/
--- packet-dhcpv6.bak.c 2007-09-27 09:51:17.000000000 +0200
+++ packet-dhcpv6.c 2007-09-27 18:20:17.000000000 +0200
@@ -5,6 +5,7 @@
* IItom Tsutomu MIENO <iitom@xxxxxxxxxx>
* SHIRASAKI Yasuhiro <yasuhiro@xxxxxxxxxxx>
* Tony Lindstrom <tony.lindstrom@xxxxxxxxxxxx>
+ * Michal Kowalczuk <michal@xxxxxxxxxxxx>
*
* $Id: packet-dhcpv6.c 21740 2007-05-10 10:56:36Z martinm $
*
@@ -17,6 +18,7 @@
* draft-ietf-dhc-dhcpv6-opt-timeconfig-03.txt
* draft-ietf-dhc-dhcpv6-opt-fqdn-00.txt
* draft-ietf-dhc-dhcpv6-opt-lifetime-00.txt
+ * draft-ram-dhc-dhcpv6-aakey-01.txt (as implemented in Dibbler)
*
* Note that protocol constants are still subject to change, based on IANA
* assignment decisions.
@@ -121,6 +123,8 @@
#define OPTION_MIP6_HA 165
#define OPTION_MIP6_HOA 166
#define OPTION_NAI 167
+#define OPTION_AAAAUTH 240
+#define OPTION_KEYGEN 241
#define DUID_LLT 1
#define DUID_EN 2
@@ -186,6 +190,8 @@
{ OPTION_MIP6_HA, "Mobile IPv6 Home Agent" },
{ OPTION_MIP6_HOA, "Mobile IPv6 Home Address" },
{ OPTION_NAI, "Network Access Identifier" },
+ { OPTION_AAAAUTH, "Client-AAA Authentication" },
+ { OPTION_KEYGEN, "Key Generation" },
{ 0, NULL }
};
@@ -536,24 +542,21 @@
}
break;
case OPTION_AUTH:
- if (optlen < 11) {
+ if (optlen < 13) {
proto_tree_add_text(subtree, tvb, off,
optlen, "AUTH: malformed option");
break;
}
proto_tree_add_text(subtree, tvb, off, 1,
- "Protocol: %d",
- (guint32)tvb_get_guint8(tvb, off));
- proto_tree_add_text(subtree, tvb, off+1, 1,
- "Algorithm: %d",
- (guint32)tvb_get_guint8(tvb, off+1));
- proto_tree_add_text(subtree, tvb, off+2, 1,
"RDM: %d",
- (guint32)tvb_get_guint8(tvb, off+2));
- proto_tree_add_text(subtree, tvb, off+3, 8,
- "Replay Detection");
- if (optlen != 11)
- proto_tree_add_text(subtree, tvb, off+11, optlen-11,
+ (guint8)tvb_get_guint8(tvb, off));
+ proto_tree_add_text(subtree, tvb, off+1, 8,
+ "Replay detection");
+ proto_tree_add_text(subtree, tvb, off+9, 4,
+ "client-server SPI: 0x%8.8x",
+ (guint32)tvb_get_ntohl(tvb, off+9));
+ if (optlen != 13)
+ proto_tree_add_text(subtree, tvb, off+13, optlen-13,
"Authentication Information");
break;
case OPTION_UNICAST:
@@ -839,6 +842,39 @@
proto_tree_add_text(subtree, tvb, off, optlen,
"NAI : %s", tvb_get_ptr(tvb, off, optlen - 2));
break;
+ case OPTION_AAAAUTH:
+ if (optlen < 5) {
+ proto_tree_add_text(subtree, tvb, off,
+ optlen, "AAAAUTH: malformed option");
+ break;
+ }
+ proto_tree_add_text(subtree, tvb, off, 4,
+ "AAA SPI: 0x%8.8x",
+ (guint32)tvb_get_ntohl(tvb, off));
+ proto_tree_add_text(subtree, tvb, off+4, optlen-4,
+ "authentication information");
+ break;
+ case OPTION_KEYGEN:
+ if (optlen < 30) {
+ proto_tree_add_text(subtree, tvb, off,
+ optlen, "KEYGEN: malformed option");
+ break;
+ }
+ proto_tree_add_text(subtree, tvb, off, 4,
+ "client-server SPI: 0x%8.8x",
+ (guint32)tvb_get_ntohl(tvb, off));
+ proto_tree_add_text(subtree, tvb, off+4, 4,
+ "Lifetime: %ld",
+ (guint32)tvb_get_ntohl(tvb, off+4));
+ proto_tree_add_text(subtree, tvb, off+8, 4,
+ "AAA SPI: 0x%8.8x",
+ (guint32)tvb_get_ntohl(tvb, off+8));
+ proto_tree_add_text(subtree, tvb, off+12, 2,
+ "Algorithm Identifier: %hd",
+ (guint16)tvb_get_ntohs(tvb, off+12));
+ proto_tree_add_text(subtree, tvb, off+14, optlen-14,
+ "Key Generation Nonce");
+ break;
}
return 4 + optlen;
- Prev by Date: [Wireshark-dev] Possible bug in MEGACO dissector
- Next by Date: [Wireshark-dev] making the filter text box resizable
- Previous by thread: [Wireshark-dev] Possible bug in MEGACO dissector
- Next by thread: [Wireshark-dev] making the filter text box resizable
- Index(es):