xref: /netbsd-src/crypto/external/bsd/heimdal/dist/lib/asn1/test.asn1 (revision b9d004c6cc8d38329417ae29768c81e5f2a296cf)
1-- Id --
2
3TEST DEFINITIONS ::=
4
5BEGIN
6
7IMPORTS heim_any FROM heim;
8
9TESTuint32 ::= INTEGER (0..4294967295)
10TESTuint64 ::= INTEGER(0..18446744073709551615)
11TESTint64 ::= INTEGER(-9223372036854775808..9223372036854775807)
12
13TESTLargeTag ::= SEQUENCE {
14	foo[127] INTEGER (-2147483648..2147483647),
15	bar[128] INTEGER (-2147483648..2147483647)
16}
17
18TESTSeq ::= SEQUENCE {
19	tag0[0] INTEGER (-2147483648..2147483647),
20	tag1[1] TESTLargeTag,
21	tagless INTEGER (-2147483648..2147483647),
22	tag3[2] INTEGER (-2147483648..2147483647)
23}
24
25TESTChoice1 ::= CHOICE {
26	i1[1]	INTEGER (-2147483648..2147483647),
27	i2[2]	INTEGER (-2147483648..2147483647),
28	...
29}
30
31TESTChoice2 ::= CHOICE {
32	i1[1]	INTEGER (-2147483648..2147483647),
33	...
34}
35
36TESTInteger ::= INTEGER (-2147483648..2147483647)
37
38TESTInteger2 ::= [4] IMPLICIT TESTInteger
39TESTInteger3 ::= [5] IMPLICIT TESTInteger2
40
41TESTImplicit ::= SEQUENCE {
42	ti1[0] IMPLICIT INTEGER (-2147483648..2147483647),
43	ti2[1] IMPLICIT SEQUENCE {
44		foo[127] INTEGER (-2147483648..2147483647)
45	},
46	ti3[2] IMPLICIT [5] IMPLICIT [4] IMPLICIT INTEGER (-2147483648..2147483647)
47}
48
49TESTImplicit2 ::= SEQUENCE {
50	ti1[0] IMPLICIT TESTInteger,
51--	ti2[1] IMPLICIT TESTLargeTag,   this is disabled since the IMPLICT encoder does't get the types right when stepping inside an structure --
52	ti3[2] IMPLICIT TESTInteger3
53}
54
55TESTAllocInner ::= SEQUENCE {
56	ai[0] TESTInteger
57}
58
59TESTAlloc ::= SEQUENCE {
60	  tagless TESTAllocInner OPTIONAL,
61	  three [1] INTEGER (-2147483648..2147483647),
62	  tagless2 heim_any OPTIONAL
63}
64
65TESTOptional ::= SEQUENCE {
66	  zero [0] INTEGER (-2147483648..2147483647) OPTIONAL,
67	  one [1] INTEGER (-2147483648..2147483647) OPTIONAL
68}
69
70
71TESTCONTAINING ::= OCTET STRING ( CONTAINING INTEGER )
72TESTENCODEDBY ::= OCTET STRING ( ENCODED BY
73  { joint-iso-itu-t(2) asn(1) ber-derived(2) distinguished-encoding(1) }
74)
75
76TESTDer OBJECT IDENTIFIER ::= {
77	joint-iso-itu-t(2) asn(1) ber-derived(2) distinguished-encoding(1)
78}
79
80TESTCONTAININGENCODEDBY ::= OCTET STRING ( CONTAINING INTEGER ENCODED BY
81  { joint-iso-itu-t(2) asn(1) ber-derived(2) distinguished-encoding(1) }
82)
83
84TESTCONTAININGENCODEDBY2 ::= OCTET STRING (
85	CONTAINING INTEGER ENCODED BY TESTDer
86)
87
88
89TESTValue1 INTEGER ::= 1
90
91TESTUSERCONSTRAINED ::= OCTET STRING (CONSTRAINED BY { -- meh -- })
92-- TESTUSERCONSTRAINED2 ::= OCTET STRING (CONSTRAINED BY { TESTInteger })
93-- TESTUSERCONSTRAINED3 ::= OCTET STRING (CONSTRAINED BY { INTEGER })
94-- TESTUSERCONSTRAINED4 ::= OCTET STRING (CONSTRAINED BY { INTEGER : 1 })
95
96TESTSeqOf ::= SEQUENCE OF TESTInteger
97
98TESTSeqSizeOf1 ::= SEQUENCE SIZE (2) OF TESTInteger
99TESTSeqSizeOf2 ::= SEQUENCE SIZE (1..2) OF TESTInteger
100TESTSeqSizeOf3 ::= SEQUENCE SIZE (1..MAX) OF TESTInteger
101TESTSeqSizeOf4 ::= SEQUENCE SIZE (0..2) OF TESTInteger
102
103TESTOSSize1 ::= OCTET STRING SIZE (1..2)
104
105TESTSeqOfSeq ::= SEQUENCE OF SEQUENCE {
106	zero [0] TESTInteger
107}
108
109TESTSeqOfSeq2 ::= SEQUENCE OF SEQUENCE {
110	string [0] GeneralString
111}
112
113TESTSeqOfSeq3 ::= SEQUENCE OF SEQUENCE {
114	zero [0] TESTInteger,
115	string [0] GeneralString
116}
117
118TESTSeqOf2 ::= SEQUENCE {
119	strings SEQUENCE OF GeneralString
120}
121
122TESTSeqOf3 ::= SEQUENCE {
123	strings SEQUENCE OF GeneralString OPTIONAL
124}
125
126-- Larger/more complex to increase odds of out-of-bounds
127-- read/writes if miscoded
128
129TESTSeqOf4 ::= SEQUENCE {
130	b1 [0] SEQUENCE OF SEQUENCE {
131		s1 OCTET STRING,
132		s2 OCTET STRING,
133		u1 TESTuint64,
134		u2 TESTuint64
135	} OPTIONAL,
136	b2 [1] IMPLICIT SEQUENCE OF SEQUENCE {
137		u1 TESTuint64,
138		u2 TESTuint64,
139		u3 TESTuint64,
140		s1 OCTET STRING,
141		s2 OCTET STRING,
142		s3 OCTET STRING
143	} OPTIONAL,
144	b3 [2] IMPLICIT SEQUENCE OF SEQUENCE {
145		s1 OCTET STRING,
146		u1 TESTuint64,
147		s2 OCTET STRING,
148		u2 TESTuint64,
149		s3 OCTET STRING,
150		u3 TESTuint64,
151		s4 OCTET STRING,
152		u4 TESTuint64
153	} OPTIONAL
154}
155
156TESTSeqOf5 ::= SEQUENCE {
157        outer SEQUENCE {
158          inner SEQUENCE {
159                        u0 TESTuint64,
160                        s0 OCTET STRING,
161                        u1 TESTuint64,
162                        s1 OCTET STRING,
163                        u2 TESTuint64,
164                        s2 OCTET STRING,
165                        u3 TESTuint64,
166                        s3 OCTET STRING,
167                        u4 TESTuint64,
168                        s4 OCTET STRING,
169                        u5 TESTuint64,
170                        s5 OCTET STRING,
171                        u6 TESTuint64,
172                        s6 OCTET STRING,
173                        u7 TESTuint64,
174                        s7 OCTET STRING
175                }
176            }
177        OPTIONAL
178}
179
180TESTPreserve ::= SEQUENCE {
181	zero [0] TESTInteger,
182	one [1] TESTInteger
183}
184
185TESTBitString ::= BIT STRING {
186	      zero(0),
187	      eight(8),
188	      thirtyone(31)
189}
190
191TESTMechType::= OBJECT IDENTIFIER
192TESTMechTypeList ::= SEQUENCE OF TESTMechType
193
194END
195