Provided by: libowfat-dev_0.30-2ubuntu1_amd64 bug


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


       #include <scan.h>

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


       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

       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.


       fmt_asn1derlength(3), scan_asn1derlengthvalue(3)