Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
scan_asn1derlength(3)	   Library Functions Manual	 scan_asn1derlength(3)

NAME
       scan_asn1derlength  -  decode an	unsigned integer from ASN.1 DER	length
       encoding

SYNTAX
       #include	<libowfat/scan.h>

       size_t scan_asn1derlength(const char *src,size_t	len,unsigned long long
       *dest);

DESCRIPTION
       scan_asn1derlength decodes an unsigned integer in ASN.1 DER length  en-
       coding  from  a	memory area holding binary data.  It writes the	decode
       value in	dest and returns the number of bytes it	read from src.

       scan_asn1derlength never	reads more than	len bytes from	src.   If  the
       sequence	 is  longer  than that,	or the memory area contains an invalid
       sequence, scan_asn1derlength returns 0 and does not touch dest.

       The length of the longest spec-compliant	ASN.1 DER length is 128	bytes,
       but this	implementation will return an error if the value does not  fit
       into  the  target  integer  type.   In practice the largest sequence is
       sizeof(*dest)+1.

       This implementation will	reject values that are not encoded in the min-
       imum amount of bytes.

       In addition to reading the length value,	this implementation will  also
       validate	 the  length  value.  If the length value is so	large that the
       data would not fit in the source	buffer,	it will	return a failure.   If
       you  only  want	to  parse  the	length	value  without this check, use
       scan_asn1derlengthvalue() instead.

SEE ALSO
       fmt_asn1derlength(3), scan_asn1derlengthvalue(3)

							 scan_asn1derlength(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libowfat_scan_asn1derlength&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help