Skip to content

Commit

Permalink
fix: input length for ECCX08.ecSign() is 32 bytes
Browse files Browse the repository at this point in the history
When using ECCX08.ecSign() the input buffer should
be exactly 32 bytes long. The old example worked
only because the signature was generated and then
checked on the first 32 bytes of the 64 bytes buffer.
  • Loading branch information
fogzot committed Jun 28, 2023
1 parent 19a3df7 commit b7f79d8
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions examples/ECCX08Signing/ECCX08Signing.ino
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
is printed to the Serial Monitor. Then the signature is
verified using the public key of the slot.
NOTE: the input data must be 64 bytes in length!
NOTE: the input data must be 32 bytes in length!
Circuit:
- MKR board with ECC508 or ECC608 on board
Expand All @@ -17,11 +17,9 @@

#include <ArduinoECCX08.h>

const byte input[64] = {
const byte input[32] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f
};

const int slot = 0;
Expand Down Expand Up @@ -57,7 +55,7 @@ void setup() {
Serial.print(" is: ");
printBufferHex(publicKey, sizeof(publicKey));

// calculate the signature, input MUST be 64-byte array
// calculate the signature, input MUST be 32-byte array
byte signature[64];
ECCX08.ecSign(slot, input, signature);

Expand Down

0 comments on commit b7f79d8

Please sign in to comment.