From 47e47dd81873b23e245c828f8bf60634716c35f2 Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Mon, 27 Jun 2022 18:51:57 +0200 Subject: [PATCH] EIP712 signatures now computed on chain ID --- src_features/signMessageEIP712/entrypoint.c | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src_features/signMessageEIP712/entrypoint.c b/src_features/signMessageEIP712/entrypoint.c index ee536b4..ada54a4 100644 --- a/src_features/signMessageEIP712/entrypoint.c +++ b/src_features/signMessageEIP712/entrypoint.c @@ -488,8 +488,19 @@ static bool verify_contract_name_signature(uint8_t dname_length, uint8_t hash[INT256_LENGTH]; cx_ecfp_public_key_t verifying_key; cx_sha256_t hash_ctx; + uint64_t chain_id; cx_sha256_init(&hash_ctx); + + // Chain ID + chain_id = __builtin_bswap64(chainConfig->chainId); + cx_hash((cx_hash_t*)&hash_ctx, + 0, + (uint8_t*)&chain_id, + sizeof(chain_id), + NULL, + 0); + // Contract address cx_hash((cx_hash_t*)&hash_ctx, 0, @@ -558,8 +569,19 @@ static bool verify_field_name_signature(uint8_t dname_length, uint8_t hash[INT256_LENGTH]; cx_ecfp_public_key_t verifying_key; cx_sha256_t hash_ctx; + uint64_t chain_id; cx_sha256_init(&hash_ctx); + + // Chain ID + chain_id = __builtin_bswap64(chainConfig->chainId); + cx_hash((cx_hash_t*)&hash_ctx, + 0, + (uint8_t*)&chain_id, + sizeof(chain_id), + NULL, + 0); + // Contract address cx_hash((cx_hash_t*)&hash_ctx, 0,