GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
scan_asn1derlength(3) FreeBSD Library Functions Manual scan_asn1derlength(3)

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

#include <libowfat/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 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.

fmt_asn1derlength(3), scan_asn1derlengthvalue(3)

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.