optee中支持的软算算法

在lib/libmbedtls/core/tomcrypt.c中定义了加解密算法的入口,
TEE_Result crypto_init(void)
{
    tomcrypt_init();

    return TEE_SUCCESS;
}
在tomcrypt_init 中我们就可以明确知道optee中支持了哪些软算的算法
void tomcrypt_init(void)
{
    ltc_init();
}
static void ltc_init(void)
{
#if defined(_CFG_CORE_LTC_ACIPHER)
    init_mp_tomcrypt();
#endif
    tee_ltc_reg_algs();
}
static void tee_ltc_reg_algs(void)
{
#if defined(_CFG_CORE_LTC_AES) || defined(_CFG_CORE_LTC_AES_DESC)
    register_cipher(&aes_desc);
#endif
#if defined(_CFG_CORE_LTC_DES)
    register_cipher(&des_desc);
    register_cipher(&des3_desc);
#endif
#if defined(_CFG_CORE_LTC_MD5)
    register_hash(&md5_desc);
#endif
#if defined(_CFG_CORE_LTC_SHA1)
    register_hash(&sha1_desc);
#endif
#if defined(_CFG_CORE_LTC_SHA224)
    register_hash(&sha224_desc);
#endif
#if defined(_CFG_CORE_LTC_SHA256) || defined(_CFG_CORE_LTC_SHA256_DESC)
    register_hash(&sha256_desc);
#endif
#if defined(_CFG_CORE_LTC_SHA384) || defined(_CFG_CORE_LTC_SHA384_DESC)
    register_hash(&sha384_desc);
#endif
#if defined(_CFG_CORE_LTC_SHA512) || defined(_CFG_CORE_LTC_SHA512_DESC)
    register_hash(&sha512_desc);
#endif
#if defined(_CFG_CORE_LTC_ACIPHER)
    register_prng(&prng_crypto_desc);
#endif
}
最终在tee_ltc_reg_algs中调用的算法都是optee支持的,这些都是用宏来隔开的,需要在配置文件中开这些宏才能支持这些算法。

上一篇:[考试总结]noip模拟47


下一篇:近期复习的收获(完全不知道的)