mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-03-17 08:36:06 +00:00
feat(legacy): add public_key to ECDHSessionKey
This commit is contained in:
parent
7ce4e13bcf
commit
78ab0a6a2d
@ -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,
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user