GPTEE中定义的RSA的Algorithm Identifier详解
思考:
????下面 三個(gè)宏分別是什么含義?
????????? TEE_ALG_RSAES_PKCS1_V1_5
????????? TEE_ALG_RSASSA_PKCS1_V1_5_SHA256
????????? TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA256
Algorithm Identifier
/* Algorithm Identifiers */
#define TEE_ALG_AES_ECB_NOPAD ????????? 0x10000010
#define TEE_ALG_AES_CBC_NOPAD ????????? 0x10000110
#define TEE_ALG_AES_CTR ????????? 0x10000210
#define TEE_ALG_AES_CTS ????????? 0x10000310
#define TEE_ALG_AES_XTS ????????? 0x10000410
#define TEE_ALG_AES_CBC_MAC_NOPAD ????????? 0x30000110
#define TEE_ALG_AES_CBC_MAC_PKCS5 ????????? 0x30000510
#define TEE_ALG_AES_CMAC ????????? 0x30000610
#define TEE_ALG_AES_CCM ????????? 0x40000710
#define TEE_ALG_AES_GCM ????????? 0x40000810
#define TEE_ALG_DES_ECB_NOPAD ????????? 0x10000011
#define TEE_ALG_DES_CBC_NOPAD ????????? 0x10000111
#define TEE_ALG_DES_CBC_MAC_NOPAD ????????? 0x30000111
#define TEE_ALG_DES_CBC_MAC_PKCS5 ????????? 0x30000511
#define TEE_ALG_DES3_ECB_NOPAD ????????? 0x10000013
#define TEE_ALG_DES3_CBC_NOPAD ????????? 0x10000113
#define TEE_ALG_DES3_CBC_MAC_NOPAD ????????? 0x30000113
#define TEE_ALG_DES3_CBC_MAC_PKCS5 ????????? 0x30000513
#define TEE_ALG_SM4_ECB_NOPAD ????????? 0x10000014
#define TEE_ALG_SM4_CBC_NOPAD ????????? 0x10000114
#define TEE_ALG_SM4_CTR ????????? 0x10000214
#define TEE_ALG_RSASSA_PKCS1_V1_5_MD5 ????????? 0x70001830
#define TEE_ALG_RSASSA_PKCS1_V1_5_SHA1 ????????? 0x70002830
#define TEE_ALG_RSASSA_PKCS1_V1_5_SHA224 ????????? 0x70003830
#define TEE_ALG_RSASSA_PKCS1_V1_5_SHA256 ????????? 0x70004830
#define TEE_ALG_RSASSA_PKCS1_V1_5_SHA384 ????????? 0x70005830
#define TEE_ALG_RSASSA_PKCS1_V1_5_SHA512 ????????? 0x70006830
#define TEE_ALG_RSASSA_PKCS1_V1_5_MD5SHA1 ????????? 0x7000F830
#define TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA1 ????????? 0x70212930
#define TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA224 ????????? 0x70313930
#define TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA256 ????????? 0x70414930
#define TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA384 ????????? 0x70515930
#define TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA512 ????????? 0x70616930
#define TEE_ALG_RSAES_PKCS1_V1_5 ????????? 0x60000130
#define TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA1 ????????? 0x60210230
#define TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA224 ????????? 0x60310230
#define TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA256 ????????? 0x60410230
#define TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA384 ????????? 0x60510230
#define TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA512 ????????? 0x60610230
#define TEE_ALG_RSA_NOPAD ????????? 0x60000030
#define TEE_ALG_DSA_SHA1 ????????? 0x70002131
#define TEE_ALG_DSA_SHA224 ????????? 0x70003131
#define TEE_ALG_DSA_SHA256 ????????? 0x70004131
#define TEE_ALG_SM2_DSA_SM3 ????????? 0x70006045
#define TEE_ALG_DH_DERIVE_SHARED_SECRET ????????? 0x80000032
#define TEE_ALG_SM2_KEP ????????? 0x60000045
#define TEE_ALG_MD5 ????????? 0x50000001
#define TEE_ALG_SHA1 ????????? 0x50000002
#define TEE_ALG_SHA224 ????????? 0x50000003
#define TEE_ALG_SHA256 ????????? 0x50000004
#define TEE_ALG_SHA384 ????????? 0x50000005
#define TEE_ALG_SHA512 ????????? 0x50000006
#define TEE_ALG_MD5SHA1 ????????? 0x5000000F
#define TEE_ALG_HMAC_MD5 ????????? 0x30000001
#define TEE_ALG_HMAC_SHA1 ????????? 0x30000002
#define TEE_ALG_HMAC_SHA224 ????????? 0x30000003
#define TEE_ALG_HMAC_SHA256 ????????? 0x30000004
#define TEE_ALG_HMAC_SHA384 ????????? 0x30000005
#define TEE_ALG_HMAC_SHA512 ????????? 0x30000006
#define TEE_ALG_HMAC_SM3 ????????? 0x30000007
例如在下面的一個(gè)示例中,如果是加解密則使用的TEE_ALG_RSAES_PKCS1_V1_5,如果是簽名驗(yàn)簽則使用的是TEE_ALG_RSASSA_PKCS1_V1_5_SHA256
switch (mode){case TEE_MODE_ENCRYPT:case TEE_MODE_DECRYPT:alg = TEE_ALG_RSAES_PKCS1_V1_5;break;case TEE_MODE_SIGN:case TEE_MODE_VERIFY:alg = TEE_ALG_RSASSA_PKCS1_V1_5_SHA256;break;}上述的ES、SSA分別是什么含義呢? OAEP 、MGF1、PSS分別又是什么含義呢?
RSAES : RSA Encryption Scheme <參考這里>
RSASSA : RSA Signature Scheme with Appendix <參考這里>
OAEP : Optimal Asymmetric Encryption Padding — 加解密使用的padding
PSS : probabilistic signature scheme — 簽名驗(yàn)簽使用的
MGF : mask generation function
總結(jié)
以上是生活随笔為你收集整理的GPTEE中定义的RSA的Algorithm Identifier详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [crypto]-05.1-PKCS P
- 下一篇: TEE_ObjectHandle在Cry