summaryrefslogtreecommitdiff
path: root/print-esp.c
Commit message (Collapse)AuthorAgeFilesLines
* u_intN_t is dead, long live uintN_t.Guy Harris2014-04-231-4/+4
| | | | | | | | | And, as we require at least autoconf 2.61, and as autoconf 2.61 and later have AC_TYPE_UINTn_T and AC_TYPE_INTn_T macros, we use them to define the uintN_t and intN_t macros if the system doesn't define them for us. This lets us get rid of bitypes.h as well.
* convert stray fputs() in print-esp.cDenis Ovsienko2014-04-021-1/+1
|
* finalize some previous NDO conversionsDenis Ovsienko2014-03-261-5/+3
| | | | | | Eliminate a number of fputs(), putchar() and fflush() uses. Justify preprocessor directives. Don't typecast ND_PRINT() to void and fix some indentation.
* use ND_PRINT in print-esp.cDenis Ovsienko2014-03-231-4/+4
|
* don't include addrtoname.h needlesslyDenis Ovsienko2014-02-251-1/+0
|
* Only do the unaligned_mem{cpy,cmp} hack if necessary.Guy Harris2014-01-171-2/+2
| | | | If the processor does unaligned accesses, it's not necessary.
* Rework the SA list code.Guy Harris2014-01-171-36/+17
| | | | | This simplifies the code, gets rid of some type-punning about which GCC warns, and reduces the size of the list entries.
* Use unaligned_memcmp() to compare with IPv{4,6} addresses in a packet.Guy Harris2014-01-161-2/+3
| | | | They are, after all, not guaranteed to be aligned.
* struct newesp is required regardless of whether we have libcrypto or not.Guy Harris2014-01-081-17/+17
|
* remove tcpdump's own CVS keywordsDenis Ovsienko2014-01-031-5/+0
| | | | | | Remove lots of $Header's and a few $Id's that all belong to the former CVS repository of tcpdump itself. These keywords have been frozen since the migration to git in late 2008.
* Merge branch 'master' of git+ssh://bpf.tcpdump.org/tcpdump/master/git/tcpdumpMichael Richardson2014-01-011-1/+44
|\ | | | | | | | | Conflicts: enc.h
| * Pull a bunch of headers into the only source file that includes them.Guy Harris2013-12-301-1/+44
| | | | | | | | | | | | For headers included in only one source file, put the header contents in the source file in question, and get rid of a bunch of stuff from the header not used in the source file.
* | whitespace changesMichael Richardson2014-01-011-24/+24
|/
* Fix compilation warnings: set but unused variables.Gleb Smirnoff2013-11-261-7/+0
|
* adopt MacOS deprecation workaround from FreeRADIUSDenis Ovsienko2013-10-181-0/+12
| | | | | | | | | | A MacOS build of tcpdump used to produce deprecation warnings on OpenSSL function calls. Alan DeKok explained that this is the effect of Apple's modifications to OpenSSL and that the very same problem has already been solved in FreeRADIUS server source code with pre-processor macros. Copy the macros into tcpdump header file and make use of them around the functions that call OpenSSL functions.
* finalize the evp.h bugfix (#46)Denis Ovsienko2013-06-091-0/+4
|
* undefine HAVE_LIBCRYPTO if configure can't find evp.hBill Fenner2013-06-091-0/+2
|
* Don't directly fetch multi-byte integers from packets.Guy Harris2010-02-211-2/+2
| | | | | | | | Use the EXTRACT_ macros to extract multi-byte integral values from packets, rather than just dereferencing pointers into the packet; there is no guarantee that the packet data will be aligned on the right boundary, and there is no guarantee that, if they're not, a direct access will work correctly.
* From: Miroslav Lichvar <mlichvar@redhat.com>mcr2007-12-071-1/+3
| | | | | | running tcpdump -v -E in valgrind reports a memory leak. The memory allocated by EVP_CipherInit is not freed. This patch fixes the problem for me.
* added "make check"mcr2007-11-241-105/+286
| | | | | | | when optimization is not on, glibc6 doesn't define ntohs(), and our attempt to optimize it for x86 doesn't work --- the functions need to be static, not extern. added decryption of IKE v2 payloads, when keys are provided by -E.
* Squelch some unsigned vs. signed warnings.guy2005-04-211-7/+7
|
* The first argument to "ascii_print_with_offset()", "ascii_print()",guy2004-07-211-2/+1
| | | | | | | | | | | | "hex_print_with_offset()", and "hex_print()" is a string used as a tag; make it a "const char *", not a "const u_char *". Copy the declaration of "strsep()" from "interface.h" to "netdissect.h", and get rid of the include of "interface.h" from "print-esp.c", as it includes "netdissect.h". Update the "ND_TTEST2()" macro to do the same overflow checks that "TTEST2()" now does.
* Move the include of "interface.h" to where it was in 3.8[.x].guy2004-07-211-6/+2
| | | | | | | Get rid of the declaration of "strsep()" - we include "interface.h", which should declare it if we don't define HAVE_STRSEP, and if HAVE_STRSEP is defined on a platform that doesn't have "strsep()", that's a bug that should be fixed by arranging not to define it.
* From Rick Jones: include "interface.h" so that "strsep()" is declared ifguy2004-07-211-1/+2
| | | | | we're supplying our own "strsep()" due to it not being supplied by the OS or the compiler.
* print the packet length for ESP packetshannes2004-07-161-2/+3
|
* From Francis Dupont: ESP decryption should not be performed on theguy2004-04-101-2/+2
| | | | authentication trailer.
* print-esp has been "NDO"-ized.mcr2004-04-051-48/+52
| | | | | replace error() and warning() with ndo-ized version. moved snaplen/snapend to ndo structure.
* cleaned up warning.mcr2004-03-251-2/+2
|
* Fix a keyboardo.guy2003-11-191-2/+2
|
* Have various routines for printing non-final headers for IPv4/IPv6guy2003-11-191-6/+9
| | | | | | | return -1 if they run out of data. Have the IPv4 and IPv6 dissectors check for non-positive return values from those routines and quit if they see one.
* Have the configure script arrange that the Makefile define _U_guy2003-11-161-4/+4
| | | | | | | | | | appropriately, and that GNUmakefile and the MSVC++ project file define it apppriately, as we do with libpcap, rather than defining it in "interface.h". Undo the rcsid-shuffling and addition of extra #includes, as we no longer need to arrange that "interface.h" be included before using _U_ in an RCS ID or copyright.
* From Neil Spring:guy2003-11-151-4/+4
| | | | | | | | | | | use "_U_" in the definitions of "rcsid[]", to eliminate complaints about those variables being unused; move the definitions after the include of "interface.h", or add an include of "interface.h", so that "_U_" is defined. Include "config.h" before including "tcpdump-stdinc.h" in "missing/datalinks.c".
* unsigned/signed mixupitojun2003-10-281-2/+3
|
* #ifdef out a bunch of variables unused if HAVE_LIBCRYPTO isn't defined,guy2003-08-061-4/+14
| | | | | | | | | and make the initialization of some that are otherwise unused if HAVE_LIBCRYPTO isn't defined conditional on it being defined and #ifdef them out, too. #ifndef in some _U_'s for parameters not used if HAVE_LIBCRYPTO isn't defined.
* fix build without libcryptoitojun2003-07-171-1/+7
|
* lookup algorithm by EVP_xx in openssl. no need for algorithm tableitojun2003-07-171-248/+78
|
* KNFitojun2003-07-171-251/+219
|
* Don't bother printing the amount of memory we tried to allocate if theguy2003-05-021-6/+3
| | | | | | | attempt fails - it's not interesting to most if not all users, and you have to worry about the right format (%d is right for size_t on some platforms, %ld is right on others). Use "error()" to report the error while we're at it.
* Don't include addinfo.h in Win32 since it's not neededrisso2003-04-211-2/+1
|
* Eliminate a GCC warning about a "char" array subscript - and, by doingguy2003-03-251-2/+2
| | | | | | so, fix the code to correctly handle bytes with the 8th bit set (well, to handle them correctly if the string is made up solely of single-byte characters...).
* From an anonymous SourceForge user: use "u_int32_t", not "uint32_t", toguy2003-03-191-2/+2
| | | | | allow it to compile on Darwin (and there may be other platforms where that's necessary as well).
* From Kazushi Sugyo: various IPv6 fixes and core dump fixes.guy2003-03-131-34/+74
|
* From Gisle Vanem: make print-esp.c work with more (maybe all?) OpenSSLguy2003-03-021-4/+29
| | | | | versions, and changes to make it work on DOS/Windows with various compilers and C support libraries.
* changed format of -E argument so that multiple SAs could be describedmcr2003-02-261-88/+252
|
* From Kazushi Sugyo: make "-E alog:0x[0-9a-fA-F]" work.guy2003-02-051-4/+19
|
* The "__attribute__((packed))" tag on structures causes some files not toguy2002-12-111-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | compile with Sun C, as "interface.h" isn't being included before the structures are being declared. Furthermore, in the files that Sun C *can* compile, it doesn't cause Sun C to generate code that's safe with unaligned accesses, as "__attribute__" is defined as a do-nothing macro with compilers that don't support it. Therefore, we get rid of that tag on the structures to which it was added, and instead use "EXTRACT_16BIT()" and "EXTRACT_32BIT()" to fetch 16-bit and 32-bit big-endian quantities from packets. We also fix some other references to multi-byte quantities to get rid of code that tries to do unaligned loads on platforms that don't support them. We also throw in a hack that makes those macros use "__attribute__((packed))" on structures containing only one 16-bit or 32-bit integer to get the compiler to generate unaligned-safe code rather than doing it by hand. (GCC on SPARC produces the same code that doing it by hand does; I don't know if GCC on any other big-endian strict-alignment processor generates better code for that case. On little-endian processors, as "ntohs()" and "ntohl()" might be functions, that might actually produce worse code.) Fix some places to use "%u" rather than "%d" to print unsigned quantities.
* From Kazushi Sugyo: use the length from the IPv4 or IPv6 header to limitguy2002-11-131-1/+5
| | | | | how far into the packet we parse, so that we don't dissect trailers or, if it's part of the packet data, an FCS.
* Add a few more GCC warnings on GCC >= 2 for ".devel" builds.guy2002-09-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From Neil T. Spring: fixes for many of those warnings: addrtoname.c, configure.in: Linux needs netinet/ether.h for ether_ntohost print-*.c: change char *foo = "bar" to const char *foo = "bar" to appease -Wwrite-strings; should affect no run-time behavior. print-*.c: make some variables unsigned. print-bgp.c: plen ('prefix len') is unsigned, no reason to validate by comparing to zero. print-cnfp.c, print-rx.c: use intoa, provided by addrtoname, instead of inet_ntoa. print-domain.c: unsigned int l; (l=foo()) < 0 is guaranteed to be false, so check for (u_int)-1, which represents failure, explicitly. print-isakmp.c: complete initialization of attrmap objects. print-lwres.c: "if(x); print foo;" seemed much more likely to be intended to be "if(x) { print foo; }". print-smb.c: complete initialization of some structures. In addition, add some fixes for the signed vs. unsigned comparison warnings: extract.h: cast the result of the byte-extraction-and-combining, as, at least for the 16-bit version, C's integral promotions will turn "u_int16_t" into "int" if there are other "int"s nearby. print-*.c: make some more variables unsigned, or add casts to an unsigned type of signed values known not to be negative, or add casts to "int" of unsigned values known to fit in an "int", and make other changes needed to handle the aforementioned variables now being unsigned. print-isakmp.c: clean up the handling of error/status indicators in notify messages. print-ppp.c: get rid of a check that an unsigned quantity is >= 0. print-radius.c: clean up some of the bounds checking. print-smb.c: extract the word count into a "u_int" to avoid the aforementioned problems with C's integral promotions. print-snmp.c: change a check that an unsigned variable is >= 0 to a check that it's != 0. Also, fix some formats to use "%u" rather than "%d" for unsigned quantities.
* Added support for Win32, based on WinPcap.risso2002-08-011-7/+4
|
* Initial support for OpenSSL version 0.9.7 and higher.fenner2002-07-281-2/+37
| | | | configure doesn't know how to handle this yet.