From 42d52633d0b24a8c8d932b315ad1f417618aee9e Mon Sep 17 00:00:00 2001 From: M1nd3r Date: Fri, 26 Jul 2024 15:42:31 +0200 Subject: [PATCH] feat(core): update generation of the CPace pregenerator (edit padding, add one zero byte after handshake hash) [no changelog] --- core/src/trezor/wire/thp/cpace.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/trezor/wire/thp/cpace.py b/core/src/trezor/wire/thp/cpace.py index 30a5f2703..d93a2fdff 100644 --- a/core/src/trezor/wire/thp/cpace.py +++ b/core/src/trezor/wire/thp/cpace.py @@ -3,7 +3,7 @@ from trezor.crypto.curve import curve25519 from trezor.crypto.hashlib import sha512 _PREFIX = b"\x08\x43\x50\x61\x63\x65\x32\x35\x35\x06" -_PADDING = b"\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20" +_PADDING = b"\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20" class Cpace: @@ -26,6 +26,7 @@ class Cpace: sha_ctx.update(code_code_entry) sha_ctx.update(_PADDING) sha_ctx.update(self.handshake_hash) + sha_ctx.update(b"\x00") pregenerator = sha_ctx.digest()[:32] generator = elligator2.map_to_curve25519(pregenerator) self.trezor_private_key = random.bytes(32)