{
  "url": "https://openlegislation.uk/eu-regulation-2016-799/annex-1/appendix-2",
  "json_url": "https://openlegislation.uk/eu-regulation-2016-799/annex-1/appendix-2.json",
  "legislation": "eur/2016/799",
  "legislation_title": "Commission Implementing Regulation (EU) 2016/799 of 18 March 2016 implementing Regulation (EU) No 165/2014 of the European Parliament and of the Council laying down the requirements for the construction, testing, installation, operation and repair of tachographs and their components (Text with EEA relevance)",
  "legislation_url": "https://openlegislation.uk/eu-regulation-2016-799",
  "path": "annex/1/appendix/2",
  "kind": "appendix",
  "number": "2",
  "heading": null,
  "text": "TACHOGRAPH CARDS SPECIFICATION\n1.\nINTRODUCTION\n1.1.\nAbbreviations\nFor the purpose of this appendix, the following abbreviations apply.\nACAccess conditions\nAESAdvanced Encryption Standard\nAIDApplication Identifier\nALWAlways\nAPDUApplication Protocol Data Unit (structure of a command)\nATRAnswer To Reset\nAUTAuthenticated.\nC6, C7Contacts No 6 and 7 of the card as described in ISO/IEC 7816-2\nccclock cycles\nCHA Certificate Holder Authorisation\nCHVCard holder Verification Information\nCLAClass byte of an APDU command\nDO Data Object\nDSRCDedicated Short Range Communication\nDFDedicated File. A DF can contain other files (EF or DF)\nECCElliptic Curve Cryptography\nEFElementary File\netuelementary time unit\nG1Generation 1\nG2Generation 2\nICIntegrated Circuit\nICCIntegrated Circuit Card\nIDIdentifier\nIFDInterface Device\nIFSInformation Field Size\nIFSCInformation Field Size for the card\nIFSDInformation Field Size Device (for the Terminal)\nINSInstruction byte of an APDU command\nLcLength of the input data for a APDU command\nLeLength of the expected data (output data for a command)\nMFMaster File (root DF)\nNADNode Address used in T=1 protocol\nNEVNever\nP1-P2Parameter bytes\nPINPersonal Identification Number\nPRO SMProtected with secure messaging\nPTSProtocol Transmission Selection\nRFUReserved for Future Use\nRSTReset (of the card)\nSFIDShort EF Identifier\nSMSecure Messaging\nSW1-SW2Status bytes\nTSInitial ATR character\nVPPProgramming Voltage\nVUVehicle Unit\nXXhValue XX in hexadecimal notation\n‘XXh’Value XX in hexadecimal notation\n||Concatenation symbol 03||04=0304\n1.2.\nReferences\nThe following references are used in this Appendix:\nISO/IEC 7816-2Identification cards — Integrated circuit cards — Part 2: Dimensions and location of the contacts. ISO/IEC 7816-2:2007.\nISO/IEC 7816-3Identification cards — Integrated circuit cards — Part 3: Electrical interface and transmission protocols. ISO/IEC 7816-3:2006.\nISO/IEC 7816-4Identification cards — Integrated circuit cards — Part 4: Organization, security and commands for interchange. ISO/IEC 7816-4:2013 + Cor 1: 2014.\nISO/IEC 7816-6Identification cards — Integrated circuit cards — Part 6: Interindustry data elements for interchange. ISO/IEC 7816-6:2004 + Cor 1: 2006.\nISO/IEC 7816-8Identification cards — Integrated circuit cards — Part 8: Commands for security operations. ISO/IEC 7816-8:2004.\nISO/IEC 9797-2Information technology — Security techniques — Message Authentication Codes (MACs) — Part 2: Mechanisms using a dedicated hash-function. ISO/IEC 9797-2:2011\n2.\nELECTRICAL AND PHYSICAL CHARACTERISTICS\nTCS_01\nAll electronic signals shall be in accordance with ISO/IEC 7816-3 unless specified otherwise.\nTCS_02\nThe location and dimensions of the card contacts shall comply with the ISO/IEC 7816-2.\n2.1.\nSupply Voltage and Current Consumption\nTCS_03\nThe card shall work according to specifications within the consumption limits specified in ISO/IEC 7816-3.\nTCS_04\nThe card shall work with Vcc = 3V (± 0,3V) or with Vcc = 5V (± 0,5V).\nVoltage selection shall be performed according to ISO/IEC 7816-3.\n2.2.\nProgramming Voltage Vpp\nTCS_05\nThe card shall not require a programming voltage at pin C6. It is expected that pin C6 is not connected in an IFD. Contact C6 may be connected to Vcc in the card but shall not be connected to ground. This voltage should not be interpreted in any case.\n2.3.\nClock generation and Frequency\nTCS_06\nThe card shall operate within a frequency range of 1 to 5 MHz and may support higher frequencies. Within one card session the clock frequency may vary ± 2 %. The clock frequency is generated by the Vehicle Unit and not the card itself. The duty cycle may vary between 40 and 60 %.\nTCS_07\nUnder conditions contained into the card file EF ICC, the external clock can be stopped. The first byte of the EF ICC file body codes the Clockstop mode conditions:\nLow\nHigh\nBit 3\nBit 2\nBit 1\n0\n0\n1\nClockstop allowed, no preferred level\n0\n1\n1\nClockstop allowed, high level preferred\n1\n0\n1\nClockstop allowed, low level preferred\n0\n0\n0\nClockstop not allowed\n0\n1\n0\nClockstop only allowed on high level\n1\n0\n0\nClockstop only allowed on low level\nBits 4 to 8 are not used.\n2.4.\nI/O Contact\nTCS_08\nThe I/O contact C7 is used to receive data from and to transmit data to the IFD. During operation only either the card or the IFD shall be in transmit mode. Should both units be in transmit mode no damage shall occur to the card. Unless transmitting, the card shall enter the reception mode.\n2.5.\nStates of the Card\nTCS_09\nThe card works in two states while the supply voltage is applied:\nOperation state while executing commands or interfacing with Digital Unit,\nIdle state at all other times; in this state all data shall be retained by the card.\n3.\nHARDWARE AND COMMUNICATION\n3.1.\nIntroduction\nThis paragraph describes the minimum functionality required by Tachograph cards and VUs to ensure correct operation and interoperability.\nTachograph cards are as compliant as possible with the available ISO/IEC applicable norms (especially ISO/IEC 7816). However, commands and protocols are fully described in order to specify some restricted usage or some differences if they exist. The commands specified are fully compliant with the referred norms except where indicated.\n3.2.\nTransmission Protocol\nTCS_10\nThe Transmission protocol shall be compliant with ISO/IEC 7816-3 for T = 0 and T = 1. In particular, the VU shall recognise waiting time extensions sent by the card.\n3.2.1\nProtocols\nTCS_11\nThe card shall provide both protocol T=0 and protocol T=1. In addition the card may support further contact-oriented protocols.\nTCS_12\nT=0 is the default protocol, a PTS command is therefore necessary to change the protocol to T=1.\nTCS_13\nDevices shall support direct convention in both protocols: the direct convention is hence mandatory for the card.\nTCS_14\nThe Information Field Size Card byte shall be presented at the ATR in character TA3. This value shall be at least ‘F0h’ (=240 bytes).\nThe following restrictions apply to the protocols:\nTCS_15\nT=0\nThe interface device shall support an answer on I/O after the rising edge of the signal on RST from 400 cc.\nThe interface device shall be able to read characters separated with 12 etu.\nThe interface device shall read an erroneous character and its repetition if separated with 13 etu. If an erroneous character is detected, the Error signal on I/O can occur between 1 etu and 2 etu. The device shall support a 1 etu delay.\nThe interface device shall accept a 33 bytes ATR (TS+32)\nIf TC1 is present in the ATR, the Extra Guard Time shall be present for characters sent by the interface device although characters sent by the card can still be separated with 12 etu. This is also true for the ACK character sent by the card after a P3 character emitted by the interface device.\nThe interface device shall take into account a NUL character emitted by the card.\nThe interface device shall accept the complementary mode for ACK.\nThe get-response command cannot be used in chaining mode to get a data which length could exceed 255 bytes.\nTCS_16\nT=1\nNAD byte: not used (NAD shall be set to ‘00’).\nS-block ABORT: not used.\nS-block VPP state error: not used.\nThe total chaining length for a data field will not exceed 255 bytes (to be ensured by the IFD).\nThe Information Field Size Device (IFSD) shall be indicated by the IFD immediately after the ATR: the IFD shall transmit the S-Block IFS request after the ATR and the card shall send back S-Block IFS. The recommended value for IFSD is 254 bytes.\nThe card will not ask for an IFS readjustment.\n3.2.2\nATR\nTCS_17\nThe device checks ATR bytes, according to ISO/IEC 7816-3. No verification shall be done on ATR Historical Characters.\nExample of Basic Biprotocol ATR according to ISO/IEC 7816-3\nCharacter\nValue\nRemarks\nTS\n‘3Bh’\nIndicates direct convention.\nT0\n‘85h’\nTD1 present; 5 historical bytes are presents.\nTD1\n‘80h’\nTD2 present; T=0 to be used\nTD2\n‘11h’\nTA3 present; T=1 to be used\nTA3\n‘XXh’ (at least ‘F0h’)\nInformation Field Size Card ( IFSC)\nTH1 to TH5\n‘XXh’\nHistorical characters\nTCK\n‘XXh’\nCheck Character (exclusive OR)\nTCS_18\nAfter the Answer To Reset (ATR), the Master File (MF) is implicitly selected and becomes the Current Directory.\n3.2.3\nPTS\nTCS_19\nThe default Protocol is T=0. To set the T=1 protocol, a PTS (also known as PPS) must be sent to the card by the device.\nTCS_20\nAs both T=0 and T=1 protocols are mandatory for the card, the basic PTS for protocol switching is mandatory for the card.\nThe PTS can be used, as indicated in ISO/IEC 7816-3, to switch to higher baud rates than the default one proposed by the card in the ATR if any (TA(1) byte).\nHigher baud rates are optional for the card.\nTCS_21\nIf no other baud rate than the default one are supported (or if the selected baud rate is not supported), the card shall respond to the PTS correctly according to ISO/IEC 7816-3 by omitting the PPS1 byte.\nExamples of basic PTS for protocol selection are the following:\nCharacter\nValue\nRemarks\nPPSS\n‘FFh’\nThe Initiate Character.\nPPS0\n‘00h’ or ‘01h’\nPPS1 to PPS3 are not present; ‘00h’ to select T0, ‘01h’ to select T1.\nPK\n‘XXh’\nCheck Character‘XXh’ = ‘FFh’ if PPS0 = ‘00h’,\n‘XXh’ = ‘FEh’ if PPS0 = ‘01h’.\n3.3.\nAccess Rules\nTCS_22\nAn access rule specifies for an access mode, i.e. command, the corresponding security conditions. If these security conditions are fulfilled the corresponding command is processed.\nTCS_23\nThe following security conditions are used for the tachograph card:\nAbbreviation\nMeaning\nALW\nThe action is always possible and can be executed without any restriction. Command and response APDU are sent in plain text, i.e. without secure messaging.\nNEV\nThe action is never possible.\nPLAIN-C\nThe command APDU is sent in plain, i.e. without secure messaging.\nPWD\nThe action may only be executed if the workshop card PIN has been successfully verified, i.e. if the card internal security status ‘PIN_Verified’ is set. The command must be sent without secure messaging.\nEXT-AUT-G1\nThe action may only be executed if the External Authenticate command for the generation 1 authentication (see also Appendix 11 Part A) has been successfully performed.\nSM-MAC-G1\nThe APDU (command and response) must be applied with generation 1 secure messaging in authentication-only mode (see Appendix 11 Part A).\nSM-C-MAC-G1\nThe command APDU must be applied with generation 1 secure messaging in authentication only mode (see Appendix 11 Part A).\nSM-R-ENC-G1\nThe response APDU must be applied with generation 1 secure messaging in encryption mode (see Appendix 11 Part A), i.e. no message authentication code is returned.\nSM-R-ENC-MAC-G1\nThe response APDU must be applied with generation 1 secure messaging in encrypt-then-authenticate mode (see Appendix 11 Part A).\nSM-MAC-G2\nThe APDU (command and response) must be applied with generation 2 secure messaging in authentication-only mode (see Appendix 11 Part B).\nSM-C-MAC-G2\nThe command APDU must be applied with generation 2 secure messaging in authentication only mode (see Appendix 11 Part B).\nSM-R-ENC-MAC-G2\nThe response APDU must be applied with generation 2 secure messaging in encrypt-then-authenticate mode (see Appendix 11 Part B).\nTCS_24\nThese security conditions can be linked in the following ways:\nAND All security conditions must be fulfilled\nOR At least one security condition must be fulfilled\nThe access rules for the file system, i.e. the SELECT, READ BINARY and UPDATE BINARY command, are specified in chapter 4. The access rules for the remaining commands are specified in the following tables. The term ‘not applicable’ is used if there is no requirement to support the command. In this case the command may or may not be supported, but the access condition is out of scope.\nTCS_25\nIn the DF Tachograph G1 application the following access rules are used:\nCommand\nDriver Card\nWorkshop Card\nControl Card\nCompany Card\nExternal Authenticate\n—\nFor generation 1 authentication\nALW\nALW\nALW\nALW\n—\nFor generation 2 authentication\nALW\nPWD\nALW\nALW\nInternal Authenticate\nALW\nPWD\nALW\nALW\nGeneral Authenticate\nALW\nALW\nALW\nALW\nGet Challenge\nALW\nALW\nALW\nALW\nMSE:SET AT\nALW\nALW\nALW\nALW\nMSE:SET DST\nALW\nALW\nALW\nALW\nProcess DSRC Message\nNot applicable\nNot applicable\nNot applicable\nNot applicable\nPSO: Compute Digital Signature\nALW OR\nSM-MAC-G2\nALW OR\nSM-MAC-G2\nNot applicable\nNot applicable\nPSO: Hash\nNot applicable\nNot applicable\nALW\nNot applicable\nPERFORM HASH of FILE\nALW OR\nSM-MAC-G2\nALW OR\nSM-MAC-G2\nNot applicable\nNot applicable\nPSO: Verify Certificate\nALW\nALW\nALW\nALW\nPSO: Verify Digital Signature\nNot applicable\nNot applicable\nALW\nNot applicable\nVerify\nNot applicable\nALW\nNot applicable\nNot applicable\nTCS_26\nIn the DF Tachograph_G2 application the following access rules are used:\nCommand\nDriver Card\nWorkshop Card\nControl Card\nCompany Card\nExternal Authenticate\n—\nFor generation 1 authentication\nNot applicable\nNot applicable\nNot applicable\nNot applicable\n—\nFor generation 2 authentication\nALW\nPWD\nALW\nALW\nInternal Authenticate\nNot applicable\nNot applicable\nNot applicable\nNot applicable\nGeneral Authenticate\nALW\nALW\nALW\nALW\nGet Challenge\nALW\nALW\nALW\nALW\nMSE:SET AT\nALW\nALW\nALW\nALW\nMSE:SET DST\nALW\nALW\nALW\nALW\nProcess DSRC Message\nNot applicable\nALW\nALW\nNot applicable\nPSO: Compute Digital Signature\nALW OR\nSM-MAC-G2\nALW OR\nSM-MAC-G2\nNot applicable\nNot applicable\nPSO: Hash\nNot applicable\nNot applicable\nALW\nNot applicable\nPERFORM HASH of FILE\nALW OR\nSM-MAC-G2\nALW OR\nSM-MAC-G2\nNot applicable\nNot applicable\nPSO: Verify Certificate\nALW\nALW\nALW\nALW\nPSO: Verify Digital Signature\nNot applicable\nNot applicable\nALW\nNot applicable\nVerify\nNot applicable\nALW\nNot applicable\nNot applicable\nTCS_27\nIn the MF the following access rules are used:\nCommand\nDriver Card\nWorkshop Card\nControl Card\nCompany Card\nExternal Authenticate\n—\nFor generation 1 authentication\nNot applicable\nNot applicable\nNot applicable\nNot applicable\n—\nFor generation 2 authentication\nALW\nPWD\nALW\nALW\nInternal Authenticate\nNot applicable\nNot applicable\nNot applicable\nNot applicable\nGeneral Authenticate\nALW\nALW\nALW\nALW\nGet Challenge\nALW\nALW\nALW\nALW\nMSE:SET AT\nALW\nALW\nALW\nALW\nMSE:SET DST\nALW\nALW\nALW\nALW\nProcess DSRC Message\nNot applicable\nNot applicable\nNot applicable\nNot applicable\nPSO: Compute Digital Signature\nNot applicable\nNot applicable\nNot applicable\nNot applicable\nPSO: Hash\nNot applicable\nNot applicable\nNot applicable\nNot applicable\nPERFORM HASH of FILE\nNot applicable\nNot applicable\nNot applicable\nNot applicable\nPSO: Verify Certificate\nALW\nALW\nALW\nALW\nPSO: Verify Digital Signature\nNot applicable\nNot applicable\nNot applicable\nNot applicable\nVerify\nNot applicable\nALW\nNot applicable\nNot applicable\nTCS_28\nA tachograph card may or may not accept a command with a higher level of security than the one specified in the security conditions. I.e. if the security condition is ALW (or PLAIN-C) the card may accept a command with secure messaging (encryption and / or authentication mode). If the security condition requires secure messaging with authentication mode, the tachograph card may accept a command with secure messaging of the same generation in authentication and encryption mode.\nNote: The command descriptions provide more information on the support of the commands for the different tachograph card types and the different DFs.\n3.4.\nCommands and error codes overview\nCommands and file organisation are deduced from and complies with ISO/IEC 7816-4.\nThis section describes the following APDU command-response pairs. The command variants which are supported by a generation 1 and 2 application are specified in the corresponding command descriptions.\nCommand\nINS\nSELECT\n‘A4h’\nREAD BINARY\n‘B0h’, ‘B1h’\nUPDATE BINARY\n‘D6h’, ‘D7h’\nGET CHALLENGE\n‘84h’\nVERIFY\n‘20h’\nGET RESPONSE\n‘C0h’\nPERFORM SECURITY OPERATION\n‘2Ah’\n—\nVERIFY CERTIFICATE\n—\nCOMPUTE DIGITAL SIGNATURE\n—\nVERIFY DIGITAL SIGNATURE\n—\nHASH\n—\nPERFORM HASH OF FILE\n—\nPROCESS DSRC MESSAGE\nINTERNAL AUTHENTICATE\n‘88h’\nEXTERNAL AUTHENTICATE\n‘82h’\nMANAGE SECURITY ENVIRONMENT\n‘22h’\n—\nSET DIGITAL SIGNATURE TEMPLATE\n—\nSET AUTHENTICATION TEMPLATE\nGENERAL AUTHENTICATE\n‘86h’\nTCS_29\nThe status words SW1 SW2 are returned in any response message and denote the processing state of the command.\nSW1\nSW2\nMeaning\n90\n00\nNormal processing.\n61\nXX\nNormal processing. XX = number of response bytes available.\n62\n81\nWarning processing. Part of returned data may be corrupted\n63\n00\nAuthentication failed (Warning)\n63\nCX\nWrong CHV (PIN). Remaining attempts counter provided by ‘ X ’ .\n64\n00\nExecution error - State of non-volatile memory unchanged. Integrity error.\n65\n00\nExecution error - State of non-volatile memory changed\n65\n81\nExecution error - State of non-volatile memory changed – Memory failure\n66\n88\nSecurity error wrong cryptographic checksum (during Secure Messaging) or\nwrong certificate (during certificate verification) or\nwrong cryptogram (during external authentication) or\nwrong signature (during signature verification)\n67\n00\nWrong length (wrong Lc or Le)\n68\n83\nLast command of the chain expected\n69\n00\nForbidden command (no response available in T=0)\n69\n82\nSecurity status not satisfied.\n69\n83\nAuthentication method blocked.\n69\n85\nConditions of use not satisfied.\n69\n86\nCommand not allowed (no current EF).\n69\n87\nExpected Secure Messaging Data Objects missing\n69\n88\nIncorrect Secure Messaging Data Objects\n6A\n80\nIncorrect parameters in data field\n6A\n82\nFile not found.\n6A\n86\nWrong parameters P1-P2.\n6A\n88\nReferenced data not found.\n6B\n00\nWrong parameters (offset outside the EF).\n6C\nXX\nWrong length, SW2 indicates the exact length. No data field is returned.\n6D\n00\nInstruction code not supported or invalid.\n6E\n00\nClass not supported.\n6F\n00\n—\nOther checking errors\nAdditional status words as defined in ISO/IEC 7816-4 can be returned, if their behaviour is not explicitly mentioned in this appendix.\nFor example the following status words can be optionally returned:\n6881: Logical channel not supported\n6882: Secure messaging not supported\nTCS_30\nIf more than one error condition is fulfilled in one command APDU the card may return any of the appropriate status words.\n3.5.\nCommand descriptions\nThe mandatory commands for the Tachograph cards are described in this chapter.\nAdditional relevant details, related to cryptographic operations involved, are given in Appendix 11 Common security mechanisms for Tachograph Generation 1 and Generation 2.\nAll commands are described independently of the used protocol (T=0 or T=1). The APDU bytes CLA, INS, P1, P2, Lc and Le are always indicated. If Lc or Le is not needed for the described command, the associated length, value and description are empty.\nTCS_31\nIf both length bytes (Lc and Le) are requested, the described command has to be split in two parts if the IFD is using protocol T=0: the IFD sends the command as described with P3=Lc + data and then sends a GET RESPONSE (see § 3.5.6) command with P3=Le.\nTCS_32\nIf both length bytes are requested, and Le=0 (secure messaging):\nWhen using protocol T=1, the card shall answer to Le=0 by sending all available output data.\nWhen using protocol T=0, the IFD shall send the first command with P3=Lc + data, the card shall answer (to this implicit Le=0) by the Status bytes ‘61La’, where La is the number of response bytes available. The IFD shall then generate a GET RESPONSE command with P3 = La to read the data.\nTCS_33\nA tachograph card may support extended length fields according to ISO/IEC 7816-4 as an optional feature. A tachograph card that supports extended length fields shall\nIndicate the extended length field support in the ATR\nProvide the supported buffer sizes by means of the extended length information in the EF ATR/INFO see TCS_146.\nIndicate whether it supports extended length fields for T = 1 and / or T = 0 in the EF Extended Length, see TCS_147.\nSupport extended length fields for the tachograph application generation 1 and 2.\nNotes:\nAll commands are specified for short length fields. The usage of extended length APDUs is clear from ISO/IEC 7816-4.\nIn general the commands are specified for the plain mode, i.e. without secure messaging, as the secure messaging layer is specified in Appendix 11. It is clear from the access rules for a command whether the command shall support secure messaging or not and whether the command shall support generation 1 and / or generation 2 secure messaging. Some command variants are described with secure messaging to illustrate the usage of secure messaging.\nTCS_34\nThe VU shall perform the complete generation 2 VU — card mutual authentication protocol for a session including the certificate verification (if required) either in the DF Tachograph, the DF Tachograph_G2 or the MF.\n3.5.1\nSELECT\nThis command is compliant with ISO/IEC 7816-4, but has a restricted usage compared to the command defined in the norm.\nThe SELECT command is used:\nto select an application DF (selection by name must be used)\nto select an elementary file corresponding to the submitted file ID\n3.5.1.1\nSelection by name (AID)\nThis command allows selecting an application DF in the card.\nTCS_35\nThis command can be performed from anywhere in the file structure (after the ATR or at any time).\nTCS_36\nThe selection of an application resets the current security environment. After performing the application selection, no current public key is selected anymore. The EXT-AUT-G1 access condition is also lost. If the command was performed without secure messaging, the former secure messaging session keys are no longer available.\nTCS_37\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘A4h’\nP1\n1\n‘04h’\nSelection by name (AID)\nP2\n1\n‘0Ch’\nNo response expected\nLc\n1\n‘NNh’\nNumber of bytes sent to the card (length of the AID):\n‘06h’ for the Tachograph application\n#6-#(5+NN)\nNN\n‘XX..XXh’\nAID: ‘FF 54 41 43 48 4F’ for the Generation 1 tachograph application\nAID: ‘FF 53 4D 52 44 54’ for the Generation 2 tachograph application\nNo response to the SELECT command is needed (Le absent in T=1, or no response asked in T=0).\nTCS_38\nResponse Message (no response asked)\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf the application corresponding with the AID is not found, the processing state returned is ‘6A82’.\nIn T=1, if the byte Le is present, the state returned is ‘6700’.\nIn T=0, if a response is asked after the SELECT command, the state returned is ‘6900’.\nIf the selected application is considered to be corrupted (integrity error is detected within the file attributes), the processing state returned is ‘ 6400 ’ or ‘ 6500 ’.\n3.5.1.2\nSelection of an Elementary File using its File Identifier\nTCS_39\nCommand Message\nTCS_40\nA tachograph card shall support the generation 2 secure messaging as specified in Appendix 11 Part B for this command variant.\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘A4h’\nP1\n1\n‘02h’\nSelection of an EF under the current DF\nP2\n1\n‘0Ch’\nNo response expected\nLc\n1\n‘02h’\nNumber of bytes sent to the card\n#6-#7\n2\n‘XXXXh’\nFile Identifier\nNo response to the SELECT command is needed (Le absent in T=1, or no response asked in T=0).\nTCS_41\nResponse Message (no response asked)\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf the file corresponding with the file identifier is not found, the processing state returned is ‘6A82’.\nIn T=1, if the byte Le is present, the state returned is ‘6700’.\nIn T=0, if a response is asked after the SELECT command, the state returned is ‘6900’.\nIf the selected file is considered to be corrupted (integrity error is detected within the file attributes), the processing state returned is ‘ 6400 ’ or ‘ 6500 ’.\n3.5.2\nREAD BINARY\nThis command is compliant with ISO/IEC 7816-4, but has a restricted usage compared to the command defined in the norm.\nThe READ BINARY command is used to read data from a transparent file.\nThe response of the card consists of returning the data read, optionally encapsulated in a secure messaging structure.\n3.5.2.1\nCommand with offset in P1-P2\nThis command enables the IFD to read data from the EF currently selected, without secure messaging.\nNote: This command without secure messaging can only be used to read a file that supports the ALW security condition for the Read access mode.\nTCS_42\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘B0h’\nRead Binary\nP1\n1\n‘XXh’\nOffset in bytes from the beginning of the file: Most Significant Byte\nP2\n1\n‘XXh’\nOffset in bytes from the beginning of the file: Least Significant Byte\nLe\n1\n‘XXh’\nLength of data expected. Number of Bytes to be read.\nNote: bit 8 of P1 must be set to 0.\nTCS_43\nResponse Message\nByte\nLength\nValue\nDescription\n#1-#X\nX\n‘XX..XXh’\nData read\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf no EF is selected, the processing state returned is ‘6986’.\nIf the security conditions of the selected file are not satisfied, the command is interrupted with ‘6982’.\nIf the Offset is not compatible with the size of the EF (Offset > EF size), the processing state returned is ‘6B00’.\nIf the size of the data to be read is not compatible with the size of the EF (Offset + Le > EF size) the processing state returned is ‘6700’ or ‘6Cxx’ where ‘xx’ indicates the exact length.\nIf an integrity error is detected within the file attributes, the card shall consider the file as corrupted and unrecoverable, the processing state returned is ‘ 6400 ’ or ‘ 6500 ’.\nIf an integrity error is detected within the stored data, the card shall return the demanded data, and the processing state returned is ‘6281’.\n3.5.2.1.1\nCommand with secure messaging (examples)\nThis command enables the IFD to read data from the EF currently selected with secure messaging, in order to verify the integrity of the data received and to protect the confidentiality of the data if the security condition SM-R-ENC-MAC-G1 (generation 1) or SM-R-ENC-MAC-G2 (generation 2) is applied.\nTCS_44\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘0Ch’\nSecure Messaging asked\nINS\n1\n‘B0h’\nRead Binary\nP1\n1\n‘XXh’\nP1 ( offset in bytes from the beginning of the file): Most Significant Byte\nP2\n1\n‘XXh’\nP2 ( offset in bytes from the beginning of the file): Least Significant Byte\nLc\n1\n‘XXh’\nLength of input data for secure messaging\n#6\n1\n‘97h’\nTLE: Tag for expected length specification.\n#7\n1\n‘01h’\nLLE: Length of expected length\n#8\n1\n‘NNh’\nExpected length specification (original Le): Number of Bytes to be read\n#9\n1\n‘8Eh’\nTCC: Tag for cryptographic checksum\n#10\n1\n‘XXh’\nLCC: Length of following cryptographic checksum\n‘04h’ for Generation 1 secure messaging (see Appendix 11 Part A)\n‘08h’, ‘0Ch’ or ‘10h’ depending on AES key length for Generation 2 secure messaging (see Appendix 11 Part B)\n#11-#(10+L)\nL\n‘XX..XXh’\nCryptographic checksum\nLe\n1\n‘00h’\nAs specified in ISO/IEC 7816-4\nTCS_45\nResponse Message if SM-R-ENC-MAC-G1 (generation 1) / SM-R-ENC-MAC-G2 (generation 2) is not required and if Secure Messaging input format is correct:\nByte\nLength\nValue\nDescription\n#1\n1\n‘ 81h ’\nT PV : Tag for plain value data\n#2\nL\n‘NNh’ or\n‘81 NNh’\nL PV : length of returned data (=original Le).\nL is 2 bytes if L PV >127 bytes.\n#(2+L) - #(1+L+NN)\nNN\n‘ XX..XXh ’\nPlain Data value\n#(2+L+NN)\n1\n‘ 99h ’\nTag for Processing Status (SW1-SW2) – optional for generation 1 secure messaging\n#(3+L+NN)\n1\n‘ 02h ’\nLength of Processing Status – optional for generation 1 secure messaging\n#(4+L+NN) - #(5+L+NN)\n2\n‘ XX XXh ’\nProcessing Status of the unprotected response APDU – optional for generation 1 secure messaging\n#(6+L+NN)\n1\n‘ 8Eh ’\nTCC: Tag for cryptographic checksum\n#(7+L+NN)\n1\n‘ XXh ’\nLCC: Length of following cryptographic checksum\n‘04h’ for Generation 1 secure messaging (see Appendix 11 Part A)\n‘08h’, ‘0Ch’ or ‘10h’ depending on AES key length for Generation 2 secure messaging (see Appendix 11 Part B)\n#(8+L+NN)-#(7+M+L+NN)\nM\n‘ XX..XXh ’\nCryptographic checksum\nSW\n2\n‘ XXXXh ’\nStatus Words (SW1,SW2)\nTCS_46\nResponse Message if SM-R-ENC-MAC-G1 (generation 1) / SM-R-ENC-MAC-G2 (generation 2) is required and if Secure Messaging input format is correct:\nByte\nLength\nValue\nDescription\n#1\n1\n‘ 87h ’\nT PI CG : Tag for encrypted data (cryptogram)\n#2\nL\n‘MMh’ or\n‘81 MMh’\nL PI CG : length of returned encrypted data (different of original Le of the command due to padding).\nL is 2 bytes if LPI CG > 127 bytes.\n#(2+L)-#(1+L+MM)\nMM\n‘ 01XX..XXh ’\nEncrypted Data: Padding Indicator and cryptogram\n#(2+L+MM)\n1\n‘ 99h ’\nTag for Processing Status (SW1-SW2) – optional for generation 1 secure messaging\n#(3+L+MM)\n1\n‘ 02h ’\nLength of Processing Status – optional for generation 1 secure messaging\n#(4+L+MM) - #(5+L+MM)\n2\n‘ XX XXh ’\nProcessing Status of the unprotected response APDU – optional for generation 1 secure messaging\n#(6+L+MM)\n1\n‘ 8Eh ’\nTCC: Tag for cryptographic checksum\n#(7+L+MM)\n1\n‘ XXh ’\nLCC: Length of following cryptographic checksum\n‘04h’ for Generation 1 secure messaging (see Appendix 11 Part A)\n‘08h’, ‘0Ch’ or ‘10h’ depending on AES key length for Generation 2 secure messaging (see Appendix 11 Part B)\n#(8+L+MM)-#(7+N+L+MM)\nN\n‘ XX..XXh ’\nCryptographic checksum\nSW\n2\n‘ XXXXh ’\nStatus Words (SW1,SW2)\nThe READ BINARY command may return regular processing states listed in TCS_43 under Tag ‘99h’ as described in TCS_59 using the secure messaging response structure.\nAdditionally, some errors specifically related to secure messaging can happen. In that case, the processing state is simply returned, with no secure messaging structure involved:\nTCS_47\nResponse Message if incorrect Secure Messaging input format\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf no current session key is available, the processing state ‘6A88’ is returned. It happens either if the session key has not already been generated or if the session key validity has expired (in this case the IFD must re-run a mutual authentication process to set a new session key).\nIf some expected data objects (as specified above) are missing in the secure messaging format, the processing state ‘6987’ is returned: this error happens if an expected tag is missing or if the command body is not properly constructed.\nIf some data objects are incorrect, the processing state returned is ‘6988’: this error happens if all the required tags are present but some lengths are different from the ones expected.\nIf the verification of the cryptographic checksum fails, the processing state returned is ‘6688’.\n3.5.2.2\nCommand with short EF (Elementary File) identifier\nThis command variant enables the IFD to select an EF by means of a short EF identifier and read data from this EF.\nTCS_48\nA tachograph card shall support this command variant for all Elementary Files with a specified short EF identifier. These short EF identifiers are specified in chapter 4.\nTCS_49\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘B0h’\nRead Binary\nP1\n1\n‘XXh’\nBit 8 is set to 1\nBit 7 and 6 are set to 00\nBit 5 — 1 encode the short EF identifier of the corresponding EF\nP2\n1\n‘XXh’\nEncodes an offset from 0 to 255 bytes in the EF referenced by P1\nLe\n1\n‘XXh’\nLength of data expected. Number of Bytes to be read.\nNote: The short EF identifiers used for the Generation 2 tachograph application are specified in chapter 4.\nIf P1 encodes a short EF identifier and the command is successful, the identified EF becomes the currently selected EF (current EF).\nTCS_50\nResponse Message\nByte\nLength\nValue\nDescription\n#1-#L\nL\n‘XX..XXh’\nData read\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf the file corresponding with the short EF identifier is not found, the processing state returned is ‘6A82’.\nIf the security conditions of the selected file are not satisfied, the command is interrupted with ‘6982’.\nIf the Offset is not compatible with the size of the EF (Offset > EF size), the processing state returned is ‘6B00’.\nIf the size of the data to be read is not compatible with the size of the EF (Offset + Le > EF size) the processing state returned is ‘6700’ or ‘6Cxx’ where ‘xx’ indicates the exact length.\nIf an integrity error is detected within the file attributes, the card shall consider the file as corrupted and unrecoverable, the processing state returned is ‘ 6400 ’ or ‘ 6500 ’.\nIf an integrity error is detected within the stored data, the card shall return the demanded data, and the processing state returned is ‘6281’.\n3.5.2.3\nCommand with odd instruction byte\nThis command variant enables the IFD to read data from an EF with 32 768 bytes or more.\nTCS_51\nA tachograph card which supports EFs with 32 768 bytes or more shall support this command variant for these EFs. A tachograph card may or may not support this command variant for other EFs with the exception of the EF Sensor_Installation_Data see TCS_156 and TCS_160.\nTCS_52\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘B1h’\nRead Binary\nP1\n1\n‘00h’\nCurrent EF\nP2\n1\n‘00h’\nLc\n1\n‘NNh’\nLc Length of offset data object.\n#6-#(5+NN)\nNN\n‘XX..XXh’\nOffset data object:\nTag‘54h’\nLength‘01h’ or ‘02h’\nValueoffset\nLe\n1\n'XXh'\nAs specified in ISO/IEC 7816-4\nThe IFD shall encode the offset data object's length with a minimum possible number of octets, i.e. using the length byte ‘01h’ the IFD shall encode an offset from 0 to 255 and using the length byte ‘02h’ an offset from ‘256’ up to ‘65 535’ bytes.\nIn case of T = 0 the card assumes the value Le = ‘00h’ if no secure messaging is applied.\nIn case of T = 1 the processing state returned is ‘6700’ if Le=‘01h’.\nTCS_53\nResponse Message\nByte\nLength\nValue\nDescription\n#1-#L\nL\n‘XX..XXh’\nData read encapsulated in a discretionary data object with tag ‘53h’.\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf no EF is selected, the processing state returned is ‘6986’.\nIf the security conditions of the selected file are not satisfied, the command is interrupted with ‘6982’.\nIf the Offset is not compatible with the size of the EF (Offset > EF size), the processing state returned is ‘6B00’.\nIf the size of the data to be read is not compatible with the size of the EF (Offset + Le > EF size) the processing state returned is ‘6700’ or ‘6Cxx’ where ‘xx’ indicates the exact length.\nIf an integrity error is detected within the file attributes, the card shall consider the file as corrupted and unrecoverable, the processing state returned is ‘ 6400 ’ or ‘ 6500 ’.\nIf an integrity error is detected within the stored data, the card shall return the demanded data, and the processing state returned is ‘6281’.\n3.5.2.3.1\nCommand with secure messaging (example)\nThe following example illustrates the usage of secure messaging if the security condition SM-MAC-G2 applies.\nTCS_54\nCommand message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘0Ch’\nSecure Messaging asked\nINS\n1\n‘B1h’\nRead Binary\nP1\n1\n‘00h’\nCurrent EF\nP2\n1\n‘00h’\nLc\n1\n‘XXh’\nLength of the secured data field\n#6\n1\n‘B3h’\nTag for plain value data encoded in BER-TLV\n#7\n1\n‘NNh’\nLPV: length of transmitted data\n#(8)-#(7+NN)\nNN\n‘XX..XXh’\nPlain Data encoded in BER-TLV, i.e. the offset data object with tag ‘54’\n#(8+NN)\n1\n‘97h’\nTLE: Tag for expected length specification.\n#(9+NN)\n1\n‘01h’\nLLE: Length of expected length\n#(10+NN)\n1\n‘XXh’\nExpected length specification (original Le): Number of bytes to be read\n#(11+NN)\n1\n‘8Eh’\nTCC: Tag for cryptographic checksum\n#(12+NN)\n1\n‘XXh’\nLCC: Length of following cryptographic checksum\n‘08h’, ‘0Ch’ or ‘10h’ depending on AES key length for Generation 2 secure messaging (see Appendix 11 Part B)\n#(13+NN)-#(12+M+NN)\nM\n‘XX..XXh’\nCryptographic checksum\nLe\n1\n‘00h’\nAs specified in ISO/IEC 7816-4\nTCS_55\nResponse message if the command is successful\nByte\nLength\nValue\nDescription\n#1\n1\n‘B3h’\nPlain Data encoded in BER-TLV\n#2\nL\n‘NNh’ or\n‘81 NNh’\nLPV: length of returned data (=original Le).\nL is 2 bytes if LPV>127 bytes.\n#(2+L)-#(1+L+NN)\nNN\n‘XX..XXh’\nPlain Data value encoded in BER-TLV, i.e. data read encapsulated in a discretionary data object with tag ‘53h’.\n#(2+L+NN)\n1\n‘99h’\nProcessing Status of the unprotected response APDU\n#(3+L+NN)\n1\n‘02h’\nLength of Processing Status\n#(4+L+NN) — #(5+L+NN)\n2\n‘XX XXh’\nProcessing Status of the unprotected response APDU\n#(6+L+NN)\n1\n‘8Eh’\nTCC: Tag for cryptographic checksum\n#(7+L+NN)\n1\n‘XXh’\nLCC: Length of following cryptographic checksum\n‘08h’, ‘0Ch’ or ‘10h’ depending on AES key length for Generation 2 secure messaging (see Appendix 11 Part B)\n#(8+L+NN)-#(7+M+L+NN)\nM\n‘XX..XXh’\nCryptographic checksum\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\n3.5.3\nUPDATE BINARY\nThis command is compliant with ISO/IEC 7816-4, but has a restricted usage compared to the command defined in the norm.\nThe UPDATE BINARY command message initiates the update (erase + write) of the bits already present in an EF binary with the bits given in the command APDU.\n3.5.3.1\nCommand with offset in P1-P2\nThis command enables the IFD to write data into the EF currently selected, without the card verifying the integrity of data received.\nNote: This command without secure messaging can only be used to update a file that supports the ALW security condition for the Update access mode.\nTCS_56\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘D6h’\nUpdate Binary\nP1\n1\n‘XXh’\nOffset in bytes from the beginning of the file: Most Significant Byte\nP2\n1\n‘XXh’\nOffset in bytes from the beginning of the file: Least Significant Byte\nLc\n1\n‘NNh’\nLc Length of data to Update. Number of bytes to be written.\n#6-#(5+NN)\nNN\n‘XX..XXh’\nData to be written\nNote: bit 8 of P1 must be set to 0.\nTCS_57\nResponse Message\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf no EF is selected, the processing state returned is ‘6986’.\nIf the security conditions of the selected file are not satisfied, the command is interrupted with ‘6982’.\nIf the Offset is not compatible with the size of the EF (Offset > EF size), the processing state returned is ‘6B00’.\nIf the size of the data to be written is not compatible with the size of the EF (Offset + Lc > EF size) the processing state returned is ‘6700’.\nIf an integrity error is detected within the file attributes, the card shall consider the file as corrupted and unrecoverable, the processing state returned is ‘6400’ or ‘6500’.\nIf writing is unsuccessful, the processing state returned is ‘6581’.\n3.5.3.1.1\nCommand with secure messaging (examples)\nThis command enables the IFD to write data into the EF currently selected, with the card verifying the integrity of data received. As no confidentiality is required, the data are not encrypted.\nTCS_58\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘0Ch’\nSecure Messaging asked\nINS\n1\n‘D6h’\nUpdate Binary\nP1\n1\n‘XXh’\nOffset in bytes from the beginning of the file:\nMost Significant Byte\nP2\n1\n‘XXh’\nOffset in bytes from the beginning of the file:\nLeast Significant Byte\nLc\n1\n‘XXh’\nLength of the secured data field\n#6\n1\n‘81h’\nTPV: Tag for plain value data\n#7\nL\n‘NNh’ or\n‘81 NNh’\nLPV: length of transmitted data.\nL is 2 bytes if LPV > 127 bytes.\n#(7+L)-#(6+L+NN)\nNN\n‘XX..XXh’\nPlain Data value (Data to be written)\n#(7+L+NN)\n1\n‘8Eh’\nTCC: Tag for cryptographic checksum\n#(8+L+NN)\n1\n‘XXh’\nLCC: Length of following cryptographic checksum‘04h’ for Generation 1 secure messaging (see Appendix 11 Part A)\n‘08h’, ‘0Ch’ or ‘10h’ depending on AES key length for Generation 2 secure messaging (see Appendix 11 Part B)\n#(9+L+NN)-#(8+M+L+NN)\nM\n‘XX..XXh’\nCryptographic checksum\nLe\n1\n‘00h’\nAs specified in ISO/IEC 7816-4\nTCS_59\nResponse message if correct Secure Messaging input format\nByte\nLength\nValue\nDescription\n#1\n1\n‘99h’\nTSW: Tag for Status Words (to be protected by CC)\n#2\n1\n‘02h’\nLSW: length of returned Status Words\n#3-#4\n2\n‘XXXXh’\nProcessing Status of the unprotected response APDU\n#5\n1\n‘8Eh’\nTCC: Tag for cryptographic checksum\n#6\n1\n‘XXh’\nLCC: Length of following cryptographic checksum\n‘04h’ for Generation 1 secure messaging (see Appendix 11 Part A)\n‘08h’, ‘0Ch’ or ‘10h’ depending on AES key length for Generation 2 secure messaging (see Appendix 11 Part B)\n#7-#(6+L)\nL\n‘XX..XXh’\nCryptographic checksum\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nThe ‘regular’ processing states, described for the UPDATE BINARY command with no secure messaging (see §3.5.3.1), can be returned using the response message structure described above.\nAdditionally, some errors specifically related to secure messaging can happen. In that case, the processing state is simply returned, with no secure messaging structure involved:\nTCS_60\nResponse Message if error in secure messaging\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf no current session key is available, the processing state ‘6A88’ is returned.\nIf some expected data objects (as specified above) are missing in the secure messaging format, the processing state ‘6987’ is returned: this error happens if an expected tag is missing or if the command body is not properly constructed.\nIf some data objects are incorrect, the processing state returned is ‘6988’: this error happens if all the required tags are present but some lengths are different from the ones expected.\nIf the verification of the cryptographic checksum fails, the processing state returned is ‘6688’.\n3.5.3.2\nCommand with short EF identifier\nThis command variant enables the IFD to select an EF by means of a short EF identifier and write data from this EF.\nTCS_61\nA tachograph card shall support this command variant for all Elementary Files with a specified short EF identifier. These short EF identifiers are specified in chapter 4.\nTCS_62\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘D6h’\nUpdate Binary\nP1\n1\n‘XXh’\nBit 8 is set to 1\nBit 7 and 6 are set to 00\nBit 5 — 1 encode the short EF identifier of the corresponding EF\nP2\n1\n‘XXh’\nEncodes an offset from 0 to 255 bytes in the EF referenced by P1\nLc\n1\n‘NNh’\nLc Length of data to Update. Number of bytes to be written.\n#6-#(5+NN)\nNN\n‘XX..XXh’\nData to be written\nTCS_63\nResponse Message\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nNote: The short EF identifiers used for the generation 2 tachograph application are specified in chapter 4.\nIf P1 encodes a short EF identifier and the command is successful, the identified EF becomes the currently selected EF (current EF).\nIf the command is successful, the card returns ‘9000’.\nIf the file corresponding with the short EF identifier is not found, the processing state returned is ‘6A82’.\nIf the security conditions of the selected file are not satisfied, the command is interrupted with ‘6982’.\nIf the Offset is not compatible with the size of the EF (Offset > EF size), the processing state returned is ‘6B00’.\nIf the size of the data to be written is not compatible with the size of the EF (Offset + Lc > EF size) the processing state returned is ‘6700’.\nIf an integrity error is detected within the file attributes, the card shall consider the file as corrupted and unrecoverable, the processing state returned is ‘ 6400 ’ or ‘ 6500 ’.\nIf writing is unsuccessful, the processing state returned is ‘6581’.\n3.5.3.3\nCommand with odd instruction byte\nThis command variant enables the IFD to write data to an EF with 32 768 bytes or more.\nTCS_64\nA tachograph card which supports EFs with 32 768 bytes or more shall support this command variant for these EFs. A tachograph card may or may not support this command variant for other EFs.\nTCS_65\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘D7h’\nUpdate Binary\nP1\n1\n‘00h’\nCurrent EF\nP2\n1\n‘00h’\nLc\n1\n‘NNh’\nLc Length of data in the command data field\n#6-#(5+NN)\nNN\n‘XX..XXh’\nOffset data object with tag ‘54h’ || Discretionary data object with tag ‘53h’ that encapsulates the data to be written\nThe IFD shall encode the offset data object's and the discretionary data object's length with the minimum possible number of octets, i.e. using the length byte ‘01h’ the IFD shall encode an offset / length from 0 to 255 and using the length byte ‘02h’ an offset / length from ‘256’ up to ‘65 535’ bytes.\nTCS_66\nResponse Message\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf no EF is selected, the processing state returned is ‘6986’.\nIf the security conditions of the selected file are not satisfied, the command is interrupted with ‘6982’.\nIf the Offset is not compatible with the size of the EF (Offset > EF size), the processing state returned is ‘6B00’.\nIf the size of the data to be written is not compatible with the size of the EF (Offset + Lc > EF size) the processing state returned is ‘6700’.\nIf an integrity error is detected within the file attributes, the card shall consider the file as corrupted and unrecoverable, the processing state returned is ‘6400’ or ‘6500’.\nIf writing is unsuccessful, the processing state returned is ‘6581’.\n3.5.3.3.1\nCommand with secure messaging (example)\nThe following example illustrates the usage of secure messaging if the security condition SM-MAC-G2 applies.\nTCS_67\nCommand message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘0Ch’\nSecure Messaging asked\nINS\n1\n‘D7h’\nUpdate Binary\nP1\n1\n‘00h’\nCurrent EF\nP2\n1\n‘00h’\nLc\n1\n‘XXh’\nLength of the secured data field\n#6\n1\n‘B3h’\nTag for plain value data encoded in BER-TLV\n#7\nL\n‘NNh’ or\n‘81 NNh’\nLPV: length of transmitted data.\nL is 2 bytes if LPV > 127 bytes.\n#(7+L)-#(6+L+NN)\nNN\n‘XX..XXh’\nPlain Data encoded in BER-TLV, i.e. offset data object with tag ‘54h’ || Discretionary data object with tag ‘53h’ that encapsulates the data to be written\n#(7+L+NN)\n1\n‘8Eh’\nTCC: Tag for cryptographic checksum\n#(8+L+NN)\n1\n‘XXh’\nLCC: Length of following cryptographic checksum\n‘08h’, ‘0Ch’ or ‘10h’ depending on AES key length for Generation 2 secure messaging (see Appendix 11 Part B)\n#(9+L+NN)-#(8+M+L+NN)\nM\n‘XX..XXh’\nCryptographic checksum\nLe\n1\n‘00h’\nAs specified in ISO/IEC 7816-4\nTCS_68\nResponse message if the command is successful\nByte\nLength\nValue\nDescription\n#1\n1\n‘99h’\nTSW: Tag for Status Words (to be protected by CC)\n#2\n1\n‘02h’\nLSW: length of returned Status Words\n#3-#4\n2\n‘XXXXh’\nProcessing Status of the unprotected response APDU\n#5\n1\n‘8Eh’\nTCC: Tag for cryptographic checksum\n#6\n1\n‘XXh’\nLCC: Length of following cryptographic checksum\n‘08h’, ‘0Ch’ or ‘10h’ depending on AES key length for Generation 2 secure messaging (see Appendix 11 Part B)\n#7-#(6+L)\nL\n‘XX..XXh’\nCryptographic checksum\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\n3.5.4\nGET CHALLENGE\nThis command is compliant with ISO/IEC 7816-4, but has a restricted usage compared to the command defined in the norm.\nThe GET CHALLENGE command asks the card to issue a challenge in order to use it in a security related procedure in which a cryptogram or some ciphered data are sent to the card.\nTCS_69\nThe Challenge issued by the card is only valid for the next command, which uses a challenge, sent to the card.\nTCS_70\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘84h’\nINS\nP1\n1\n‘00h’\nP1\nP2\n1\n‘00h’\nP2\nLe\n1\n‘08h’\nLe (Length of Challenge expected).\nTCS_71\nResponse Message\nByte\nLength\nValue\nDescription\n#1-#8\n8\n‘XX..XXh’\nChallenge\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf Le is different from ‘08h’, the processing state is ‘6700’.\nIf parameters P1-P2 are incorrect, the processing state is ‘6A86’.\n3.5.5\nVERIFY\nThis command is compliant with ISO/IEC 7816-4, but has a restricted usage compared to the command defined in the norm.\nOnly the workshop card is required to support this command.\nOther types of tachograph cards may or may not implement this command, but for these cards no reference CHV is personalized. Therefore these cards cannot perform this commend successfully. For other types of tachograph cards than workshop cards the behavior, i.e. the error code returned, is out of the scope of this specification, if this command is sent.\nThe Verify command initiates the comparison in the card of the CHV (PIN) data sent from the command with the reference CHV stored in the card.\nTCS_72\nThe PIN entered by the user must be ASCII encoded and right padded with ‘FFh’ bytes up to a length of 8 bytes by the IFD, see also the data type WorkshopCardPIN in Appendix 1.\nTCS_73\nThe tachograph applications generation 1 and 2 shall use the same reference CHV.\nTCS_74\nThe tachograph card shall check whether the command is encoded correctly. If the command is not encoded correctly the card shall not compare the CHV values, not decrement the remaining CHV attempt counter and not reset the security status ‘PIN_Verified’, but abort the command. A command is encoded correctly, if the CLA, INS, P1, P2, Lc bytes have the specified values, Le is absent, and the command data field has the correct length.\nTCS_75\nIf the command is successful, the remaining CHV attempt counter is reinitialised. The initial value of the remaining CHV attempt counter is 5. If the command is successful the card shall set the internal security status ‘PIN_Verified’. The card shall reset this security status, if the card is reset or if the CHV code transmitted in the command does not match the stored reference CHV.\nNote: Using the same reference CHV and a global security status prevents that a workshop employee must re-enter the PIN after a selection of another tachograph application DF.\nTCS_76\nAn unsuccessful comparison is recorded in the card, i.e. the remaining CHV attempts counter shall be decremented by one, in order to limit the number of further attempts of the use of the reference CHV.\nTCS_77\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘20h’\nINS\nP1\n1\n‘00h’\nP1\nP2\n1\n‘00h’\nP2 (the verified CHV is implicitly known)\nLc\n1\n‘08h’\nLength of CHV code transmitted\n#6-#13\n8\n‘XX..XXh’\nCHV\nTCS_78\nResponse Message\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf the reference CHV is not found, the processing state returned is ‘6A88’.\nIf the CHV is blocked, (the remaining attempt counter of the CHV is null), the processing state returned is ‘6983’. Once in that state, the CHV can never be successfully presented anymore.\nIf the comparison is unsuccessful, the remaining attempt Counter is decreased and the status ‘63CX’ is returned (X>0 and X equals the remaining CHV attempts counter.\nIf the reference CHV is considered corrupted, the processing state returned is ‘6400’ or ‘6581’.\nIf Lc is different from ‘08h’, the processing state is ‘6700’.\n3.5.6\nGET RESPONSE\nThis command is compliant with ISO/IEC 7816-4.\nThis command (only necessary and available for T=0 Protocol) is used to transmit prepared data from the card to the interface device (case where a command had included both Lc and Le).\nThe GET RESPONSE command has to be issued immediately after the command preparing the data, otherwise, the data are lost. After the execution of the GET RESPONSE command (except if the error ‘61xx’ or ‘6Cxx’ occur, see below), the previously prepared data are no longer available.\nTCS_79\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘C0h’\nP1\n1\n‘00h’\nP2\n1\n‘00h’\nLe\n1\n‘XXh’\nNumber of bytes expected\nTCS_80\nResponse Message\nByte\nLength\nValue\nDescription\n#1-#X\nX\n‘XX..XXh’\nData\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf no data have been prepared by the card, the processing state returned is ‘6900’ or ‘6F00’.\nIf Le exceeds the number of available bytes or if Le is null, the processing state returned is ‘6Cxx’, where xx denotes the exact number of available bytes. In that case, the prepared data are still available for a subsequent GET RESPONSE command.\nIf Le is not null and is smaller than the number of available bytes, the required data are sent normally by the card, and the processing state returned is ‘61xx’, where ‘xx’ indicates a number of extra bytes still available by a subsequent GET RESPONSE command.\nIf the command is not supported (protocol T=1), the card returns ‘6D00’.\n3.5.7\nPSO: VERIFY CERTIFICATE\nThis command is compliant with ISO/IEC 7816-8, but has a restricted usage compared to the command defined in the norm.\nThe VERIFY CERTIFICATE command is used by the card to obtain a Public Key from the outside and to check its validity.\n3.5.7.1\nGeneration 1 Command — Response pair\nTCS_81\nThis command variant is only supported by a generation 1 tachograph application.\nTCS_82\nWhen a VERIFY CERTIFICATE command is successful, the Public Key is stored for a future use in the Security environment. This key shall be explicitly set for the use in security related commands (INTERNAL AUTHENTICATE, EXTERNAL AUTHENTICATE or VERIFY CERTIFICATE) by the MSE command (see § 3.5.11) using its key identifier.\nTCS_83\nIn any case, the VERIFY CERTIFICATE command uses the public key previously selected by the MSE command to open the certificate. This public key must be the one of a Member State or of Europe.\nTCS_84\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘2Ah’\nPerform Security Operation\nP1\n1\n‘00h’\nP1\nP2\n1\n‘AEh’\nP2: non BER-TLV coded data (concatenation of data elements)\nLc\n1\n‘C2h’\nLc: Length of the certificate, 194 bytes\n#6-#199\n194\n‘XX..XXh’\nCertificate: concatenation of data elements (as described in Appendix 11)\nTCS_85\nResponse Message\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf the certificate verification fails, the processing state returned is ‘6688’. The verification and unwrapping process of the certificate is described in Appendix 11 for G1 and G2.\nIf no Public Key is present in the Security Environment, ‘6A88’ is returned.\nIf the selected public key (used to unwrap the certificate) is considered corrupted, the processing state returned is ‘6400’ or ‘6581’.\nGeneration 1 only: If the selected public key (used to unwrap the certificate) has a CHA.LSB () different from ‘00’ (i.e. is not the one of a Member State or of Europe), the processing state returned is ‘6985’.\n3.5.7.2\nGeneration 2 Command — Response pair\nDepending on the curve size ECC certificates may be so long that they cannot be transmitted in a single APDU. In this case command chaining according to ISO/IEC 7816-4 must be applied and the certificate transmitted in two consecutive PSO: Verify Certificate APDUs.\nThe certificate structure and the domain parameters are defined in Appendix 11.\nTCS_86\nThe command can be performed in the MF, DF Tachograph and DF Tachograph_G2, see also TCS_33.\nTCS_87\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘X0h’\nCLA byte indicating command chaining:\n‘00h’ the only or last command of the chain\n‘10h’ not the last command of a chain\nINS\n1\n‘2Ah’\nPerform Security Operation\nP1\n1\n‘00h’\nP2\n1\n‘BEh’\nVerify self-descriptive certificate\nLc\n1\n‘XXh’\nLength of the command data field, see TCS_88 and TCS_89.\n#6-#5+L\nL\n‘XX..XXh’\nDER-TLV encoded data: ECC Certificate Body data object as first data object concatenated with the ECC Certificate Signature data object as second data object or a part of this concatenation. The tag ‘7F21’ and the corresponding length shall not be transmitted.\nThe order of these data objects is fixed.\nTCS_88\nFor short length APDUs the following provisions apply: The IFD shall use the minimum number of APDUs required to transmit the command payload and transmit the maximum number of bytes in the first command APDU according to the value of the Information Field Size Card Byte, see TCS_14. If the IFD behaves differently, the behavior of the card is out of scope.\nTCS_89\nFor extended length APDUs the following provisions apply: If the certificate does not fit into a single APDU, the card shall support command chaining. The IFD shall use the minimum number of APDUs required to transmit the command payload and transmit the maximum number of bytes in the first command APDU. If the IFD behaves differently, the behavior of the card is out of scope.\nNote: According to Appendix 11 the card stores the certificate or the relevant contents of the certificate and updates its currentAuthenticatedTime.\nThe response message structure and status words are as defined in TCS_85.\nTCS_90\nIn addition to the error codes listed in TCS_85, the card may return the following error codes:\nIf the selected public key (used to unwrap the certificate) has a CHA.LSB (CertificateHolderAuthorisation.equipmentType) that is not suitable for the certificate verification according to Appendix 11, the processing state returned is ‘6985’.\nIf the currentAuthenticatedTime of the card is later than the Certificate Expiration Date, the processing state returned is ‘6985’.\nIf the last command of the chain is expected, the card returns ‘6883’.\nIf incorrect parameters are sent in the command data field, the card returns ‘6A80’ (also used in case the data objects are not sent in the specified order).\n3.5.8\nINTERNAL AUTHENTICATE\nThis command is compliant with ISO/IEC 7816-4.\nTCS_91\nAll tachograph cards shall support this command in the DF Tachograph generation 1. The command may or may not be accessible in the MF and / or the DF Tachograph_G2. If so, the command shall terminate with a suitable error code as the private key of the card (Card.SK) for the generation 1 authentication protocol is only accessible in the DF_Tachograph generation 1.\nUsing the INTERNAL AUTHENTICATE command, the IFD can authenticate the card. The authentication process is described in Appendix 11. It includes the following statements:\nTCS_92\nThe INTERNAL AUTHENTICATE command uses the card Private Key (implicitly selected) to sign authentication data including K1 (first element for session key agreement) and RND1, and uses the Public Key currently selected (through the last MSE command) to encrypt the signature and form the authentication token (more details in Appendix 11).\nTCS_93\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nCLA\nINS\n1\n‘88h’\nINS\nP1\n1\n‘00h’\nP1\nP2\n1\n‘00h’\nP2\nLc\n1\n‘10h’\nLength of data sent to the card\n#6 — #13\n8\n‘XX..XXh’\nChallenge used to authenticate the card\n#14 -#21\n8\n‘XX..XXh’\nVU.CHR (see Appendix 11)\nLe\n1\n‘80h’\nLength of the data expected from the card\nTCS_94\nResponse Message\nByte\nLength\nValue\nDescription\n#1-#128\n128\n‘XX..XXh’\nCard authentication token (see Appendix 11)\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf no Public Key is present in the Security Environment, the processing state returned is ‘6A88’.\nIf no Private Key is present in the Security Environment, the processing state returned is ‘6A88’.\nIf VU.CHR does not match the current public key identifier, the processing state returned is ‘6A88’.\nIf the selected private key is considered corrupted, the processing state returned is ‘6400’ or ‘6581’.\nTCS_95\nIf the INTERNAL AUTHENTICATE command is successful, the current generation 1 session key, if existing, is erased and no longer available. In order to have a new generation 1 session key available, the EXTERNAL AUTHENTICATE command for the generation 1 authentication mechanism must be successfully performed.\nNote:\nFor generation 2 session keys see Appendix 11 CSM_193 and CSM_195. If generation 2 session keys are established and the tachograph card receives the plain INTERNAL AUTHENTICATE command APDU, it aborts the generation 2 secure messaging session and destroys the generation 2 session keys.\n3.5.9\nEXTERNAL AUTHENTICATE\nThis command is compliant with ISO/IEC 7816-4.\nUsing the EXTERNAL AUTHENTICATE command, the card can authenticate the IFD. The authentication process is described in Appendix 11 for Tachograph G1 and G2 (VU authentication).\nTCS_96\nThe command variant for the generation 1 mutual authentication mechanism is only supported by a generation 1 tachograph application.\nTCS_97\nThe command variant for the second generation VU-card mutual authentication can be performed in the MF, DF Tachograph and DF Tachograph_G2, see also TCS_34. If this generation 2 EXTERNAL AUTHENTICATE command is successful, the current generation 1 session key, if existing, is erased and no longer available.\nNote:\nFor generation 2 session keys see Appendix 11 CSM_193 and CSM_195. If generation 2 session keys are established and the tachograph card receives the plain EXTERNAL AUTHENTICATE command APDU, it aborts the generation 2 secure messaging session and destroys the generation 2 session keys.\nTCS_98\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nCLA\nINS\n1\n‘82h’\nINS\nP1\n1\n‘00h’\nKeys and algorithms implicitly known\nP2\n1\n‘00h’\nLc\n1\n‘XXh’\nLc (Length of the data sent to the card )\n#6-#(5+L)\nL\n‘XX..XXh’\nGeneration 1 authentication: Cryptogram (see Appendix 11 Part A)\nGeneration 2 authentication: Signature generated by the IFD (see Appendix 11 Part B)\nTCS_99\nResponse Message\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf the CHA of the currently set public key is not the concatenation of the Tachograph application AID and of a VU equipment Type, the processing state returned is ‘6F00’.\nIf the command is not immediately preceded with a GET CHALLENGE command, the processing state returned is ‘6985’.\nThe Generation 1 Tachograph application may return the following additional error codes:\nIf no Public Key is present in the Security Environment, ‘6A88’ is returned.\nIf no Private Key is present in the Security Environment, the processing state returned is ‘6A88’.\nIf the verification of the cryptogram is wrong, the processing state returned is ‘6688’.\nIf the selected private key is considered corrupted, the processing state returned is ‘6400’ or ‘6581’.\nThe command variant for the Generation 2 authentication may return the following additional error code:\nIf signature verification failed, the card returns ‘6300’.\n3.5.10\nGENERAL AUTHENTICATE\nThis command is used for the generation 2 chip authentication protocol specified in Appendix 11 Part B and is compliant with ISO/IEC 7816-4.\nTCS_100\nThe command can be performed in the MF, DF Tachograph and DF Tachograph_G2, see also TCS_34.\nTCS_101\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘86h’\nP1\n1\n‘00h’\nKeys and protocol implicitly known\nP2\n1\n‘00h’\nLc\n1\n‘NNh’\nLc: length of subsequent data field\n#6-#(5+L)\nL\n‘7Ch’ + L7C + ‘80h’ + L80 + ‘XX..XXh’\nDER-TLV encoded ephemeral public key value (see Appendix 11)\nThe VU shall send the data objects in this order.\n5 + L + 1\n1\n‘ 00h ’\nAs specified in ISO/IEC 7816-4\nTCS_102\nResponse Message\nByte\nLength\nValue\nDescription\n#1-#L\nL\n‘7Ch’ + L7C + ‘81h’ + ‘08h’ + ‘XX..XXh’ + ‘82h’ + L82 + ‘XX..XXh’\nDER-TLV encoded Dynamic Authentication Data: nonce and authentication token (see Appendix 11)\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nThe card returns ‘6A80’ to indicate incorrect parameters in data field.\nThe card returns ‘6982’ if the External Authenticate command has not been performed successfully\nThe response Dynamic Authentication Data object ‘7Ch’\nmust be present if the operation is successful, i.e. the Status Words are ‘9000’,\nmust be absent in case of an execution error or checking error, i.e. if the Status Words are in the range ‘6400’ — ‘6FFF’, and\nmay be absent in case of a warning, i.e. if the Status Words are in the range ‘6200’ — ‘63FF’.\n3.5.11\nMANAGE SECURITY ENVIRONMENT\nThis command is used to set a public key for authentication purpose.\n3.5.11.1\nGeneration 1 Command — Response pair\nThis command is compliant with ISO/IEC 7816-4. The use of this command is restricted regarding the related standard.\nTCS_103\nThis command is only supported by a generation 1 tachograph application.\nTCS_104\nThe key referenced in the MSE data field remains the current public key until the next correct MSE command, a DF is selected or the card is reset.\nTCS_105\nIf the key referenced is not (already) present into the card, the security environment remains unchanged.\nTCS_106\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nCLA\nINS\n1\n‘22h’\nINS\nP1\n1\n‘C1h’\nP1: referenced key valid for all cryptographic operations\nP2\n1\n‘B6h’\nP2 (referenced data concerning Digital Signature)\nLc\n1\n‘0Ah’\nLc: length of subsequent data field\n#6\n1\n‘83h’\nTag for referencing a public key in asymmetric cases\n#7\n1\n‘08h’\nLength of the key reference (key identifier)\n#8-#15\n8\n‘XX..XXh’\nKey identifier as specified in Appendix 11\nTCS_107\nResponse Message\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf the referenced key is not present into the card, the processing state returned is ‘6A88’.\nIf some expected data objects are missing in the secure messaging format, the processing state ‘6987’ is returned. This can happen if the tag ‘83h’ is missing.\nIf some data objects are incorrect, the processing state returned is ‘6988’. This can happen if the length of the key identifier is not ‘08h’.\nIf the selected key is considered corrupted, the processing state returned is ‘6400’ or ‘6581’.\n3.5.11.2\nGeneration 2 Command — Response pairs\nFor the Generation 2 authentication the tachograph card supports the following MSE: Set command versions which are compliant with ISO/IEC 7816-4. These command versions are not supported for the Generation 1 authentication.\n3.5.11.2.1\nMSE:SET AT for Chip Authentication\nThe following MSE:SET AT command is used to select the parameters for the Chip Authentication that is performed by a subsequent General Authenticate command.\nTCS_108\nThe command can be performed in the MF, DF Tachograph and DF Tachograph_G2, see also TCS_34.\nTCS_109\nMSE:SET AT Command Message for Chip Authentication\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘22h’\nP1\n1\n‘41h’\nSet for internal authentication\nP2\n1\n‘A4h’\nAuthentication\nLc\n1\n‘NNh’\nLc: length of subsequent data field\n#6-#(5+L)\nL\n‘80h’ + ‘0Ah’ + ‘XX..XXh’\nDER-TLV encoded cryptographic mechanism reference: Object Identifier of Chip Authentication (value only, Tag ‘06h’ is omitted).\nSee Appendix 1 for the values of object identifiers; the byte notation shall be used. See Appendix 11 for guidance on how to select one of these object identifiers.\n3.5.11.2.2\nMSE:SET AT for VU Authentication\nThe following MSE:SET AT command is used to select the parameters and keys for the VU Authentication that is performed by a subsequent External Authenticate command.\nTCS_110\nThe command can be performed in the MF, DF Tachograph and DF Tachograph_G2, see also TCS_34.\nTCS_111\nMSE:SET AT Command Message for VU Authentication\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘22h’\nP1\n1\n‘81h’\nSet for external authentication\nP2\n1\n‘A4h’\nAuthentication\nLc\n1\n‘NNh’\nLc: length of subsequent data field\n#6-#(5+L)\nL\n‘80h’ + ‘0Ah’ + ‘XX..XXh’\nDER-TLV encoded cryptographic mechanism reference: Object Identifier of VU Authentication (value only, Tag ‘06h’ is omitted).\nSee Appendix 1 for the values of object identifiers; the byte notation shall be used. See Appendix 11 for guidance on how to select one of these object identifiers.\n‘83h’ + ‘08h’ + ‘XX..XXh’\nDER-TLV encoded reference of the VU public key by the Certificate Holder Reference mentioned in its certificate.\n‘91h’ + L91 + ‘XX..XXh’\nDER-TLV encoded compressed representation of the ephemeral public key of the VU that will be used during Chip Authentication (see Appendix 11)\n3.5.11.2.3\nMSE:SET DST\nThe following MSE:SET DST command is used to set a public key either\nfor the verification of a signature that is provided in a subsequent PSO: Verify Digital Signature command or\nfor the signature verification of a certificate that is provided in a subsequent PSO: Verify Certificate command\nTCS_112\nThe command can be performed in the MF, DF Tachograph and DF Tachograph_G2, see also TCS_33.\nTCS_113\nMSE:SET DST Command Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nINS\n1\n‘22h’\nP1\n1\n‘81h’\nSet for verification\nP2\n1\n‘B6h’\nDigital Signature\nLc\n1\n‘NNh’\nLc: length of subsequent data field\n#6-#(5+L)\nL\n‘83h’ + ‘08h’ + ‘XX...XXh’\nDER-TLV encoded reference of a public key, i.e. the Certificate Holder Reference in the certificate of the public key (see Appendix 11)\nFor all command versions the response message structure and status words are given by:\nTCS_114\nResponse Message\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’. The protocol has been selected and initialised.\n‘6A80’ indicates incorrect parameters in the command data field.\n‘6A88’ indicates that referenced data (i.e. a referenced key) is not available.\nIf the currentAuthenticatedTime of the card is later than the Expiration Date of the selected public key, the processing state returned is ‘ 6A88 ’ .\nNote:\nIn the case of a MSE: SET AT for VU Authentication command, the referenced key is a VU_MA public key. The card shall set the VU_MA public key for use, if available in its memory, which matches the Certificate Holder Reference (CHR) given in the command data field (the card can identify VU_MA public keys by means of the certificate's CHA field). A card shall return ‘6A 88’ to this command in case only the VU_Sign public key or no public key of the Vehicle Unit is available. See the definition of the CHA field in Appendix 11 and of data type equipmentType in Appendix 1.\nSimilarly, in case an MSE: SET DST command referencing an EQT (i.e. a VU or a card) is sent to a control card, according to CSM_234 the referenced key is always an EQT_Sign key that has to be used for the verification of a digital signature. According to Figure 13 in Appendix 11, the control card will always have stored the relevant EQT_Sign public key. In some cases, the control card may have stored the corresponding EQT_MA public key. The control card shall always set the EQT_Sign public key for use when it receives an MSE: SET DST command.\n3.5.12\nPSO: HASH\nThis command is used to transfer to the card the result of a hash calculation on some data. This command is used for the verification of digital signatures. The hash value is stored temporarily for the subsequent command PSO: Verify Digital Signature\nThis command is compliant with ISO/IEC 7816-8. The use of this command is restricted regarding the related standard.\nOnly the control card is required to support this command in the DF Tachograph and DF Tachograph_G2.\nOther types of tachograph cards may or may not implement this command. The command may or may not be accessible in the MF.\nThe control card application generation 1 supports only SHA-1.\nTCS_115\nThe temporarily stored hash value shall be deleted if a new hash value is computed by means of the PSO: HASH command, if a DF is selected, and if the tachograph card is reset.\nTCS_116\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nCLA\nINS\n1\n‘2Ah’\nPerform Security Operation\nP1\n1\n‘90h’\nReturn Hash code\nP2\n1\n‘A0h’\nTag: data field contains DOs relevant for hashing\nLc\n1\n‘XXh’\nLength Lc of the subsequent data field\n#6\n1\n‘90h’\nTag for the hash code\n#7\n1\n‘XXh’\nLength L of the hash code:\n‘14h’ in Generation 1 application (see Appendix 11 Part A)\n‘20h’, ‘30h’ or ‘40h’ in Generation 2 application (see Appendix 11 Part B)\n#8-#(7+L)\nL\n‘XX..XXh’\nHash code\nTCS_117\nResponse Message\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf some expected data objects (as specified above) are missing, the processing state ‘6987’ is returned. This can happen if one of the tag ‘90h’ is missing.\nIf some data objects are incorrect, the processing state returned is ‘6988’. This error happens if the required tag is present but with a length different from ‘14h’ for SHA-1, ‘20h’ for SHA-256, ‘30h’ for SHA-384, ‘40h’ for SHA-512 (Generation 2 application).\n3.5.13\nPERFORM HASH of FILE\nThis command is not compliant with ISO/IEC 7816-8. Thus the CLA byte of this command indicates that there is a proprietary use of the PERFORM SECURITY OPERATION / HASH.\nOnly the driver card and the workshop card are required to support this command in the DF Tachograph and DF Tachograph_G2.\nOther types of tachograph cards may or may not implement this command. If a company or control card implements this command, the command shall be implemented as specified in this chapter.\nThe command may or may not be accessible in the MF. If so, the command shall be implemented as specified in this chapter, i.e. shall not allow the calculation of a hash value, but terminate with a suitable error code.\nTCS_118\nThe PERFORM HASH of FILE command is used to hash the data area of the currently selected transparent EF.\nTCS_119\nA tachograph card shall support this command only for the EFs that are listed in chapter 4 under the DF_Tachograph and DF_Tachograph_G2 with the following exception. A tachograph card shall not support the command for the EF Sensor_Installation_Data of DF Tachograph_G2..\nTCS_120\nThe result of the hash operation is stored temporarily in the card. It can then be used to get a digital signature of the file, using the PSO: COMPUTE DIGITAL SIGNATURE command.\nTCS_121\nThe temporarily stored hash of file value shall be deleted if a new hash of file value is computed by means of the PERFORM HASH of FILE command, if a DF is selected, and if the tachograph card is reset.\nTCS_122\nThe Tachograph Generation 1 application shall support SHA-1.\nTCS_123\nThe Tachograph Generation 2 application shall support the SHA-2 algorithm (SHA-256, SHA-384 or SHA-512), specified by the cipher suite in Appendix 11 Part B for the card signature key Card_Sign.\nTCS_124\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘ 80h ’\nCLA\nINS\n1\n‘ 2Ah ’\nPerform Security Operation\nP1\n1\n‘ 90h ’\nTag: Hash\nP2\n1\n‘ 00h ’\nAlgorithm implicitly known\nFor the Tachograph Generation 1 application: SHA-1\nFor the Tachograph Generation 2 application: SHA-2 algorithm (SHA-256, SHA-384 or SHA-512) defined by the cipher suite in Appendix 11 Part B for the card signature key Card_Sign\nTCS_125\nResponse Message\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf the current EF does not allow this command (EF Sensor_Installation_Data in DF Tachograph_G2), the processing state ‘6985’ is returned.\nIf the selected EF is considered corrupted (file attributes or stored data integrity errors), the processing state returned is ‘6400’ or ‘6581’.\nIf the selected file is not a transparent file or if there is no current EF, the processing state returned is ‘6986’.\n3.5.14\nPSO: COMPUTE DIGITAL SIGNATURE\nThis command is used to compute the digital signature of previously computed hash code (see PERFORM HASH of FILE, §3.5.13).\nOnly the driver card and the workshop card are required to support this command in the DF Tachograph and DF Tachograph_G2.\nOther types of tachograph cards may or may not implement this command. In case of the Generation 2 tachograph application, only the driver card and the workshop card have a generation 2 signature key, other cards are not able to successfully perform the command and terminate with a suitable error code.\nThe command may or may not be accessible in the MF. If the command is not accessible in the MF, it shall terminate with a suitable error code.\nThis command is compliant with ISO/IEC 7816-8. The use of this command is restricted regarding the related standard.\nTCS_126\nThis command shall not compute a digital signature of previously computed hash code with the PSO: HASH command.\nTCS_127\nThe card private key is used to compute the digital signature and is implicitly known by the card.\nTCS_128\nThe Generation 1 tachograph application performs a digital signature using a padding method compliant with PKCS1 (see Appendix 11 for details).\nTCS_129\nThe Generation 2 tachograph application computes an elliptic curve based digital signature (see Appendix 11 for details).\nTCS_130\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘00h’\nCLA\nINS\n1\n‘2Ah’\nPerform Security Operation\nP1\n1\n‘9Eh’\nDigital signature to be returned\nP2\n1\n‘9Ah’\nTag: data field contains data to be signed. As no data field is included, the data are supposed to be already present in the card (hash of file)\nLe\n1\n‘NNh’\nLength of the expected signature\nTCS_131\nResponse Message\nByte\nLength\nValue\nDescription\n#1-#L\nL\n‘XX..XXh’\nSignature of the previously computed hash\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf the implicitly selected private key is considered as corrupted, the processing state returned is ‘6400’ or ‘6581’.\nIf the hash which was computed in a previous Perform Hash of File command is not available, the processing state returned is ‘6985’.\n3.5.15\nPSO: VERIFY DIGITAL SIGNATURE\nThis command is used to verify the digital signature, provided as an input, whose hash is known to the card. The signature algorithm is implicitly known by the card.\nThis command is compliant with ISO/IEC 7816-8. The use of this command is restricted regarding the related standard.\nOnly the control card is required to support this command in the DF Tachograph and DF Tachograph_G2.\nOther types of tachograph cards may or may not implement this command. The command may or may not be accessible in the MF.\nTCS_132\nThe VERIFY DIGITAL SIGNATURE command always uses the public key selected by the previous Manage Security Environment MSE: Set DST command and the previous hash code entered by a PSO: HASH command.\nTCS_133\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘ 00h ’\nCLA\nINS\n1\n‘ 2Ah ’\nPerform Security Operation\nP1\n1\n‘ 00h ’\nP2\n1\n‘ A8h ’\nTag: data field contains DOs relevant for verification\nLc\n1\n‘ XXh ’\nLength Lc of the subsequent data field\n#6\n1\n‘ 9Eh ’\nTag for Digital Signature\n#7 or\n#7-#8\nL\n‘NNh’ or\n‘81 NNh’\nLength of digital signature (L is 2 bytes if the digital signature is longer than 127 bytes):\n128 bytes coded in accordance with Appendix 11 Part A for Tachograph Generation 1 application.\nDepending on the selected curve for Tachograph Generation 2 application (see Appendix 11 Part B).\n#(7+L)-#(6+L+NN)\nNN\n‘ XX..XXh ’\nDigital signature content\nTCS_134\nResponse Message\nByte\nLength\nValue\nDescription\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\nIf the verification of the signature fails, the processing state returned is ‘6688’. The verification process is described in Appendix 11.\nIf no public key is selected, the processing state returned is ‘6A88’.\nIf some expected data objects (as specified above) are missing, the processing state ‘6987’ is returned. This can happen if one of the required tag is missing.\nIf no hash code is available to process the command (as a result of a previous PSO: Hash command), the processing state returned is ‘6985’.\nIf some data objects are incorrect, the processing state returned is ‘6988’. This can happen if one of the required data objects length is incorrect.\nIf the selected public key is considered corrupted, the processing state returned is ‘6400’ or ‘6581’.\nIf the selected public key (used to verify the digital signature) has a CHA.LSB (CertificateHolderAuthorisation.equipmentType) that is not suitable for the digital signature verification according to Appendix 11, the processing state returned is ‘ 6985 ’.\n3.5.16\nPROCESS DSRC MESSAGE\nThis command is used to verify the integrity and authenticity of the DSRC message and to decipher the data communicated from a VU to a control authority or a workshop over the DSRC link. The card derives the encryption key and the MAC key used to secure the DSRC message as described in Appendix 11 Part B chapter 13.\nOnly the control card and the workshop card are required to support this command in the DF Tachograph_G2.\nOther types of tachograph cards may or may not implement this command, but shall not have a DSRC master key. Therefore these cards cannot perform the command successfully, but terminate with a suitable error code.\nThe command may or may not be accessible in the MF and / or the DF Tachograph. If so, the command shall terminate with a suitable error code.\nTCS_135\nThe DSRC master key is accessible only in the DF Tachograph_G2, i.e. the control and workshop card shall support a successful execution of the command only in the DF Tachograph_G2.\nTCS_136\nThe command shall only decrypt the DSRC data and verify the cryptographic checksum, but not interpret the input data.\nTCS_137\nThe order of the data objects in the command data field is fixed by this specification.\nTCS_138\nCommand Message\nByte\nLength\nValue\nDescription\nCLA\n1\n‘80h’\nProprietary CLA\nINS\n1\n‘2Ah’\nPerform Security Operation\nP1\n1\n‘80h’\nResponse data: plain value\nP2\n1\n‘B0h’\nCommand data: plain value encoded in BER-TLV and including SM DOs\nLc\n1\n‘NNh’\nLength Lc of the subsequent data field\n#6-#(5+L)\nL\n‘87h’ + L87 + ‘XX..XXh’\nDER-TLV encoded padding-content indicator byte followed by encrypted tachograph payload. For the padding-content indicator byte the value ‘00h’ (‘no further indication’ according to ISO/IEC 7816-4:2013 Table 52) shall be used. For the encryption mechanism see Appendix 11, Part B chapter 13.\nAllowed values for the length L87 are the multiples of the AES block length plus 1 for the padding-content indicator byte, i.e. from 17 bytes up to and including 193 bytes.\nNote: See ISO/IEC 7816-4:2013 Table 49 for the SM data object with tag ‘87h’.\n‘81h’ + ‘10h’\nDER-TLV encoded Control Reference Template for Confidentiality nesting the concatenation of the following data elements (see Appendix 1 DSRCSecurityData and Appendix 11 Part B chapter 13):\n4 byte time stamp\n3 byte counter\n8 byte VU serial number\n1 byte DSRC master key version\nNote: See ISO/IEC 7816-4:2013 Table 49 for the SM data object with tag ‘81h’.\n‘8Eh’ + L8E + ‘XX..XXh’\nDER-TLV encoded MAC over the DSRC message. For the MAC algorithm and calculation see Appendix 11, Part B chapter 13.\nNote: See ISO/IEC 7816-4:2013 Table 49 for the SM data object with tag ‘8Eh’.\n5 + L + 1\n1\n‘ 00h ’\nAs specified in ISO/IEC 7816-4\nTCS_139\nResponse Message\nByte\nLength\nValue\nDescription\n#1-#L\nL\n‘XX..XXh’\nAbsent (in case of an error) or deciphered data (padding removed)\nSW\n2\n‘XXXXh’\nStatus Words (SW1,SW2)\nIf the command is successful, the card returns ‘9000’.\n‘6A80’ indicates incorrect parameters in the command data field (also used in case the data objects are not sent in the specified order).\n‘6A88’ indicates that referenced data is not available, i.e. the referenced DSRC master key is not available.\n‘6900’ indicates that the verification of the cryptographic checksum or the decryption of the data failed.\n‘ 6985 ’ indicates that the 4-byte time stamp provided in the command data field is earlier than cardValidityBegin or later than cardExpiryDate.\n4.\nTACHOGRAPH CARDS STRUCTURE\nThis paragraph specifies the file structures of the Tachograph cards for storage of accessible data.\nIt does not specify card manufacturer dependent internal structures, such as e.g. file headers, nor storage and handling of data elements needed for internal use only such as ,, or.\nTCS_140\nA generation 2 tachograph card shall host the Master File MF and a generation 1 and a generation 2 tachograph application of the same type (e.g. driver card applications).\nTCS_141\nA tachograph card shall support at least the minimum number of records specified for the corresponding applications and shall not support more records than the maximum number of records specified for the corresponding applications.\nThe maximum and minimum numbers of records are specified in this chapter for the different applications.\nFor the security conditions used in the access rules throughout this chapter please refer to chapter 3.3. In general the access mode ‘read’ denotes the READ BINARY command with even and if supported odd INS byte with the exception of the EF Sensor_Installation_Data on the workshop card, see TCS_156 and TCS_160. The access mode ‘update’ denotes the Update Binary command with even and if supported odd INS byte and the access mode ‘select’ the SELECT command.\n4.1.\nMaster File MF\nTCS_142\nAfter its personalisation, the master file MF shall have the following permanent file structure and file access rules:\nNote: The short EF identifier SFID is given as decimal number, e.g. the value 30 corresponds to 11110 in binary.\nThe following abbreviation for the security condition is used in this table:\nSC1ALW OR SM-MAC-G2\nTCS_143\nAll EF structures shall be transparent.\nTCS_144\nThe Master File MF shall have the following data structure:\nTCS_145\nThe elementary file EF DIR shall contain the following application related data objects: ‘61 08 4F 06 FF 54 41 43 48 4F 61 08 4F 06 FF 53 4D 52 44 54’\nTCS_146\nThe elementary file EF ATR/INFO shall be present if the tachograph card indicates in its ATR that it supports extended length fields. In this case the EF ATR/INFO shall contain the extended length information data object (DO‘7F66’) as specified in ISO/IEC 7816-4:2013 clause 12.7.1.\nTCS_147\nThe elementary file EF Extended_Length shall be present if the tachograph card indicates in its ATR that it supports extended length fields. In this case the EF shall contain the following data object: ‘02 01 xx’ where the value ‘xx’ indicates whether extended length fields are supported for the T = 1 and / or T = 0 protocol.\nThe value ‘01’ indicates extended length field support for the T = 1 protocol.\nThe value ‘10’ indicates extended length field support for the T = 0 protocol.\nThe value ‘11’ indicates extended length field support for the T = 1 and the T = 0 protocol.\n4.2.\nDriver card applications\n4.2.1\nDriver card application generation 1\nTCS_148\nAfter its personalisation, the driver card application generation 1 shall have the following permanent file structure and file access rules:\nThe following abbreviations for the security conditions are used in this table:\nSC1ALW OR SM-MAC-G2\nSC2ALW OR SM-MAC-G1 OR SM-MAC-G2\nSC3SM-MAC-G1 OR SM-MAC-G2\nTCS_149\nAll EF structures shall be transparent.\nTCS_150\nThe driver card application generation 1 shall have the following data structure:\nTCS_151\nThe following values, used to provide sizes in the table above, are the minimum and maximum record number values the driver card data structure must use for a generation 1 application:\n4.2.2\nDriver card application generation 2\nTCS_152\nAfter its personalisation, the driver card application generation 2 shall have the following permanent file structure and file access rules.\nNote: The short EF identifier SFID is given as decimal number, e.g. the value 30 corresponds to 11110 in binary.\nThe following abbreviation for the security condition is used in this table:\nSC1ALW OR SM-MAC-G2\nTCS_153\nAll EF structures shall be transparent.\nTCS_154\nThe driver card application generation 2 shall have the following data structure:\nTCS_155\nThe following values, used to provide sizes in the table above, are the minimum and maximum record number values the driver card data structure must use for a generation 2 application:\n4.3.\nWorkshop card applications\n4.3.1\nWorkshop card application generation 1\nTCS_156\nAfter its personalisation, the workshop card application generation 1 shall have the following permanent file structure and file access rules:\nThe following abbreviations for the security conditions are used in this table:\nSC1ALW OR SM-MAC-G2\nSC2ALW OR SM-MAC-G1 OR SM-MAC-G2\nSC3SM-MAC-G1 OR SM-MAC-G2\nSC4 For the READ BINARY command with even INS byte:\n(SM-C-MAC-G1 AND SM-R-ENC-MAC-G1) OR\n(SM-C-MAC-G2 AND SM-R-ENC-MAC-G2)\nFor the READ BINARY command with odd INS byte (if supported): NEV\nTCS_157\nAll EF structures shall be transparent.\nTCS_158\nThe workshop card application generation 1 shall have the following data structure:\nTCS_159\nThe following values, used to provide sizes in the table above, are the minimum and maximum record number values the workshop card data structure must use for a generation 1 application:\n4.3.2\nWorkshop card application generation 2\nTCS_160\nAfter its personalisation, the workshop card application generation 2 shall have the following permanent file structure and file access rules.\nNote: The short EF identifier SFID is given as decimal number, e.g. the value 30 corresponds to 11110 in binary.\nThe following abbreviations for the security conditions are used in this table:\nSC1ALW OR SM-MAC-G2\nSC5For the Read Binary command with even INS byte: SM-C-MAC-G2 AND SM-R-ENC-MAC-G2\nFor the Read Binary command with odd INS byte (if supported): NEV\nTCS_161\nAll EFs structures shall be transparent.\nTCS_162\nThe workshop card application generation 2 shall have the following data structure:\nTCS_163\nThe following values, used to provide sizes in the table above, are the minimum and maximum record number values the workshop card data structure must use for a generation 2 application:\n4.4.\nControl card applications\n4.4.1\nControl Card application generation 1\nTCS_164\nAfter its personalisation, the control card application generation 1 shall have the following permanent file structure and file access rules:\nThe following abbreviations for the security conditions are used in this table:\nSC1ALW OR SM-MAC-G2\nSC2ALW OR SM-MAC-G1 OR SM-MAC-G2\nSC3SM-MAC-G1 OR SM-MAC-G2\nSC6EXT-AUT-G1 OR SM-MAC-G1 OR SM-MAC-G2\nTCS_165\nAll EF structures shall be transparent.\nTCS_166\nThe control card application generation 1 shall have the following data structure:\nTCS_167\nThe following values, used to provide sizes in the table above, are the minimum and maximum record number values the control card data structure must use for a generation 1 application:\n4.4.2\nControl card application generation 2\nTCS_168\nAfter its personalisation, the control card application generation 2 shall have the following permanent file structure and file access rules.\nNote: The short EF identifier SFID is given as decimal number, e.g. the value 30 corresponds to 11110 in binary.\nThe following abbreviation for the security condition is used in this table:\nSC1ALW OR SM-MAC-G2\nTCS_169\nAll EF structures shall be transparent.\nTCS_170\nThe control card application generation2 shall have the following data structure:\nTCS_171\nThe following values, used to provide sizes in the table above, are the minimum and maximum record number values the control card data structure must use for a generation 2 application:\n4.5.\nCompany card applications\n4.5.1\nCompany card application generation 1\nTCS_172\nAfter its personalisation, the company card application generation 1 shall have the following permanent file structure and file access rules:\nThe following abbreviations for the security conditions are used in this table:\nSC1ALW OR SM-MAC-G2\nSC2ALW OR SM-MAC-G1 OR SM-MAC-G2\nSC3SM-MAC-G1 OR SM-MAC-G2\nSC6EXT-AUT-G1 OR SM-MAC-G1 OR SM-MAC-G2\nTCS_173\nAll EF structures shall be transparent.\nTCS_174\nThe company card application generation 1 shall have the following data structure:\nTCS_175\nThe following values, used to provide sizes in the table above, are the minimum and maximum record number values the company card data structure must use for a generation 1 application:\n4.5.2\nCompany card application generation 2\nTCS_176\nAfter its personalisation, the company card application generation 2 shall have the following permanent file structure and file access rules.\nNote: The short EF identifier SFID is given as decimal number, e.g. the value 30 corresponds to 11110 in binary.\nThe following abbreviation for the security condition is used in this table:\nSC1ALW OR SM-MAC-G2\nTCS_177\nAll EF structures shall be transparent.\nTCS_178\nThe company card application generation 2 shall have the following data structure:\nTCS_179\nThe following values, used to provide sizes in the table above, are the minimum and maximum record number values the company card data structure must use for a generation 2 application:",
  "extent": "E+W+S+N.I.",
  "status": null,
  "version": "current",
  "annotations": [
    {
      "type": "F",
      "label": "F1",
      "text": "Inserted by Commission Implementing Regulation (EU) 2018/502 of 28 February 2018 amending Implementing Regulation (EU) 2016/799 laying down the requirements for the construction, testing, installation, operation and repair of tachographs and their components (Text with EEA relevance)."
    },
    {
      "type": "F",
      "label": "F2",
      "text": "Substituted by Commission Implementing Regulation (EU) 2018/502 of 28 February 2018 amending Implementing Regulation (EU) 2016/799 laying down the requirements for the construction, testing, installation, operation and repair of tachographs and their components (Text with EEA relevance)."
    }
  ],
  "outstanding_effects": [],
  "provenance": {
    "source": "legislation.gov.uk",
    "source_url": "https://www.legislation.gov.uk/eur/2016/799/annex/1/appendix/2",
    "retrieved_at": "2026-11-01T14:45:49.686558+00:00"
  },
  "licence": "Open Government Licence v3.0",
  "licence_url": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/",
  "attribution": "Contains public sector information licensed under the Open Government Licence v3.0. Source: legislation.gov.uk, The National Archives."
}