summaryrefslogtreecommitdiffstats
path: root/misc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--misc/dynamicContentDFCB1.asn90
-rw-r--r--misc/dynamicContentFDCv1.0.asn115
2 files changed, 115 insertions, 90 deletions
diff --git a/misc/dynamicContentDFCB1.asn b/misc/dynamicContentDFCB1.asn
deleted file mode 100644
index 7ca6d41..0000000
--- a/misc/dynamicContentDFCB1.asn
+++ /dev/null
@@ -1,90 +0,0 @@
--- ##########################################################################################
--- #
--- # 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
diff --git a/misc/dynamicContentFDCv1.0.asn b/misc/dynamicContentFDCv1.0.asn
new file mode 100644
index 0000000..693980f
--- /dev/null
+++ b/misc/dynamicContentFDCv1.0.asn
@@ -0,0 +1,115 @@
+-- ##########################################################################################
+-- #
+-- # FCB Dynamic Content - Version 1.0 - Draft #3 (2021-05-12)
+-- #
+-- # This file is available on the UIC FCB User Group GitHub:
+-- # <GitHub-link-to-be-added-here>
+-- # Please check this link to see if a more recent version of this file is available.
+-- #
+-- # The type UicDynamicContentData defined below is at least intended to generate a data
+-- # that, once valued and encoded as PER unaligned [UPER],
+-- # is to be stored in UicBarcodeHeader.level2SignedData.level2Data.data,
+-- # and identified as "FDC1" in UicBarcodeHeader.level2SignedData.level2Data.dataFormat.
+-- #
+-- ##########################################################################################
+ UicDynamicContentData ::= SEQUENCE {
+
+ -- Identification of the mobile application that generated the barcode
+ -- and filled in the data of its dynamic part.
+ --
+ -- The possible values are defined by the security provider
+ -- (the security provider being UicBarcodeHeader.level2SignedData.level1Data.securityProviderNum/IA5)
+ dynamicContentMobileAppId IA5String OPTIONAL,
+
+ -- Moment of generation of the dynamic content, expressed in UTC
+ dynamicContentTimeStamp TimeStampData 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 received data itself, possibly completed with other information
+ -- (e.g. IMEI, mobile phone number, user identifier assigned by the phone-app...),
+ -- the whole being returned as is, or hashed, or modified in some way.
+ --
+ -- The type used is a SEQUENCE OF ExtensionData
+ -- (the same ExtensionData type as in UicRailTicketData, as it is fully adapted),
+ -- in which extensionId identifies the content of extensionData.
+ --
+ -- Two types of value are possible for extensionId:
+ -- * predefined standardized values
+ -- (e.g. "=" if extensionData is exactly the data received from the terminal)
+ -- The list of predefined values is available on the UIC FCB User Group GitHub.
+ -- * "_" followed by any other value, defined by the security provider, in other cases.
+ -- (the security provider being UicBarcodeHeader.level2SignedData.level1Data.securityProviderNum/IA5)
+ dynamicContentResponseToChallenge SEQUENCE OF ExtensionData OPTIONAL,
+
+ -- Proprietary data defined bilaterally
+ -- (same ExtensionData type as in UicRailTicketData).
+ -- extensionId identifies the content of extensionData,
+ -- it shall be set to "_" + RICS + addon chosen by the issuer identified by its RICS code
+ dynamicContentExtension ExtensionData OPTIONAL,
+
+ ...
+ }
+
+ -- ##########################################################################################
+ -- # Generic type for timestamp, with a precision to the second.
+ -- #
+ -- # Day is the number of the day in the year (1 = January 1st, 2 = January 2nd...)
+ -- #
+ -- # Time is the number of seconds of the day (from 0 = 0:00:00 to 86399 = 23:59:59)
+ -- ##########################################################################################
+ TimeStampData ::= SEQUENCE {
+ day INTEGER (1..366),
+ time INTEGER (0..86399)
+ }
+
+ -- ##########################################################################################
+ -- # Generic type for geo coordinates.
+ -- ##########################################################################################
+ GeoCoordinateType ::= SEQUENCE {
+ geoUnit GeoUnitType DEFAULT milliDegree,
+ coordinateSystem GeoCoordinateSystemType DEFAULT wgs84,
+ hemisphereLongitude HemisphereLongitudeType DEFAULT north, -- separate hemisphere flag reduces the data size
+ hemisphereLatitude HemisphereLatitudeType DEFAULT east, -- separate hemisphere 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)
+ }
+
+ -- ###########################################################################################
+ -- # Generic extension element.
+ -- #
+ -- # extensionId identifies the content of extensionData.
+ -- ###########################################################################################
+ ExtensionData ::= SEQUENCE {
+ extensionId IA5String,
+ extensionData OCTET STRING
+ }
+ \ No newline at end of file