Reference Mapping

This procedure only applies when invoked by another procedure.

  1. If the reference is to "bit", the string is mapped to the ASN.1 type INTEGER(0..1).

  2. Otherwise, if the referenece is to "octet", the string is mapped to the ASN.1 type INTEGER(0..255).

  3. Otherwise, if the reference refers to a string that is mapped to something other than an ASN.1 type or ASN.1 component, then the reference is mapped the same as the string that is referenced (e.g., to padding).

  4. Otherwise, the reference is mapped to an ASN.1 DefinedType, where the typereference is the result of using the CSN.1 name to ASN.1 type reference mapping on the referenced name.

Note that in the case where the mapping produces an DefinedType, that type might not be defined in the CSN.1 module. Our tool support is such that the type may be defined in ASN.1 using the same module name, or it may be imported from another ASN.1 module, where the definition may originate in either ASN.1 or CSN.1

Note that our tool issues a warning when a reference is made to a string that we mapped to a type which we assumed, based on the presence of padding, was to be byte aligned. The reason for this is that this would typically imply that the referenced type was not top-level and the padding was probably not a case of simple byte alignment after all.