|
28 | 28 | BOOT_LOG_MODULE_DECLARE(mcuboot_psa_enc); |
29 | 29 |
|
30 | 30 | #define EXPECTED_ENC_LEN BOOT_ENC_TLV_SIZE |
31 | | -#define EXPECTED_ENC_TLV IMAGE_TLV_ENC_X25519 |
32 | 31 | #define EC_PUBK_INDEX (0) |
33 | | -#define EC_TAG_INDEX (32) |
34 | | -#define EC_CIPHERKEY_INDEX (32 + 32) |
| 32 | +#define EC_PUBK_LEN (32) |
| 33 | +#define EC_TAG_INDEX (EC_PUBK_INDEX + EC_PUBK_LEN) |
| 34 | +#define EC_TAG_LEN (32) |
| 35 | +#define EC_CIPHERKEY_INDEX (EC_TAG_INDEX + EC_TAG_LEN) |
| 36 | +#define EC_CIPHERKEY_LEN BOOT_ENC_KEY_SIZE |
35 | 37 | _Static_assert(EC_CIPHERKEY_INDEX + BOOT_ENC_KEY_SIZE == EXPECTED_ENC_LEN, |
36 | 38 | "Please fix ECIES-X25519 component indexes"); |
37 | 39 |
|
38 | 40 | #define X25519_OID "\x6e" |
39 | 41 | static const uint8_t ec_pubkey_oid[] = MBEDTLS_OID_ISO_IDENTIFIED_ORG \ |
40 | 42 | MBEDTLS_OID_ORG_GOV X25519_OID; |
41 | 43 |
|
42 | | -#define SHARED_KEY_LEN 32 |
43 | 44 | #define PRIV_KEY_LEN 32 |
44 | 45 |
|
45 | 46 | /* Fixme: This duplicates code from encrypted.c and depends on mbedtls */ |
@@ -180,7 +181,7 @@ boot_decrypt_key(const uint8_t *buf, uint8_t *enckey) |
180 | 181 | */ |
181 | 182 | psa_ret = psa_key_derivation_key_agreement(&key_do, PSA_KEY_DERIVATION_INPUT_SECRET, |
182 | 183 | kid, &buf[EC_PUBK_INDEX], |
183 | | - BOOTUTIL_CRYPTO_SHA256_DIGEST_SIZE); |
| 184 | + EC_PUBK_LEN); |
184 | 185 | psa_cleanup_ret = psa_destroy_key(kid); |
185 | 186 | if (psa_cleanup_ret != PSA_SUCCESS) { |
186 | 187 | BOOT_LOG_WRN("Built-in key destruction failed %d", psa_cleanup_ret); |
@@ -242,9 +243,9 @@ boot_decrypt_key(const uint8_t *buf, uint8_t *enckey) |
242 | 243 |
|
243 | 244 | /* Verify the MAC tag of the random encryption key */ |
244 | 245 | psa_ret = psa_mac_verify(kid, PSA_ALG_HMAC(PSA_ALG_SHA_256), |
245 | | - &buf[EC_CIPHERKEY_INDEX], BOOT_ENC_KEY_SIZE, |
| 246 | + &buf[EC_CIPHERKEY_INDEX], EC_CIPHERKEY_LEN, |
246 | 247 | &buf[EC_TAG_INDEX], |
247 | | - BOOTUTIL_CRYPTO_SHA256_DIGEST_SIZE); |
| 248 | + EC_TAG_LEN); |
248 | 249 | psa_cleanup_ret = psa_destroy_key(kid); |
249 | 250 | if (psa_cleanup_ret != PSA_SUCCESS) { |
250 | 251 | BOOT_LOG_WRN("MAC key destruction failed %d", psa_cleanup_ret); |
|
0 commit comments