logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Description

       scan_asn1derlength  decodes  an  unsigned integer in ASN.1 DER length encoding 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 minimum 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.

Name

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

See Also

fmt_asn1derlength(3), scan_asn1derlengthvalue(3)

                                                                                           scan_asn1derlength(3)

Syntax

#include<libowfat/scan.h>

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

See Also