• Home
  • History
  • Annotate
  • Raw
  • Download

Lines Matching refs:elem

420            register const u_char *p, u_int len, struct be *elem)  in asn1_parse()  argument
425 elem->asnlen = 0; in asn1_parse()
426 elem->type = BE_ANY; in asn1_parse()
449 elem->form = form; in asn1_parse()
450 elem->class = class; in asn1_parse()
451 elem->id = id; in asn1_parse()
483 elem->id = id = (id << 7) | *p; in asn1_parse()
493 elem->asnlen = *p; in asn1_parse()
495 if (elem->asnlen & ASN_BIT8) { in asn1_parse()
496 uint32_t noct = elem->asnlen % ASN_BIT8; in asn1_parse()
497 elem->asnlen = 0; in asn1_parse()
504 elem->asnlen = (elem->asnlen << ASN_SHIFT8) | *p++; in asn1_parse()
506 if (len < elem->asnlen) { in asn1_parse()
507 ND_PRINT((ndo, "[len%d<asnlen%u]", len, elem->asnlen)); in asn1_parse()
522 ND_TCHECK2(*p, elem->asnlen); in asn1_parse()
530 elem->type = BE_STR; in asn1_parse()
531 elem->data.str = p; in asn1_parse()
536 elem->type = BE_INT; in asn1_parse()
539 if (elem->asnlen == 0) { in asn1_parse()
545 for (i = elem->asnlen; i-- > 0; p++) in asn1_parse()
547 elem->data.integer = data; in asn1_parse()
552 elem->type = BE_OID; in asn1_parse()
553 elem->data.raw = (const uint8_t *)p; in asn1_parse()
557 elem->type = BE_NULL; in asn1_parse()
558 elem->data.raw = NULL; in asn1_parse()
562 elem->type = BE_OCTET; in asn1_parse()
563 elem->data.raw = (const uint8_t *)p; in asn1_parse()
572 elem->type = BE_INETADDR; in asn1_parse()
573 elem->data.raw = (const uint8_t *)p; in asn1_parse()
580 elem->type = BE_UNS; in asn1_parse()
582 for (i = elem->asnlen; i-- > 0; p++) in asn1_parse()
584 elem->data.uns = data; in asn1_parse()
590 elem->type = BE_UNS64; in asn1_parse()
592 for (i = elem->asnlen; i-- > 0; p++) in asn1_parse()
594 elem->data.uns64 = data64; in asn1_parse()
599 elem->type = BE_OCTET; in asn1_parse()
600 elem->data.raw = (const uint8_t *)p; in asn1_parse()
610 elem->type = BE_NOSUCHOBJECT; in asn1_parse()
611 elem->data.raw = NULL; in asn1_parse()
615 elem->type = BE_NOSUCHINST; in asn1_parse()
616 elem->data.raw = NULL; in asn1_parse()
620 elem->type = BE_ENDOFMIBVIEW; in asn1_parse()
621 elem->data.raw = NULL; in asn1_parse()
628 elem->type = BE_OCTET; in asn1_parse()
629 elem->data.raw = (const uint8_t *)p; in asn1_parse()
639 elem->type = BE_SEQ; in asn1_parse()
640 elem->data.raw = (const uint8_t *)p; in asn1_parse()
644 elem->type = BE_OCTET; in asn1_parse()
645 elem->data.raw = (const uint8_t *)p; in asn1_parse()
652 elem->type = BE_PDU; in asn1_parse()
653 elem->data.raw = (const uint8_t *)p; in asn1_parse()
657 elem->type = BE_OCTET; in asn1_parse()
658 elem->data.raw = (const uint8_t *)p; in asn1_parse()
664 p += elem->asnlen; in asn1_parse()
665 len -= elem->asnlen; in asn1_parse()
666 return elem->asnlen + hdr; in asn1_parse()
674 asn1_print_octets(netdissect_options *ndo, struct be *elem) in asn1_print_octets() argument
676 const u_char *p = (const u_char *)elem->data.raw; in asn1_print_octets()
677 uint32_t asnlen = elem->asnlen; in asn1_print_octets()
691 asn1_print_string(netdissect_options *ndo, struct be *elem) in asn1_print_string() argument
695 uint32_t asnlen = elem->asnlen; in asn1_print_string()
698 p = elem->data.str; in asn1_print_string()
702 p = elem->data.str; in asn1_print_string()
730 struct be *elem) in asn1_print() argument
733 uint32_t asnlen = elem->asnlen; in asn1_print()
736 switch (elem->type) { in asn1_print()
739 if (asn1_print_octets(ndo, elem) == -1) in asn1_print()
749 p = (const u_char *)elem->data.raw; in asn1_print()
799 ND_PRINT((ndo, "%d", elem->data.integer)); in asn1_print()
803 ND_PRINT((ndo, "%u", elem->data.uns)); in asn1_print()
807 ND_PRINT((ndo, "%" PRIu64, elem->data.uns64)); in asn1_print()
811 if (asn1_print_string(ndo, elem) == -1) in asn1_print()
816 ND_PRINT((ndo, "Seq(%u)", elem->asnlen)); in asn1_print()
822 p = (const u_char *)elem->data.raw; in asn1_print()
832 ND_PRINT((ndo, "[%s]", Class[EXCEPTIONS].Id[elem->id])); in asn1_print()
836 ND_PRINT((ndo, "%s(%u)", Class[CONTEXT].Id[elem->id], elem->asnlen)); in asn1_print()
867 struct be elem; in asn1_decode() local
871 i = asn1_parse(ndo, p, length, &elem); in asn1_decode()
874 if (asn1_print(ndo, &elem) < 0) in asn1_decode()
876 if (elem.type == BE_SEQ || elem.type == BE_PDU) { in asn1_decode()
878 asn1_decode(elem.data.raw, elem.asnlen); in asn1_decode()
913 struct be *elem, unsigned int *oid, in smi_decode_oid() argument
916 const u_char *p = (const u_char *)elem->data.raw; in smi_decode_oid()
917 uint32_t asnlen = elem->asnlen; in smi_decode_oid()
966 struct be *elem) in smi_check_a_range() argument
975 ok = (elem->asnlen == smiRange->minValue.value.unsigned32); in smi_check_a_range()
977 ok = (elem->asnlen >= smiRange->minValue.value.unsigned32 in smi_check_a_range()
978 && elem->asnlen <= smiRange->maxValue.value.unsigned32); in smi_check_a_range()
983 ok = (elem->data.integer >= smiRange->minValue.value.integer32 in smi_check_a_range()
984 && elem->data.integer <= smiRange->maxValue.value.integer32); in smi_check_a_range()
988 ok = (elem->data.uns >= smiRange->minValue.value.unsigned32 in smi_check_a_range()
989 && elem->data.uns <= smiRange->maxValue.value.unsigned32); in smi_check_a_range()
1015 static int smi_check_range(SmiType *smiType, struct be *elem) in smi_check_range() argument
1024 ok = smi_check_a_range(smiType, smiRange, elem); in smi_check_range()
1035 ok = smi_check_range(parentType, elem); in smi_check_range()
1044 struct be *elem, int *status) in smi_print_variable() argument
1051 *status = asn1_print(ndo, elem); in smi_print_variable()
1054 *status = smi_decode_oid(ndo, elem, oid, sizeof(oid) / sizeof(unsigned int), in smi_print_variable()
1060 *status = asn1_print(ndo, elem); in smi_print_variable()
1078 SmiNode *smiNode, u_short pduid, struct be *elem) in smi_print_value() argument
1087 return asn1_print(ndo, elem); in smi_print_value()
1090 if (elem->type == BE_NOSUCHOBJECT in smi_print_value()
1091 || elem->type == BE_NOSUCHINST in smi_print_value()
1092 || elem->type == BE_ENDOFMIBVIEW) { in smi_print_value()
1093 return asn1_print(ndo, elem); in smi_print_value()
1115 return asn1_print(ndo, elem); in smi_print_value()
1118 if (! smi_check_type(smiType->basetype, elem->type)) { in smi_print_value()
1122 if (! smi_check_range(smiType, elem)) { in smi_print_value()
1134 switch (elem->type) { in smi_print_value()
1140 smi_decode_oid(ndo, elem, oid, in smi_print_value()
1167 == elem->data.integer) { in smi_print_value()
1169 ND_PRINT((ndo, "(%d)", elem->data.integer)); in smi_print_value()
1179 return asn1_print(ndo, elem); in smi_print_value()
1225 struct be elem; in varbind_print() local
1233 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in varbind_print()
1235 if (elem.type != BE_SEQ) { in varbind_print()
1237 asn1_print(ndo, &elem); in varbind_print()
1243 length = elem.asnlen; in varbind_print()
1244 np = (const u_char *)elem.data.raw; in varbind_print()
1253 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in varbind_print()
1255 if (elem.type != BE_SEQ) { in varbind_print()
1257 asn1_print(ndo, &elem); in varbind_print()
1263 length = elem.asnlen; in varbind_print()
1264 np = (const u_char *)elem.data.raw; in varbind_print()
1267 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in varbind_print()
1269 if (elem.type != BE_OID) { in varbind_print()
1271 asn1_print(ndo, &elem); in varbind_print()
1275 smiNode = smi_print_variable(ndo, &elem, &status); in varbind_print()
1277 status = asn1_print(ndo, &elem); in varbind_print()
1289 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in varbind_print()
1293 if (elem.type != BE_NULL) { in varbind_print()
1295 if (asn1_print(ndo, &elem) < 0) in varbind_print()
1299 if (elem.type != BE_NULL) { in varbind_print()
1301 status = smi_print_value(ndo, smiNode, pduid, &elem); in varbind_print()
1303 status = asn1_print(ndo, &elem); in varbind_print()
1322 struct be elem; in snmppdu_print() local
1326 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in snmppdu_print()
1328 if (elem.type != BE_INT) { in snmppdu_print()
1330 asn1_print(ndo, &elem); in snmppdu_print()
1334 ND_PRINT((ndo, "R=%d ", elem.data.integer)); in snmppdu_print()
1339 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in snmppdu_print()
1341 if (elem.type != BE_INT) { in snmppdu_print()
1343 asn1_print(ndo, &elem); in snmppdu_print()
1349 && elem.data.integer != 0) { in snmppdu_print()
1352 DECODE_ErrorStatus(elem.data.integer))); in snmppdu_print()
1354 ND_PRINT((ndo, " N=%d", elem.data.integer)); in snmppdu_print()
1355 } else if (elem.data.integer != 0) { in snmppdu_print()
1357 ND_PRINT((ndo, " %s", DECODE_ErrorStatus(elem.data.integer))); in snmppdu_print()
1358 error_status = elem.data.integer; in snmppdu_print()
1364 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in snmppdu_print()
1366 if (elem.type != BE_INT) { in snmppdu_print()
1368 asn1_print(ndo, &elem); in snmppdu_print()
1373 && elem.data.integer != 0) in snmppdu_print()
1374 ND_PRINT((ndo, "[errorIndex(%d)!=0]", elem.data.integer)); in snmppdu_print()
1376 ND_PRINT((ndo, " M=%d", elem.data.integer)); in snmppdu_print()
1377 else if (elem.data.integer != 0) { in snmppdu_print()
1379 ND_PRINT((ndo, "[errorIndex(%d) w/o errorStatus]", elem.data.integer)); in snmppdu_print()
1381 ND_PRINT((ndo, "@%d", elem.data.integer)); in snmppdu_print()
1399 struct be elem; in trappdu_print() local
1405 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in trappdu_print()
1407 if (elem.type != BE_OID) { in trappdu_print()
1409 asn1_print(ndo, &elem); in trappdu_print()
1412 if (asn1_print(ndo, &elem) < 0) in trappdu_print()
1420 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in trappdu_print()
1422 if (elem.type != BE_INETADDR) { in trappdu_print()
1424 asn1_print(ndo, &elem); in trappdu_print()
1427 if (asn1_print(ndo, &elem) < 0) in trappdu_print()
1433 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in trappdu_print()
1435 if (elem.type != BE_INT) { in trappdu_print()
1437 asn1_print(ndo, &elem); in trappdu_print()
1440 generic = elem.data.integer; in trappdu_print()
1449 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in trappdu_print()
1451 if (elem.type != BE_INT) { in trappdu_print()
1453 asn1_print(ndo, &elem); in trappdu_print()
1457 if (elem.data.integer != 0) in trappdu_print()
1458 ND_PRINT((ndo, "[specific-trap(%d)!=0]", elem.data.integer)); in trappdu_print()
1460 ND_PRINT((ndo, " s=%d", elem.data.integer)); in trappdu_print()
1467 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in trappdu_print()
1469 if (elem.type != BE_UNS) { /* XXX */ in trappdu_print()
1471 asn1_print(ndo, &elem); in trappdu_print()
1474 if (asn1_print(ndo, &elem) < 0) in trappdu_print()
1552 struct be elem; in scopedpdu_print() local
1556 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in scopedpdu_print()
1558 if (elem.type != BE_SEQ) { in scopedpdu_print()
1560 asn1_print(ndo, &elem); in scopedpdu_print()
1563 length = elem.asnlen; in scopedpdu_print()
1564 np = (const u_char *)elem.data.raw; in scopedpdu_print()
1567 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in scopedpdu_print()
1569 if (elem.type != BE_STR) { in scopedpdu_print()
1571 asn1_print(ndo, &elem); in scopedpdu_print()
1578 if (asn1_print_octets(ndo, &elem) == -1) in scopedpdu_print()
1583 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in scopedpdu_print()
1585 if (elem.type != BE_STR) { in scopedpdu_print()
1587 asn1_print(ndo, &elem); in scopedpdu_print()
1594 if (asn1_print_string(ndo, &elem) == -1) in scopedpdu_print()
1608 struct be elem; in community_print() local
1612 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in community_print()
1614 if (elem.type != BE_STR) { in community_print()
1616 asn1_print(ndo, &elem); in community_print()
1620 if (!(elem.asnlen == sizeof(DEF_COMMUNITY) - 1 && in community_print()
1621 strncmp((const char *)elem.data.str, DEF_COMMUNITY, in community_print()
1625 if (asn1_print_string(ndo, &elem) == -1) in community_print()
1642 struct be elem; in usm_print() local
1646 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in usm_print()
1648 if (elem.type != BE_SEQ) { in usm_print()
1650 asn1_print(ndo, &elem); in usm_print()
1653 length = elem.asnlen; in usm_print()
1654 np = (const u_char *)elem.data.raw; in usm_print()
1657 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in usm_print()
1659 if (elem.type != BE_STR) { in usm_print()
1661 asn1_print(ndo, &elem); in usm_print()
1668 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in usm_print()
1670 if (elem.type != BE_INT) { in usm_print()
1672 asn1_print(ndo, &elem); in usm_print()
1676 ND_PRINT((ndo, "B=%d ", elem.data.integer)); in usm_print()
1681 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in usm_print()
1683 if (elem.type != BE_INT) { in usm_print()
1685 asn1_print(ndo, &elem); in usm_print()
1689 ND_PRINT((ndo, "T=%d ", elem.data.integer)); in usm_print()
1694 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in usm_print()
1696 if (elem.type != BE_STR) { in usm_print()
1698 asn1_print(ndo, &elem); in usm_print()
1705 if (asn1_print_string(ndo, &elem) == -1) in usm_print()
1710 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in usm_print()
1712 if (elem.type != BE_STR) { in usm_print()
1714 asn1_print(ndo, &elem); in usm_print()
1721 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in usm_print()
1723 if (elem.type != BE_STR) { in usm_print()
1725 asn1_print(ndo, &elem); in usm_print()
1742 struct be elem; in v3msg_print() local
1750 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in v3msg_print()
1752 if (elem.type != BE_SEQ) { in v3msg_print()
1754 asn1_print(ndo, &elem); in v3msg_print()
1757 length = elem.asnlen; in v3msg_print()
1758 np = (const u_char *)elem.data.raw; in v3msg_print()
1765 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in v3msg_print()
1767 if (elem.type != BE_INT) { in v3msg_print()
1769 asn1_print(ndo, &elem); in v3msg_print()
1776 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in v3msg_print()
1778 if (elem.type != BE_INT) { in v3msg_print()
1780 asn1_print(ndo, &elem); in v3msg_print()
1787 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in v3msg_print()
1789 if (elem.type != BE_STR) { in v3msg_print()
1791 asn1_print(ndo, &elem); in v3msg_print()
1794 if (elem.asnlen != 1) { in v3msg_print()
1795 ND_PRINT((ndo, "[msgFlags size %d]", elem.asnlen)); in v3msg_print()
1798 flags = elem.data.str[0]; in v3msg_print()
1813 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in v3msg_print()
1815 if (elem.type != BE_INT) { in v3msg_print()
1817 asn1_print(ndo, &elem); in v3msg_print()
1820 model = elem.data.integer; in v3msg_print()
1844 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in v3msg_print()
1846 if (elem.type != BE_STR) { in v3msg_print()
1848 asn1_print(ndo, &elem); in v3msg_print()
1855 usm_print(ndo, elem.data.str, elem.asnlen); in v3msg_print()
1879 struct be elem; in snmp_print() local
1886 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in snmp_print()
1888 if (elem.type != BE_SEQ) { in snmp_print()
1890 asn1_print(ndo, &elem); in snmp_print()
1896 length = elem.asnlen; in snmp_print()
1897 np = (const u_char *)elem.data.raw; in snmp_print()
1900 if ((count = asn1_parse(ndo, np, length, &elem)) < 0) in snmp_print()
1902 if (elem.type != BE_INT) { in snmp_print()
1904 asn1_print(ndo, &elem); in snmp_print()
1908 switch (elem.data.integer) { in snmp_print()
1913 ND_PRINT((ndo, "{ %s ", SnmpVersion[elem.data.integer])); in snmp_print()
1916 ND_PRINT((ndo, "SNMP [version = %d]", elem.data.integer)); in snmp_print()
1919 version = elem.data.integer; in snmp_print()
1932 ND_PRINT((ndo, "[version = %d]", elem.data.integer)); in snmp_print()