#include "scan.h"
void
scan_extended_request(const char **src, const char *max, HV *out) {
U8 type;
U32 tag;
SV *sv = newSV(0);
hv_stores(out, "oid", sv);
scan_raw(src, max, &type, &tag, sv);
if (type != (ASN1_CONTEXT_SPECIFIC | ASN1_PRIMITIVE) || tag != 0)
croak("scan_extended_request: bad value");
if (!sv_utf8_decode(sv))
croak("scan_string_utf8: invalid UTF8 data received");
if (*src < max) {
sv = newSV(0);
hv_stores(out, "value", sv);
scan_raw(src, max, &type, &tag, sv);
if (type != (ASN1_CONTEXT_SPECIFIC | ASN1_PRIMITIVE) || tag != 1)
croak("scan_extended_request: bad value");
}
}