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/dynamicContentFDCv1.0.asn | 115 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 misc/dynamicContentFDCv1.0.asn (limited to 'misc/dynamicContentFDCv1.0.asn') 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