-- Id -- TEST DEFINITIONS ::= BEGIN IMPORTS heim_any FROM heim; TESTuint32 ::= INTEGER (0..4294967295) TESTuint64 ::= INTEGER(0..18446744073709551615) TESTint64 ::= INTEGER(-9223372036854775808..9223372036854775807) TESTLargeTag ::= SEQUENCE { foo[127] INTEGER (-2147483648..2147483647), bar[128] INTEGER (-2147483648..2147483647) } TESTSeq ::= SEQUENCE { tag0[0] INTEGER (-2147483648..2147483647), tag1[1] TESTLargeTag, tagless INTEGER (-2147483648..2147483647), tag3[2] INTEGER (-2147483648..2147483647) } TESTChoice1 ::= CHOICE { i1[1] INTEGER (-2147483648..2147483647), i2[2] INTEGER (-2147483648..2147483647), ... } TESTChoice2 ::= CHOICE { i1[1] INTEGER (-2147483648..2147483647), ... } TESTInteger ::= INTEGER (-2147483648..2147483647) TESTInteger2 ::= [4] IMPLICIT TESTInteger TESTInteger3 ::= [5] IMPLICIT TESTInteger2 TESTImplicit ::= SEQUENCE { ti1[0] IMPLICIT INTEGER (-2147483648..2147483647), ti2[1] IMPLICIT SEQUENCE { foo[127] INTEGER (-2147483648..2147483647) }, ti3[2] IMPLICIT [5] IMPLICIT [4] IMPLICIT INTEGER (-2147483648..2147483647) } TESTImplicit2 ::= SEQUENCE { ti1[0] IMPLICIT TESTInteger, -- ti2[1] IMPLICIT TESTLargeTag, this is disabled since the IMPLICT encoder does't get the types right when stepping inside an structure -- ti3[2] IMPLICIT TESTInteger3 } TESTAllocInner ::= SEQUENCE { ai[0] TESTInteger } TESTAlloc ::= SEQUENCE { tagless TESTAllocInner OPTIONAL, three [1] INTEGER (-2147483648..2147483647), tagless2 heim_any OPTIONAL } TESTOptional ::= SEQUENCE { zero [0] INTEGER (-2147483648..2147483647) OPTIONAL, one [1] INTEGER (-2147483648..2147483647) OPTIONAL } TESTCONTAINING ::= OCTET STRING ( CONTAINING INTEGER ) TESTENCODEDBY ::= OCTET STRING ( ENCODED BY { joint-iso-itu-t(2) asn(1) ber-derived(2) distinguished-encoding(1) } ) TESTDer OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) asn(1) ber-derived(2) distinguished-encoding(1) } TESTCONTAININGENCODEDBY ::= OCTET STRING ( CONTAINING INTEGER ENCODED BY { joint-iso-itu-t(2) asn(1) ber-derived(2) distinguished-encoding(1) } ) TESTCONTAININGENCODEDBY2 ::= OCTET STRING ( CONTAINING INTEGER ENCODED BY TESTDer ) TESTValue1 INTEGER ::= 1 TESTUSERCONSTRAINED ::= OCTET STRING (CONSTRAINED BY { -- meh -- }) -- TESTUSERCONSTRAINED2 ::= OCTET STRING (CONSTRAINED BY { TESTInteger }) -- TESTUSERCONSTRAINED3 ::= OCTET STRING (CONSTRAINED BY { INTEGER }) -- TESTUSERCONSTRAINED4 ::= OCTET STRING (CONSTRAINED BY { INTEGER : 1 }) TESTSeqOf ::= SEQUENCE OF TESTInteger TESTSeqSizeOf1 ::= SEQUENCE SIZE (2) OF TESTInteger TESTSeqSizeOf2 ::= SEQUENCE SIZE (1..2) OF TESTInteger TESTSeqSizeOf3 ::= SEQUENCE SIZE (1..MAX) OF TESTInteger TESTSeqSizeOf4 ::= SEQUENCE SIZE (0..2) OF TESTInteger TESTOSSize1 ::= OCTET STRING SIZE (1..2) TESTSeqOfSeq ::= SEQUENCE OF SEQUENCE { zero [0] TESTInteger } TESTSeqOfSeq2 ::= SEQUENCE OF SEQUENCE { string [0] GeneralString } TESTSeqOfSeq3 ::= SEQUENCE OF SEQUENCE { zero [0] TESTInteger, string [0] GeneralString } TESTSeqOf2 ::= SEQUENCE { strings SEQUENCE OF GeneralString } TESTSeqOf3 ::= SEQUENCE { strings SEQUENCE OF GeneralString OPTIONAL } -- Larger/more complex to increase odds of out-of-bounds -- read/writes if miscoded TESTSeqOf4 ::= SEQUENCE { b1 [0] SEQUENCE OF SEQUENCE { s1 OCTET STRING, s2 OCTET STRING, u1 TESTuint64, u2 TESTuint64 } OPTIONAL, b2 [1] IMPLICIT SEQUENCE OF SEQUENCE { u1 TESTuint64, u2 TESTuint64, u3 TESTuint64, s1 OCTET STRING, s2 OCTET STRING, s3 OCTET STRING } OPTIONAL, b3 [2] IMPLICIT SEQUENCE OF SEQUENCE { s1 OCTET STRING, u1 TESTuint64, s2 OCTET STRING, u2 TESTuint64, s3 OCTET STRING, u3 TESTuint64, s4 OCTET STRING, u4 TESTuint64 } OPTIONAL } TESTSeqOf5 ::= SEQUENCE { outer SEQUENCE { inner SEQUENCE { u0 TESTuint64, s0 OCTET STRING, u1 TESTuint64, s1 OCTET STRING, u2 TESTuint64, s2 OCTET STRING, u3 TESTuint64, s3 OCTET STRING, u4 TESTuint64, s4 OCTET STRING, u5 TESTuint64, s5 OCTET STRING, u6 TESTuint64, s6 OCTET STRING, u7 TESTuint64, s7 OCTET STRING } } OPTIONAL } TESTPreserve ::= SEQUENCE { zero [0] TESTInteger, one [1] TESTInteger } TESTBitString ::= BIT STRING { zero(0), eight(8), thirtyone(31) } TESTMechType::= OBJECT IDENTIFIER TESTMechTypeList ::= SEQUENCE OF TESTMechType END