-- Creator: ASN.1 Editor (http://asneditor.sourceforge.net)
-- Author: ClemensGantert
-- Created: Tue Aug 11 11:40:28 CEST 2015
ASN-Module DEFINITIONS AUTOMATIC TAGS ::= BEGIN
-- imports and exports
-- EXPORTS ALL;
-- ##############################################################################################
-- #
-- # UIC barcode header - first draft
-- #
-- ##############################################################################################
-- ##############################################################################################
-- #
-- # Naming and encoding conventions
-- #
-- # Elements included as String and as Numeric values:
-- # Some elements are included in different formats to reduce the data size.
-- # These elements must be included only once.
-- # These elements are named with the same name and appendix
-- # Num (numeric values)
-- # IA5 (String values according to ASN IA5String (7Bit))
-- #
-- # RICS codes must be used to encode companies (issuer, product owner, ...) where available
-- # other codes are possible based on bilateral agreements
-- # the format is kept more flexible to cover upcoming extensions of the RICS code by ERA
-- #
-- # Stations can be coded using the UIC and upcoming ERA code lists. Proprietary codes are
-- # possible based on bilateral agreements. Format: 1..9999999 or alphanumeric without
-- # special character (IA5String)
-- #
-- #
-- # ! INTEGERS must not exceed the value of 9,223,372,036,854,775,807 (64 bit) even in case
-- # ! they are unrestricted!!!
-- # !
-- # ! Some elements like ReferenceNum or cardIdNum are defined as an unrestricted integer.
-- # ! Unlike other numerical values the cardIdNum and referenceNum can be larger than a usual 32 bit Integer
-- # ! Some ASN.1 implementation tools are limited to 32 bit integers which is too small.
-- # ! Please ensure to use a tool capable of dealing with larger numbers.
-- #
-- # BOOLEAN is always non optional
-- #
-- # Encoding of time:
-- # time is encoded as the number of minutes of the day 0 = 00:00, 1440 = 24:00,
-- # time data elements end with "time" in their name
-- #
-- # Encoding of date:
-- # .........................................................................................................
-- # The issuing date is given in UTC, but some other date values are given in local time where the exact time zone is not known.
-- #
-- #
-- #
-- # ASN.1 Extensions:
-- #
-- # The specification makes use of extension (",...").
-- # These extesions might be defined in future versions of the UIC specification
-- # Implementations must support the extension feature of ASN.1, at least they must be able to ignore extensions while decoding the data
-- # ASN.1 extensions will be defined by UIC. It is not allowed to define bilateral extensions.
-- #
-- # Bilateral Extensions:
-- # Bilateral extensions can be included in the data element "ExtensionData".
-- #
-- #
-- #
-- #########################################################################################
-- ############################################################################################
-- type assignments
-- #########################################################################################
-- the basic entry point of the data structure
-- the data include:
-- -issuer informations
-- -the details of the transport document
-- -informations required for the control process
-- -informations on the travelers independent from the transport document
-- -proprietary extensions
--
-- ##########################################################################################
UicBarcodeHeader ::= SEQUENCE {
-- format type
format IA5String,
-- "UIC" = UIC ticket
version Integer (1..16),
-- provider of the signature (RICS code)
securityProviderNum INTEGER (1..32000) OPTIONAL,
securityProviderIA5 IA5String OPTIONAL,
staticData SEQUENCE OF DataType,
staticSignature SignatureType OPTIONAL,
-- additional dynamic data i.e. phone number, IMEI, timestamp , .... --> To be defined separately
dynamicDataFormat IA5String OPTIONAL,
dynamicData OCTET STRING OPTIONAL,
dynamicPublicKey OCTET STRING OPTIONAL,
dynamicSignature SignatureType OPTIONAL
-- proprietary data defined bilaterally
extension SEQUENCE OF ExtensionData OPTIONAL
,...
}
DataType ::= SEQUENCE {
staticDataFormat IA5String DEFAULT "FCB1",
-- FCB1 FCB version 1
-- 1080XYZ
staticData OCTET STRING
}
SignatureType ::= SEQUENCE {
signingAlg IA5String,
keyId IA5String (SIZE(1..5)),
signature OCTET STRING,
}
-- ###########################################################################################
-- generic non standard extension element
-- the generic non - standard element contains:
-- - an extension id to distinguish different extensions
-- - the extension data as binary data
-- proprietary extensions are by definition proprietary. This standard provides
-- the means to identify these extensions
-- within the data and to skip these data.
-- the evaluation of these data and the unique identification of the extensions
-- via the extension id is in the
-- responsibility of the railways which use these extensions.
-- ###########################################################################################
ExtensionData ::= SEQUENCE {
extensionId IA5String,
extensionData OCTET STRING
}
END