mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-02-16 17:42:02 +00:00
refactor(crypto): return error from ecdsa routines on unexpected curve
This commit is contained in:
parent
f918cf9a27
commit
ec808050ba
@ -49,6 +49,10 @@ int zkp_ecdsa_get_public_key33(const ecdsa_curve *curve,
|
|||||||
const uint8_t *private_key_bytes,
|
const uint8_t *private_key_bytes,
|
||||||
uint8_t *public_key_bytes) {
|
uint8_t *public_key_bytes) {
|
||||||
assert(curve == &secp256k1);
|
assert(curve == &secp256k1);
|
||||||
|
if (curve != &secp256k1) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
secp256k1_pubkey public_key = {0};
|
secp256k1_pubkey public_key = {0};
|
||||||
@ -92,6 +96,10 @@ int zkp_ecdsa_get_public_key65(const ecdsa_curve *curve,
|
|||||||
const uint8_t *private_key_bytes,
|
const uint8_t *private_key_bytes,
|
||||||
uint8_t *public_key_bytes) {
|
uint8_t *public_key_bytes) {
|
||||||
assert(curve == &secp256k1);
|
assert(curve == &secp256k1);
|
||||||
|
if (curve != &secp256k1) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
secp256k1_pubkey public_key = {0};
|
secp256k1_pubkey public_key = {0};
|
||||||
@ -140,6 +148,10 @@ int zkp_ecdsa_sign_digest(
|
|||||||
int (*is_canonical)(uint8_t by, uint8_t signature_bytes[64])) {
|
int (*is_canonical)(uint8_t by, uint8_t signature_bytes[64])) {
|
||||||
assert(curve == &secp256k1);
|
assert(curve == &secp256k1);
|
||||||
assert(is_canonical == NULL);
|
assert(is_canonical == NULL);
|
||||||
|
if (curve != &secp256k1 || is_canonical != NULL) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
if (result == 0) {
|
if (result == 0) {
|
||||||
@ -198,6 +210,10 @@ int zkp_ecdsa_recover_pub_from_sig(const ecdsa_curve *curve,
|
|||||||
const uint8_t *signature_bytes,
|
const uint8_t *signature_bytes,
|
||||||
const uint8_t *digest, int recid) {
|
const uint8_t *digest, int recid) {
|
||||||
assert(curve == &secp256k1);
|
assert(curve == &secp256k1);
|
||||||
|
if (curve != &secp256k1) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
const secp256k1_context *context_read_only = zkp_context_get_read_only();
|
const secp256k1_context *context_read_only = zkp_context_get_read_only();
|
||||||
@ -248,6 +264,10 @@ int zkp_ecdsa_verify_digest(const ecdsa_curve *curve,
|
|||||||
const uint8_t *signature_bytes,
|
const uint8_t *signature_bytes,
|
||||||
const uint8_t *digest) {
|
const uint8_t *digest) {
|
||||||
assert(curve == &secp256k1);
|
assert(curve == &secp256k1);
|
||||||
|
if (curve != &secp256k1) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
int public_key_length = 0;
|
int public_key_length = 0;
|
||||||
@ -318,6 +338,11 @@ int zkp_ecdsa_verify(const ecdsa_curve *curve, HasherType hasher_type,
|
|||||||
const uint8_t *public_key_bytes,
|
const uint8_t *public_key_bytes,
|
||||||
const uint8_t *signature_bytes, const uint8_t *message,
|
const uint8_t *signature_bytes, const uint8_t *message,
|
||||||
uint32_t message_length) {
|
uint32_t message_length) {
|
||||||
|
assert(curve == &secp256k1);
|
||||||
|
if (curve != &secp256k1) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t hash[32] = {0};
|
uint8_t hash[32] = {0};
|
||||||
hasher_Raw(hasher_type, message, message_length, hash);
|
hasher_Raw(hasher_type, message, message_length, hash);
|
||||||
int result =
|
int result =
|
||||||
|
Loading…
Reference in New Issue
Block a user