Skip to content

Commit b7f79d8

Browse files
committed
fix: input length for ECCX08.ecSign() is 32 bytes
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.
1 parent 19a3df7 commit b7f79d8

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

examples/ECCX08Signing/ECCX08Signing.ino

+4-6
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
is printed to the Serial Monitor. Then the signature is
77
verified using the public key of the slot.
88
9-
NOTE: the input data must be 64 bytes in length!
9+
NOTE: the input data must be 32 bytes in length!
1010
1111
Circuit:
1212
- MKR board with ECC508 or ECC608 on board
@@ -17,11 +17,9 @@
1717

1818
#include <ArduinoECCX08.h>
1919

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

2725
const int slot = 0;
@@ -57,7 +55,7 @@ void setup() {
5755
Serial.print(" is: ");
5856
printBufferHex(publicKey, sizeof(publicKey));
5957

60-
// calculate the signature, input MUST be 64-byte array
58+
// calculate the signature, input MUST be 32-byte array
6159
byte signature[64];
6260
ECCX08.ecSign(slot, input, signature);
6361

0 commit comments

Comments
 (0)