GPTEE中定义的RSA的Algorithm Identifier详解
思考:
下面 三个宏分别是什么含义?
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
例如在下面的一个示例中,如果是加解密则使用的TEE_ALG_RSAES_PKCS1_V1_5,如果是签名验签则使用的是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 — 签名验签使用的
MGF : mask generation function
GPTEE中定义的RSA的Algorithm Identifier详解相关推荐
- exlsx中定义名称步骤_Excel自定义名称详解
前言 Excel中有一个定义名称的工具,顾名思义,定义名称就是为一个区域.常量值.或者数组定义一个名称,这样的话,我们在之后编写公式时,就可以很方便的用所定义的名称进行编写.1基础操作 1.首先打开e ...
- EM算法(Expectation Maximization Algorithm)详解
EM算法(Expectation Maximization Algorithm)详解 主要内容 EM算法简介 预备知识 极大似然估计 Jensen不等式 EM算法详解 问题描述 EM算法推导 EM ...
- 遗传算法(Genetic Algorithm)详解与实现
遗传算法(Genetic Algorithm)详解与实现 遗传算法简介 类比达尔文进化论 达尔文进化理论 遗传算法对应概念 遗传算法理论 图式定理(schema theorem) 遗传算法与传统算法的 ...
- python中的class怎么用_对python 中class与变量的使用方法详解
python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...
- ios php rsa加密解密,php rsa加密解密使用详解
第一条命令生成原始 RSA私钥文件 rsa_private_key.pem,第二条命令将原始 RSA私钥转换为 pkcs8格式,第三条生成RSA公钥 rsa_public_key.pem 从上面看出通 ...
- python中class变量_对python 中class与变量的使用方法详解
python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...
- js 浅拷贝直接赋值_JS中实现浅拷贝和深拷贝的代码详解
(一)JS中基本类型和引用类型 JavaScript的变量中包含两种类型的值:基本类型值 和 引用类型值,在内存中的表现形式在于:前者是存储在栈中的一些简单的数据段,后者则是保存在堆内存中的一个对象. ...
- SQL Server中通用数据库角色权限的处理详解
SQL Server中通用数据库角色权限的处理详解 前言 安全性是所有数据库管理系统的一个重要特征.理解安全性问题是理解数据库管理系统安全性机制的前提. 最近和同事在做数据库权限清理的事情,主要是删除 ...
- python实例化是什么意思_Python中实例化class的执行顺序示例详解
前言 本文主要介绍了关于Python实例化class的执行顺序的相关内容,下面话不多说了,来一起看看详细的介绍吧 Python里对类的实例化时有怎样的顺序 一般来说一个类里面有类变量和方法,比如我们定 ...
最新文章
- 2022-2028年中国婴儿用品市场投资分析及前景预测报告
- PAT甲级1010 Radix :[C++题解]进制位、秦九韶算法、二分(PAT通过率最低的一道题0.11)
- Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT
- 一个串口接2个设备_重庆市有2个大观镇,一个乡村旅游发达,一个特产柚子
- nvm用标准sata ahci码_能者多劳!让NVMe固态硬盘做系统盘的同时,加速SATA数据盘...
- mysql中字符串拼接函数_MySQL字符串连接函数
- 蓝桥杯练习题:保留100位小数的黄金分割数
- 用Java做s71200的上位机_上位机通过西门子S7-1200PLC与OPC UA通讯
- Java Web 高性能开发,第 1 部分: 前端的高性能
- jquery页面隐藏和展开之间切换
- hadoop shell 详解
- LINUX下载ant源码并编译
- 操作文件读写JSON的建议工具类
- Linux低分辨率下时钟中断调用流程
- linux 如何安装whl文件,linux安装whl文件
- 蚌埠住了,让我虎躯一震的代码!
- Excise1_Exception
- Web前端 笔记 (21-45)
- qt 从布局中删除子控件
- correl函数_CORREL函数用法讲解
热门文章
- 2020年度国家绿色数据中心名单正式发布
- 安全用电基本知识,弱电工程人员要学会!
- 数据中心胶体电池的使用寿命
- 这三大“监控系统”是机房重中之重?
- Py之pycocotools:pycocotools库的简介、安装、使用方法之详细攻略
- ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值——bug调试记录
- Python语言学习之图表可视化:python语言中可视化工具包的简介、安装、使用方法、经典案例之详细攻略
- Java:Java编程实现导出二维码
- Dataset:数据集集合(CV方向数据集)-常见的计算机视觉图像数据集大集合包括表面缺陷检测数据集(持续更新)
- Python常用扩展包