aboutsummaryrefslogblamecommitdiffstats
path: root/lib/asn1/test/asn1_SUITE_data/ParamBasic.asn1
blob: f175aabd264fbc6e076126d4af35d169143824ca (plain) (tree)





















                                         





















                                                                     


















                                                                              










                                                                           
   
ParamBasic DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

General1{T,T:val} ::= SEQUENCE {
  number  INTEGER,
  string  T DEFAULT val
}

T11 ::= General1{PrintableString,"hej"}

T12 ::= General1{BIT STRING,'1010'B}

General2{T} ::= SEQUENCE {
  number  INTEGER,
  string  T
}

T21 ::= General2{PrintableString}

T22 ::= General2{BIT STRING}


--
-- Test a class parameter that is the governor for another parameter.
--

AlgorithmIdentifier{ALGORITHM-TYPE, ALGORITHM-TYPE:AlgorithmSet} ::=
  SEQUENCE {
     algorithm  ALGORITHM-TYPE.&id   ({AlgorithmSet}),
     type       ALGORITHM-TYPE.&Type ({AlgorithmSet}{@algorithm})
  }

AnAlgorithm ::= AlgorithmIdentifier{ SIGNATURE-ALGORITHM,
	                             { {KEY 1 CONTAINING INTEGER} |
				       {KEY 2 CONTAINING BOOLEAN} } }

SIGNATURE-ALGORITHM ::= CLASS {
    &id    INTEGER UNIQUE,
    &Type
} WITH SYNTAX {
    KEY &id CONTAINING &Type
}

--
-- Test that indirect classes references are resolved.
--

AlgorithmIdentifier2 { ALGORITHM-IDENTIFIER:InfoObjectSet } ::= SEQUENCE {
  algorithm ALGORITHM-IDENTIFIER.&id({InfoObjectSet}),
  parameters ALGORITHM-IDENTIFIER.&Type({InfoObjectSet} {@algorithm}) OPTIONAL
}

ALGORITHM-IDENTIFIER ::= TYPE-IDENTIFIER

Seq ::= SEQUENCE {
  c1 AlgorithmIdentifier2 {{ObjectSet-1}},
  c2 AlgorithmIdentifier2 {{ObjectSet-2}}
}

ObjectSet-1 ALGORITHM-IDENTIFIER ::= { {INTEGER IDENTIFIED BY {2 1 1}}, ... }
ObjectSet-2 ALGORITHM-IDENTIFIER ::= { ... }

-- Test a value that uses the instantiation of a parameterized type inline.
-- (Adapted from PKCS-5.)
--

algid-hmacWithSHA1 AlgorithmIdentifier2 {{ObjectSet-3}} ::=
  {algorithm id-hmacWithSHA1, parameters NULL : NULL}

ObjectSet-3 TYPE-IDENTIFIER ::= { {NULL IDENTIFIED BY id-hmacWithSHA1} }

id-hmacWithSHA1 OBJECT IDENTIFIER ::= {2 9 9 9 7}

END