diff --git a/tools/hcidump.1 b/tools/hcidump.1
index e7ce4c2..6a7c512 100644
--- a/tools/hcidump.1
+++ b/tools/hcidump.1
.TP
.BR -V ", " "\-\^\-verbose"
Enables a more verbose decoding of every packet.
+.TP
+.BR -Y ", " "\-\^\-novendor"
+Don't display any vendor commands or events and don't show any pin code or link key in plain text.
.SH FILTERS
.B
filter
diff --git a/tools/parser/hci.c b/tools/parser/hci.c
index 2951780..d14f8c5 100644
--- a/tools/parser/hci.c
+++ b/tools/parser/hci.c
p_indent(level, frm);
ba2str(&cp->bdaddr, addr);
memset(pin, 0, sizeof(pin));
- memcpy(pin, cp->pin_code, cp->pin_len);
+ if (parser.flags & DUMP_NOVENDOR)
+ memset(pin, '*', cp->pin_len);
+ else
+ memcpy(pin, cp->pin_code, cp->pin_len);
printf("bdaddr %s len %d pin \'%s\'\n", addr, cp->pin_len, pin);
}
ba2str(&cp->bdaddr, addr);
printf("bdaddr %s key ", addr);
for (i = 0; i < 16; i++)
- printf("%2.2X", cp->link_key[i]);
+ if (parser.flags & DUMP_NOVENDOR)
+ printf("**");
+ else
+ printf("%2.2X", cp->link_key[i]);
printf("\n");
}
p_indent(level, frm);
printf("bdaddr %s key ", addr);
for (i = 0; i < 16; i++)
- printf("%2.2X", key[i]);
+ if (parser.flags & DUMP_NOVENDOR)
+ printf("**");
+ else
+ printf("%2.2X", key[i]);
printf("\n");
frm->ptr += 2;
ba2str(&evt->bdaddr, addr);
printf("bdaddr %s key ", addr);
for (i = 0; i < 16; i++)
- printf("%2.2X", evt->link_key[i]);
+ if (parser.flags & DUMP_NOVENDOR)
+ printf("**");
+ else
+ printf("%2.2X", evt->link_key[i]);
printf(" type %d\n", evt->key_type);
}