X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/15d567508667403581102e8f2dd77eda7e106051..refs/pull/482/head:/signature.c diff --git a/signature.c b/signature.c index c55645fe..18449fc2 100644 --- a/signature.c +++ b/signature.c @@ -1,4 +1,4 @@ -/* +/* * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that: (1) source code * distributions retain the above copyright notice and this paragraph @@ -11,24 +11,19 @@ * FOR A PARTICULAR PURPOSE. * * Functions for signature and digest verification. - * + * * Original code by Hannes Gredler (hannes@juniper.net) */ -#ifndef lint -static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/tcpdump/signature.c,v 1.2 2008-09-22 20:22:10 guy Exp $ (LBL)"; -#endif - #ifdef HAVE_CONFIG_H #include "config.h" #endif -#include +#include #include -#include "interface.h" +#include "netdissect.h" #include "signature.h" #ifdef HAVE_LIBCRYPTO @@ -48,9 +43,10 @@ const struct tok signature_check_values[] = { * Compute a HMAC MD5 sum. * Taken from rfc2104, Appendix. */ +USES_APPLE_DEPRECATED_API static void -signature_compute_hmac_md5(const u_int8_t *text, int text_len, unsigned char *key, - unsigned int key_len, u_int8_t *digest) +signature_compute_hmac_md5(const uint8_t *text, int text_len, unsigned char *key, + unsigned int key_len, uint8_t *digest) { MD5_CTX context; unsigned char k_ipad[65]; /* inner padding - key XORd with ipad */ @@ -110,6 +106,7 @@ signature_compute_hmac_md5(const u_int8_t *text, int text_len, unsigned char *ke MD5_Update(&context, digest, 16); /* then results of 1st hash */ MD5_Final(digest, &context); /* finish up 2nd pass */ } +USES_APPLE_RST #endif #ifdef HAVE_LIBCRYPTO @@ -118,10 +115,11 @@ signature_compute_hmac_md5(const u_int8_t *text, int text_len, unsigned char *ke * Currently only MD5 is supported. */ int -signature_verify (const u_char *pptr, u_int plen, u_char *sig_ptr) +signature_verify(netdissect_options *ndo, + const u_char *pptr, u_int plen, u_char *sig_ptr) { - u_int8_t rcvsig[16]; - u_int8_t sig[16]; + uint8_t rcvsig[16]; + uint8_t sig[16]; unsigned int i; /* @@ -130,12 +128,12 @@ signature_verify (const u_char *pptr, u_int plen, u_char *sig_ptr) memcpy(rcvsig, sig_ptr, sizeof(rcvsig)); memset(sig_ptr, 0, sizeof(rcvsig)); - if (!sigsecret) { + if (!ndo->ndo_sigsecret) { return (CANT_CHECK_SIGNATURE); } - signature_compute_hmac_md5(pptr, plen, (unsigned char *)sigsecret, - strlen(sigsecret), sig); + signature_compute_hmac_md5(pptr, plen, (unsigned char *)ndo->ndo_sigsecret, + strlen(ndo->ndo_sigsecret), sig); if (memcmp(rcvsig, sig, sizeof(sig)) == 0) { return (SIGNATURE_VALID); @@ -143,7 +141,7 @@ signature_verify (const u_char *pptr, u_int plen, u_char *sig_ptr) } else { for (i = 0; i < sizeof(sig); ++i) { - (void)printf("%02x", sig[i]); + ND_PRINT((ndo, "%02x", sig[i])); } return (SIGNATURE_INVALID);