exp1-Password engine-加密API实现与测试
加密API实现与测试 181210
1、准备工作
下载并查找GMT 0018-2012密码设备应用接口规范原始文档进行学习。
2、实现GMT 0018-2012接口函数
实现GMT 0018-2012密码设备应用接口规范的接口函数。至少实现设备管理中实现:
1)打开设备、关闭设备、获取设备信息、产生随机数
代码链接:https://gitee.com/amyonelse/research-on-exp1-api.git
实现结果:

具体sdf头文件:

2)密钥管理导出 ECC签名公钥
SDF_ExportSignPublicKey_ECC
I.导出 ECC加密公钥∶SDF_ExportEncPublicKey_ECC
J. 产生 ECC非对称密钥对并输出∶SDF_GenerateKeyPair_ECC K.
3)非对称算法(至少支持SM2)
外部密钥 ECC验证∶SDF_ExternalVerify_ECC
内部密钥 ECC签名;SDF_InternalSign_ECC
内部密钥 ECC验证∶SDF_InternalVerify_ECC
外部密钥 ECC加密∶SDF_ExternalEncrypt_ECC
4)对称算法(至少支持SM4)
SDF_Encrypt
对称解密∶SDF_Dccrypt
计算 MAC∶SDF_CalculateMAC
5)杂凑算法(至少支持SM3)
杂凑运算初始化∶SDF_HashInit
多包杂凑运算∶SDF_HashUpdate
杂凑运算结束∶SDF_HashFinal
密钥管理要求
基于本标准设计、开发的密码设备在密钥管理方面,应满足以下要求;
1)设备密钥的使用不对应用系统开放;
2) 密钥必须用安全的方法产生并存储;
3) 在任何时间、任何情况下,除公钥外的密钥均不能以明文形式出现在密码设备外;
4) 密码设备内部存储的密钥应具备有效的密钥保护机制,防止解剖、探测和非法读取;
5) 密码设备内部存储的密钥应具备权限控制机制,防止非法使用和导出。
设备状态要求
基于本标准设计、开发的密码设备在设备状态方面,应满足以下要求;
1) 密码设备应具有初始和就绪两个状态;
2) 未安装设备密钥的密码设备应处干初始状态,已安装设备密钥的密码设备应处于就绪状态;
3) 在初始状态下,除可读取设备信息、设备密钥的生成或恢复操作外,不能执行任何操作,生成或恢复设备密钥后,密码设备处于就绪状态;
4) 在就绪状态下,除设备密钥的生成或恢复操作外,应能执行任何操作;
5) 在就绪状态下进行的密钥操作,设备操作员应经过密码设备的认证。
exp1-Password engine-加密API实现与测试的更多相关文章
- SQLPROMPT5.3对各种加密对象的解密测试
SQLPROMPT5.3对各种加密对象的解密测试 测试环境: SQL2005个人开发者版 SP4 SQLPROMPT版本:5.3.8.2 视图 CREATE VIEW aa WITH ENCRYPTI ...
- Windows加密API的功能分类
本地数据加密保护本地数据加密保护机制提供了简单的DAPI调用接口,密钥管理等等一概由系统来处理.DAPI的数据加密保护机制在用户登录会话范围或者本地计算范围,使用操作系统设计的方式加密保护数据和解密还 ...
- Windows加密API的层次
Windows平台下的应用程序可以分为托管的.NET程序和本机的Win32(以及Win64)两大类..NET有着类似于JAVA的虚拟机和二进制码托管运行环境,提供了在不同Windows平台上的代码可携 ...
- 使用jMeter对基于SAP ID service进行Authentication的Restful API进行并发测试
这篇文章本来Jerry只在SAP社区上写了英文版的,可以通过点击文末的"阅读原文"获得.后来有两位做Marketing Cloud开发的德国同事,写邮件询问关于文章的更多细节,声称 ...
- Web API 自动生成帮助文档并使用Web API Test Client 测试
之前在项目中有用到webapi对外提供接口,发现在项目中有根据webapi的方法和注释自动生成帮助文档,还可以测试webapi方法,功能很是强大,现拿出来与大家分享一下. 先看一下生成的webapi文 ...
- Asp.net Web Api进行Nunit测试
有两种方式 1.模拟Web请求. 2.直接本地调用Api接口 但是由于本地直接调用没有模拟请求环境,所以request为null public static HttpResponseMessage C ...
- .NET MVC结构框架下的微信扫码支付模式二 API接口开发测试
直接上干货 ,我们的宗旨就是为人民服务.授人以鱼不如授人以渔.不吹毛求疵.不浮夸.不虚伪.不忽悠.一切都是为了社会共同进步,繁荣昌盛,小程序猿.大程序猿.老程序猿还是嫩程序猿,希望这个社会不要太急功近 ...
- .NET微信扫码支付模式二API接口开发测试
主要实现微信扫码支付,官网的SDKdemo 就不要使用 一直不能调试通过的,还是自己按照API接口文档一步一步来实现,吐槽下微信一点责任感都木有,能不能demo搞个正常的吗,不要坑惨了一大群码农们有点 ...
- HTC Vive前置摄像头API(未测试)
/*WebCamTexture:网络摄像头材质 WebCamTexture.Play() 播放: WebCamTexture.Pause() 暂停: WebCamTexture.Stop() 停止:* ...
- 对称加密,API加密
用于API加密,双方约定好signature_key对请求的参数进行处理 处理步骤如下 把请求的数据生成为key=>value的形式,然后拼接生成arg_key arg_key加上双方约定的si ...
随机推荐
- Linux之ssh远程连接
Linux之ssh远程连接 一.下载远程连接工具Xshell Xshell是一种远程连接工具,可用来远程连接虚拟机. Xshell免费版下载地址 输入名字和邮箱,可以在邮箱看到下载Xshell的链接. ...
- MySQL-多表查询的两种方法、Navicat、python操作MySQL
1.多表查询的两种方法 1.连表操作: 1.1:inner join:内连接,将两张表共同的部分连接起来生成一张新表.拼接顺序是把后面的表拼在前面的表,如果颠倒位置结果不同. select * fro ...
- Android IO 框架 Okio 的实现原理,到底哪里 OK?
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 前言 大家好,我是小彭. 今天,我们来讨论一个 Square 开源的 I/O 框架 Okio,我们最开始接触 ...
- 安装kali2021.1系统
基本安装 下载地址:Downloads | Kali Linux 去官网下载,会得到kali2021.1的镜像和哈希值 打开VMware软件,新建虚拟机........................ ...
- aspnetcore 原生 DI 实现基于 key 的服务获取
你可能想通过一个字符串或者其他的类型来获取一个具体的服务实现,那么在 aspnetcore 原生的 MSDI 中,如何实现呢?本文将介绍如何通过自定义工厂来实现. 我们现在恰好有基于 Json 和 M ...
- 一文搞懂秒杀系统,欢迎参与开源,提交PR,提高竞争力。早日上岸,升职加薪。
前言 秒杀和高并发是面试的高频考点,也是我们做电商项目必知必会的场景.欢迎大家参与我们的开源项目,提交PR,提高竞争力.早日上岸,升职加薪. 知识点详解 秒杀系统架构图 秒杀流程图 秒杀系统设计 这篇 ...
- Apache Hudi 负载类Payload使用案例剖析
在 Hudi 中可以根据业务场景为 Hudi 表配置负载类Payload,它用于在更新期间合并同一记录的两个版本.本文将深入了解有效负载类的用途以及可以使用的所有不同方式. 配置:hoodie.dat ...
- wpf 样式style封装以及点击按钮打开新窗口
在页面引用: ok~ 点击按钮打开新窗口: 1.点击按钮 点击工具栏的这个小闪电 2.双击click后的灰框或者输入点击事件名称 3.这里是打开window1窗口 ok~
- Spring Boot 整合 Logback 日志
Spring Boot 支持 Java Util Logging,Log4J,Log4J2 和 Logback 等日志框架,默认采用 Logback 日志. 在实际 Spring Boot 项目中使用 ...
- LeetCode-846 一手顺子
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/hand-of-straights 题目描述 Alice 手中有一把牌,她想要重新排列这些牌,分成 ...