Signed-off-by: Akhil Goyal <gak...@marvell.com> --- drivers/common/cnxk/roc_aes.c | 17 +++++++++++++++++ drivers/common/cnxk/roc_aes.h | 2 ++ drivers/common/cnxk/version.map | 1 + 3 files changed, 20 insertions(+)
diff --git a/drivers/common/cnxk/roc_aes.c b/drivers/common/cnxk/roc_aes.c index f821c8b710..f69ecc1d58 100644 --- a/drivers/common/cnxk/roc_aes.c +++ b/drivers/common/cnxk/roc_aes.c @@ -206,3 +206,20 @@ roc_aes_xcbc_key_derive(const uint8_t *auth_key, uint8_t *derived_key) cipher(k3, derived_key, aes_ks); } + +void +roc_aes_hash_key_derive(const uint8_t *key, uint16_t len, uint8_t hash_key[]) +{ + uint32_t aes_ks[KEY_SCHEDULE_LEN] = {0}; + uint8_t data[16] = {0x0}; + int i; + + if (len == 16) { + aes_key_expand(key, aes_ks); + cipher(data, hash_key, aes_ks); + for (i = 0; i < 16; i++) + plt_info(" 0x%x", hash_key[i]); + } else { + plt_err("\n AES-256 key conversion not supported"); + } +} diff --git a/drivers/common/cnxk/roc_aes.h b/drivers/common/cnxk/roc_aes.h index 954039139f..e3f6160e7c 100644 --- a/drivers/common/cnxk/roc_aes.h +++ b/drivers/common/cnxk/roc_aes.h @@ -10,5 +10,7 @@ */ void __roc_api roc_aes_xcbc_key_derive(const uint8_t *auth_key, uint8_t *derived_key); +void __roc_api roc_aes_hash_key_derive(const uint8_t *key, uint16_t len, + uint8_t *hash_key); #endif /* _ROC_AES_H_ */ diff --git a/drivers/common/cnxk/version.map b/drivers/common/cnxk/version.map index 5cdc70e0e0..38bf832388 100644 --- a/drivers/common/cnxk/version.map +++ b/drivers/common/cnxk/version.map @@ -29,6 +29,7 @@ INTERNAL { roc_ae_ec_grp_put; roc_ae_fpm_get; roc_ae_fpm_put; + roc_aes_hash_key_derive; roc_aes_xcbc_key_derive; roc_bphy_cgx_cpri_mode_change; roc_bphy_cgx_cpri_mode_misc; -- 2.25.1