Name Date Size #Lines LOC

..--

ChangeLogH A D24-Jun-202144.8 KiB1,666942

Makefile.amH A D24-Jun-20217.7 KiB255205

NTMakefileH A D24-Jun-20219.7 KiB357291

README.templateH A D24-Jun-20213.1 KiB13297

asn1-common.hH A D24-Jun-20212.1 KiB8264

asn1-template.hH A D24-Jun-20214 KiB14473

asn1_compile-version.rcH A D24-Jun-20211.6 KiB3734

asn1_err.etH A D24-Jun-20211.3 KiB3028

asn1_gen.cH A D24-Jun-20214.9 KiB189124

asn1_print.cH A D24-Jun-20219.3 KiB355290

asn1_queue.hH A D24-Jun-20216.6 KiB170109

asn1parse.yH A D24-Jun-202120.9 KiB1,040881

canthandle.asn1H A D24-Jun-2021791 3524

check-ber.cH A D24-Jun-202116.7 KiB282235

check-common.cH A D24-Jun-202110.1 KiB425322

check-common.hH A D24-Jun-20212.9 KiB7731

check-der.cH A D24-Jun-202126.8 KiB1,118933

check-gen.cH A D24-Jun-202135.2 KiB1,3141,058

check-template.cH A D24-Jun-20216 KiB258183

check-timegm.cH A D24-Jun-20212.4 KiB8438

cms.asn1H A D24-Jun-20214.2 KiB158120

cms.optH A D24-Jun-202155 32

der.cH A D24-Jun-20213.8 KiB14596

der.hH A D24-Jun-20213.1 KiB10856

der_cmp.cH A D24-Jun-20213.5 KiB11975

der_copy.cH A D24-Jun-20214.8 KiB184129

der_format.cH A D24-Jun-20214 KiB173115

der_free.cH A D24-Jun-20213.1 KiB14792

der_get.cH A D24-Jun-202114.6 KiB650518

der_length.cH A D24-Jun-20214.7 KiB251181

der_locl.hH A D24-Jun-20212.2 KiB6622

der_put.cH A D24-Jun-202110.1 KiB482395

digest.asn1H A D24-Jun-20214.9 KiB180149

extra.cH A D24-Jun-20213.8 KiB14489

gen.cH A D24-Jun-202125.9 KiB1,058910

gen_copy.cH A D24-Jun-20216.8 KiB254200

gen_decode.cH A D24-Jun-202118 KiB734661

gen_encode.cH A D24-Jun-202113.3 KiB553472

gen_free.cH A D24-Jun-20215.1 KiB194143

gen_glue.cH A D24-Jun-20214.2 KiB15999

gen_length.cH A D24-Jun-20217.6 KiB282225

gen_locl.hH A D24-Jun-20213.3 KiB10553

gen_seq.cH A D24-Jun-20214 KiB12266

gen_template.cH A D24-Jun-202122.3 KiB921742

hash.cH A D24-Jun-20214.6 KiB209125

hash.hH A D24-Jun-20213 KiB9031

heim_asn1.hH A D24-Jun-20212.4 KiB5516

krb5.asn1H A D24-Jun-202120.5 KiB826719

krb5.optH A D24-Jun-2021147 76

kx509.asn1H A D24-Jun-2021660 3226

lex.hH A D24-Jun-20211.8 KiB455

lex.lH A D24-Jun-20217.8 KiB303251

libasn1-exports.defH A D24-Jun-202136.4 KiB1,5791,578

main.cH A D24-Jun-20214.9 KiB210147

pkcs12.asn1H A D24-Jun-20212.3 KiB8260

pkcs8.asn1H A D24-Jun-2021627 3120

pkcs9.asn1H A D24-Jun-2021807 2918

pkinit.asn1H A D24-Jun-20215.5 KiB201158

rfc2459.asn1H A D24-Jun-202116.8 KiB563427

rfc2459.optH A D24-Jun-2021168 76

setchgpw2.asn1H A D24-Jun-20213.8 KiB194160

symbol.cH A D24-Jun-20212.7 KiB11162

symbol.hH A D24-Jun-20213.6 KiB165107

template.cH A D24-Jun-202124.6 KiB1,122903

test.asn1H A D24-Jun-20213.1 KiB139103

test.genH A D24-Jun-2021288 1513

timegm.cH A D24-Jun-20213.9 KiB13973

version-script.mapH A D24-Jun-2021135 75

README.template

1#!/bin/sh
2
3size .libs/libasn1.dylib
4size .libs/libasn1base.a | awk '{sum += $1} END {print sum}' | sed 's/^/TEXT baselib: /'
5size .libs/asn1_*.o | awk '{sum += $1} END {print sum}' | sed 's/^/generated code stubs: /'
6size *_asn1-template.o | awk '{sum += $1} END {print sum}' | sed 's/^/TEXT stubs: /'
7
8exit 0
9
10Notes about the template parser:
11
12- assumption: code is large, tables smaller
13
14- how to generate template based stubs:
15
16	make check asn1_compile_FLAGS=--template > log
17
18- pretty much the same as the generate code, except uses tables instead of code
19
20TODO:
21	- Make hdb work
22
23	- Fuzzing tests
24
25	- Performance testing
26
27	- ASN1_MALLOC_ENCODE() as a function, replaces encode_ and length_
28
29	- Fix SIZE constraits
30
31	- Compact types that only contain on entry to not having a header.
32
33
34SIZE - Futher down is later generations of the template parser
35
36	code:
37	==================
38	__TEXT	__DATA	__OBJC	others	dec	hex
39	462848	12288	0	323584	798720	c3000 (O2)
40
41	trivial types:
42	==================
43	__TEXT	__DATA	__OBJC	others	dec	hex
44	446464	12288	0	323584	782336	bf000 (O2)
45
46	OPTIONAL
47	==================
48	__TEXT	__DATA	__OBJC	others	dec	hex
49	425984	16384	0	323584	765952	bb000 (O2)
50
51	SEQ OF
52	==================
53	__TEXT	__DATA	__OBJC	others	dec	hex
54	368640	32768	0	327680	729088	b2000 (O2)
55	348160	32768	0	327680	708608	ad000 (Os)
56
57	BOOLEAN
58	==================
59	339968	32768	0	327680	700416	ab000 (Os)
60
61	TYPE_EXTERNAL:
62	==================
63	331776	32768	0	327680	692224	a9000 (Os)
64
65	SET OF
66	==================
67	327680	32768	0	327680	688128	a8000 (Os)
68
69	TYPE_EXTERNAL everywhere
70	==================
71	__TEXT	__DATA	__OBJC	others	dec	hex
72	167936	69632	0	327680	565248	8a000 (Os)
73
74	TAG uses ->ptr (header and trailer)
75	==================
76	229376	102400	0	421888	753664	b8000 (O0)
77
78	TAG uses ->ptr (header only)
79	==================
80	221184	77824	0	421888	720896	b0000 (O0)
81
82	BER support for octet string (not working)
83	==================
84	180224	73728	0	417792	671744	a4000 (O2)
85
86	CHOICE and BIT STRING missign
87	==================
88	__TEXT	__DATA	__OBJC	others	dec	hex
89	172032	73728	0	417792	663552	a2000 (Os)
90
91	No accessor functions to global variable
92	==================
93	__TEXT	__DATA	__OBJC	others	dec	hex
94	159744	73728	0	393216	626688	99000 (Os)
95
96	All types tables (except choice) (id still objects)
97	==================
98	__TEXT	__DATA	__OBJC	others	dec	hex
99	167936	77824	0	421888	667648	a3000
100	base lib: 22820
101
102	__TEXT	__DATA	__OBJC	others	dec	hex
103	==================
104	167936	77824	0	421888	667648	a3000 (Os)
105	baselib: 22820
106	generated code stubs: 41472
107	TEXT stubs: 112560
108
109	All types, id still objects
110	==================
111	__TEXT	__DATA	__OBJC	others	dec	hex
112	155648	81920	0	430080	667648	a3000 (Os)
113	TEXT baselib: 23166
114	generated code stubs: 20796
115	TEXT stubs: 119891
116
117	All types, id still objects, dup compression
118	==================
119	__TEXT	__DATA	__OBJC	others	dec	hex
120	143360	65536	0	376832	585728	8f000 (Os)
121	TEXT baselib: 23166
122	generated code stubs: 20796
123	TEXT stubs: 107147
124
125	All types, dup compression, id vars
126	==================
127	__TEXT	__DATA	__OBJC	others	dec	hex
128	131072	65536	0	352256	548864	86000
129	TEXT baselib: 23166
130	generated code stubs: 7536
131	TEXT stubs: 107147
132