From 469a4055e4b71bf2a8550e837401c255a8f06416 Mon Sep 17 00:00:00 2001 From: Vadim Sukhomlinov Date: Fri, 17 Sep 2021 09:52:05 -0700 Subject: cr50: remove unused and empty struct APPKEY_CTX from APIs struct APPKEY_CTX is an empty struct passed with few APIs and not used for any purpose. Remove it. BUG=none TEST=make BOARD=cr50 CRYPTO_TEST=1; Signed-off-by: Vadim Sukhomlinov Change-Id: I4bcb8f196b70cefc58a81e8592d83aa70464fcf8 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3169374 Reviewed-by: Vadim Sukhomlinov Reviewed-by: Andrey Pronin Tested-by: Vadim Sukhomlinov Commit-Queue: Vadim Sukhomlinov --- board/cr50/dcrypto/app_cipher.c | 10 ++++------ board/cr50/dcrypto/app_key.c | 6 ++---- board/cr50/dcrypto/dcrypto.h | 10 ++-------- board/cr50/dcrypto/u2f.c | 5 ++--- board/host/dcrypto.h | 5 ++--- chip/host/dcrypto/app_key.c | 5 ++--- common/pinweaver.c | 5 ++--- test/pinweaver.c | 4 ++-- 8 files changed, 18 insertions(+), 32 deletions(-) diff --git a/board/cr50/dcrypto/app_cipher.c b/board/cr50/dcrypto/app_cipher.c index 099e837b7c..6bbcfdab11 100644 --- a/board/cr50/dcrypto/app_cipher.c +++ b/board/cr50/dcrypto/app_cipher.c @@ -81,11 +81,10 @@ static int outer_loop(uint32_t **out, const uint32_t **in, size_t len) return len; } -static int aes_init(struct APPKEY_CTX *ctx, enum dcrypto_appid appid, - const uint32_t iv[4]) +static int aes_init(enum dcrypto_appid appid, const uint32_t iv[4]) { /* Setup USR-based application key. */ - if (!DCRYPTO_appkey_init(appid, ctx)) + if (!DCRYPTO_appkey_init(appid)) return 0; /* Configure AES engine. */ @@ -130,7 +129,6 @@ static int aes_init(struct APPKEY_CTX *ctx, enum dcrypto_appid appid, int DCRYPTO_app_cipher(enum dcrypto_appid appid, const void *salt, void *out, const void *in, size_t len) { - struct APPKEY_CTX ctx; const uint32_t *inw = in; uint32_t *outw = out; @@ -144,7 +142,7 @@ int DCRYPTO_app_cipher(enum dcrypto_appid appid, const void *salt, BUILD_ASSERT(sizeof(iv) == CIPHER_SALT_SIZE); memcpy(iv, salt, sizeof(iv)); - if (!aes_init(&ctx, appid, iv)) + if (!aes_init(appid, iv)) return 0; } @@ -165,7 +163,7 @@ int DCRYPTO_app_cipher(enum dcrypto_appid appid, const void *salt, memcpy(outw, tmpout, len); } - DCRYPTO_appkey_finish(&ctx); + DCRYPTO_appkey_finish(); return 1; } diff --git a/board/cr50/dcrypto/app_key.c b/board/cr50/dcrypto/app_key.c index 0bc7620ed7..9c40277e6f 100644 --- a/board/cr50/dcrypto/app_key.c +++ b/board/cr50/dcrypto/app_key.c @@ -53,11 +53,10 @@ static void name_hash(enum dcrypto_appid appid, digest->b32[x] = __builtin_bswap32(digest->b32[x]); } -int DCRYPTO_appkey_init(enum dcrypto_appid appid, struct APPKEY_CTX *ctx) +int DCRYPTO_appkey_init(enum dcrypto_appid appid) { struct sha256_digest digest; - memset(ctx, 0, sizeof(*ctx)); name_hash(appid, &digest); if (!dcrypto_ladder_compute_usr(appid, digest.b32)) @@ -66,9 +65,8 @@ int DCRYPTO_appkey_init(enum dcrypto_appid appid, struct APPKEY_CTX *ctx) return 1; } -void DCRYPTO_appkey_finish(struct APPKEY_CTX *ctx) +void DCRYPTO_appkey_finish(void) { - always_memset(ctx, 0, sizeof(struct APPKEY_CTX)); GREG32(KEYMGR, AES_WIPE_SECRETS) = 1; } diff --git a/board/cr50/dcrypto/dcrypto.h b/board/cr50/dcrypto/dcrypto.h index b89eccd84e..50285286d9 100644 --- a/board/cr50/dcrypto/dcrypto.h +++ b/board/cr50/dcrypto/dcrypto.h @@ -411,17 +411,11 @@ enum dcrypto_appid { /* This enum value should not exceed 7. */ }; -struct APPKEY_CTX { -#ifdef TEST_FUZZ - uint8_t unused_for_cxx_compatibility; -#endif -}; - int DCRYPTO_ladder_compute_frk2(size_t major_fw_version, uint8_t *frk2); void DCRYPTO_ladder_revoke(void); -int DCRYPTO_appkey_init(enum dcrypto_appid id, struct APPKEY_CTX *ctx); -void DCRYPTO_appkey_finish(struct APPKEY_CTX *ctx); +int DCRYPTO_appkey_init(enum dcrypto_appid id); +void DCRYPTO_appkey_finish(void); int DCRYPTO_appkey_derive(enum dcrypto_appid appid, const uint32_t input[8], uint32_t output[8]); diff --git a/board/cr50/dcrypto/u2f.c b/board/cr50/dcrypto/u2f.c index 15bdddcbe8..92b74b002f 100644 --- a/board/cr50/dcrypto/u2f.c +++ b/board/cr50/dcrypto/u2f.c @@ -109,7 +109,6 @@ static void u2f_authorization_mac(const struct u2f_state *state, static int app_hw_device_id(enum dcrypto_appid appid, const uint32_t input[8], uint32_t output[8]) { - struct APPKEY_CTX ctx; int result; /** @@ -121,7 +120,7 @@ static int app_hw_device_id(enum dcrypto_appid appid, const uint32_t input[8], * Important property: * For same appid it will load same value. */ - if (!DCRYPTO_appkey_init(appid, &ctx)) + if (!DCRYPTO_appkey_init(appid)) return 0; /** @@ -131,7 +130,7 @@ static int app_hw_device_id(enum dcrypto_appid appid, const uint32_t input[8], */ result = DCRYPTO_appkey_derive(appid, input, output); - DCRYPTO_appkey_finish(&ctx); + DCRYPTO_appkey_finish(); return result; } diff --git a/board/host/dcrypto.h b/board/host/dcrypto.h index c124bddd31..6950740f93 100644 --- a/board/host/dcrypto.h +++ b/board/host/dcrypto.h @@ -49,11 +49,10 @@ const struct sha256_digest *HMAC_SHA256_hw_final(struct hmac_sha256_ctx *ctx); int DCRYPTO_aes_ctr(uint8_t *out, const uint8_t *key, uint32_t key_bits, const uint8_t *iv, const uint8_t *in, size_t in_len); -struct APPKEY_CTX {}; -int DCRYPTO_appkey_init(enum dcrypto_appid appid, struct APPKEY_CTX *ctx); +int DCRYPTO_appkey_init(enum dcrypto_appid appid); -void DCRYPTO_appkey_finish(struct APPKEY_CTX *ctx); +void DCRYPTO_appkey_finish(void); int DCRYPTO_appkey_derive(enum dcrypto_appid appid, const uint32_t input[8], uint32_t output[8]); diff --git a/chip/host/dcrypto/app_key.c b/chip/host/dcrypto/app_key.c index 58066c84ba..2c993bdbce 100644 --- a/chip/host/dcrypto/app_key.c +++ b/chip/host/dcrypto/app_key.c @@ -7,7 +7,7 @@ static int dcrypto_appkey_init_flag_ = -1; -int DCRYPTO_appkey_init(enum dcrypto_appid appid, struct APPKEY_CTX *ctx) +int DCRYPTO_appkey_init(enum dcrypto_appid appid) { if (dcrypto_appkey_init_flag_ != -1) return 0; @@ -16,9 +16,8 @@ int DCRYPTO_appkey_init(enum dcrypto_appid appid, struct APPKEY_CTX *ctx) return 1; } -void DCRYPTO_appkey_finish(struct APPKEY_CTX *ctx) +void DCRYPTO_appkey_finish(void) { - memset(ctx, 0, sizeof(struct APPKEY_CTX)); dcrypto_appkey_init_flag_ = -1; } diff --git a/common/pinweaver.c b/common/pinweaver.c index 5b9f498fd9..0bcd752ab6 100644 --- a/common/pinweaver.c +++ b/common/pinweaver.c @@ -111,7 +111,6 @@ void import_leaf(const struct unimported_leaf_data_t *unimported, static int derive_keys(struct merkle_tree_t *merkle_tree) { - struct APPKEY_CTX ctx; int ret = EC_SUCCESS; const uint32_t KEY_TYPE_AES = 0x0; const uint32_t KEY_TYPE_HMAC = 0xffffffff; @@ -129,7 +128,7 @@ static int derive_keys(struct merkle_tree_t *merkle_tree) input.bytes[x] ^= merkle_tree->key_derivation_nonce[x]; type_field = input.v[6]; - if (!DCRYPTO_appkey_init(PINWEAVER, &ctx)) + if (!DCRYPTO_appkey_init(PINWEAVER)) return PW_ERR_CRYPTO_FAILURE; input.v[6] = type_field ^ KEY_TYPE_AES; @@ -145,7 +144,7 @@ static int derive_keys(struct merkle_tree_t *merkle_tree) ret = PW_ERR_CRYPTO_FAILURE; } cleanup: - DCRYPTO_appkey_finish(&ctx); + DCRYPTO_appkey_finish(); return ret; } diff --git a/test/pinweaver.c b/test/pinweaver.c index f755373b76..21bd30396d 100644 --- a/test/pinweaver.c +++ b/test/pinweaver.c @@ -949,13 +949,13 @@ int DCRYPTO_aes_ctr(uint8_t *out, const uint8_t *key, uint32_t key_bits, } /* 1 for success 0 for fail*/ -int DCRYPTO_appkey_init(enum dcrypto_appid appid, struct APPKEY_CTX *ctx) +int DCRYPTO_appkey_init(enum dcrypto_appid appid) { MOCK_hwctx_appkey = appid; return 1; } -void DCRYPTO_appkey_finish(struct APPKEY_CTX *ctx) +void DCRYPTO_appkey_finish(void) { MOCK_hwctx_appkey = 0; } -- cgit v1.2.1