我是靠谱客的博主 喜悦豆芽,最近开发中收集的这篇文章主要介绍2021-06-25GMSSL引擎SKF引擎命令:SKF引擎的使用:SKF Dummy引擎分析:SKF Engine引擎分析:SDF引擎:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • GMSSL引擎
  • SKF引擎命令:
  • SKF引擎的使用:
  • SKF Dummy引擎分析:
  • SKF Engine引擎分析:
  • SDF引擎:


GMSSL引擎

gmssl中包含SDF与SKF两种设备引擎,但并未给出源码,只能通过库进行调用
本文主要阐述两种引擎的使用,以及一些代码方面的分析


SKF引擎命令:

目前gmssl2.5.4版本的skf引擎共支持以下内容
gmssl skf -help
Usage: skf [options]
Valid options are:
-help Display this summary
-lib val Vendor SKF dynamic library
-vendor val Vendor name
-listdevs List installed devices
-dev val Device name
-devinfo Print device information
-label val Set new device label
-transmit val Transmit raw data packet
-authkey val Device authentication key in Hex
-newauthkey val Set new device authentication key in Hex
-listapps List applications
-newapp val Create a new application with name
-delapp val Delete an applicaiton by name
-app val Application name
-changepass Change application user or admin passw-phrase
-admin Open application as administrator
-pass val Application user or admin pass-phrase source
-newpass val Application user or admin new ass-phrase source
-adminpass val Application admin pass-phrase source
-unblock Unblock application user pass-phrase
-listobjs List data objects
-importobj val Import data object with name
-exportobj val Export data object by name
-delobj val Delete data object by name
-obj val Data object name
-listcontainers List containers
-newcontainer val Create container with name
-algorithm val Container public key algorithm - SM2 or RSA
-delcontainer val Delete container by name
-container val Container name
-importenckey Import encryption private key into container
-keypass val Private key encryption pass-phrase
-exportsignkey Export signing public key from container
-exportenckey Export encryption public key from container
-printkeys Print public keys in container
-importcert Import certificate into container
-exportsigncert Export signing certificate from container
-exportenccert Export encryption certificate from container
-in infile File to be imported from
-out outfile File to be exported to
-inform format Input format - DER or PEM
-outform PEM|DER Output format - DER or PEM


SKF引擎的使用:

这里以龙脉公司的GM3000为例
1、 使用 -lib命令明确指定厂商的SKF动态库
2、 通过-listdevs指令可以枚举主机中已经插入的所有该供应商的设备,如下所示,其中输出的DEVICE为供应商SKF动态库为设备指定的设备名称。在这里插入图片描述

3、 通过-dev [设备名称] 指令可以对当前连接下的任一设备进行操作
查询设备信息查询某一设备信息
4、出错地方
该引擎使用时必须通过设备认证密钥,无论是应用还是容器该认证密钥都不可或缺,但是在UK的实际使用中,代码编写过程中从未使用过设备认证密钥这一函数。编写了相应的设备认证密钥修改代码:

   ulRslt = SKF_DevAuth(hdev, szEncryptedData,    ulEncryptedDataLen);
	ERROR_THROW(ulRslt)
	printf("Authentication successful.n");
	//Change device authentication
	strcpy(new_auth_key, "12345678123456781234567812345678");
	ulRslt = SKF_ChangeDevAuthKey(hdev, (BYTE *)new_auth_key, 16);
	ERROR_THROW(ulRslt)
	printf("Change authentication successful.n");

将认证密钥修改为gmssl中默认的16字节长度的认证密钥
在这里插入图片描述
在查看应用列表时首先提示出错的是SKF_DevAuth函数,也就是认证密钥函数,查看该段代码仅为调用暂未得出为何报错的结论,由于每个功能函数的调用中认证密钥都是必选项,因此剩余函数测试暂未完成。
通过实际编程来看,暂未发现认证密钥出现的必要性,因此若作自实现建议绕过该函数


SKF Dummy引擎分析:

1、 全部SKF接口规范中涉及的函数均已在gmssl中出现,虽然通过-help可以发现如随机数生成等几项调用未留对外调用接口,但是通过skf_lib.c的分析中可知该函数可被调用
2、引擎主要通过SKF_LoadLibrary加载不同厂商库达成兼容不同厂商UK的效果

SKF Engine引擎分析:

1、 由于SKF引擎默认不编译,因此从源代码安装SKF引擎需要在配置中显式启用SKF引擎。通过

./config enable-skfeng;

进行编译,但是其中e_skf.c缺少,无法实现编译,由于gmssl中不提供该引擎的编译代码,因此无法实现代码编译
2、gmssl目前仅有SKF引擎动态库(与厂商动态库不同),但是在编译安装结束后未发现引擎动态库位置,因此暂时无法继续完成测试。

SDF引擎:

1、 sdf引擎与skf引擎整体类似,通过-help首先查看gmssl中显示得功能
Valid options are:
-help Display this summary
-lib val Vendor’s SDF dynamic library
-vendor val Vendor name
-printdevinfo Print device information
-printsm2sign val Print SM2 signing key with key index
-printsm2enc val Print SM2 encryption key with key index
-printrsasign val Print RSA signing key with key index
-printrsaenc val Print RSA encryption key with key index
-accesskey val Access private key with the key index number
-pass val Passphrase source for accessing private key
-importobj val Import data object into device
-exportobj val Export data object from device
-delobj val Delete data object from device
-in infile File to be imported from
-out outfile File to be exported to
2、sdf同样通过-lib指定厂商库,以此方式找到对应厂商设备
在这里插入图片描述
查看插入设备的设备信息

最后

以上就是喜悦豆芽为你收集整理的2021-06-25GMSSL引擎SKF引擎命令:SKF引擎的使用:SKF Dummy引擎分析:SKF Engine引擎分析:SDF引擎:的全部内容,希望文章能够帮你解决2021-06-25GMSSL引擎SKF引擎命令:SKF引擎的使用:SKF Dummy引擎分析:SKF Engine引擎分析:SDF引擎:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部