Name Date Size #Lines LOC

..20-Jun-2023-

ChangeLogH A D08-May-202244.8 KiB1,666942

Makefile.amH A D08-May-20228.7 KiB282227

Makefile.inH A D20-Jun-202375 KiB2,1101,898

NTMakefileH A D08-May-20229.7 KiB357291

README.templateH A D08-May-20223.1 KiB13297

asn1-common.hH A D08-May-20222.2 KiB8768

asn1-template.hH A D08-May-20225.4 KiB210121

asn1_compile-version.rcH A D08-May-20221.6 KiB3734

asn1_err.etH A D08-May-20221.3 KiB3028

asn1_gen.cH A D08-May-20225 KiB189124

asn1_print.cH A D08-May-20229.4 KiB356291

asn1_queue.hH A D08-May-20226.6 KiB170109

asn1parse.cH A D20-Jun-202396.5 KiB2,8582,241

asn1parse.hH A D20-Jun-20239.6 KiB277222

asn1parse.yH A D08-May-202221.4 KiB1,061900

canthandle.asn1H A D08-May-2022791 3524

check-ber.cH A D08-May-202216.8 KiB282235

check-common.cH A D20-Jun-202310 KiB421319

check-common.hH A D20-Jun-20233.7 KiB9548

check-der.cH A D20-Jun-202329.2 KiB1,2161,012

check-gen.cH A D20-Jun-202351.6 KiB1,8151,516

check-template.cH A D20-Jun-202314.7 KiB522416

check-timegm.cH A D08-May-20222.4 KiB8438

cms.asn1H A D08-May-20224.2 KiB158120

cms.optH A D08-May-202255 32

der-private.hH A D08-May-20222 KiB12699

der-protos.hH A D08-May-202211.5 KiB695554

der.cH A D08-May-20223.8 KiB14596

der.hH A D08-May-20223.2 KiB11057

der_cmp.cH A D20-Jun-20233.7 KiB12379

der_copy.cH A D20-Jun-20235.1 KiB202145

der_format.cH A D08-May-20224.1 KiB173115

der_free.cH A D08-May-20223.2 KiB159102

der_get.cH A D20-Jun-202317.5 KiB762585

der_length.cH A D20-Jun-20235.6 KiB310232

der_locl.hH A D08-May-20222.2 KiB6622

der_put.cH A D20-Jun-202312.2 KiB569471

digest.asn1H A D08-May-20224.9 KiB180149

extra.cH A D08-May-20223.8 KiB14489

fuzzer.cH A D08-May-202216.2 KiB745614

gen.cH A D20-Jun-202326.5 KiB1,079930

gen_copy.cH A D20-Jun-20236.8 KiB255200

gen_decode.cH A D20-Jun-202318.5 KiB744663

gen_encode.cH A D08-May-202213.4 KiB554473

gen_free.cH A D20-Jun-20235.5 KiB202144

gen_glue.cH A D08-May-20224.3 KiB160100

gen_length.cH A D08-May-20227.9 KiB284228

gen_locl.hH A D20-Jun-20233.4 KiB10856

gen_seq.cH A D08-May-20224 KiB12266

gen_template.cH A D08-May-202224.8 KiB1,010812

hash.cH A D08-May-20224.7 KiB209125

hash.hH A D08-May-20223 KiB9031

heim_asn1.hH A D08-May-20222.4 KiB5516

krb5.asn1H A D20-Jun-202322.8 KiB923803

krb5.optH A D08-May-2022147 76

kx509.asn1H A D08-May-2022660 3226

lex.cH A D20-Jun-202374.3 KiB2,7401,980

lex.hH A D20-Jun-20231.8 KiB455

lex.lH A D08-May-20227.8 KiB302250

libasn1-exports.defH A D08-May-202236.7 KiB1,5951,594

main.cH A D20-Jun-20235.4 KiB225162

pkcs12.asn1H A D08-May-20222.3 KiB8260

pkcs8.asn1H A D08-May-2022627 3120

pkcs9.asn1H A D08-May-2022807 2918

pkinit.asn1H A D08-May-20225.5 KiB203159

rfc2459.asn1H A D08-May-202217.6 KiB586444

roken_rename.hH A D08-May-20221.9 KiB499

setchgpw2.asn1H A D08-May-20223.8 KiB194160

symbol.cH A D08-May-20222.8 KiB11162

symbol.hH A D08-May-20223.8 KiB170108

template.cH A D08-May-202225.2 KiB1,131909

test.asn1H A D08-May-20224.6 KiB195156

test.genH A D08-May-2022288 1513

timegm.cH A D08-May-20223.9 KiB13973

version-script.mapH A D08-May-2022135 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