Lines Matching refs:pos
186 const u8 *pos, *end; in x509_parse_algorithm_identifier() local
202 pos = hdr.payload; in x509_parse_algorithm_identifier()
203 end = pos + hdr.length; in x509_parse_algorithm_identifier()
207 if (asn1_get_oid(pos, end - pos, &id->oid, &pos)) in x509_parse_algorithm_identifier()
221 const u8 *pos, *end; in x509_parse_public_key() local
230 pos = buf; in x509_parse_public_key()
233 if (asn1_get_next(pos, end - pos, &hdr) < 0 || in x509_parse_public_key()
239 pos = hdr.payload; in x509_parse_public_key()
241 if (hdr.length > end - pos) in x509_parse_public_key()
243 end = pos + hdr.length; in x509_parse_public_key()
246 if (x509_parse_algorithm_identifier(pos, end - pos, in x509_parse_public_key()
247 &cert->public_key_alg, &pos)) in x509_parse_public_key()
250 if (asn1_get_next(pos, end - pos, &hdr) < 0 || in x509_parse_public_key()
258 pos = hdr.payload; in x509_parse_public_key()
259 if (*pos) { in x509_parse_public_key()
262 *pos); in x509_parse_public_key()
271 cert->public_key = os_memdup(pos + 1, hdr.length - 1); in x509_parse_public_key()
289 const u8 *pos, *end, *set_pos, *set_end, *seq_pos, *seq_end; in x509_parse_name() local
310 pos = hdr.payload; in x509_parse_name()
312 if (hdr.length > buf + len - pos) in x509_parse_name()
315 end = *next = pos + hdr.length; in x509_parse_name()
317 while (pos < end) { in x509_parse_name()
320 if (asn1_get_next(pos, end - pos, &hdr) < 0 || in x509_parse_name()
329 pos = set_end = hdr.payload + hdr.length; in x509_parse_name()
494 char *pos, *end; in x509_name_string() local
501 pos = buf; in x509_name_string()
505 ret = os_snprintf(pos, end - pos, "%s=%s, ", in x509_name_string()
508 if (os_snprintf_error(end - pos, ret)) in x509_name_string()
510 pos += ret; in x509_name_string()
513 if (pos > buf + 1 && pos[-1] == ' ' && pos[-2] == ',') { in x509_name_string()
514 pos--; in x509_name_string()
515 *pos = '\0'; in x509_name_string()
516 pos--; in x509_name_string()
517 *pos = '\0'; in x509_name_string()
521 ret = os_snprintf(pos, end - pos, "/emailAddress=%s", in x509_name_string()
523 if (os_snprintf_error(end - pos, ret)) in x509_name_string()
525 pos += ret; in x509_name_string()
529 if (pos < end) in x509_name_string()
530 *pos = '\0'; in x509_name_string()
535 static int parse_uint2(const char *pos, size_t len) in parse_uint2() argument
545 buf[0] = pos[i]; in parse_uint2()
554 static int parse_uint4(const char *pos, size_t len) in parse_uint4() argument
564 buf[0] = pos[i]; in parse_uint4()
575 const char *pos, *end; in x509_parse_time() local
588 pos = (const char *) buf; in x509_parse_time()
589 end = pos + len; in x509_parse_time()
598 year = parse_uint2(pos, end - pos); in x509_parse_time()
608 pos += 2; in x509_parse_time()
616 year = parse_uint4(pos, end - pos); in x509_parse_time()
622 pos += 4; in x509_parse_time()
630 month = parse_uint2(pos, end - pos); in x509_parse_time()
636 pos += 2; in x509_parse_time()
638 day = parse_uint2(pos, end - pos); in x509_parse_time()
644 pos += 2; in x509_parse_time()
646 hour = parse_uint2(pos, end - pos); in x509_parse_time()
652 pos += 2; in x509_parse_time()
654 min = parse_uint2(pos, end - pos); in x509_parse_time()
660 pos += 2; in x509_parse_time()
662 sec = parse_uint2(pos, end - pos); in x509_parse_time()
694 const u8 *pos; in x509_parse_validity() local
713 pos = hdr.payload; in x509_parse_validity()
716 if (plen > (size_t) (buf + len - pos)) in x509_parse_validity()
719 *next = pos + plen; in x509_parse_validity()
721 if (asn1_get_next(pos, plen, &hdr) < 0 || in x509_parse_validity()
730 pos = hdr.payload + hdr.length; in x509_parse_validity()
731 plen = *next - pos; in x509_parse_validity()
733 if (asn1_get_next(pos, plen, &hdr) < 0 || in x509_parse_validity()
770 const u8 *pos, size_t len) in x509_parse_ext_key_usage() argument
787 if (asn1_get_next(pos, len, &hdr) < 0 || !asn1_is_bitstring(&hdr) || in x509_parse_ext_key_usage()
803 const u8 *pos, size_t len) in x509_parse_ext_basic_constraints() argument
816 if (asn1_get_next(pos, len, &hdr) < 0 || !asn1_is_sequence(&hdr)) { in x509_parse_ext_basic_constraints()
837 pos = hdr.payload + hdr.length; in x509_parse_ext_basic_constraints()
838 if (pos >= end_seq) { in x509_parse_ext_basic_constraints()
844 if (asn1_get_next(pos, end_seq - pos, &hdr) < 0) { in x509_parse_ext_basic_constraints()
857 pos = hdr.payload; in x509_parse_ext_basic_constraints()
862 value |= *pos++; in x509_parse_ext_basic_constraints()
878 const u8 *pos, size_t len) in x509_parse_alt_name_rfc8222() argument
881 wpa_hexdump_ascii(MSG_MSGDUMP, "X509: altName - rfc822Name", pos, len); in x509_parse_alt_name_rfc8222()
886 os_memcpy(name->alt_email, pos, len); in x509_parse_alt_name_rfc8222()
900 const u8 *pos, size_t len) in x509_parse_alt_name_dns() argument
903 wpa_hexdump_ascii(MSG_MSGDUMP, "X509: altName - dNSName", pos, len); in x509_parse_alt_name_dns()
908 os_memcpy(name->dns, pos, len); in x509_parse_alt_name_dns()
922 const u8 *pos, size_t len) in x509_parse_alt_name_uri() argument
927 pos, len); in x509_parse_alt_name_uri()
932 os_memcpy(name->uri, pos, len); in x509_parse_alt_name_uri()
946 const u8 *pos, size_t len) in x509_parse_alt_name_ip() argument
949 wpa_hexdump(MSG_MSGDUMP, "X509: altName - iPAddress", pos, len); in x509_parse_alt_name_ip()
951 name->ip = os_memdup(pos, len); in x509_parse_alt_name_ip()
960 const u8 *pos, size_t len) in x509_parse_alt_name_rid() argument
965 if (asn1_parse_oid(pos, len, &name->rid) < 0) in x509_parse_alt_name_rid()
976 const u8 *pos, size_t len) in x509_parse_ext_alt_name() argument
1004 for (p = pos, end = pos + len; p < end; p = hdr.payload + hdr.length) { in x509_parse_ext_alt_name()
1054 const u8 *pos, size_t len) in x509_parse_ext_subject_alt_name() argument
1060 if (asn1_get_next(pos, len, &hdr) < 0 || !asn1_is_sequence(&hdr)) { in x509_parse_ext_subject_alt_name()
1078 const u8 *pos, size_t len) in x509_parse_ext_issuer_alt_name() argument
1084 if (asn1_get_next(pos, len, &hdr) < 0 || !asn1_is_sequence(&hdr)) { in x509_parse_ext_issuer_alt_name()
1151 const u8 *pos, size_t len) in x509_parse_ext_certificate_policies() argument
1167 if (asn1_get_next(pos, len, &hdr) < 0 || !asn1_is_sequence(&hdr)) { in x509_parse_ext_certificate_policies()
1172 if (hdr.length > pos + len - hdr.payload) in x509_parse_ext_certificate_policies()
1174 pos = hdr.payload; in x509_parse_ext_certificate_policies()
1175 end = pos + hdr.length; in x509_parse_ext_certificate_policies()
1177 wpa_hexdump(MSG_MSGDUMP, "X509: certificatePolicies", pos, end - pos); in x509_parse_ext_certificate_policies()
1179 while (pos < end) { in x509_parse_ext_certificate_policies()
1184 if (asn1_get_next(pos, end - pos, &hdr) < 0 || in x509_parse_ext_certificate_policies()
1192 pos = hdr.payload; in x509_parse_ext_certificate_policies()
1193 pol_end = pos + hdr.length; in x509_parse_ext_certificate_policies()
1195 pos, pol_end - pos); in x509_parse_ext_certificate_policies()
1197 if (asn1_get_oid(pos, pol_end - pos, &oid, &pos)) in x509_parse_ext_certificate_policies()
1216 pos = pol_end; in x509_parse_ext_certificate_policies()
1275 const u8 *pos, size_t len) in x509_parse_ext_ext_key_usage() argument
1287 if (asn1_get_next(pos, len, &hdr) < 0 || !asn1_is_sequence(&hdr)) { in x509_parse_ext_ext_key_usage()
1292 if (hdr.length > pos + len - hdr.payload) in x509_parse_ext_ext_key_usage()
1294 pos = hdr.payload; in x509_parse_ext_ext_key_usage()
1295 end = pos + hdr.length; in x509_parse_ext_ext_key_usage()
1297 wpa_hexdump(MSG_MSGDUMP, "X509: ExtKeyUsageSyntax", pos, end - pos); in x509_parse_ext_ext_key_usage()
1299 while (pos < end) { in x509_parse_ext_ext_key_usage()
1302 if (asn1_get_oid(pos, end - pos, &oid, &pos)) in x509_parse_ext_ext_key_usage()
1330 const u8 *pos, size_t len) in x509_parse_extension_data() argument
1342 return x509_parse_ext_key_usage(cert, pos, len); in x509_parse_extension_data()
1344 return x509_parse_ext_subject_alt_name(cert, pos, len); in x509_parse_extension_data()
1346 return x509_parse_ext_issuer_alt_name(cert, pos, len); in x509_parse_extension_data()
1348 return x509_parse_ext_basic_constraints(cert, pos, len); in x509_parse_extension_data()
1350 return x509_parse_ext_certificate_policies(cert, pos, len); in x509_parse_extension_data()
1352 return x509_parse_ext_ext_key_usage(cert, pos, len); in x509_parse_extension_data()
1360 const u8 *pos, size_t len, const u8 **next) in x509_parse_extension() argument
1376 if (asn1_get_next(pos, len, &hdr) < 0 || !asn1_is_sequence(&hdr)) { in x509_parse_extension()
1380 pos = hdr.payload; in x509_parse_extension()
1381 *next = end = pos + hdr.length; in x509_parse_extension()
1383 if (asn1_get_oid(pos, end - pos, &oid, &pos) < 0) { in x509_parse_extension()
1389 if (asn1_get_next(pos, end - pos, &hdr) < 0 || in x509_parse_extension()
1398 pos = hdr.payload; in x509_parse_extension()
1405 if (asn1_get_next(pos, end - pos, &hdr) < 0 || in x509_parse_extension()
1434 const u8 *pos, size_t len) in x509_parse_extensions() argument
1441 if (asn1_get_next(pos, len, &hdr) < 0 || !asn1_is_sequence(&hdr)) { in x509_parse_extensions()
1446 pos = hdr.payload; in x509_parse_extensions()
1447 end = pos + hdr.length; in x509_parse_extensions()
1449 while (pos < end) { in x509_parse_extensions()
1450 if (x509_parse_extension(cert, pos, end - pos, &pos) in x509_parse_extensions()
1464 const u8 *pos, *end; in x509_parse_tbs_certificate() local
1476 pos = hdr.payload; in x509_parse_tbs_certificate()
1477 end = *next = pos + hdr.length; in x509_parse_tbs_certificate()
1483 if (asn1_get_next(pos, end - pos, &hdr) < 0) in x509_parse_tbs_certificate()
1485 pos = hdr.payload; in x509_parse_tbs_certificate()
1488 if (asn1_get_next(pos, end - pos, &hdr) < 0 || in x509_parse_tbs_certificate()
1499 pos = hdr.payload; in x509_parse_tbs_certificate()
1504 value |= *pos++; in x509_parse_tbs_certificate()
1517 if (asn1_get_next(pos, end - pos, &hdr) < 0) in x509_parse_tbs_certificate()
1531 pos = hdr.payload + hdr.length; in x509_parse_tbs_certificate()
1542 if (x509_parse_algorithm_identifier(pos, end - pos, &cert->signature, in x509_parse_tbs_certificate()
1543 &pos)) in x509_parse_tbs_certificate()
1547 if (x509_parse_name(pos, end - pos, &cert->issuer, &pos)) in x509_parse_tbs_certificate()
1553 if (x509_parse_validity(pos, end - pos, cert, &pos)) in x509_parse_tbs_certificate()
1557 subject_dn = pos; in x509_parse_tbs_certificate()
1558 if (x509_parse_name(pos, end - pos, &cert->subject, &pos)) in x509_parse_tbs_certificate()
1560 cert->subject_dn = os_malloc(pos - subject_dn); in x509_parse_tbs_certificate()
1563 cert->subject_dn_len = pos - subject_dn; in x509_parse_tbs_certificate()
1569 if (x509_parse_public_key(pos, end - pos, cert, &pos)) in x509_parse_tbs_certificate()
1572 if (pos == end) in x509_parse_tbs_certificate()
1578 if (asn1_get_next(pos, end - pos, &hdr) < 0 || in x509_parse_tbs_certificate()
1590 pos = hdr.payload + hdr.length; in x509_parse_tbs_certificate()
1591 if (pos == end) in x509_parse_tbs_certificate()
1594 if (asn1_get_next(pos, end - pos, &hdr) < 0 || in x509_parse_tbs_certificate()
1607 pos = hdr.payload + hdr.length; in x509_parse_tbs_certificate()
1608 if (pos == end) in x509_parse_tbs_certificate()
1611 if (asn1_get_next(pos, end - pos, &hdr) < 0 || in x509_parse_tbs_certificate()
1638 pos = hdr.payload + hdr.length; in x509_parse_tbs_certificate()
1639 if (pos < end) { in x509_parse_tbs_certificate()
1642 pos, end - pos); in x509_parse_tbs_certificate()
1734 const u8 *pos, *end, *hash_start; in x509_certificate_parse() local
1744 pos = buf; in x509_certificate_parse()
1750 if (asn1_get_next(pos, len, &hdr) < 0 || !asn1_is_sequence(&hdr)) { in x509_certificate_parse()
1756 pos = hdr.payload; in x509_certificate_parse()
1758 if (hdr.length > end - pos) { in x509_certificate_parse()
1763 if (hdr.length < end - pos) { in x509_certificate_parse()
1766 pos + hdr.length, end - (pos + hdr.length)); in x509_certificate_parse()
1767 end = pos + hdr.length; in x509_certificate_parse()
1770 hash_start = pos; in x509_certificate_parse()
1772 if (x509_parse_tbs_certificate(pos, end - pos, cert, &pos)) { in x509_certificate_parse()
1776 cert->tbs_cert_len = pos - hash_start; in x509_certificate_parse()
1779 if (x509_parse_algorithm_identifier(pos, end - pos, in x509_certificate_parse()
1780 &cert->signature_alg, &pos)) { in x509_certificate_parse()
1786 if (asn1_get_next(pos, end - pos, &hdr) < 0 || in x509_certificate_parse()
1797 pos = hdr.payload; in x509_certificate_parse()
1798 if (*pos) { in x509_certificate_parse()
1801 *pos); in x509_certificate_parse()
1810 cert->sign_value = os_memdup(pos + 1, hdr.length - 1); in x509_certificate_parse()
1848 const u8 *pos, *end, *next, *da_end; in x509_check_signature() local
1910 pos = hdr.payload; in x509_check_signature()
1911 end = pos + hdr.length; in x509_check_signature()
1921 if (asn1_get_next(pos, end - pos, &hdr) < 0 || in x509_check_signature()
2031 pos = da_end; in x509_check_signature()
2033 if (asn1_get_next(pos, end - pos, &hdr) < 0 || in x509_check_signature()