- Latest available (Revised)
- Original (As adopted by EU)
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)
After exit day there will be three versions of this legislation to consult for different purposes. The legislation.gov.uk version is the version that applies in the UK. The EU Version currently on EUR-lex is the version that currently applies in the EU i.e you may need this if you operate a business in the EU.
The web archive version is the official version of this legislation item as it stood on exit day before being published to legislation.gov.uk and any subsequent UK changes and effects applied. The web archive also captured associated case law and other language formats from EUR-Lex.
There are outstanding changes not yet made to Commission Implementing Regulation (EU) 2016/799. Any changes that have already been made to the legislation appear in the content and are referenced with annotations.
Revised legislation carried on this site may not be fully up to date. Changes and effects are recorded by our editorial team in lists which can be found in the ‘Changes to Legislation’ area. Where those effects have yet to be applied to the text of the legislation by the editorial team they are also listed alongside the legislation in the affected provisions. Use the ‘more’ link to open the changes and effects relevant to the provision you are viewing.
This command is compliant with ISO/IEC 7816-4, but has a restricted usage compared to the command defined in the norm.
The 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.
This command enables the IFD to write data into the EF currently selected, without the card verifying the integrity of data received.
Note: This command without secure messaging can only be used to update a file that supports the ALW security condition for the Update access mode.U.K.
Byte | Length | Value | Description |
---|---|---|---|
CLA | 1 | ‘00h’ | |
INS | 1 | ‘D6h’ | Update Binary |
P1 | 1 | ‘XXh’ | Offset in bytes from the beginning of the file: Most Significant Byte |
P2 | 1 | ‘XXh’ | Offset in bytes from the beginning of the file: Least Significant Byte |
Lc | 1 | ‘NNh’ | Lc Length of data to Update. Number of bytes to be written. |
#6-#(5+NN) | NN | ‘XX..XXh’ | Data to be written |
Note: bit 8 of P1 must be set to 0.U.K.
Byte | Length | Value | Description |
---|---|---|---|
SW | 2 | ‘XXXXh’ | Status Words (SW1,SW2) |
If the command is successful, the card returns ‘9000’.
If no EF is selected, the processing state returned is ‘6986’.
If the security conditions of the selected file are not satisfied, the command is interrupted with ‘6982’.
If the Offset is not compatible with the size of the EF (Offset > EF size), the processing state returned is ‘6B00’.
If 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’.
If 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’.
If writing is unsuccessful, the processing state returned is ‘6581’.
This 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.
Byte | Length | Value | Description |
---|---|---|---|
CLA | 1 | ‘0Ch’ | Secure Messaging asked |
INS | 1 | ‘D6h’ | Update Binary |
P1 | 1 | ‘XXh’ | Offset in bytes from the beginning of the file: Most Significant Byte |
P2 | 1 | ‘XXh’ | Offset in bytes from the beginning of the file: Least Significant Byte |
Lc | 1 | ‘XXh’ | Length of the secured data field |
#6 | 1 | ‘81h’ | TPV: Tag for plain value data |
#7 | L | ‘NNh’ or ‘81 NNh’ | LPV: length of transmitted data. L is 2 bytes if LPV > 127 bytes. |
#(7+L)-#(6+L+NN) | NN | ‘XX..XXh’ | Plain Data value (Data to be written) |
#(7+L+NN) | 1 | ‘8Eh’ | TCC: Tag for cryptographic checksum |
#(8+L+NN) | 1 | ‘XXh’ | LCC: Length of following cryptographic checksum‘04h’ for Generation 1 secure messaging (see Appendix 11 Part A) ‘08h’, ‘0Ch’ or ‘10h’ depending on AES key length for Generation 2 secure messaging (see Appendix 11 Part B) |
#(9+L+NN)-#(8+M+L+NN) | M | ‘XX..XXh’ | Cryptographic checksum |
Le | 1 | ‘00h’ | As specified in ISO/IEC 7816-4 |
Byte | Length | Value | Description |
---|---|---|---|
#1 | 1 | ‘99h’ | TSW: Tag for Status Words (to be protected by CC) |
#2 | 1 | ‘02h’ | LSW: length of returned Status Words |
#3-#4 | 2 | ‘XXXXh’ | Processing Status of the unprotected response APDU |
#5 | 1 | ‘8Eh’ | TCC: Tag for cryptographic checksum |
#6 | 1 | ‘XXh’ | LCC: Length of following cryptographic checksum
|
#7-#(6+L) | L | ‘XX..XXh’ | Cryptographic checksum |
SW | 2 | ‘XXXXh’ | Status Words (SW1,SW2) |
The ‘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.
Additionally, some errors specifically related to secure messaging can happen. In that case, the processing state is simply returned, with no secure messaging structure involved:
Byte | Length | Value | Description |
---|---|---|---|
SW | 2 | ‘XXXXh’ | Status Words (SW1,SW2) |
If no current session key is available, the processing state ‘6A88’ is returned.
If 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.
If 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.
If the verification of the cryptographic checksum fails, the processing state returned is ‘6688’.
This command variant enables the IFD to select an EF by means of a short EF identifier and write data from this EF.
Byte | Length | Value | Description |
---|---|---|---|
CLA | 1 | ‘00h’ | |
INS | 1 | ‘D6h’ | Update Binary |
P1 | 1 | ‘XXh’ | Bit 8 is set to 1 Bit 7 and 6 are set to 00 Bit 5 — 1 encode the short EF identifier of the corresponding EF |
P2 | 1 | ‘XXh’ | Encodes an offset from 0 to 255 bytes in the EF referenced by P1 |
Lc | 1 | ‘NNh’ | Lc Length of data to Update. Number of bytes to be written. |
#6-#(5+NN) | NN | ‘XX..XXh’ | Data to be written |
Byte | Length | Value | Description |
---|---|---|---|
SW | 2 | ‘XXXXh’ | Status Words (SW1,SW2) |
Note: The short EF identifiers used for the generation 2 tachograph application are specified in chapter 4.U.K.
If P1 encodes a short EF identifier and the command is successful, the identified EF becomes the currently selected EF (current EF).
If the command is successful, the card returns ‘9000’.
If the file corresponding with the short EF identifier is not found, the processing state returned is ‘6A82’.
If the security conditions of the selected file are not satisfied, the command is interrupted with ‘6982’.
If the Offset is not compatible with the size of the EF (Offset > EF size), the processing state returned is ‘6B00’.
If 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’.
[F1If 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 ’.]
If writing is unsuccessful, the processing state returned is ‘6581’.
Textual Amendments
This command variant enables the IFD to write data to an EF with 32 768 bytes or more.
Byte | Length | Value | Description |
---|---|---|---|
CLA | 1 | ‘00h’ | |
INS | 1 | ‘D7h’ | Update Binary |
P1 | 1 | ‘00h’ | Current EF |
P2 | 1 | ‘00h’ | |
Lc | 1 | ‘NNh’ | Lc Length of data in the command data field |
#6-#(5+NN) | NN | ‘XX..XXh’ | Offset data object with tag ‘54h’ || Discretionary data object with tag ‘53h’ that encapsulates the data to be written |
The 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.
Byte | Length | Value | Description |
---|---|---|---|
SW | 2 | ‘XXXXh’ | Status Words (SW1,SW2) |
If the command is successful, the card returns ‘9000’.
If no EF is selected, the processing state returned is ‘6986’.
If the security conditions of the selected file are not satisfied, the command is interrupted with ‘6982’.
If the Offset is not compatible with the size of the EF (Offset > EF size), the processing state returned is ‘6B00’.
If 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’.
If 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’.
If writing is unsuccessful, the processing state returned is ‘6581’.
The following example illustrates the usage of secure messaging if the security condition SM-MAC-G2 applies.
Byte | Length | Value | Description |
---|---|---|---|
CLA | 1 | ‘0Ch’ | Secure Messaging asked |
INS | 1 | ‘D7h’ | Update Binary |
P1 | 1 | ‘00h’ | Current EF |
P2 | 1 | ‘00h’ | |
Lc | 1 | ‘XXh’ | Length of the secured data field |
#6 | 1 | ‘B3h’ | Tag for plain value data encoded in BER-TLV |
#7 | L | ‘NNh’ or ‘81 NNh’ | LPV: length of transmitted data. L is 2 bytes if LPV > 127 bytes. |
#(7+L)-#(6+L+NN) | NN | ‘XX..XXh’ | Plain 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 |
#(7+L+NN) | 1 | ‘8Eh’ | TCC: Tag for cryptographic checksum |
#(8+L+NN) | 1 | ‘XXh’ | LCC: Length of following cryptographic checksum ‘08h’, ‘0Ch’ or ‘10h’ depending on AES key length for Generation 2 secure messaging (see Appendix 11 Part B) |
#(9+L+NN)-#(8+M+L+NN) | M | ‘XX..XXh’ | Cryptographic checksum |
Le | 1 | ‘00h’ | As specified in ISO/IEC 7816-4 |
Byte | Length | Value | Description |
---|---|---|---|
#1 | 1 | ‘99h’ | TSW: Tag for Status Words (to be protected by CC) |
#2 | 1 | ‘02h’ | LSW: length of returned Status Words |
#3-#4 | 2 | ‘XXXXh’ | Processing Status of the unprotected response APDU |
#5 | 1 | ‘8Eh’ | TCC: Tag for cryptographic checksum |
#6 | 1 | ‘XXh’ | LCC: Length of following cryptographic checksum ‘08h’, ‘0Ch’ or ‘10h’ depending on AES key length for Generation 2 secure messaging (see Appendix 11 Part B) |
#7-#(6+L) | L | ‘XX..XXh’ | Cryptographic checksum |
SW | 2 | ‘XXXXh’ | Status Words (SW1,SW2) |
The Whole Regulation you have selected contains over 200 provisions and might take some time to download. You may also experience some issues with your browser, such as an alert box that a script is taking a long time to run.
Would you like to continue?
The Schedules you have selected contains over 200 provisions and might take some time to download. You may also experience some issues with your browser, such as an alert box that a script is taking a long time to run.
Would you like to continue?
Latest Available (revised):The latest available updated version of the legislation incorporating changes made by subsequent legislation and applied by our editorial team. Changes we have not yet applied to the text, can be found in the ‘Changes to Legislation’ area.
Original (As adopted by EU): The original version of the legislation as it stood when it was first adopted in the EU. No changes have been applied to the text.
Geographical Extent: Indicates the geographical area that this provision applies to. For further information see ‘Frequently Asked Questions’.
Show Timeline of Changes: See how this legislation has or could change over time. Turning this feature on will show extra navigation options to go to these specific points in time. Return to the latest available version by using the controls above in the What Version box.
Access essential accompanying documents and information for this legislation item from this tab. Dependent on the legislation item being viewed this may include:
This timeline shows the different versions taken from EUR-Lex before exit day and during the implementation period as well as any subsequent versions created after the implementation period as a result of changes made by UK legislation.
The dates for the EU versions are taken from the document dates on EUR-Lex and may not always coincide with when the changes came into force for the document.
For any versions created after the implementation period as a result of changes made by UK legislation the date will coincide with the earliest date on which the change (e.g an insertion, a repeal or a substitution) that was applied came into force. For further information see our guide to revised legislation on Understanding Legislation.
Use this menu to access essential accompanying documents and information for this legislation item. Dependent on the legislation item being viewed this may include:
Click 'View More' or select 'More Resources' tab for additional information including: