-
Notifications
You must be signed in to change notification settings - Fork 185
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add tinyusb_src as a component, fix app compiling with idf 5.1
- Loading branch information
Showing
13 changed files
with
556 additions
and
69 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,3 @@ | ||
idf_component_register(SRCS boards.c board_flash.c ${BOARD_SOURCES} | ||
INCLUDE_DIRS "." "${BOARD}" ${BOARD_INCLUDES} | ||
#PRIV_REQUIRES "driver" | ||
REQUIRES app_update spi_flash led_strip lcd ssd1306 XPowersLib) | ||
|
||
idf_component_get_property( FREERTOS_ORIG_INCLUDE_PATH freertos ORIG_INCLUDE_PATH) | ||
|
||
target_include_directories(${COMPONENT_TARGET} PUBLIC | ||
"${FREERTOS_ORIG_INCLUDE_PATH}" | ||
"${TOP}/src" | ||
"${TOP}/lib/tinyusb/src" | ||
"${TOP}/ports/espressif" | ||
) | ||
REQUIRES driver esp_timer app_update spi_flash led_strip lcd ssd1306 XPowersLib tinyusb_src src) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
128 changes: 128 additions & 0 deletions
128
...components/bootloader/subproject/components/micro-ecc/micro-ecc/test/ecdsa_test_vectors.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
/* Copyright 2020, Kenneth MacKay. Licensed under the BSD 2-clause license. */ | ||
|
||
#include "uECC.h" | ||
|
||
#include <stdio.h> | ||
#include <stdlib.h> | ||
#include <string.h> | ||
|
||
typedef struct { | ||
const char* private_key; | ||
const char* public_key; | ||
const char* k; | ||
const char* hash; | ||
const char* r; | ||
const char* s; | ||
} Test; | ||
|
||
Test secp256k1_tests[] = { | ||
{ | ||
"ebb2c082fd7727890a28ac82f6bdf97bad8de9f5d7c9028692de1a255cad3e0f", | ||
"779dd197a5df977ed2cf6cb31d82d43328b790dc6b3b7d4437a427bd5847dfcde94b724a555b6d017bb7607c3e3281daf5b1699d6ef4124975c9237b917d426f", | ||
"49a0d7b786ec9cde0d0721d72804befd06571c974b191efb42ecf322ba9ddd9a", | ||
"4b688df40bcedbe641ddb16ff0a1842d9c67ea1c3bf63f3e0471baa664531d1a", | ||
"241097efbf8b63bf145c8961dbdf10c310efbb3b2676bbc0f8b08505c9e2f795", | ||
"021006b7838609339e8b415a7f9acb1b661828131aef1ecbc7955dfb01f3ca0e" | ||
}, | ||
}; | ||
|
||
extern int uECC_sign_with_k(const uint8_t *private_key, | ||
const uint8_t *message_hash, | ||
unsigned hash_size, | ||
const uint8_t *k, | ||
uint8_t *signature, | ||
uECC_Curve curve); | ||
|
||
|
||
void vli_print(uint8_t *vli, unsigned int size) { | ||
for(unsigned i=0; i<size; ++i) { | ||
printf("%02X ", (unsigned)vli[i]); | ||
} | ||
printf("\n"); | ||
} | ||
|
||
void strtobytes(const char* str, uint8_t* bytes, int count) { | ||
for (int c = 0; c < count; ++c) { | ||
if (sscanf(str, "%2hhx", &bytes[c]) != 1) { | ||
printf("Failed to read string to bytes"); | ||
exit(1); | ||
} | ||
str += 2; | ||
} | ||
} | ||
|
||
int run(Test* tests, int num_tests, uECC_Curve curve) { | ||
uint8_t private[32] = {0}; | ||
uint8_t public[64] = {0}; | ||
uint8_t k[32] = {0}; | ||
uint8_t hash[32] = {0}; | ||
uint8_t r[32] = {0}; | ||
uint8_t s[32] = {0}; | ||
|
||
uint8_t signature[64] = {0}; | ||
|
||
int result; | ||
int i; | ||
int private_key_size; | ||
int public_key_size; | ||
int all_success = 1; | ||
|
||
private_key_size = uECC_curve_private_key_size(curve); | ||
public_key_size = uECC_curve_public_key_size(curve); | ||
|
||
for (i = 0; i < num_tests; ++i) { | ||
strtobytes(tests[i].private_key, private, private_key_size); | ||
strtobytes(tests[i].public_key, public, public_key_size); | ||
strtobytes(tests[i].k, k, private_key_size); | ||
strtobytes(tests[i].hash, hash, private_key_size); | ||
strtobytes(tests[i].r, r, private_key_size); | ||
strtobytes(tests[i].s, s, private_key_size); | ||
|
||
result = uECC_sign_with_k(private, hash, private_key_size, k, signature, curve); | ||
if (!result) { | ||
all_success = 0; | ||
printf(" Sign failed for test %d\n", i); | ||
} | ||
if (result) { | ||
if (memcmp(signature, r, private_key_size) != 0) { | ||
all_success = 0; | ||
printf(" Got incorrect r for test %d\n", i); | ||
printf(" Expected: "); | ||
vli_print(r, private_key_size); | ||
printf(" Calculated: "); | ||
vli_print(signature, private_key_size); | ||
} | ||
if (memcmp(signature + private_key_size, s, private_key_size) != 0) { | ||
all_success = 0; | ||
printf(" Got incorrect s for test %d\n", i); | ||
printf(" Expected: "); | ||
vli_print(s, private_key_size); | ||
printf(" Calculated: "); | ||
vli_print(signature + private_key_size, private_key_size); | ||
} | ||
|
||
result = uECC_verify(public, hash, private_key_size, signature, curve); | ||
if (!result) { | ||
printf(" Verify failed for test %d\n", i); | ||
} | ||
} | ||
} | ||
|
||
return all_success; | ||
} | ||
|
||
#define RUN_TESTS(curve) \ | ||
printf(#curve ":\n"); \ | ||
if (run(curve##_tests, sizeof(curve##_tests) / sizeof(curve##_tests[0]), uECC_##curve()) ) { \ | ||
printf(" All passed\n"); \ | ||
} else { \ | ||
printf(" Failed\n"); \ | ||
} | ||
|
||
int main() { | ||
#if uECC_SUPPORTS_secp256k1 | ||
RUN_TESTS(secp256k1) | ||
#endif | ||
|
||
return 0; | ||
} |
Oops, something went wrong.