1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-03-17 00:26:05 +00:00

feat(legacy): add public_key to ECDHSessionKey

This commit is contained in:
Roman Zeyde 2021-03-08 14:20:45 +02:00 committed by Pavol Rusnak
parent 7ce4e13bcf
commit 78ab0a6a2d
2 changed files with 6 additions and 1 deletions

View File

@ -200,13 +200,17 @@ void fsm_msgGetECDHSessionKey(const GetECDHSessionKey *msg) {
curve = msg->ecdsa_curve_name;
}
const HDNode *node = fsm_getDerivedNode(curve, address_n, 5, NULL);
HDNode *node = fsm_getDerivedNode(curve, address_n, 5, NULL);
if (!node) return;
int result_size = 0;
if (hdnode_get_shared_key(node, msg->peer_public_key.bytes,
resp->session_key.bytes, &result_size) == 0) {
resp->session_key.size = result_size;
hdnode_fill_public_key(node);
memcpy(resp->public_key.bytes, node->public_key, 33);
resp->public_key.size = 33;
resp->has_public_key = true;
msg_write(MessageType_MessageType_ECDHSessionKey, resp);
} else {
fsm_sendFailure(FailureType_Failure_ProcessError,

View File

@ -36,3 +36,4 @@ GetECDHSessionKey.peer_public_key max_size:65
GetECDHSessionKey.ecdsa_curve_name max_size:32
ECDHSessionKey.session_key max_size:65
ECDHSessionKey.public_key max_size:33