X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/ef987f720c3f8fdd536455fefa634d13997ec1f8..1af20c3adc4dfef93de41d4fcd02f0aeb6bbfd4e:/print-isakmp.c diff --git a/print-isakmp.c b/print-isakmp.c index de8bf2bd..3af263a8 100644 --- a/print-isakmp.c +++ b/print-isakmp.c @@ -766,7 +766,7 @@ cookie_find(const cookie_t *in) /* record initiator */ static void -cookie_record(const cookie_t *in, const u_char *bp2) +cookie_record(netdissect_options *ndo, const cookie_t *in, const u_char *bp2) { int i; const struct ip *ip; @@ -802,10 +802,10 @@ cookie_record(const cookie_t *in, const u_char *bp2) ninitiator = (ninitiator + 1) % MAXINITIATORS; } -#define cookie_isinitiator(x, y) cookie_sidecheck((x), (y), 1) -#define cookie_isresponder(x, y) cookie_sidecheck((x), (y), 0) +#define cookie_isinitiator(ndo, x, y) cookie_sidecheck(ndo, (x), (y), 1) +#define cookie_isresponder(ndo, x, y) cookie_sidecheck(ndo, (x), (y), 0) static int -cookie_sidecheck(int i, const u_char *bp2, int initiator) +cookie_sidecheck(netdissect_options *ndo, int i, const u_char *bp2, int initiator) { const struct ip *ip; const struct ip6_hdr *ip6; @@ -1175,7 +1175,7 @@ static const struct attrmap ipsec_t_map[] = { }; static const struct attrmap encr_t_map[] = { - { NULL, 0, { NULL } }, { NULL, 0, { NULL } }, /* 0, 1 */ + { NULL, 0, { NULL } }, { NULL, 0, { NULL } }, /* 0, 1 */ { NULL, 0, { NULL } }, { NULL, 0, { NULL } }, /* 2, 3 */ { NULL, 0, { NULL } }, { NULL, 0, { NULL } }, /* 4, 5 */ { NULL, 0, { NULL } }, { NULL, 0, { NULL } }, /* 6, 7 */ @@ -1188,7 +1188,7 @@ static const struct attrmap encr_t_map[] = { static const struct attrmap oakley_t_map[] = { { NULL, 0, { NULL } }, { "enc", 8, { NULL, "1des", "idea", "blowfish", "rc5", - "3des", "cast", "aes", }, }, + "3des", "cast", "aes", }, }, { "hash", 7, { NULL, "md5", "sha1", "tiger", "sha2-256", "sha2-384", "sha2-512", }, }, { "auth", 6, { NULL, "preshared", "dss", "rsa sig", "rsa enc", @@ -1398,7 +1398,7 @@ ikev1_id_print(netdissect_options *ndo, u_char tpay _U_, u_int i; ND_PRINT(" len=%u ", len); for (i = 0; i < len; i++) - safeputchar(ndo, EXTRACT_U_1(data + i)); + fn_print_char(ndo, EXTRACT_U_1(data + i)); len = 0; break; } @@ -2650,7 +2650,7 @@ ikev2_e_print(netdissect_options *ndo, int depth) { const u_char *dat; - volatile u_int dlen; + u_int dlen; #ifdef HAVE_LIBCRYPTO uint8_t np; #endif @@ -2752,7 +2752,7 @@ ike_sub0_print(netdissect_options *ndo, return cp; trunc: - ND_PRINT(" [|isakmp]"); + nd_print_trunc(ndo); return NULL; } @@ -2831,13 +2831,13 @@ ikev1_print(netdissect_options *ndo, /* the first packet */ ND_PRINT(" I"); if (bp2) - cookie_record(&base->i_ck, bp2); + cookie_record(ndo, &base->i_ck, bp2); } else ND_PRINT(" ?"); } else { - if (bp2 && cookie_isinitiator(i, bp2)) + if (bp2 && cookie_isinitiator(ndo, i, bp2)) ND_PRINT(" I"); - else if (bp2 && cookie_isresponder(i, bp2)) + else if (bp2 && cookie_isresponder(ndo, i, bp2)) ND_PRINT(" R"); else ND_PRINT(" ?"); @@ -2920,7 +2920,7 @@ ikev2_sub0_print(netdissect_options *ndo, const struct isakmp *base, return cp; trunc: - ND_PRINT(" [|isakmp]"); + nd_print_trunc(ndo); return NULL; } @@ -3032,6 +3032,7 @@ isakmp_print(netdissect_options *ndo, const u_char *ep; u_int major, minor; + ndo->ndo_protocol = "isakmp"; #ifdef HAVE_LIBCRYPTO /* initialize SAs */ if (ndo->ndo_sa_list_head == NULL) { @@ -3044,7 +3045,7 @@ isakmp_print(netdissect_options *ndo, ep = ndo->ndo_snapend; if ((const struct isakmp *)ep < p + 1) { - ND_PRINT("[|isakmp]"); + nd_print_trunc(ndo); return; } @@ -3087,6 +3088,7 @@ isakmp_rfc3948_print(netdissect_options *ndo, const u_char *bp, u_int length, const u_char *bp2) { + ndo->ndo_protocol = "isakmp_rfc3948"; ND_TCHECK_1(bp); if(length == 1 && EXTRACT_U_1(bp)==0xff) { ND_PRINT("isakmp-nat-keep-alive"); @@ -3101,8 +3103,7 @@ isakmp_rfc3948_print(netdissect_options *ndo, /* * see if this is an IKE packet */ - if (EXTRACT_U_1(bp) == 0 && EXTRACT_U_1(bp + 1) == 0 && - EXTRACT_U_1(bp + 2) == 0 && EXTRACT_U_1(bp + 3) == 0) { + if (EXTRACT_BE_U_4(bp) == 0) { ND_PRINT("NONESP-encap: "); isakmp_print(ndo, bp+4, length-4, bp2); return; @@ -3128,13 +3129,6 @@ isakmp_rfc3948_print(netdissect_options *ndo, } trunc: - ND_PRINT("[|isakmp]"); + nd_print_trunc(ndo); return; } - -/* - * Local Variables: - * c-style: whitesmith - * c-basic-offset: 8 - * End: - */