Fix deprecated warnings
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user