CN112269698A - 密码机测试装置及用其进行密码机测试的方法 - Google Patents
密码机测试装置及用其进行密码机测试的方法 Download PDFInfo
- Publication number
- CN112269698A CN112269698A CN202011203466.3A CN202011203466A CN112269698A CN 112269698 A CN112269698 A CN 112269698A CN 202011203466 A CN202011203466 A CN 202011203466A CN 112269698 A CN112269698 A CN 112269698A
- Authority
- CN
- China
- Prior art keywords
- command
- command message
- function
- message
- machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000004044 response Effects 0.000 claims abstract description 56
- 238000004806 packaging method and process Methods 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 claims description 135
- 238000005538 encapsulation Methods 0.000 claims description 38
- 238000003860 storage Methods 0.000 claims description 23
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 238000012856 packing Methods 0.000 claims 1
- 230000008901 benefit Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Abstract
本发明提供一种密码机测试装置及用其进行密码机测试的方法,属于密码机功能测试技术领域。所述密码机测试装置预先存储有封装函数,利用密码机测试装置进行密码机测试的方法包括:接收用户指令,所述用户指令包括用于组成命令报文的输入参数;根据所述用户指令调用所述封装函数以生成所述命令报文;发送所述命令报文至密码机;以及接收所述密码机发送的与所述命令报文对应的响应报文。本发明提供的技术方案,具有测试覆盖面广和灵活度高的优点,并且能够有效降低密码机测试的复杂性。
Description
技术领域
本发明涉及密码机功能测试技术领域,具体地涉及一种密码机测试装置及用其进行密码机测试的方法。
背景技术
密码机是以现代密码技术为核心的主机安全模块(HSM,Host Security Module),是一种具有物理安全保护措施的硬件设备。密码机具有自主密钥管理机制,将密码运算过程封装在其内部完成,为业务系统提供安全的应用层密码服务,包括密钥管理、消息验证、数据加密、签名的产生和验证等,保证业务数据产生、传输、接收到处理整个过程的安全性、有效性、完整性和不可抵赖性。
密码机作为主机的外围设备,为主机在一个物理上安全的环境中实现加/或解密运算功能。它通过TCP/IP连接方式接收主机传送过来的命令(command),完成相应的加解密运算,再将运算的结果生成响应消息(response)返回主机。
一般地,HSM主要在实时和联机的环境中,完成系统需要的密钥管理、密码管理(PIN,Personal Identification Number)和消息认证码(MAC,Message AuthenticationCode)计算相关运算功能。
测试装置发送命令给HSM,然后从HSM中接收响应消息。每一条命令和响应消息都包含可变数量的域,这就使得每一调命令根据域的不同而具有不同的长度。为了使数据可以通过串行数据形式的连接被发送,数据需要根据命令格式编码成ASCII码或者十六进制码。
现有的密码机访问方式主要使用发送指令流工具逐条发送指令,即应用系统向密码机请求密码服务时,按指令格式组合成正确的命令报文,发送给与密码机建立的套接字(socket)信道上,并等待接收密码机的应答报文。
虽然这种方式可以自由组合所有可能,但是由于可变域数量多,规则复杂,每一条指令都需要根据规则逐字节拼接,并且有些可变域需要发送十六进制数据,有些则是需要ASCII码,编码需要自己转换,另外命令的长度也需要自行计算,因而这种方法过于复杂,且耗时长,容易出错。
发明内容
本发明实施例的目的是提供一种密码机测试装置及用其进行密码机测试的方法方法,用于解决上述技术问题中的一者或多者。
为了实现上述目的,本发明实施例提供一种利用密码机测试装置进行密码机测试的方法,所述密码机测试装置预先存储有封装函数,所述方法包括:接收用户指令,所述用户指令包括用于组成命令报文的输入参数;根据所述用户指令调用所述封装函数以生成所述命令报文;发送所述命令报文至密码机;以及接收所述密码机发送的与所述命令报文对应的响应报文。
可选的,所述密码机测试装置存储有多个封装函数,每一个所述封装函数对应一种功能的命令报文。
可选的,所述封装函数的参数接口为可变域和具有多个值的固定域。
可选的,在生成所述命令报文前,所述方法还包括:通过所述封装函数对所述输入参数进行有效性判断;以及在判定所述输入参数无效的情况下,将输入参数有误的结果返回给用户。
可选的,所述根据所述用户指令和预先封装的函数生成所述命令报文包括:基于所述封装函数,将所述输入参数的数据格式转换为用于生成所述命令报文的数据格式。
可选的,所述根据所述用户指令和预先封装的函数生成所述命令报文包括:基于所述命令报文的命令代码和所述命令报文的数据元素的长度确定所述命令报文的长度。
可选的,在接收响应报文后,所述方法还包括:将所述响应报文存储在全局变量中。
可选的,所述方法还包括:将所述命令报文和/或所述响应报文记录在日志文件中。
可选的,所述将所述命令报文和/或所述响应报文记录在日志文件中包括:将所述命令报文和/或所述响应报文中的十六进制数据转换为ASCII字符。
另一方面,本发明提供一种密码机测试装置,所述装置包括:函数存储单元,预先存储有封装函数;指令接收单元,用于接收用户指令,所述用户指令包括用于组成命令报文的参数;生成单元,根据所述用户指令调用所述封装函数以生成所述命令报文;发送单元,用于将所述命令报文发送至密码机;以及接收单元,用于接收所述密码机发送的与所述命令报文对应的响应报文。
可选的,所述函数存储单元预先存储有封装函数包括:存储有多个封装函数,每一个所述封装函数对应一种功能的命令报文。
可选的,所述装置还包括:判断单元,用于通过所述封装函数对所述输入参数进行有效性判断,并在判定所述输入参数无效的情况下,将输入参数有误的结果返回给用户。
可选的,所述装置还包括:数据格式转换单元,用于在所述生成单元根据所述用户指令调用所述封装函数以生成所述命令报文时,基于所述封装函数将所述输入参数的数据格式转换为用于生成所述命令报文的数据格式。
可选的,所述装置还包括:长度确定单元,用于在所述生成单元根据所述用户指令调用所述封装函数以生成所述命令报文时,基于所述命令报文的命令代码和所述命令报文的数据元素的长度确定所述命令报文的长度。
可选的,所述装置还包括:报文存储单元,用于将所述响应报文存储在全局变量中。
可选的,所述装置还包括:日志记录单元,用于将所述命令报文和/或所述响应报文记录在日志文件中。
可选的,所述日志记录单元将所述命令报文和/或所述响应报文记录在日志文件中包括:将所述命令报文和/或所述响应报文中的十六进制数据转换为ASCII字符。
另一方面,本发明提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本申请上述任一项所述的用密码机测试装置进行密码机测试的方法。
另一方面,本发明提供一种处理器,用于运行程序,其中,所述程序被运行时用于执行:如上述中任意一项所述的用于密码机测试装置的方法。
通过上述技术方案,具有测试覆盖面广和灵活度高的优点,并且能够有效降低密码机测试的复杂性。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是本发明实施例提供的利用密码机测试装置进行密码机测试的方法的流程示意图;
图2是本发明实施例提供的利用密码机测试装置进行密码机测试的流程示意图;
图3是本发明实施例提供的密码机测试装置的结构框图。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
图1是本发明实施例提供的利用密码机测试装置进行密码机测试的方法的流程示意图。其中,本发明该实施例提供的密码机测试装置中会预先存储有封装函数,在利用密码机测试装置的过程中,可以直接调用所述预先存储的封装函数以自动生成命令报文完成对密码机的测试。
如图1所示,所述利用密码机测试装置进行密码机测试的方法包括步骤S110至S140。
在步骤S110,接收用户指令。
其中,所述用户指令包括用于组成命令报文的输入参数,所述输入参数的具体构成与想要生成的命令报文的功能有关。所述命令报文的功能可以为以下任意一者:命令密码机生成秘钥、命令密码机加密、命令密码机解密、命令密码机签名、命令密码机验证签名、命令密码机计算摘要MAC等。
例如,在所述命令报文的功能为命令密码机生成秘钥的情况下,所述用户指令包含的内容有秘钥类型和秘钥标识等,在所述命令报文的功能为命令密码机加密的情况下,所述用户指令包含的输入参数需要有待加密数据和秘钥等。
所述用户指令接收的方式可以是现有的任意方式,例如用户可以通过鼠标、键盘和/或触控屏等外接设备输入所述用户指令。
在步骤S120,根据所述用户指令调用所述封装函数以生成所述命令报文。
针对不同功能的命令报文,由于其结构及组成方式不同,因此密码机测试装置可以存储有多个封装函数,并使得每一种封装函数对应每一种功能的命令报文。
所述封装函数可以根据命令报文的功能和用户需求而具有以下一种或多种功能:确定命令报文的命令代码、计算命令报文长度、数据有效性判断和参数逻辑判断等。
在预先封装有封装函数并接收到了用户指令的情况下,可以直接调用所述封装函数的参数接口,将所述用户指令中的参数输入至所述参数接口中,即可完成命令报文的自动生成。
在步骤S130,发送所述命令报文至密码机。
密码机与密码机测试装置之间的通信方式可以是现有的任意方式,例如通过双绞线(twisted pair,TP)将命令报文发送至密码机,同样也可以以该连接方式接收来自密码机的响应报文。本发明实施例对所述密码机与密码机测试装置之间的具体通信方式不进行限制。
在步骤S140,接收密码机发送的与所述命令报文对应的响应报文。
密码机在接收到密码机测试装置发送命令报文后,会对所述命令报文进行解析并执行相应操作,操作执行完成后,会向密码机测试装置返回一个与所述命令报文对应的响应报文。
例如,在所述命令报文的功能为命令密码机生成秘钥的情况下,所述响应报文中会包含由密码机生成的秘钥;在所述命令报文的功能为命令密码机加密的情况下,所述响应报文中会包含由密码机加密后的密文;在所述命令报文的功能为命令密码机解密的情况下,所述响应报文中会包含由密码机解密后的明文。
本发明该实施例提供的方案,具有测试覆盖面广和灵活度高的优点,并且能够有效降低密码机测试的复杂性。
在接收到密码机反馈的与命令报文对应的响应报文后,为了便于后续使用和避免数据丢失,可以将所述响应报文存储在全局变量中。具体的,可以在全局变量中存储密文或者密钥等数据。
例如,在测试密码机的生成密钥功能时,可以将包括所述密钥的命令报文存储在有关密钥的全局变量中,在进行密码机加密功能测试时,可以直接调用所述全局变量中的密钥自动完成对明文进行加密的处理。
本发明上述实施例提供的方案,能够为未来的测试自动化打下基础。
为了能够增强对密码机进行测试的流程的可追溯性,本发明实施例提供的方案还可以包括:将命令报文和/或响应报文记录在日志文件中。也就是说,可以由测试装置对每一条报文都进行记录。
进一步地,为了便于复现和阅读,还可以将发送的命令报文与接收的响应报文中的数据格式转换成ASCII字符记录在日志文件中。
其中,所述数据格式转换可以仅将命令报文和/或所述响应报文中的十六进制数据转换为ASCII字符。
本发明实施例提供的在根据用户指令调用封装函数生成命令报文的过程中,根据要生成的命令报文的功能的不同,基于用户指令和封装函数生成命令报文的过程略有差异。
例如,可以将封装函数的参数接口设置有可变域和具有多个值的固定域,对于固定值的固定域不提供参数接口。
例如,可以基于封装函数先对用户指令中的输入参数的有效性进行判断,在判断输入参数均为有效参数的情况下,可以基于所述输入参数生成命令报文,在判断输入参数中有部分参数无效的情况下,需要将输入参数有误的结果返回给用户,由用户对输入参数进行修正或者输入新的输入参数等。
例如,在基于封装函数生成命令报文的过程中,由于命令报文中不同的域限定的数据格式不同,因此可以由所述封装函数将输入参数的数据格式转换成用于生成命令报文的数据格式。
例如,在基于输入参数生成命令的报文过程中,生成的命令报文的长度可以直接由封装函数进行计算。具体的,封装函数根据生成的命令报文中的命令代码的长度和数据元素的长度的总和确定命令报文的长度。
本发明该实施例提供的上述技术方案,基于测试装置内部预先封装的封装函数,可以有效降低测试流程的复杂度,
现以具体实施例来详细解释本发明实施例提供的技术方案。
报文命令主要由以下三部分组成:报文长度、命令代码和数据元素。本发明该实施例涉及的报文缩写如下表1所示。
表1
命令报文1:命令报文用于使得密码机产生一条随机密钥,并可选的存储到密码机内。
表2
域 | 说明 |
报文头 | 整条命令报文长度,由函数接口计算 |
命令代码 | KR,固定域,必须有 |
密钥类型 | 固定域,必须有 |
密钥标识 | 固定域,必须有 |
密钥存储标识 | 可选域 |
密钥索引 | 可选域,仅当密钥存储标识域存在才存在 |
密钥标签长度 | 可选域,仅当密钥存储标识域存在才存在 |
密钥标签 | 可选域,仅当密钥存储标识域存在才存在 |
上述表2示出了用于测试密码机生成密钥功能的命令报文的结构。其中,该命令报文的命令代码是KR,数据元素由包括从密钥类型到密钥标签的所有域组成,报文头中的整条命令报文长度根据命令代码和数据元素的长度总和计算得到。
基于该命令报文的结构,预先封装的封装函数为:
KR_genKey(keytype_3H,keytag_1A,keystore_1A=”,keyid_4N=”,keytalelen_2N=”,keytable_0_16A=”)。
有关该封装函数的解释说明如下:
报文头:此项是整条命令报文的长度,由封装函数计算,不用做为函数接口参数输入;
命令代码:此项是具有固定值的固定域“KR”,因此不必做为函数接口参数输入;
密钥类型:函数接口参数为keytype_3H,此项是具有多值的固定域,必须有的项,由3个16进制字符组成,比如“001”,此项需要根据用户需求输入;
密钥标识:函数接口参数为keytag_1A,此项是具有多值的固定域,必须有的项,由1个ASCII字符组成,比如“P”可以代表“16字节SM1密钥”,此项需要根据用户需求输入。
密钥存储标识:函数接口参数为keystore_1A,此项是可选域,由1个ASCII表示,有需求时可以由用户输入;
密钥索引:函数接口参数为keyid_4N,此项是可选域,由4个十进制数字符组成,有需求时可以由用户输入;
密钥标签长度:函数接口参数为keytalelen_2N,此项是可选域,由2个十进制数字符组成,有需求时可以由用户输入;
密钥标签:函数接口参数为keytable_0_16A。此项是可选域,有需求时可以由用户输入。
基于上述有关于该封装函数的接口定义的解释中可以看出,参数keytype_3H和keytag_1A为固定域,因此作为函数输入参数且没有默认值,后面四个参数均是可选域,因此有默认值且为“空”,可以不给输入参数。
此外,封装函数会对输入参数进行有效性判断,如果密钥存储标识域存在,但是密钥索引域不存在,即逻辑出现错误,此时封装函数会返回错误给用户。
命令报文2:命令报文用于使得密码机对输入数据进行加密。
表3
域 | 描述 |
报文头 | 整条命令长度,由函数接口计算 |
命令代码 | S3,固定域 |
加密算法模式 | 固定域 |
密钥类型 | 固定域 |
密钥 | 固定域 |
密钥分散级数 | 固定域 |
密钥分散因子 | 可选域,当密钥分散级数为0时,此项为空 |
会话密钥模式 | 固定域 |
会话密钥因子 | 可选域,仅当会话密钥模式取值为01/02/05时存在 |
PAD标识 | 固定域 |
输入数据长度 | 固定域 |
输入数据 | 固定域 |
IV | 可选域,仅当加密算法模式为01/02/03时存在。 |
上述表3示出了用于测试密码机对输入数据进行加密功能的命令报文的结构。其中,该命令报文的代码是S3,数据元素由包括从加密算法模式到IV的所有域组成,报文头中的整条命令报文长度根据命令代码和数据元素的长度总和计算得到。
基于该命令报文的结构,预先封装的封装函数为:
S3_ENdata(mdl_2H,keytype_3H,keytagId,fnLevel_2H,fnData=”,skeymod_2H,skey=”,Pad_2H,dDataLen_4H=‘’,dData_nB=‘’,IVdata=”)。
在该封装函数中,有三个为可选域:fnData,skey,dDataLen_4H。
在调用上述封装函数生成命令报文时,直接输入需要的参数即可,有默认值的参数可以不输入,该封装函数可以根据输入的参数值判断可选域是否为空。
该封装函数具有数据格式转换功能的情况下,用户可以不用严格按照上述数据格式的要求输入的参数。例如,参数dData_nB是十六进制数,用户可以直接输入ASCII字符,所述封装函数内部会自动将所述用户输入的ASCII字符转换成十六进制数。
以一具体封装函数调用示例:S3_ENdata("00","000","K0105","00","00","05",“16”,“0102030405060708”)。
由于该命令报文中有三个可选域为空,实际参数中除了命令代码外有8个固定域,上述示例中共输入了8个参数,因而可以自动生成测试密码机利用密钥“K0105”对输入数据“0102030405060708”进行加密的命令报文。
在上述示例中,用户指令中仅包含8个输入参数即可,在封装函数识别到接收的第四个参数为“00”时,会默认第五个参数是空,并将剩余的输入参数顺延至第五个参数,并以此类推完成命令代码的生成。
响应报文3:基于命令报文使得密码机对密文解密后,由密码机发送的响应报文。
表4
上述表4示出了由密码机基于命令报文返回的响应报文的格式。
现以一具体响应报文进行举例:
0018S400001030ef43ce2c8acf3e1d78da99660ff34a
有关上述响应报文的说明如下:
报文头:0018,用于表示报文长度;
响应代码:S4;
错误码:00,说明返回成功;
密文长度:0010,此为16进制表示的密文长度,即密文长度为十进制32字节;
密文:30ef43ce2c8acf3e1d78da99660ff34a,此为二进制的数据块。
在测试装置接收到上述响应报文时,封装函数会自动根据响应报文中的错误码判断发送至密码机的命令是否执行成功,如果成功,则将该密文存储到一个全局变量中,并提示返回成功,若不成功,则全局变量为空,并返回上述错误码,以便于用户解析密码机执行命令报文失败原因。
有关于测试装置与密码机进行交互过程中,由测试装置发送的命令报文和测试装置接收的响应报文都会记录在日志文件中。例如,上述响应中的密文为二进制的数据块,因此可以将所述密文转换为ASCII进行记录以方便后续查阅和追溯。
基于上述有关命令报文的解释中可以看出,本发明该实施例提供的预先封装在测试装置中的封装函数中定义了基础且全面的流程,在实际应用过程中,用户可以根据需要选择要发送的命令报文对封装函数中定义的流程进行裁剪以完成定制逻辑交互,这样的方案在简化用户操作的基础上能够获得满足用户需求的命令报文。
本发明实施例还提供了一种利用密码机测试装置进行密码机测试的流程,图2是该流程的示意图。
如图2所示,将预先封装的封装函数按照其功能划分为逻辑控制和数据转换两部分。
对于密码机与测试装置来说,这两者之间的交互需要遵循一定的规则,例如在测试密码机的加密功能之前,需要先拥有密钥,在测试密码机的解密功能之前,需要先获得密文,所述逻辑控制部分就是用于保证密码机与测试装置交互逻辑的正确性。其中,所述逻辑控制部分以封装函数的接口形式呈现,用户可以根据需求对逻辑控制部分进行裁剪,以完成特定的测试流程。
图2中的数据转换部分主要用于不同进制数据之间的转换以及报文格式正确性判断。密码机接收的报文和发送的报文都有具体的格式和数据类型要求,数据转换部分则将相关的规则封装起来,并向用户提供简单易用的接口。
具体的,逻辑控制部分具有的功能可以包括封装函数调用步骤控制、参数类型控制和全局参数存取等,数据转换部分具有的功能可以包括:十六进制数据转换、固定域判断和可变域判断等。
图2示出的流程中,测试装置与密码机之间通过套接字(socket)信道传输数据,具体传输过程包括通过测试接口给密码机发送命令报文以及从密码机接收返回的响应报文。
图3是本发明实施例提供的密码机测试装置的结构框图。如图3所示,本发明实施例提供的密码机测试装置包括:函数存储单元31、指令接收单元32、生成单元33、发送单元34和接收单元35。其中,所述函数存储单元31预先存储有封装函数,指令接收单元32用于接收用户指令,生成单元33用于根据所述用户指令调用所述封装函数以生成所述命令报文,发送单元34用于将所述命令报文发送至密码机,接收单元35用于接收密码机发送的与所述命令报文对应的响应报文。
其中,所述用户指令包括用于组成命令报文的具体参数,所述具体参数取决于用户想要生成的命令报文。
其中,考虑到依据生成的命令报文的功能的不同,可以在函数存储单元31中预先存储多个封装函数,每个封装函数对应一种功能的命令报文。在生成单元33生成命令报文的过程中,可以依据用户输入指令中输入参数对封装函数进行裁剪,以得到符合用户需求的命令报文。
在一些可选实施例中,密码机测试装置还可以包括用于通过所述封装函数对所述输入参数进行有效性判断的判断单元,在判定所述输入参数有效的情况下,允许生成单元根据用户指令调用封装函数以生成命令报文,在判定所述输入参数无效的情况下,将输入参数有误的结果返回给用户。
在一些可选实施例中,密码机测试装置还包括长度确定单元,用于在所述生成单元根据所述用户指令调用所述封装函数以生成所述命令报文时,基于所述命令报文的命令代码和所述命令报文的数据元素的长度确定所述命令报文的长度。
在一些可选实施例中,密码机测试装置还包括报文存储单元,用于将接收的响应报文存储在全局变量中。
在一些可选实施例中,密码机测试装置还包括日志记录单元,用于将所述命令报文和/或所述响应报文记录在日志文件中。
其中,所述日志记录单元将所述命令报文和/或所述响应报文记录在日志文件中包括:将所述命令报文和/或所述响应报文中的十六进制数据转换为ASCII字符。
在一些可选实施例中,密码机测试装置还包括数据格式转换单元,用于在所述生成单元根据所述用户指令调用所述封装函数以生成所述命令报文时,基于所述封装函数将所述输入参数的数据格式转换为用于生成所述命令报文的数据格式。
其中,所述数据格式转换单元还可以用于将记录在日志文件中的命令报文和/或所述响应报文中的十六进制数据转换为ASCII字符。
有关于本发明上述实施例提供的密码机测试装置的具体细节及益处,可参阅上述针对本发明提供的用密码机测试装置进行密码机测试的方法的描述,于此不再赘述。
本发明实施例还提供了一种机器可读存储介质,该指令用于使得机器执行本申请上述任意实施例提供的用密码机测试装置进行密码机测试的方法。
本发明实施例还提供了一种处理器,用于运行程序,所述程序被运行时用于执行本申请上述任意实施例提供的用密码机测试装置进行密码机测试的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (19)
1.一种利用密码机测试装置进行密码机测试的方法,其特征在于,所述密码机测试装置预先存储有封装函数,所述方法包括:
接收用户指令,所述用户指令包括用于组成命令报文的输入参数;
根据所述用户指令调用所述封装函数以生成所述命令报文;
发送所述命令报文至密码机;以及
接收所述密码机发送的与所述命令报文对应的响应报文。
2.根据权利要求1所述的方法,其特征在于,所述密码机测试装置存储有多个封装函数,每一个所述封装函数对应一种功能的命令报文。
3.根据权利要求1或2所述的方法,其特征在于,所述封装函数的参数接口为可变域和具有多个值的固定域。
4.根据权利要求1所述的方法,其特征在于,在生成所述命令报文前,所述方法还包括:
通过所述封装函数对所述输入参数进行有效性判断;以及
在判定所述输入参数无效的情况下,将输入参数有误的结果返回给用户。
5.根据权利要求1所述的方法,其特征在于,所述根据所述用户指令和预先封装的函数生成所述命令报文包括:
基于所述封装函数,将所述输入参数的数据格式转换为用于生成所述命令报文的数据格式。
6.根据权利要求1所述的方法,其特征在于,所述根据所述用户指令和预先封装的函数生成所述命令报文包括:
基于所述命令报文的命令代码和所述命令报文的数据元素的长度确定所述命令报文的长度。
7.根据权利要求1所述的方法,其特征在于,在接收响应报文后,所述方法还包括:
将所述响应报文存储在全局变量中。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述命令报文和/或所述响应报文记录在日志文件中。
9.根据权利要求8所述的方法,其特征在于,所述将所述命令报文和/或所述响应报文记录在日志文件中包括:
将所述命令报文和/或所述响应报文中的十六进制数据转换为ASCII字符。
10.一种密码机测试装置,其特征在于,所述装置包括:
函数存储单元,预先存储有封装函数;
指令接收单元,用于接收用户指令,所述用户指令包括用于组成命令报文的参数;
生成单元,根据所述用户指令调用所述封装函数以生成所述命令报文;
发送单元,用于将所述命令报文发送至密码机;以及
接收单元,用于接收所述密码机发送的与所述命令报文对应的响应报文。
11.根据权利要求10所述的装置,其特征在于,所述函数存储单元预先存储有封装函数包括:存储有多个封装函数,每一个所述封装函数对应一种功能的命令报文。
12.根据权利要求10所述的装置,其特征在于,所述装置还包括:
判断单元,用于通过所述封装函数对所述输入参数进行有效性判断,并在判定所述输入参数无效的情况下,将输入参数有误的结果返回给用户。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括:
数据格式转换单元,用于在所述生成单元根据所述用户指令调用所述封装函数以生成所述命令报文时,基于所述封装函数将所述输入参数的数据格式转换为用于生成所述命令报文的数据格式。
14.根据权利要求10所述的装置,其特征在于,所述装置还包括:
长度确定单元,用于在所述生成单元根据所述用户指令调用所述封装函数以生成所述命令报文时,基于所述命令报文的命令代码和所述命令报文的数据元素的长度确定所述命令报文的长度。
15.根据权利要求10所述的装置,其特征在于,所述装置还包括:
报文存储单元,用于将所述响应报文存储在全局变量中。
16.根据权利要求10所述的装置,其特征在于,所述装置还包括:
日志记录单元,用于将所述命令报文和/或所述响应报文记录在日志文件中。
17.根据权利要求16所述的装置,其特征在于,所述日志记录单元将所述命令报文和/或所述响应报文记录在日志文件中包括:将所述命令报文和/或所述响应报文中的十六进制数据转换为ASCII字符。
18.一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本申请上述权利要求1-9中任一项所述的用密码机测试装置进行密码机测试的方法。
19.一种处理器,其特征在于,用于运行程序,其中,所述程序被运行时用于执行:如权利要求1-9中任意一项所述的用于密码机测试装置的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011203466.3A CN112269698A (zh) | 2020-11-02 | 2020-11-02 | 密码机测试装置及用其进行密码机测试的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011203466.3A CN112269698A (zh) | 2020-11-02 | 2020-11-02 | 密码机测试装置及用其进行密码机测试的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112269698A true CN112269698A (zh) | 2021-01-26 |
Family
ID=74344597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011203466.3A Pending CN112269698A (zh) | 2020-11-02 | 2020-11-02 | 密码机测试装置及用其进行密码机测试的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112269698A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110011794A (zh) * | 2019-04-11 | 2019-07-12 | 北京智芯微电子科技有限公司 | 密码机密钥属性的测试方法 |
CN110380932A (zh) * | 2019-07-17 | 2019-10-25 | 中国工商银行股份有限公司 | 用于安全设备的测试方法和装置、以及测试系统 |
-
2020
- 2020-11-02 CN CN202011203466.3A patent/CN112269698A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110011794A (zh) * | 2019-04-11 | 2019-07-12 | 北京智芯微电子科技有限公司 | 密码机密钥属性的测试方法 |
CN110380932A (zh) * | 2019-07-17 | 2019-10-25 | 中国工商银行股份有限公司 | 用于安全设备的测试方法和装置、以及测试系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110391900B (zh) | 基于sm2算法的私钥处理方法、终端及密钥中心 | |
CN103563290B (zh) | 公共加密体系结构服务中组合密钥控制信息的方法和系统 | |
CN110460439A (zh) | 信息传输方法、装置、客户端、服务端及存储介质 | |
CN111131278B (zh) | 数据处理方法及装置、计算机存储介质、电子设备 | |
CN110868287B (zh) | 一种认证加密密文编码方法、系统、装置及存储介质 | |
CN104639534A (zh) | 网站安全信息的加载方法和浏览器装置 | |
US20130103954A1 (en) | Key usage policies for cryptographic keys | |
CN100401309C (zh) | 税控设备软件版本智能升级加密验证方法 | |
US8675871B2 (en) | Protecting a control vector in an optional block of a standard key block | |
CN101627390A (zh) | 用于程序状态数据在电子设备中的安全存储的方法 | |
CN110929291A (zh) | 一种存取文本文件的方法、装置和计算机可读存储介质 | |
CN109787768A (zh) | 一种身份验证配置方法、装置及计算机可读存储介质 | |
CN109495459A (zh) | 媒体数据加密方法、系统、设备及存储介质 | |
CN103457742A (zh) | 一种基于usb key的安全套件库系统 | |
CN109697370A (zh) | 数据库数据加解密方法、装置、计算机设备和存储介质 | |
CN108111622A (zh) | 一种下载白盒库文件的方法、装置及系统 | |
CN108416224B (zh) | 一种数据加解密方法及装置 | |
CN112270001A (zh) | 一种密钥管理方法、装置、服务器、介质和系统 | |
CN110225028A (zh) | 一种分布式防伪系统及其方法 | |
CN109711178A (zh) | 一种键值对的存储方法、装置、设备及存储介质 | |
CN117081740A (zh) | 基于密码机资源池的密钥管理方法及装置 | |
CN112269698A (zh) | 密码机测试装置及用其进行密码机测试的方法 | |
CN113489723B (zh) | 数据传输方法、系统、计算机设备及存储介质 | |
CN113672955B (zh) | 一种数据处理方法、系统及装置 | |
CN115499118A (zh) | 报文密钥生成、文件加密、解密方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |