From 9c27db0284c86583c135282e637f5e4dcb220c89 Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Wed, 12 May 2021 14:00:22 +0200 Subject: - Bug fix StaticHeader date format - Dynamic content for the dynamic content of the dynamic frame --- misc/dynamicContentDFCB1.asn | 90 -------------------------------- misc/dynamicContentFDCv1.0.asn | 115 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 90 deletions(-) delete mode 100644 misc/dynamicContentDFCB1.asn create mode 100644 misc/dynamicContentFDCv1.0.asn (limited to 'misc') 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: +-- # +-- # 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 -- cgit v1.2.3