diff options
Diffstat (limited to 'lib/asn1/test/asn1_SUITE_data/TConstr.asn1')
-rw-r--r-- | lib/asn1/test/asn1_SUITE_data/TConstr.asn1 | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/lib/asn1/test/asn1_SUITE_data/TConstr.asn1 b/lib/asn1/test/asn1_SUITE_data/TConstr.asn1 new file mode 100644 index 0000000000..63f5dbde77 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/TConstr.asn1 @@ -0,0 +1,95 @@ +-- The idea with this spec is to gather definitions that has a +-- complicated structure of table constraints. +TConstr DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +MYCLASS ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Type, + &Result OPTIONAL +} WITH SYNTAX { + ID &id + TYPE &Type + [RESULT &Result] +} + +object1 MYCLASS ::= {ID id-object1 TYPE Type-object1 RESULT INTEGER} +object2 MYCLASS ::= {ID id-object2 TYPE Type-object2} +object3 MYCLASS ::= {ID id-object3 TYPE Type-object3 RESULT BOOLEAN} + +ObjectSet MYCLASS ::= {object1 | object2 | object3} + +id-object1 OBJECT IDENTIFIER ::= {2 4} +id-object2 OBJECT IDENTIFIER ::= {2 5} +id-object3 OBJECT IDENTIFIER ::= {2 6 7} + + +Type-object1 ::= SEQUENCE { + a INTEGER, + b BOOLEAN +} + +Type-object2 ::= ENUMERATED {first, second, third} + +Type-object3 ::= CHOICE { + first SEQUENCE {a BOOLEAN, b INTEGER}, + second INTEGER +} + +Seq1 ::= SEQUENCE { + a SEQUENCE {aa INTEGER, ab MYCLASS.&id ({ObjectSet})}, + b SEQUENCE {ba INTEGER, bb MYCLASS.&Type ({ObjectSet}{@a.ab})} +} + +Seq2 ::= SEQUENCE { + identity INTEGER, + content SEQUENCE { + subid MYCLASS.&id ({ObjectSet}), + subcontent MYCLASS.&Type ({ObjectSet}{@content.subid}), + subresult MYCLASS.&Result ({ObjectSet}{@content.subid}) + } +} + + +-- following from Peter's definitions + + +MY-CLASS ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Type } + WITH SYNTAX { + ID &id + TYPE &Type } + +Info ::= SEQUENCE { + xyz SEQUENCE { + abc MY-CLASS.&id({Supported}) + }, + uvw MY-CLASS.&Type ({Supported}{@xyz.abc}) } + +Supported MY-CLASS ::= { dsa | rsa } + +-- dsa + + id-dsa OBJECT IDENTIFIER ::= { 1 2 } + + DSAPublicKey ::= INTEGER -- public key, y + + dsa MY-CLASS ::= { + ID id-dsa + TYPE DSAPublicKey } + +-- rsa + + rsaEncryption OBJECT IDENTIFIER ::= { 1 3 4 } + + RSAPublicKey ::= SEQUENCE { + modulus INTEGER, -- n + publicExponent INTEGER } -- e + + rsa MY-CLASS ::= { + ID rsaEncryption + TYPE RSAPublicKey } + +END |