summaryrefslogtreecommitdiffstats
path: root/misc/dynamicContentDFCB1.asn
diff options
context:
space:
mode:
Diffstat (limited to 'misc/dynamicContentDFCB1.asn')
-rw-r--r--misc/dynamicContentDFCB1.asn90
1 files changed, 90 insertions, 0 deletions
diff --git a/misc/dynamicContentDFCB1.asn b/misc/dynamicContentDFCB1.asn
new file mode 100644
index 0000000..7ca6d41
--- /dev/null
+++ b/misc/dynamicContentDFCB1.asn
@@ -0,0 +1,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
+ } \ No newline at end of file