Fix deprecated warnings

This commit is contained in:
Charles-Edouard de la Vergne
2024-03-18 08:58:05 +01:00
parent 6e872b45cc
commit 36ae183a1c
36 changed files with 361 additions and 473 deletions

View File

@@ -69,7 +69,7 @@ void handleProvideNFTInformation(uint8_t p1,
PRINTF("Data too small for headers: expected at least %d, got %d\n",
HEADER_SIZE,
dataLength);
THROW(0x6A80);
THROW(APDU_RESPONSE_INVALID_DATA);
}
uint8_t type = workBuffer[offset];
@@ -78,7 +78,7 @@ void handleProvideNFTInformation(uint8_t p1,
break;
default:
PRINTF("Unsupported type %d\n", type);
THROW(0x6a80);
THROW(APDU_RESPONSE_INVALID_DATA);
break;
}
offset += TYPE_SIZE;
@@ -89,7 +89,7 @@ void handleProvideNFTInformation(uint8_t p1,
break;
default:
PRINTF("Unsupported version %d\n", version);
THROW(0x6a80);
THROW(APDU_RESPONSE_INVALID_DATA);
break;
}
offset += VERSION_SIZE;
@@ -104,14 +104,14 @@ void handleProvideNFTInformation(uint8_t p1,
PRINTF("Data too small for payload: expected at least %d, got %d\n",
payloadSize,
dataLength);
THROW(0x6A80);
THROW(APDU_RESPONSE_INVALID_DATA);
}
if (collectionNameLength > COLLECTION_NAME_MAX_LEN) {
PRINTF("CollectionName too big: expected max %d, got %d\n",
COLLECTION_NAME_MAX_LEN,
collectionNameLength);
THROW(0x6A80);
THROW(APDU_RESPONSE_INVALID_DATA);
}
// Safe because we've checked the size before.
@@ -151,7 +151,7 @@ void handleProvideNFTInformation(uint8_t p1,
break;
default:
PRINTF("KeyID %d not supported\n", keyId);
THROW(0x6A80);
THROW(APDU_RESPONSE_INVALID_DATA);
break;
}
PRINTF("RawKey: %.*H\n", rawKeyLen, rawKey);
@@ -159,20 +159,10 @@ void handleProvideNFTInformation(uint8_t p1,
uint8_t algorithmId = workBuffer[offset];
PRINTF("Algorithm: %d\n", algorithmId);
cx_curve_t curve;
verificationAlgo *verificationFn;
cx_md_t hashId;
switch (algorithmId) {
case ALGORITHM_ID_1:
curve = CX_CURVE_256K1;
verificationFn = (verificationAlgo *) cx_ecdsa_verify;
hashId = CX_SHA256;
break;
default:
PRINTF("Incorrect algorithmId %d\n", algorithmId);
THROW(0x6a80);
break;
if (algorithmId != ALGORITHM_ID_1) {
PRINTF("Incorrect algorithmId %d\n", algorithmId);
THROW(APDU_RESPONSE_INVALID_DATA);
}
offset += ALGORITHM_ID_SIZE;
PRINTF("hashing: %.*H\n", payloadSize, workBuffer);
@@ -180,7 +170,7 @@ void handleProvideNFTInformation(uint8_t p1,
if (dataLength < payloadSize + SIGNATURE_LENGTH_SIZE) {
PRINTF("Data too short to hold signature length\n");
THROW(0x6a80);
THROW(APDU_RESPONSE_INVALID_DATA);
}
uint8_t signatureLen = workBuffer[offset];
@@ -190,26 +180,24 @@ void handleProvideNFTInformation(uint8_t p1,
MIN_DER_SIG_SIZE,
MAX_DER_SIG_SIZE,
signatureLen);
THROW(0x6a80);
THROW(APDU_RESPONSE_INVALID_DATA);
}
offset += SIGNATURE_LENGTH_SIZE;
if (dataLength < payloadSize + SIGNATURE_LENGTH_SIZE + signatureLen) {
PRINTF("Signature could not fit in data\n");
THROW(0x6a80);
THROW(APDU_RESPONSE_INVALID_DATA);
}
cx_ecfp_init_public_key(curve, rawKey, rawKeyLen, &nftKey);
if (!verificationFn(&nftKey,
CX_LAST,
hashId,
hash,
sizeof(hash),
(uint8_t *) workBuffer + offset,
signatureLen)) {
CX_ASSERT(cx_ecfp_init_public_key_no_throw(CX_CURVE_256K1, rawKey, rawKeyLen, &nftKey));
if (!cx_ecdsa_verify_no_throw(&nftKey,
hash,
sizeof(hash),
(uint8_t *) workBuffer + offset,
signatureLen)) {
#ifndef HAVE_BYPASS_SIGNATURES
PRINTF("Invalid NFT signature\n");
THROW(0x6A80);
THROW(APDU_RESPONSE_INVALID_DATA);
#endif
}