[optee]-optee的加解密接口的介绍
生活随笔
收集整理的這篇文章主要介紹了
[optee]-optee的加解密接口的介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 1、算法的注冊
- 2、算法的實現 --- 舉例
- (1)、aes
- (2)、hash
- 3、在TA中使用這些算法
- (1)、rsa-encrypt/rsa-decrypt
- (2)、rsa-sign\rsa-verify
- (3)、hash
★★★ 友情鏈接 : 個人博客導讀首頁—點擊此處 ★★★
1、算法的注冊
再service_init階段,調用了tee_ltc_reg_algs()注冊系統(tǒng)的各類算法.(ltc是libtomcrypt的縮寫)
service_init(tee_cryp_init) --> tee_cryp_init() --> crypto_init() --> tee_ltc_reg_algs()
2、算法的實現 — 舉例
如果SOC增加一個硬件crypto engion,可參照此方法實現和注冊.
(1)、aes
(core/lib/libtomcrypt/src/ciphers/aes_armv8a_ce.c) const struct ltc_cipher_descriptor aes_desc = {.name = "aes",.ID = 6,.min_key_length = 16,.max_key_length = 32,.block_length = 16,.default_rounds = 10,.setup = rijndael_setup,.ecb_encrypt = rijndael_ecb_encrypt,.ecb_decrypt = rijndael_ecb_decrypt,.done = rijndael_done,.keysize = rijndael_keysize,.accel_ecb_encrypt = aes_ecb_encrypt_nblocks,.accel_ecb_decrypt = aes_ecb_decrypt_nblocks,.accel_cbc_encrypt = aes_cbc_encrypt_nblocks,.accel_cbc_decrypt = aes_cbc_decrypt_nblocks,.accel_ctr_encrypt = aes_ctr_encrypt_nblocks,.accel_xts_encrypt = aes_xts_encrypt_nblocks,.accel_xts_decrypt = aes_xts_decrypt_nblocks, };(2)、hash
(core/lib/libtomcrypt/src/hashes/sha2.c) const struct ltc_hash_descriptor sha256_desc = {"sha256",0,32,64,/* OID */{ 2, 16, 840, 1, 101, 3, 4, 2, 1, },9,&sha256_init,&sha256_process,&sha256_done,&sha256_test,NULL };3、在TA中使用這些算法
(1)、rsa-encrypt/rsa-decrypt
TEE_AllocateOperation() TEE_SetOperationKey() TEE_AsymmetricEncrypt() TEE_AsymmetricDecrypt() TEE_FreeOperation()(2)、rsa-sign\rsa-verify
TEE_AllocateOperation() TEE_SetOperationKey() TEE_AsymmetricSignDigest() TEE_AsymmetricVerifyDigest() TEE_FreeOperation()(3)、hash
TEE_AllocateOperation(...,hash_algo,...) TEE_DigestDoFinal() TEE_FreeOperation()總結
以上是生活随笔為你收集整理的[optee]-optee的加解密接口的介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [ATF]-ATF启动--BL31跳转到
- 下一篇: 博客笔记导读目录-temp