libnet4r 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. data/CHANGELOG +15 -0
  2. data/LICENSE +28 -0
  3. data/README +187 -0
  4. data/Rakefile +110 -0
  5. data/ext/extconf.rb +60 -0
  6. data/ext/libnet.c +705 -0
  7. data/ext/libnet_arp.c +152 -0
  8. data/ext/libnet_ethernet.c +115 -0
  9. data/ext/libnet_ipv4.c +140 -0
  10. data/ext/libnet_ipv6.c +138 -0
  11. data/ext/libnet_udp.c +112 -0
  12. data/ext/libnet_vlan.c +131 -0
  13. data/lib/libnet4r/header.rb +609 -0
  14. data/lib/libnet4r/helpers.rb +19 -0
  15. data/lib/libnet4r/libnet.rb +39 -0
  16. data/libnet/CVS/Entries +24 -0
  17. data/libnet/CVS/Repository +1 -0
  18. data/libnet/CVS/Root +1 -0
  19. data/libnet/Makefile.am +15 -0
  20. data/libnet/Makefile.am.common +10 -0
  21. data/libnet/Makefile.in +443 -0
  22. data/libnet/README +21 -0
  23. data/libnet/VERSION +1 -0
  24. data/libnet/acconfig.h +36 -0
  25. data/libnet/acinclude.m4 +463 -0
  26. data/libnet/aclocal.m4 +1337 -0
  27. data/libnet/autom4te.cache/CVS/Entries +1 -0
  28. data/libnet/autom4te.cache/CVS/Repository +1 -0
  29. data/libnet/autom4te.cache/CVS/Root +1 -0
  30. data/libnet/autom4te.cache/output.0 +6225 -0
  31. data/libnet/autom4te.cache/requests +111 -0
  32. data/libnet/autom4te.cache/traces.0 +272 -0
  33. data/libnet/config.guess +1314 -0
  34. data/libnet/config.sub +1410 -0
  35. data/libnet/configure +6225 -0
  36. data/libnet/configure.in +235 -0
  37. data/libnet/doc/BUGS +19 -0
  38. data/libnet/doc/CHANGELOG +527 -0
  39. data/libnet/doc/CONTRIB +53 -0
  40. data/libnet/doc/COPYING +31 -0
  41. data/libnet/doc/CVS/Entries +12 -0
  42. data/libnet/doc/CVS/Repository +1 -0
  43. data/libnet/doc/CVS/Root +1 -0
  44. data/libnet/doc/DESIGN_NOTES +134 -0
  45. data/libnet/doc/MIGRATION +172 -0
  46. data/libnet/doc/PACKET_BUILDING +161 -0
  47. data/libnet/doc/PORTED +45 -0
  48. data/libnet/doc/RAWSOCKET_NON_SEQUITUR +41 -0
  49. data/libnet/doc/TODO +96 -0
  50. data/libnet/doc/html/acconfig_8h-source.html +49 -0
  51. data/libnet/doc/html/annotated.html +17 -0
  52. data/libnet/doc/html/bpf_8h-source.html +277 -0
  53. data/libnet/doc/html/config_8h-source.html +125 -0
  54. data/libnet/doc/html/doxygen.css +169 -0
  55. data/libnet/doc/html/doxygen.png +0 -0
  56. data/libnet/doc/html/files.html +29 -0
  57. data/libnet/doc/html/functions.html +26 -0
  58. data/libnet/doc/html/functions_vars.html +26 -0
  59. data/libnet/doc/html/getopt_8h-source.html +97 -0
  60. data/libnet/doc/html/globals.html +219 -0
  61. data/libnet/doc/html/globals_defs.html +104 -0
  62. data/libnet/doc/html/globals_func.html +136 -0
  63. data/libnet/doc/html/gnuc_8h-source.html +56 -0
  64. data/libnet/doc/html/graph_legend.dot +22 -0
  65. data/libnet/doc/html/graph_legend.html +75 -0
  66. data/libnet/doc/html/ifaddrlist_8h-source.html +65 -0
  67. data/libnet/doc/html/in__systm_8h-source.html +90 -0
  68. data/libnet/doc/html/index.html +17 -0
  69. data/libnet/doc/html/libnet-asn1_8h-source.html +268 -0
  70. data/libnet/doc/html/libnet-functions_8h-source.html +742 -0
  71. data/libnet/doc/html/libnet-functions_8h.html +8844 -0
  72. data/libnet/doc/html/libnet-headers_8h-source.html +1655 -0
  73. data/libnet/doc/html/libnet-headers_8h.html +3053 -0
  74. data/libnet/doc/html/libnet-macros_8h-source.html +161 -0
  75. data/libnet/doc/html/libnet-macros_8h.html +358 -0
  76. data/libnet/doc/html/libnet-structures_8h-source.html +233 -0
  77. data/libnet/doc/html/libnet-types_8h-source.html +58 -0
  78. data/libnet/doc/html/libnet_8h-source.html +119 -0
  79. data/libnet/doc/html/libnet_8h.html +24 -0
  80. data/libnet/doc/html/structlibnet__802__1q__hdr.html +145 -0
  81. data/libnet/doc/html/structlibnet__802__1x__hdr.html +97 -0
  82. data/libnet/doc/libnet.doxygen.conf +1102 -0
  83. data/libnet/doc/man/CVS/Entries +1 -0
  84. data/libnet/doc/man/CVS/Repository +1 -0
  85. data/libnet/doc/man/CVS/Root +1 -0
  86. data/libnet/doc/man/man3/libnet-functions.h.3 +3136 -0
  87. data/libnet/doc/man/man3/libnet-headers.h.3 +1872 -0
  88. data/libnet/doc/man/man3/libnet-macros.h.3 +172 -0
  89. data/libnet/doc/man/man3/libnet.h.3 +17 -0
  90. data/libnet/doc/man/man3/libnet_802_1q_hdr.3 +53 -0
  91. data/libnet/doc/man/man3/libnet_802_1x_hdr.3 +41 -0
  92. data/libnet/include/CVS/Entries +10 -0
  93. data/libnet/include/CVS/Repository +1 -0
  94. data/libnet/include/CVS/Root +1 -0
  95. data/libnet/include/Makefile.am +7 -0
  96. data/libnet/include/Makefile.in +395 -0
  97. data/libnet/include/bpf.h +264 -0
  98. data/libnet/include/config.h.in +118 -0
  99. data/libnet/include/gnuc.h +43 -0
  100. data/libnet/include/ifaddrlist.h +52 -0
  101. data/libnet/include/libnet/CVS/Entries +9 -0
  102. data/libnet/include/libnet/CVS/Repository +1 -0
  103. data/libnet/include/libnet/CVS/Root +1 -0
  104. data/libnet/include/libnet/Makefile.am +12 -0
  105. data/libnet/include/libnet/Makefile.in +294 -0
  106. data/libnet/include/libnet/libnet-asn1.h +255 -0
  107. data/libnet/include/libnet/libnet-functions.h +2157 -0
  108. data/libnet/include/libnet/libnet-headers.h +1662 -0
  109. data/libnet/include/libnet/libnet-macros.h +186 -0
  110. data/libnet/include/libnet/libnet-structures.h +222 -0
  111. data/libnet/include/libnet/libnet-types.h +45 -0
  112. data/libnet/include/libnet.h.in +132 -0
  113. data/libnet/include/stamp-h.in +1 -0
  114. data/libnet/include/win32/CVS/Entries +5 -0
  115. data/libnet/include/win32/CVS/Repository +1 -0
  116. data/libnet/include/win32/CVS/Root +1 -0
  117. data/libnet/include/win32/config.h +112 -0
  118. data/libnet/include/win32/getopt.h +84 -0
  119. data/libnet/include/win32/in_systm.h +77 -0
  120. data/libnet/include/win32/libnet.h +106 -0
  121. data/libnet/install-sh +250 -0
  122. data/libnet/libnet-config.in +62 -0
  123. data/libnet/libnet.doxygen.conf +1102 -0
  124. data/libnet/man/CVS/Entries +1 -0
  125. data/libnet/man/CVS/Repository +1 -0
  126. data/libnet/man/CVS/Root +1 -0
  127. data/libnet/missing +283 -0
  128. data/libnet/mkinstalldirs +40 -0
  129. data/libnet/sample/CVS/Entries +47 -0
  130. data/libnet/sample/CVS/Repository +1 -0
  131. data/libnet/sample/CVS/Root +1 -0
  132. data/libnet/sample/Makefile.am +63 -0
  133. data/libnet/sample/Makefile.in +729 -0
  134. data/libnet/sample/arp-new.c +144 -0
  135. data/libnet/sample/arp.c +151 -0
  136. data/libnet/sample/bgp4_hdr.c +225 -0
  137. data/libnet/sample/bgp4_notification.c +242 -0
  138. data/libnet/sample/bgp4_open.c +266 -0
  139. data/libnet/sample/bgp4_update.c +337 -0
  140. data/libnet/sample/cdp.c +187 -0
  141. data/libnet/sample/dhcp_discover.c +257 -0
  142. data/libnet/sample/dns.c +260 -0
  143. data/libnet/sample/dot1x.c +113 -0
  144. data/libnet/sample/fddi_tcp1.c +213 -0
  145. data/libnet/sample/fddi_tcp2.c +209 -0
  146. data/libnet/sample/get_addr.c +112 -0
  147. data/libnet/sample/gre.c +410 -0
  148. data/libnet/sample/icmp6_echoreq.c +184 -0
  149. data/libnet/sample/icmp_echo_cq.c +201 -0
  150. data/libnet/sample/icmp_redirect.c +200 -0
  151. data/libnet/sample/icmp_timeexceed.c +190 -0
  152. data/libnet/sample/icmp_timestamp.c +157 -0
  153. data/libnet/sample/icmp_unreach.c +204 -0
  154. data/libnet/sample/ieee.c +177 -0
  155. data/libnet/sample/ip_link.c +201 -0
  156. data/libnet/sample/ip_raw.c +180 -0
  157. data/libnet/sample/isl.c +167 -0
  158. data/libnet/sample/libnet_test.h +60 -0
  159. data/libnet/sample/mpls.c +251 -0
  160. data/libnet/sample/ntp.c +193 -0
  161. data/libnet/sample/ospf_hello.c +179 -0
  162. data/libnet/sample/ospf_lsa.c +190 -0
  163. data/libnet/sample/ping_of_death.c +171 -0
  164. data/libnet/sample/rpc_tcp.c +214 -0
  165. data/libnet/sample/rpc_udp.c +213 -0
  166. data/libnet/sample/sebek.c +299 -0
  167. data/libnet/sample/smurf.c +194 -0
  168. data/libnet/sample/stp.c +227 -0
  169. data/libnet/sample/synflood.c +200 -0
  170. data/libnet/sample/synflood6.c +209 -0
  171. data/libnet/sample/synflood6_frag.c +234 -0
  172. data/libnet/sample/tcp1.c +227 -0
  173. data/libnet/sample/tcp2.c +192 -0
  174. data/libnet/sample/tftp.c +207 -0
  175. data/libnet/sample/tring_tcp1.c +214 -0
  176. data/libnet/sample/tring_tcp2.c +210 -0
  177. data/libnet/sample/udp1.c +223 -0
  178. data/libnet/sample/udp2.c +232 -0
  179. data/libnet/sample/win32/CVS/Entries +9 -0
  180. data/libnet/sample/win32/CVS/Repository +1 -0
  181. data/libnet/sample/win32/CVS/Root +1 -0
  182. data/libnet/sample/win32/arp/CVS/Entries +2 -0
  183. data/libnet/sample/win32/arp/CVS/Repository +1 -0
  184. data/libnet/sample/win32/arp/CVS/Root +1 -0
  185. data/libnet/sample/win32/arp/arp.vcproj +136 -0
  186. data/libnet/sample/win32/cdp/CVS/Entries +2 -0
  187. data/libnet/sample/win32/cdp/CVS/Repository +1 -0
  188. data/libnet/sample/win32/cdp/CVS/Root +1 -0
  189. data/libnet/sample/win32/cdp/cdp.vcproj +136 -0
  190. data/libnet/sample/win32/dhcp_discover/CVS/Entries +2 -0
  191. data/libnet/sample/win32/dhcp_discover/CVS/Repository +1 -0
  192. data/libnet/sample/win32/dhcp_discover/CVS/Root +1 -0
  193. data/libnet/sample/win32/dhcp_discover/dhcp_discover.vcproj +139 -0
  194. data/libnet/sample/win32/dns/CVS/Entries +2 -0
  195. data/libnet/sample/win32/dns/CVS/Repository +1 -0
  196. data/libnet/sample/win32/dns/CVS/Root +1 -0
  197. data/libnet/sample/win32/dns/dns.vcproj +139 -0
  198. data/libnet/sample/win32/get_addr/CVS/Entries +2 -0
  199. data/libnet/sample/win32/get_addr/CVS/Repository +1 -0
  200. data/libnet/sample/win32/get_addr/CVS/Root +1 -0
  201. data/libnet/sample/win32/get_addr/get_addr.vcproj +139 -0
  202. data/libnet/sample/win32/getopt.c +121 -0
  203. data/libnet/sample/win32/icmp_echo_cq/CVS/Entries +2 -0
  204. data/libnet/sample/win32/icmp_echo_cq/CVS/Repository +1 -0
  205. data/libnet/sample/win32/icmp_echo_cq/CVS/Root +1 -0
  206. data/libnet/sample/win32/icmp_echo_cq/icmp_echo_cq.vcproj +139 -0
  207. data/libnet/sample/win32/tcp1/CVS/Entries +2 -0
  208. data/libnet/sample/win32/tcp1/CVS/Repository +1 -0
  209. data/libnet/sample/win32/tcp1/CVS/Root +1 -0
  210. data/libnet/sample/win32/tcp1/tcp1.vcproj +142 -0
  211. data/libnet/sample/win32/udp1/CVS/Entries +3 -0
  212. data/libnet/sample/win32/udp1/CVS/Repository +1 -0
  213. data/libnet/sample/win32/udp1/CVS/Root +1 -0
  214. data/libnet/sample/win32/udp1/dns.vcproj +125 -0
  215. data/libnet/sample/win32/udp1/udp1.vcproj +139 -0
  216. data/libnet/src/CVS/Entries +60 -0
  217. data/libnet/src/CVS/Repository +1 -0
  218. data/libnet/src/CVS/Root +1 -0
  219. data/libnet/src/Makefile.am +71 -0
  220. data/libnet/src/Makefile.in +428 -0
  221. data/libnet/src/libnet_advanced.c +136 -0
  222. data/libnet/src/libnet_asn1.c +436 -0
  223. data/libnet/src/libnet_build_802.1q.c +115 -0
  224. data/libnet/src/libnet_build_802.1x.c +103 -0
  225. data/libnet/src/libnet_build_802.2.c +167 -0
  226. data/libnet/src/libnet_build_802.3.c +101 -0
  227. data/libnet/src/libnet_build_arp.c +169 -0
  228. data/libnet/src/libnet_build_bgp.c +350 -0
  229. data/libnet/src/libnet_build_cdp.c +191 -0
  230. data/libnet/src/libnet_build_data.c +90 -0
  231. data/libnet/src/libnet_build_dhcp.c +156 -0
  232. data/libnet/src/libnet_build_dns.c +129 -0
  233. data/libnet/src/libnet_build_ethernet.c +173 -0
  234. data/libnet/src/libnet_build_fddi.c +191 -0
  235. data/libnet/src/libnet_build_gre.c +427 -0
  236. data/libnet/src/libnet_build_icmp.c +437 -0
  237. data/libnet/src/libnet_build_igmp.c +112 -0
  238. data/libnet/src/libnet_build_ip.c +892 -0
  239. data/libnet/src/libnet_build_ipsec.c +232 -0
  240. data/libnet/src/libnet_build_isl.c +113 -0
  241. data/libnet/src/libnet_build_link.c +90 -0
  242. data/libnet/src/libnet_build_mpls.c +112 -0
  243. data/libnet/src/libnet_build_ntp.c +121 -0
  244. data/libnet/src/libnet_build_ospf.c +699 -0
  245. data/libnet/src/libnet_build_rip.c +108 -0
  246. data/libnet/src/libnet_build_rpc.c +138 -0
  247. data/libnet/src/libnet_build_sebek.c +108 -0
  248. data/libnet/src/libnet_build_snmp.c +52 -0
  249. data/libnet/src/libnet_build_stp.c +222 -0
  250. data/libnet/src/libnet_build_tcp.c +365 -0
  251. data/libnet/src/libnet_build_token_ring.c +193 -0
  252. data/libnet/src/libnet_build_udp.c +111 -0
  253. data/libnet/src/libnet_build_vrrp.c +117 -0
  254. data/libnet/src/libnet_checksum.c +376 -0
  255. data/libnet/src/libnet_cq.c +395 -0
  256. data/libnet/src/libnet_crc.c +113 -0
  257. data/libnet/src/libnet_dll.c +47 -0
  258. data/libnet/src/libnet_error.c +55 -0
  259. data/libnet/src/libnet_if_addr.c +415 -0
  260. data/libnet/src/libnet_init.c +234 -0
  261. data/libnet/src/libnet_internal.c +310 -0
  262. data/libnet/src/libnet_link_bpf.c +348 -0
  263. data/libnet/src/libnet_link_dlpi.c +785 -0
  264. data/libnet/src/libnet_link_linux.c +310 -0
  265. data/libnet/src/libnet_link_nit.c +125 -0
  266. data/libnet/src/libnet_link_none.c +66 -0
  267. data/libnet/src/libnet_link_pf.c +179 -0
  268. data/libnet/src/libnet_link_snit.c +149 -0
  269. data/libnet/src/libnet_link_snoop.c +166 -0
  270. data/libnet/src/libnet_link_win32.c +346 -0
  271. data/libnet/src/libnet_pblock.c +511 -0
  272. data/libnet/src/libnet_port_list.c +295 -0
  273. data/libnet/src/libnet_prand.c +106 -0
  274. data/libnet/src/libnet_raw.c +257 -0
  275. data/libnet/src/libnet_resolve.c +414 -0
  276. data/libnet/src/libnet_version.c +54 -0
  277. data/libnet/src/libnet_write.c +502 -0
  278. data/libnet/version.h.in +6 -0
  279. data/libnet/win32/CVS/Entries +15 -0
  280. data/libnet/win32/CVS/Repository +1 -0
  281. data/libnet/win32/CVS/Root +1 -0
  282. data/libnet/win32/Libnet-1.1.1-2002.sln +77 -0
  283. data/libnet/win32/Libnet-1.1.1-2003.ncb +0 -0
  284. data/libnet/win32/Libnet-1.1.1-2003.sln +84 -0
  285. data/libnet/win32/Libnet-1.1.1-2003.suo +0 -0
  286. data/libnet/win32/Libnet-1.1.1.vcproj +311 -0
  287. data/libnet/win32/Libnet-latest.ncb +0 -0
  288. data/libnet/win32/Libnet-latest.opt +0 -0
  289. data/libnet/win32/Libnet-latest.sln +77 -0
  290. data/libnet/win32/Libnet-latest.suo +0 -0
  291. data/libnet/win32/Libnet-latest.vcproj +311 -0
  292. data/libnet/win32/Libnet.dsp +337 -0
  293. data/libnet/win32/Libnet.dsw +32 -0
  294. data/libnet/win32/README.txt +57 -0
  295. data/libnet/win32/libnet_dll.def +164 -0
  296. data/test/tc_arp.rb +169 -0
  297. data/test/tc_class.rb +219 -0
  298. data/test/tc_ethernet.rb +97 -0
  299. data/test/tc_header.rb +163 -0
  300. data/test/tc_init.rb +25 -0
  301. data/test/tc_ipv4.rb +219 -0
  302. data/test/tc_ipv6.rb +235 -0
  303. data/test/tc_udp.rb +229 -0
  304. data/test/tc_vlan.rb +118 -0
  305. data/test/ts_all.rb +15 -0
  306. metadata +401 -0
@@ -0,0 +1,268 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
+ <title>libnet: libnet-asn1.h Source File</title>
4
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
5
+ </head><body>
6
+ <!-- Generated by Doxygen 1.3.4 -->
7
+ <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
8
+ <h1>libnet-asn1.h</h1><div class="fragment"><pre>00001 <span class="comment">/*</span>
9
+ 00002 <span class="comment"> * $Id: libnet-asn1.h,v 1.3 2004/01/17 07:51:19 mike Exp $</span>
10
+ 00003 <span class="comment"> *</span>
11
+ 00004 <span class="comment"> * libnet-asn1.h - Network routine library ASN.1 header file</span>
12
+ 00005 <span class="comment"> *</span>
13
+ 00006 <span class="comment"> * Copyright (c) 1998 - 2004 Mike D. Schiffman &lt;mike@infonexus.com&gt;</span>
14
+ 00007 <span class="comment"> * All rights reserved.</span>
15
+ 00008 <span class="comment"> *</span>
16
+ 00009 <span class="comment"> * Definitions for Abstract Syntax Notation One, ASN.1</span>
17
+ 00010 <span class="comment"> * As defined in ISO/IS 8824 and ISO/IS 8825</span>
18
+ 00011 <span class="comment"> *</span>
19
+ 00012 <span class="comment"> * Copyright 1988, 1989 by Carnegie Mellon University</span>
20
+ 00013 <span class="comment"> * All rights reserved.</span>
21
+ 00014 <span class="comment"> *</span>
22
+ 00015 <span class="comment"> * Permission to use, copy, modify, and distribute this software and its</span>
23
+ 00016 <span class="comment"> * documentation for any purpose and without fee is hereby granted,</span>
24
+ 00017 <span class="comment"> * provided that the above copyright notice appear in all copies and that</span>
25
+ 00018 <span class="comment"> * both that copyright notice and this permission notice appear in</span>
26
+ 00019 <span class="comment"> * supporting documentation, and that the name of CMU not be</span>
27
+ 00020 <span class="comment"> * used in advertising or publicity pertaining to distribution of the</span>
28
+ 00021 <span class="comment"> * software without specific, written prior permission.</span>
29
+ 00022 <span class="comment"> *</span>
30
+ 00023 <span class="comment"> * CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING</span>
31
+ 00024 <span class="comment"> * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL</span>
32
+ 00025 <span class="comment"> * CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR</span>
33
+ 00026 <span class="comment"> * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,</span>
34
+ 00027 <span class="comment"> * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,</span>
35
+ 00028 <span class="comment"> * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS</span>
36
+ 00029 <span class="comment"> * SOFTWARE.</span>
37
+ 00030 <span class="comment"> *</span>
38
+ 00031 <span class="comment"> * Copyright (c) 1998 - 2001 Mike D. Schiffman &lt;mike@infonexus.com&gt;</span>
39
+ 00032 <span class="comment"> * All rights reserved.</span>
40
+ 00033 <span class="comment"> *</span>
41
+ 00034 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
42
+ 00035 <span class="comment"> * modification, are permitted provided that the following conditions</span>
43
+ 00036 <span class="comment"> * are met:</span>
44
+ 00037 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
45
+ 00038 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
46
+ 00039 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
47
+ 00040 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
48
+ 00041 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
49
+ 00042 <span class="comment"> *</span>
50
+ 00043 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</span>
51
+ 00044 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
52
+ 00045 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
53
+ 00046 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</span>
54
+ 00047 <span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
55
+ 00048 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span>
56
+ 00049 <span class="comment"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span>
57
+ 00050 <span class="comment"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span>
58
+ 00051 <span class="comment"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span>
59
+ 00052 <span class="comment"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span>
60
+ 00053 <span class="comment"> * SUCH DAMAGE.</span>
61
+ 00054 <span class="comment"> */</span>
62
+ 00055
63
+ 00056 <span class="preprocessor">#ifndef __LIBNET_ASN1_H</span>
64
+ 00057 <span class="preprocessor"></span><span class="preprocessor">#define __LIBNET_ASN1_H</span>
65
+ 00058 <span class="preprocessor"></span>
66
+ 00059 <span class="preprocessor">#ifndef EIGHTBIT_SUBIDS</span>
67
+ 00060 <span class="preprocessor"></span><span class="keyword">typedef</span> u_int32_t oid;
68
+ 00061 <span class="preprocessor">#define MAX_SUBID 0xFFFFFFFF</span>
69
+ 00062 <span class="preprocessor"></span><span class="preprocessor">#else</span>
70
+ 00063 <span class="preprocessor"></span><span class="keyword">typedef</span> u_int8_t oid;
71
+ 00064 <span class="preprocessor">#define MAX_SUBID 0xFF</span>
72
+ 00065 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
73
+ 00066 <span class="preprocessor"></span>
74
+ 00067 <span class="preprocessor">#define MAX_OID_LEN 64 </span><span class="comment">/* max subid's in an oid */</span>
75
+ 00068
76
+ 00069 <span class="preprocessor">#define ASN_BOOLEAN (0x01)</span>
77
+ 00070 <span class="preprocessor"></span><span class="preprocessor">#define ASN_INTEGER (0x02)</span>
78
+ 00071 <span class="preprocessor"></span><span class="preprocessor">#define ASN_BIT_STR (0x03)</span>
79
+ 00072 <span class="preprocessor"></span><span class="preprocessor">#define ASN_OCTET_STR (0x04)</span>
80
+ 00073 <span class="preprocessor"></span><span class="preprocessor">#define ASN_NULL (0x05)</span>
81
+ 00074 <span class="preprocessor"></span><span class="preprocessor">#define ASN_OBJECT_ID (0x06)</span>
82
+ 00075 <span class="preprocessor"></span><span class="preprocessor">#define ASN_SEQUENCE (0x10)</span>
83
+ 00076 <span class="preprocessor"></span><span class="preprocessor">#define ASN_SET (0x11)</span>
84
+ 00077 <span class="preprocessor"></span>
85
+ 00078 <span class="preprocessor">#define ASN_UNIVERSAL (0x00)</span>
86
+ 00079 <span class="preprocessor"></span><span class="preprocessor">#define ASN_APPLICATION (0x40)</span>
87
+ 00080 <span class="preprocessor"></span><span class="preprocessor">#define ASN_CONTEXT (0x80)</span>
88
+ 00081 <span class="preprocessor"></span><span class="preprocessor">#define ASN_PRIVATE (0xC0)</span>
89
+ 00082 <span class="preprocessor"></span>
90
+ 00083 <span class="preprocessor">#define ASN_PRIMITIVE (0x00)</span>
91
+ 00084 <span class="preprocessor"></span><span class="preprocessor">#define ASN_CONSTRUCTOR (0x20)</span>
92
+ 00085 <span class="preprocessor"></span>
93
+ 00086 <span class="preprocessor">#define ASN_LONG_LEN (0x80)</span>
94
+ 00087 <span class="preprocessor"></span><span class="preprocessor">#define ASN_EXTENSION_ID (0x1F)</span>
95
+ 00088 <span class="preprocessor"></span><span class="preprocessor">#define ASN_BIT8 (0x80)</span>
96
+ 00089 <span class="preprocessor"></span>
97
+ 00090 <span class="preprocessor">#define IS_CONSTRUCTOR(byte) ((byte) &amp; ASN_CONSTRUCTOR)</span>
98
+ 00091 <span class="preprocessor"></span><span class="preprocessor">#define IS_EXTENSION_ID(byte) (((byte) &amp; ASN_EXTENSION_ID) = ASN_EXTENSION_ID)</span>
99
+ 00092 <span class="preprocessor"></span>
100
+ 00093 <span class="comment">/*</span>
101
+ 00094 <span class="comment"> * All of the build_asn1_* (build_asn1_length being an exception) functions</span>
102
+ 00095 <span class="comment"> * take the same first 3 arguments:</span>
103
+ 00096 <span class="comment"> *</span>
104
+ 00097 <span class="comment"> * u_int8_t *data: This is a pointer to the start of the data object to be</span>
105
+ 00098 <span class="comment"> * manipulated.</span>
106
+ 00099 <span class="comment"> * int *datalen: This is a pointer to the number of valid bytes following</span>
107
+ 00100 <span class="comment"> * "data". This should be not be exceeded in any function.</span>
108
+ 00101 <span class="comment"> * Upon exiting a function, this value will reflect the</span>
109
+ 00102 <span class="comment"> * changed "data" and then refer to the new number of valid</span>
110
+ 00103 <span class="comment"> * bytes until the end of "data".</span>
111
+ 00104 <span class="comment"> * u_int8_t type: The ASN.1 object type.</span>
112
+ 00105 <span class="comment"> */</span>
113
+ 00106
114
+ 00107
115
+ 00108 <span class="comment">/*</span>
116
+ 00109 <span class="comment"> * Builds an ASN object containing an integer.</span>
117
+ 00110 <span class="comment"> *</span>
118
+ 00111 <span class="comment"> * Returns NULL upon error or a pointer to the first byte past the end of</span>
119
+ 00112 <span class="comment"> * this object (the start of the next object).</span>
120
+ 00113 <span class="comment"> */</span>
121
+ 00114
122
+ 00115 u_int8_t *
123
+ 00116 libnet_build_asn1_int(
124
+ 00117 u_int8_t *, <span class="comment">/* Pointer to the output buffer */</span>
125
+ 00118 <span class="keywordtype">int</span> *, <span class="comment">/* Number of valid bytes left in the buffer */</span>
126
+ 00119 u_int8_t, <span class="comment">/* ASN object type */</span>
127
+ 00120 int32_t *, <span class="comment">/* Pointer to a int32_t integer */</span>
128
+ 00121 <span class="keywordtype">int</span> <span class="comment">/* Size of a int32_t integer */</span>
129
+ 00122 );
130
+ 00123
131
+ 00124
132
+ 00125 <span class="comment">/*</span>
133
+ 00126 <span class="comment"> * Builds an ASN object containing an unsigned integer.</span>
134
+ 00127 <span class="comment"> *</span>
135
+ 00128 <span class="comment"> * Returns NULL upon error or a pointer to the first byte past the end of</span>
136
+ 00129 <span class="comment"> * this object (the start of the next object).</span>
137
+ 00130 <span class="comment"> */</span>
138
+ 00131
139
+ 00132 u_int8_t *
140
+ 00133 libnet_build_asn1_uint(
141
+ 00134 u_int8_t *, <span class="comment">/* Pointer to the output buffer */</span>
142
+ 00135 <span class="keywordtype">int</span> *, <span class="comment">/* Number of valid bytes left in the buffer */</span>
143
+ 00136 u_int8_t, <span class="comment">/* ASN object type */</span>
144
+ 00137 u_int32_t *, <span class="comment">/* Pointer to an unsigned int32_t integer */</span>
145
+ 00138 <span class="keywordtype">int</span> <span class="comment">/* Size of a int32_t integer */</span>
146
+ 00139 );
147
+ 00140
148
+ 00141
149
+ 00142 <span class="comment">/*</span>
150
+ 00143 <span class="comment"> * Builds an ASN object containing an octect string.</span>
151
+ 00144 <span class="comment"> *</span>
152
+ 00145 <span class="comment"> * Returns NULL upon error or a pointer to the first byte past the end of</span>
153
+ 00146 <span class="comment"> * this object (the start of the next object).</span>
154
+ 00147 <span class="comment"> */</span>
155
+ 00148
156
+ 00149 u_int8_t *
157
+ 00150 libnet_build_asn1_string(
158
+ 00151 u_int8_t *, <span class="comment">/* Pointer to the output buffer */</span>
159
+ 00152 <span class="keywordtype">int</span> *, <span class="comment">/* Number of valid bytes left in the buffer */</span>
160
+ 00153 u_int8_t, <span class="comment">/* ASN object type */</span>
161
+ 00154 u_int8_t *, <span class="comment">/* Pointer to a string to be built into an object */</span>
162
+ 00155 <span class="keywordtype">int</span> <span class="comment">/* Size of the string */</span>
163
+ 00156 );
164
+ 00157
165
+ 00158
166
+ 00159 <span class="comment">/*</span>
167
+ 00160 <span class="comment"> * Builds an ASN header for an object with the ID and length specified. This</span>
168
+ 00161 <span class="comment"> * only works on data types &lt; 30, i.e. no extension octets. The maximum</span>
169
+ 00162 <span class="comment"> * length is 0xFFFF;</span>
170
+ 00163 <span class="comment"> *</span>
171
+ 00164 <span class="comment"> * Returns a pointer to the first byte of the contents of this object or</span>
172
+ 00165 <span class="comment"> * NULL upon error</span>
173
+ 00166 <span class="comment"> */</span>
174
+ 00167
175
+ 00168 u_int8_t *
176
+ 00169 libnet_build_asn1_header(
177
+ 00170 u_int8_t *, <span class="comment">/* Pointer to the start of the object */</span>
178
+ 00171 <span class="keywordtype">int</span> *, <span class="comment">/* Number of valid bytes left in buffer */</span>
179
+ 00172 u_int8_t, <span class="comment">/* ASN object type */</span>
180
+ 00173 <span class="keywordtype">int</span> <span class="comment">/* ASN object length */</span>
181
+ 00174 );
182
+ 00175
183
+ 00176
184
+ 00177 u_int8_t *
185
+ 00178 libnet_build_asn1_length(
186
+ 00179 u_int8_t *, <span class="comment">/* Pointer to start of object */</span>
187
+ 00180 <span class="keywordtype">int</span> *, <span class="comment">/* Number of valid bytes in buffer */</span>
188
+ 00181 <span class="keywordtype">int</span> <span class="comment">/* Length of object */</span>
189
+ 00182 );
190
+ 00183
191
+ 00184
192
+ 00185 <span class="comment">/*</span>
193
+ 00186 <span class="comment"> * Builds an ASN header for a sequence with the ID and length specified.</span>
194
+ 00187 <span class="comment"> *</span>
195
+ 00188 <span class="comment"> * This only works on data types &lt; 30, i.e. no extension octets.</span>
196
+ 00189 <span class="comment"> * The maximum length is 0xFFFF;</span>
197
+ 00190 <span class="comment"> *</span>
198
+ 00191 <span class="comment"> * Returns a pointer to the first byte of the contents of this object.</span>
199
+ 00192 <span class="comment"> * Returns NULL on any error.</span>
200
+ 00193 <span class="comment"> */</span>
201
+ 00194
202
+ 00195 u_int8_t *
203
+ 00196 libnet_build_asn1_sequence(
204
+ 00197 u_int8_t *,
205
+ 00198 <span class="keywordtype">int</span> *,
206
+ 00199 u_int8_t,
207
+ 00200 <span class="keywordtype">int</span>
208
+ 00201 );
209
+ 00202
210
+ 00203
211
+ 00204 <span class="comment">/*</span>
212
+ 00205 <span class="comment"> * Builds an ASN object identifier object containing the input string.</span>
213
+ 00206 <span class="comment"> *</span>
214
+ 00207 <span class="comment"> * Returns NULL upon error or a pointer to the first byte past the end of</span>
215
+ 00208 <span class="comment"> * this object (the start of the next object).</span>
216
+ 00209 <span class="comment"> */</span>
217
+ 00210
218
+ 00211 u_int8_t *
219
+ 00212 libnet_build_asn1_objid(
220
+ 00213 u_int8_t *,
221
+ 00214 <span class="keywordtype">int</span> *,
222
+ 00215 u_int8_t,
223
+ 00216 oid *,
224
+ 00217 <span class="keywordtype">int</span>
225
+ 00218 );
226
+ 00219
227
+ 00220
228
+ 00221 <span class="comment">/*</span>
229
+ 00222 <span class="comment"> * Builds an ASN null object.</span>
230
+ 00223 <span class="comment"> *</span>
231
+ 00224 <span class="comment"> * Returns NULL upon error or a pointer to the first byte past the end of</span>
232
+ 00225 <span class="comment"> * this object (the start of the next object).</span>
233
+ 00226 <span class="comment"> */</span>
234
+ 00227
235
+ 00228 u_int8_t *
236
+ 00229 libnet_build_asn1_null(
237
+ 00230 u_int8_t *,
238
+ 00231 <span class="keywordtype">int</span> *,
239
+ 00232 u_int8_t
240
+ 00233 );
241
+ 00234
242
+ 00235
243
+ 00236 <span class="comment">/*</span>
244
+ 00237 <span class="comment"> * Builds an ASN bitstring.</span>
245
+ 00238 <span class="comment"> *</span>
246
+ 00239 <span class="comment"> * Returns NULL upon error or a pointer to the first byte past the end of</span>
247
+ 00240 <span class="comment"> * this object (the start of the next object).</span>
248
+ 00241 <span class="comment"> */</span>
249
+ 00242
250
+ 00243 u_int8_t *
251
+ 00244 libnet_build_asn1_bitstring(
252
+ 00245 u_int8_t *,
253
+ 00246 <span class="keywordtype">int</span> *,
254
+ 00247 u_int8_t,
255
+ 00248 u_int8_t *, <span class="comment">/* Pointer to the input buffer */</span>
256
+ 00249 <span class="keywordtype">int</span> <span class="comment">/* Length of the input buffer */</span>
257
+ 00250 );
258
+ 00251
259
+ 00252
260
+ 00253 <span class="preprocessor">#endif </span><span class="comment">/* __LIBNET_ASN1_H */</span>
261
+ 00254
262
+ 00255 <span class="comment">/* EOF */</span>
263
+ </pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 10 13:23:37 2004 for libnet by
264
+ <a href="http://www.doxygen.org/index.html">
265
+ <img src="doxygen.png" alt="doxygen" align="middle" border=0 >
266
+ </a>1.3.4 </small></address>
267
+ </body>
268
+ </html>