From b865407aee117c59b326dad7e6aae9fffc90751a Mon Sep 17 00:00:00 2001 From: leitner Date: Wed, 18 Jan 2023 12:20:20 +0000 Subject: [PATCH] add no length check version of sequence parser (so you can tell how large the incoming message is to allocate buffer sizes) --- scan_asn1SEQUENCE_nolengthcheck.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 scan_asn1SEQUENCE_nolengthcheck.c diff --git a/scan_asn1SEQUENCE_nolengthcheck.c b/scan_asn1SEQUENCE_nolengthcheck.c new file mode 100644 index 0000000..6a05240 --- /dev/null +++ b/scan_asn1SEQUENCE_nolengthcheck.c @@ -0,0 +1,16 @@ +#include "asn1.h" + +size_t scan_asn1SEQUENCE_nolengthcheck(const char* src,const char* max,size_t* len) { + size_t res,tmp; + unsigned long tag; + enum asn1_tagclass tc; + enum asn1_tagtype tt; + if (!(res=scan_asn1tag(src,max,&tc,&tt,&tag))) return 0; + if (!(tmp=scan_asn1length_nolengthcheck(src+res,max,len))) return 0; + res+=tmp; + if (tc==UNIVERSAL && tt==CONSTRUCTED && tag==SEQUENCE_OF) + return res; + return 0; +} + +