Add SIGN ETH PERSONAL MESSAGE specification

This commit is contained in:
BTChip github 2017-08-19 11:00:49 +02:00
parent eef02bbc50
commit ee3ca5c5d7
No known key found for this signature in database
GPG Key ID: 48BCF826EBFA4D17
1 changed files with 59 additions and 1 deletions

View File

@ -1,7 +1,7 @@
Ethereum application : Common Technical Specifications
=======================================================
Ledger Firmware Team <hello@ledger.fr>
Application version 1.1 - 11th of October 2016
Application version 1.2 - 19th of August 2017
== 1.0
- Initial release
@ -10,6 +10,9 @@ Application version 1.1 - 11th of October 2016
- Add GET APP CONFIGURATION
- Add an option to return the chain code in GET ETH PUBLIC ADDRESS
== 1.2
- Add SIGN ETH PERSONAL MESSAGE
== About
This application describes the APDU messages interface to communicate with the Ethereum application.
@ -128,6 +131,61 @@ The input data is the RLP encoded transaction (as per https://github.com/ethereu
| s | 32
|======================================================================================================
=== SIGN ETH PERSONAL MESSAGE
==== Description
This command signs an Ethereum message following the personal_sign specification (https://github.com/ethereum/go-ethereum/pull/2940) after having the user validate the SHA-256 hash of the message being signed.
This command has been supported since firmware version 1.0.8
The input data is the message to sign, streamed to the device in 255 bytes maximum data chunks
==== Coding
'Command'
[width="80%"]
|==============================================================================================================================
| *CLA* | *INS* | *P1* | *P2* | *Lc* | *Le*
| E0 | 08 | 00 : first message data block
80 : subsequent message data block
| 00 | variable | variable
|==============================================================================================================================
'Input data (first message data block)'
[width="80%"]
|==============================================================================================================================
| *Description* | *Length*
| Number of BIP 32 derivations to perform (max 10) | 1
| First derivation index (big endian) | 4
| ... | 4
| Last derivation index (big endian) | 4
| Message chunk | variable
|==============================================================================================================================
'Input data (other transaction data block)'
[width="80%"]
|==============================================================================================================================
| *Description* | *Length*
| Message chunk | variable
|==============================================================================================================================
'Output data'
[width="80%"]
|==============================================================================================================================
| *Description* | *Length*
| v | 1
| r | 32
| s | 32
|======================================================================================================
=== GET APP CONFIGURATION
==== Description