summaryrefslogblamecommitdiffstats
path: root/src/main/java/org/uic/barcode/ticket/api/spec/uicBarcodeHeader0.1.asn
blob: 2999d1838aa91808bd4b0484087a08e9e2b2c55b (plain) (tree)






















































































































































                                                                                                                                            
-- 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