summaryrefslogtreecommitdiffstats
path: root/misc/dynamicContentDFCB1.asn
blob: 7ca6d414b76118411fea6a94b49d1ddaa678892c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
-- ##########################################################################################
-- # 
-- # FCB Dynamic Content for UicBarcodeHeader.level2SignedData.level2Data.data
-- # (identified as "FDC1" in UicBarcodeHeader.level2SignedData.level2Data.dataFormat)
-- # 
-- # Draft version 0.1 
-- # 
-- ##########################################################################################
   UicDynamicContentData ::= SEQUENCE {

     -- Moment of generation of the dynamic content, expressed in UTC :
     -- * dynamicContentDay is the number of days from issuing date
     --     (UicRailTicketData.issuingDetail.issuingYear and issuingDay)
	 --     The range 0..1070 allows a validity equal to that of the validFrom (700) plus 
	 --       validUntil (370) elements of the different transport documents of UicRailTicketData.
     -- * dynamicContentTime is the number of seconds of the day
     --     (from 0 = 0:00:00 to 86399 = 23:59:59)
     -- These two elements shall be either both present, either both absent
     dynamicContentDay   INTEGER (0..1070)  DEFAULT 0,
     dynamicContentTime  INTEGER (0..86399) OPTIONAL,

     -- Coordinates of the place where the dynamic content has been generated
     --   (same GeoCoordinateType type as in UicRailTicketData)
     dynamicContentGeoCoordinate GeoCoordinateType OPTIONAL,
  
     -- Response from the mobile to any data received from the terminal.
     --   The data received from the terminal may be a random number, or any other information.
     --   The response may be the data itself, a hashing of this data, or any other response.
	 --   This response may be completed with other information: IMEI, mobile phone number...
     -- The type used is ExtensionData, as it is fully adapted. 
	 -- extensionId shall be set to:
	 -- * "=" if the data included in extensionData is exactly the one that was transmitted by the terminal,
	 -- * any other value (chosen by the issuer) in other cases.
     dynamicContentResponseToChallenge ExtensionData OPTIONAL,
  
     -- proprietary data defined bilaterally
     dynamicContentExtension ExtensionData OPTIONAL,
     
     -- challenge string asked by the TCO
    challengeString IA5String OPTIONAL,
	
	-- phoneIdHash hashed phone id to be made available via 90918-4 ticket control data
    phoneIdHash OCTETSTRING OPTIONAL,
	
	-- e-passport-id hash to be read by the phone at control and  to be made available via 90918-4 ticket control data
	phoneIdHash OCTETSTRING OPTIONAL,     
    ...
   }

   -- ##########################################################################################
   -- # Generic type for geo coordinates
   -- ##########################################################################################
   GeoCoordinateType ::= SEQUENCE {
     geoUnit             GeoUnitType             DEFAULT milliDegree,
     coordinateSystem    GeoCoordinateSystemType DEFAULT wgs84, 
     hemisphereLongitude HemisphereLongitudeType DEFAULT north,       -- separate hemishpere flag reduces the data size 
     hemisphereLatitude  HemisphereLatitudeType  DEFAULT east,        -- separate hemishpere flag reduces the data size   
     longitude           INTEGER,
     latitude            INTEGER,
     accuracy            GeoUnitType             OPTIONAL
   }
    
  GeoCoordinateSystemType ::= ENUMERATED { 	
     wgs84 (0), -- WGS 84 standard system
     grs80 (1)  -- (outdated) GRS 80 coordinate system
   }  								
    								
   GeoUnitType ::= ENUMERATED {   	
     microDegree      (0), -- approx. 11 cm on earth surface                                                    
     tenthmilliDegree (1), -- 1 / 10000 degree is approx. 11 meter on earth surface   
     milliDegree      (2), -- approx 110 meter on earth surface 
     centiDegree      (3),   
     deciDegree       (4)
   }
    				
   HemisphereLongitudeType ::= ENUMERATED { 	
     north (0), 
     south (1) 
   }

   HemisphereLatitudeType ::= ENUMERATED { 	
     east (0), 
     west (1)  
   }	

   --  ########################################################################################### 
   ExtensionData	::= SEQUENCE 	{	
	   extensionId   IA5String, 
	   extensionData OCTET STRING
   }