|
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