Lines Matching refs:len

59 asn_get_header(struct asn_buf *b, u_char *type, asn_len_t *len)  in asn_get_header()  argument
94 *len = 0; in asn_get_header()
96 *len = (*len << 8) | *b->asn_cptr++; in asn_get_header()
100 *len = *b->asn_cptr++; in asn_get_header()
111 if (*len > b->asn_len) { in asn_get_header()
112 asn_error(b, "lenen %u exceeding asn_len %u", *len, b->asn_len); in asn_get_header()
125 asn_put_len(u_char *ptr, asn_len_t len) in asn_put_len() argument
130 if (len > ASN_MAXLEN) { in asn_put_len()
131 asn_error(NULL, "encoding length too long: (%u)", len); in asn_put_len()
135 if (len <= 127) { in asn_put_len()
137 *ptr++ = (u_char)len; in asn_put_len()
142 for (tmp = len; tmp != 0; tmp >>= 8) in asn_put_len()
148 ptr[lenlen1] = len & 0xff; in asn_put_len()
149 len >>= 8; in asn_put_len()
162 asn_put_header(struct asn_buf *b, u_char type, asn_len_t len) in asn_put_header() argument
179 if ((lenlen = asn_put_len(NULL, len)) == 0) in asn_put_header()
184 (void)asn_put_len(b->asn_ptr, len); in asn_put_header()
214 asn_len_t len; in asn_commit_header() local
218 len = b->asn_ptr - (ptr + TEMP_LEN); in asn_commit_header()
221 lenlen = asn_put_len(ptr + 1, len); in asn_commit_header()
228 memmove(ptr + 1 + lenlen, ptr + TEMP_LEN, len); in asn_commit_header()
246 asn_get_real_integer(struct asn_buf *b, asn_len_t len, int64_t *vp) in asn_get_real_integer() argument
252 if (b->asn_len < len) { in asn_get_real_integer()
256 if (len == 0) { in asn_get_real_integer()
262 if (len > 8) { in asn_get_real_integer()
265 } else if (len > 1 && in asn_get_real_integer()
275 while (len--) { in asn_get_real_integer()
341 asn_get_real_unsigned(struct asn_buf *b, asn_len_t len, uint64_t *vp) in asn_get_real_unsigned() argument
344 if (b->asn_len < len) { in asn_get_real_unsigned()
348 if (len == 0) { in asn_get_real_unsigned()
353 if (len > 1 && *b->asn_cptr == 0x00 && (b->asn_cptr[1] & 0x80) == 0) { in asn_get_real_unsigned()
356 b->asn_cptr += len; in asn_get_real_unsigned()
357 b->asn_len -= len; in asn_get_real_unsigned()
364 if ((*b->asn_cptr & 0x80) || len > 9 || in asn_get_real_unsigned()
365 (len == 9 && *b->asn_cptr != 0)) { in asn_get_real_unsigned()
369 b->asn_cptr += len; in asn_get_real_unsigned()
370 b->asn_len -= len; in asn_get_real_unsigned()
374 while (len--) { in asn_get_real_unsigned()
419 asn_get_integer_raw(struct asn_buf *b, asn_len_t len, int32_t *vp) in asn_get_integer_raw() argument
424 if ((ret = asn_get_real_integer(b, len, &val)) == ASN_ERR_OK) { in asn_get_integer_raw()
425 if (len > 4) { in asn_get_integer_raw()
441 asn_len_t len; in asn_get_integer() local
445 if ((err = asn_get_header(b, &type, &len)) != ASN_ERR_OK) in asn_get_integer()
452 return (asn_get_integer_raw(b, len, vp)); in asn_get_integer()
471 asn_get_octetstring_raw(struct asn_buf *b, asn_len_t len, u_char *octets, in asn_get_octetstring_raw() argument
476 if (*noctets < len) { in asn_get_octetstring_raw()
480 if (b->asn_len < len) { in asn_get_octetstring_raw()
484 if (*noctets < len) in asn_get_octetstring_raw()
487 memcpy(octets, b->asn_cptr, len); in asn_get_octetstring_raw()
488 *noctets = len; in asn_get_octetstring_raw()
489 b->asn_cptr += len; in asn_get_octetstring_raw()
490 b->asn_len -= len; in asn_get_octetstring_raw()
499 asn_len_t len; in asn_get_octetstring() local
501 if ((err = asn_get_header(b, &type, &len)) != ASN_ERR_OK) in asn_get_octetstring()
507 return (asn_get_octetstring_raw(b, len, octets, noctets)); in asn_get_octetstring()
532 asn_get_null_raw(struct asn_buf *b, asn_len_t len) in asn_get_null_raw() argument
534 if (len != 0) { in asn_get_null_raw()
535 if (b->asn_len < len) { in asn_get_null_raw()
539 asn_error(b, "bad length for NULL (%u)", len); in asn_get_null_raw()
540 b->asn_len -= len; in asn_get_null_raw()
541 b->asn_ptr += len; in asn_get_null_raw()
551 asn_len_t len; in asn_get_null() local
554 if ((err = asn_get_header(b, &type, &len)) != ASN_ERR_OK) in asn_get_null()
560 return (asn_get_null_raw(b, len)); in asn_get_null()
581 asn_get_objid_raw(struct asn_buf *b, asn_len_t len, struct asn_oid *oid) in asn_get_objid_raw() argument
586 if (b->asn_len < len) { in asn_get_objid_raw()
590 oid->len = 0; in asn_get_objid_raw()
591 if (len == 0) { in asn_get_objid_raw()
593 oid->subs[oid->len++] = 0; in asn_get_objid_raw()
594 oid->subs[oid->len++] = 0; in asn_get_objid_raw()
598 while (len != 0) { in asn_get_objid_raw()
599 if (oid->len == ASN_MAXOIDLEN) { in asn_get_objid_raw()
600 asn_error(b, "OID too long (%u)", oid->len); in asn_get_objid_raw()
601 b->asn_cptr += len; in asn_get_objid_raw()
602 b->asn_len -= len; in asn_get_objid_raw()
607 if (len == 0) { in asn_get_objid_raw()
616 len--; in asn_get_objid_raw()
619 if (oid->len == 0) { in asn_get_objid_raw()
621 oid->subs[oid->len++] = subid / 40; in asn_get_objid_raw()
622 oid->subs[oid->len++] = subid % 40; in asn_get_objid_raw()
624 oid->subs[oid->len++] = 2; in asn_get_objid_raw()
625 oid->subs[oid->len++] = subid - 80; in asn_get_objid_raw()
628 oid->subs[oid->len++] = subid; in asn_get_objid_raw()
639 asn_len_t len; in asn_get_objid() local
642 if ((err = asn_get_header(b, &type, &len)) != ASN_ERR_OK) in asn_get_objid()
648 return (asn_get_objid_raw(b, len, oid)); in asn_get_objid()
657 asn_len_t len; in asn_put_objid() local
660 if (oid->len == 0) { in asn_put_objid()
666 } else if (oid->len == 1) { in asn_put_objid()
675 if (oid->len > ASN_MAXOIDLEN) { in asn_put_objid()
676 asn_error(NULL, "oid too long %u", oid->len); in asn_put_objid()
687 oidlen = oid->len; in asn_put_objid()
689 len = 0; in asn_put_objid()
696 len += (sub <= 0x7f) ? 1 in asn_put_objid()
702 if ((err1 = asn_put_header(b, ASN_TYPE_OBJID, len)) != ASN_ERR_OK) in asn_put_objid()
704 if (b->asn_len < len) in asn_put_objid()
744 asn_get_sequence(struct asn_buf *b, asn_len_t *len) in asn_get_sequence() argument
749 if ((err = asn_get_header(b, &type, len)) != ASN_ERR_OK) in asn_get_sequence()
755 if (*len > b->asn_len) { in asn_get_sequence()
768 asn_get_ipaddress_raw(struct asn_buf *b, asn_len_t len, u_char *addr) in asn_get_ipaddress_raw() argument
772 if (b->asn_len < len) { in asn_get_ipaddress_raw()
776 if (len < 4) { in asn_get_ipaddress_raw()
777 asn_error(b, "short length for ip-Address %u", len); in asn_get_ipaddress_raw()
778 for (i = 0; i < len; i++) in asn_get_ipaddress_raw()
780 while (i++ < len) in asn_get_ipaddress_raw()
782 b->asn_len -= len; in asn_get_ipaddress_raw()
787 b->asn_cptr += len - 4; in asn_get_ipaddress_raw()
788 b->asn_len -= len; in asn_get_ipaddress_raw()
796 asn_len_t len; in asn_get_ipaddress() local
799 if ((err = asn_get_header(b, &type, &len)) != ASN_ERR_OK) in asn_get_ipaddress()
805 return (asn_get_ipaddress_raw(b, len, addr)); in asn_get_ipaddress()
832 asn_get_uint32_raw(struct asn_buf *b, asn_len_t len, uint32_t *vp) in asn_get_uint32_raw() argument
837 if ((err = asn_get_real_unsigned(b, len, &v)) == ASN_ERR_OK) { in asn_get_uint32_raw()
860 asn_get_counter64_raw(struct asn_buf *b, asn_len_t len, uint64_t *vp) in asn_get_counter64_raw() argument
862 return (asn_get_real_unsigned(b, len, vp)); in asn_get_counter64_raw()
879 asn_len_t len; in asn_get_timeticks() local
883 if ((err = asn_get_header(b, &type, &len)) != ASN_ERR_OK) in asn_get_timeticks()
889 return (asn_get_uint32_raw(b, len, vp)); in asn_get_timeticks()
909 dest->len = 0; in asn_slice_oid()
912 dest->len = to - from; in asn_slice_oid()
913 memcpy(dest->subs, &src->subs[from], dest->len * sizeof(dest->subs[0])); in asn_slice_oid()
922 memcpy(&to->subs[to->len], &from->subs[0], in asn_append_oid()
923 from->len * sizeof(from->subs[0])); in asn_append_oid()
924 to->len += from->len; in asn_append_oid()
931 asn_skip(struct asn_buf *b, asn_len_t len) in asn_skip() argument
933 if (b->asn_len < len) in asn_skip()
935 b->asn_cptr += len; in asn_skip()
936 b->asn_len -= len; in asn_skip()
944 asn_pad(struct asn_buf *b, asn_len_t len) in asn_pad() argument
946 if (b->asn_len < len) in asn_pad()
948 b->asn_ptr += len; in asn_pad()
949 b->asn_len -= len; in asn_pad()
966 for (i = 0; i < o1->len && i < o2->len; i++) { in asn_compare_oid()
972 if (o1->len < o2->len) in asn_compare_oid()
974 if (o1->len > o2->len) in asn_compare_oid()
987 for (i = 0; i < o1->len; i++) in asn_is_suboid()
988 if (i >= o2->len || o1->subs[i] != o2->subs[i]) in asn_is_suboid()
1002 u_int len, i; in asn_oid2str_r() local
1005 if ((len = oid->len) > ASN_MAXOIDLEN) in asn_oid2str_r()
1006 len = ASN_MAXOIDLEN; in asn_oid2str_r()
1008 for (i = 0, ptr = buf; i < len; i++) { in asn_oid2str_r()