diff options
Diffstat (limited to 'scan_asn1BOOLEAN.c')
-rw-r--r-- | scan_asn1BOOLEAN.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/scan_asn1BOOLEAN.c b/scan_asn1BOOLEAN.c new file mode 100644 index 0000000..8a3958f --- /dev/null +++ b/scan_asn1BOOLEAN.c @@ -0,0 +1,16 @@ +#include "asn1.h" + +size_t scan_asn1BOOLEAN(const char* src,const char* max,unsigned long* val) { + size_t tmp; + unsigned long tag; + enum asn1_tagclass tc; + enum asn1_tagtype tt; + long ltmp; + if ((tmp=scan_asn1int(src,max,&tc,&tt,&tag,<mp))) + if (tc==UNIVERSAL && tt==PRIMITIVE && tag==BOOLEAN) { + if (ltmp!=0 && ltmp!=1) return 0; + *val=(unsigned long)ltmp; + return tmp; + } + return 0; +} |