#ifndef lint
static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-isakmp.c,v 1.10 2000-01-17 06:24:25 itojun Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-isakmp.c,v 1.11 2000-04-24 12:49:11 itojun Exp $ (LBL)";
#endif
#ifdef HAVE_CONFIG_H
u_int32_t, u_int32_t));
static u_char *isakmp_id_print __P((struct isakmp_gen *, u_char *, u_int32_t,
u_int32_t, u_int32_t));
+static u_char *isakmp_cert_print __P((struct isakmp_gen *, u_char *, u_int32_t,
+ u_int32_t, u_int32_t));
+static u_char *isakmp_sig_print __P((struct isakmp_gen *, u_char *, u_int32_t,
+ u_int32_t, u_int32_t));
static u_char *isakmp_hash_print __P((struct isakmp_gen *, u_char *,
u_int32_t, u_int32_t, u_int32_t));
static u_char *isakmp_nonce_print __P((struct isakmp_gen *, u_char *,
isakmp_t_print,
isakmp_ke_print,
isakmp_id_print,
- NULL,
- NULL,
+ isakmp_cert_print,
+ isakmp_cert_print,
isakmp_hash_print,
- NULL,
+ isakmp_sig_print,
isakmp_nonce_print,
isakmp_n_print,
isakmp_d_print,
};
static char *ah_p_map[] = {
- NULL, "md5", "sha", "1des",
+ NULL, "(reserved)", "md5", "sha", "1des",
};
static char *esp_p_map[] = {
return (u_char *)ext + ntohs(ext->len);
}
+static u_char *
+isakmp_cert_print(struct isakmp_gen *ext, u_char *ep, u_int32_t phase,
+ u_int32_t doi0, u_int32_t proto0)
+{
+ struct isakmp_pl_cert *p;
+ static char *certstr[] = {
+ "none", "pkcs7", "pgp", "dns",
+ "x509sign", "x509ke", "kerberos", "crl",
+ "arl", "spki", "x509attr",
+ };
+
+ printf("%s:", NPSTR(ISAKMP_NPTYPE_CERT));
+
+ p = (struct isakmp_pl_cert *)ext;
+ printf(" len=%d", ntohs(ext->len) - 4);
+ printf(" type=%s", STR_OR_ID((p->encode), certstr));
+ if (2 < vflag && 4 < ntohs(ext->len)) {
+ printf(" ");
+ rawprint((caddr_t)(ext + 1), ntohs(ext->len) - 4);
+ }
+ return (u_char *)ext + ntohs(ext->len);
+}
+
static u_char *
isakmp_hash_print(struct isakmp_gen *ext, u_char *ep, u_int32_t phase,
u_int32_t doi, u_int32_t proto)
return (u_char *)ext + ntohs(ext->len);
}
+static u_char *
+isakmp_sig_print(struct isakmp_gen *ext, u_char *ep, u_int32_t phase,
+ u_int32_t doi, u_int32_t proto)
+{
+ printf("%s:", NPSTR(ISAKMP_NPTYPE_SIG));
+
+ printf(" len=%d", ntohs(ext->len) - 4);
+ if (2 < vflag && 4 < ntohs(ext->len)) {
+ printf(" ");
+ rawprint((caddr_t)(ext + 1), ntohs(ext->len) - 4);
+ }
+ return (u_char *)ext + ntohs(ext->len);
+}
+
static u_char *
isakmp_nonce_print(struct isakmp_gen *ext, u_char *ep, u_int32_t phase,
u_int32_t doi, u_int32_t proto)