CN103746816B - 一种多功能认证设备及其工作方法 - Google Patents
一种多功能认证设备及其工作方法 Download PDFInfo
- Publication number
- CN103746816B CN103746816B CN201410053891.7A CN201410053891A CN103746816B CN 103746816 B CN103746816 B CN 103746816B CN 201410053891 A CN201410053891 A CN 201410053891A CN 103746816 B CN103746816 B CN 103746816B
- Authority
- CN
- China
- Prior art keywords
- mark
- interrupt
- button
- bluetooth
- return
- 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.)
- Active
Links
Abstract
本发明公开了一种多功能认证设备及其工作方法,该方法包括以下步骤:多功能认证设备上电;多功能认证设备执行初始化操作;多功能认证设备获取功能选择信息,根据该功能选择信息,执行智能密钥功能的流程或动态口令功能的流程。其中,功能选择信息包括用户按键信息和/或多功能认证设备与上位机之间的连接状态。本发明提供的多功能认证设备,支持USB接口和蓝牙接口,实现多通道认证机制,且具备智能密钥功能、动态口令功能和读卡器功能,增加了人机交互功能,降低了对上位机的环境安全的依赖程度,提高了身份认证的安全性。
Description
技术领域
本发明涉及信息安全领域,特别涉及一种多功能认证设备及其工作方法。
背景技术
随着信息技术的发展,信息安全的重要性也与日俱增,因此,身份认证作为信息安全防护的第一关,承担着至关重要的作用。基于现有的身份认证技术,常用的认证设备主要包括智能密钥设备和动态口令设备,用于确保只有合法用户才能够访问应用系统并使用服务。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
一方面,现有的智能密钥设备通常只支持具有USB接口的设备,无法兼容使用其他通信方式的设备;另一方面,现有的智能密钥设备和动态口令设备是两个独立的设备,设备的集成性差,降低了资源的利用率和用户的使用体验。
发明内容
本发明提供了一种多功能认证设备及其工作方法,以解决现有技术中认证设备兼容性差和集成性差的缺陷。
本发明提供了一种多功能认证设备的工作方法,包括以下步骤:
Ⅰ、所述多功能认证设备上电;
Ⅱ、所述多功能认证设备执行初始化操作;
Ⅲ、所述多功能认证设备获取功能选择信息,根据所述功能选择信息,执行智能密钥功能的流程或动态口令功能的流程;
所述功能选择信息包括用户按键信息和/或所述多功能认证设备与上位机之间的连接状态;
所述步骤Ⅲ,具体包括:
所述多功能认证设备获取用户按键信息,根据所述用户按键信息,执行智能密钥功能的流程或动态口令功能的流程;
或者,
所述多功能认证设备获取自身与上位机之间的连接状态,根据自身与上位机之间的连接状态,执行智能密钥功能的流程或动态口令功能的流程;
或者,
所述多功能认证设备获取用户按键信息以及自身与上位机之间的连接状态,根据所述用户按键信息以及自身与所述上位机之间的连接状态,执行智能密钥功能的流程或动态口令功能的流程;
或者,
ⅰ、所述多功能认证设备执行第一功能流程,并在根据所述用户按键信息监测到第一预设按键被触发时,执行步骤ⅱ;
ⅱ、所述多功能认证设备执行初始化操作,执行第二功能流程,并在根据所述用户按键信息监测到第二预设按键被触发时,执行初始化操作,并返回步骤ⅰ;
所述第一功能流程为智能密钥功能的流程时,所述第二功能流程为动态口令功能的流程;所述第一功能流程为动态口令功能的流程时,所述第二功能流程为智能密钥功能的流程。
本发明还提供了一种多功能认证设备,包括:
初始化模块,用于执行初始化操作;
第一功能模块,用于执行智能密钥功能的流程;
第二功能模块,用于执行动态口令功能的流程;
获取模块,用于获取功能选择信息;
选择模块,用于根据所述获取模块获取的所述功能选择信息触发所述第一功能模块执行智能密钥功能的流程,或者触发所述第二功能模块执行动态口令功能的流程;
所述功能选择信息包括用户按键信息和/或所述多功能认证设备与上位机之间的连接状态;
所述选择模块,具体用于根据所述用户按键信息触发所述第一功能模块执行智能密钥功能的流程,或者触发所述第二功能模块执行动态口令功能的流程;
或者,
根据所述连接状态触发所述第一功能模块执行智能密钥功能的流程,或者触发所述第二功能模块执行动态口令功能的流程;
或者,
根据所述用户按键信息和所述连接状态触发所述第一功能模块执行智能密钥功能的流程,或者触发所述第二功能模块执行动态口令功能的流程;
或者,
ⅰ、触发所述第一功能模块执行智能密钥功能的流程,并在根据所述用户按键信息监测到第一预设按键被触发时,执行步骤ⅱ;
ⅱ、触发所述初始化模块执行初始化操作,触发所述第二功能模块执行动态口令功能的流程,并在根据所述用户按键信息监测到第二预设按键被触发时,触发所述初始化模块执行初始化操作,并返回步骤ⅰ;
或者,
ⅲ、触发所述第二功能模块执行动态口令功能的流程,并在根据所述用户按键信息监测到第一预设按键被触发时,执行步骤ⅳ;
ⅳ、触发所述初始化模块执行初始化操作,触发所述第一功能模块执行执行智能密钥功能的流程,并在根据所述用户按键信息监测到第二预设按键被触发时,触发所述初始化模块执行初始化操作,并返回步骤ⅲ。
本发明达到的有益效果:本发明提供的多功能认证设备,支持USB接口和蓝牙接口,实现多通道认证机制,且具备智能密钥功能、动态口令功能和读卡器功能,增加了人机交互功能,降低了对上位机的环境安全的依赖程度,提高了身份认证的安全性。
附图说明
图1为本发明实施例中的一种多功能认证设备的工作方法流程图;
图2至图8为本发明实施例中的一种多功能认证设备执行智能密钥功能的流程图;
图9至图15为本发明实施例中的一种多功能认证设备执行动态口令功能的流程图;
图16为本发明实施例中的另一种多功能认证设备的工作方法流程图;
图17至图19为本发明实施例中的另一种多功能认证设备执行智能密钥功能的流程图;
图20至图26为本发明实施例中的另一种多功能认证设备执行动态口令功能的流程图;
图27为本发明实施例中的另一种多功能认证设备执行动态口令功能时,对定时器中断的处理流程图;
图28为本发明实施例中的一种多功能认证设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种多功能认证设备的工作方法,包括以下步骤:
Ⅰ、多功能认证设备上电。
Ⅱ、多功能认证设备执行初始化操作。
Ⅲ、多功能认证设备获取功能选择信息,根据该功能选择信息,执行智能密钥功能的流程或动态口令功能的流程。
其中,功能选择信息包括用户按键信息和/或所述多功能认证设备与上位机之间的连接状态;
相应地,多功能认证设备可以获取用户按键信息,根据该用户按键信息执行智能密钥功能的流程或动态口令功能的流程;也可以获取自身与上位机之间的连接状态,根据该连接状态执行智能密钥功能的流程或动态口令功能的流程。
具体地,多功能认证设备可以对自身与上位机之间的连接状态进行判断,如果多功能认证设备通过USB接口与上位机进行连接,则执行智能密钥功能的流程;如果多功能认证设备通过蓝牙接口与上位机进行连接,则执行智能密钥功能或动态口令功能的流程;如果多功能认证设备没有与上位机建立连接,则执行动态口令功能的流程。
多功能认证设备还可以执行以下操作流程:
ⅰ、多功能认证设备执行第一功能流程,并在根据用户按键信息监测到第一预设按键被触发时,执行步骤ⅱ;
ⅱ、多功能认证设备执行初始化操作,执行第二功能流程,并在根据用户按键信息监测到第二预设按键被触发时,执行初始化操作,并返回步骤ⅰ;
本实施例中,第一功能流程为智能密钥功能的流程时,第二功能流程为动态口令功能的流程;第一功能流程为动态口令功能的流程时,第二功能流程为智能密钥功能的流程。第一预设按键和第二预设按键可以为同一按键,也可以不同的按键。
多功能认证设备还可以获取用户按键信息以及自身与上位机之间的连接状态,根据该用户按键信息以及自身与上位机之间的连接状态,执行智能密钥功能的流程或动态口令功能的流程。
具体地,多功能认证设备可以执行以下操作流程:
①、多功能认证设备对自身与上位机之间的连接状态进行判断,如果多功能认证设备通过USB接口与上位机建立连接,则执行步骤②;如果多功能认证设备通过蓝牙接口与上位机建立连接,则执行步骤②或步骤③;如果多功能认证设备没有与上位机建立连接,则执行步骤③;
②、多功能认证设备执行智能密钥功能的流程,在根据用户按键信息监测到第三预设按键被触发时,执行初始化操作,并执行步骤③;
③、多功能认证设备执行动态口令功能的流程,在根据用户按键信息监测到第四预设按键被触发时,执行初始化操作,并返回步骤②。
其中,第三预设按键和第四预设按键可以为同一按键,也可以不同的按键。
本发明实施例中,多功能认证设备接收到中断后,可以通过自身的硬件将相应的中断标识置位。具体地,多功能认证设备接收到定时器中断后,将定时器中断标识置位;多功能认证设备接收到插卡中断后,将插卡中断标识置位;多功能认证设备接收到拔卡中断后,将拔卡中断标识置位;多功能认证设备接收到插USB中断后,将插USB中断标识置位;多功能认证设备接收到拔USB中断后,将拔USB中断标识置位;多功能认证设备接收到蓝牙连接中断后,将蓝牙连接中断标识置位;多功能认证设备接收到蓝牙断开中断后,将蓝牙断开中断标识置位;多功能认证设备接收到USB数据中断后,将USB数据中断标识置位;多功能认证设备接收到蓝牙数据中断后,将蓝牙数据中断标识置位;多功能认证设备接收到按键中断后,将按键中断标识置位。
基于上述中断机制,本发明实施例中的多功能认证设备可以在接收到中断后,根据接收到的中断的类型执行相应的操作,相应的工作方法如图1所示。需要说明的是,下文所称的“设备”均指代本发明实施例中的多功能认证设备。图1所示的本发明实施例中的一种多功能认证设备的工作流程图,包括以下步骤:
步骤101,设备上电。
步骤102,设备执行初始化操作。
具体地,设备上电后,可以对系统时钟、I/O口、定时器中断、蓝牙数据接口、USB数据接口、状态寄存器和数据缓冲区进行初始化。其中,对蓝牙数据接口的初始化可以包含对蓝牙数据中断的初始化,对USB数据接口的初始化可以包含对USB数据中断的初始化,对I/O口的初始化可以包含对外部中断的初始化,外部中断可以包括按键中断、定时器中断、插USB中断、USB数据中断、拔USB中断、蓝牙连接中断、蓝牙数据中断、蓝牙断开中断、插卡中断和拔卡中断。数据缓冲区包括按键数据缓冲区和接收数据缓冲区。
本实施例中,状态寄存器可以包括主菜单状态寄存器,相应地,设备可以将主菜单状态寄存器中的数据设置为第一预设值,反选显示第一菜单信息,例如,“进入智能密钥功能”;或者,将主菜单状态寄存器中的数据设置为第二预设值,反选显示第二菜单信息,例如,“进入动态口令功能”。
另外,状态寄存器还可以包括卡槽状态寄存器,相应地,设备可以通过将卡槽状态寄存器中的卡槽状态信息设置为第三预设值的方式,将卡槽状态设置为无卡状态。
步骤103,设备关闭除按键中断和定时器中断之外的其他外设中断,将定时器的计数值设置为第一初始值。
其中,除按键中断和定时器中断之外的所有外设中断可以包括插USB中断、USB数据中断、拔USB中断、蓝牙连接中断、蓝牙数据中断、蓝牙断开中断、插卡中断和拔卡中断。第一初始值可以为零,也可以为非零的常数,例如,60。
步骤104,设备等待接收中断。
步骤105,设备对接收到的中断进行判断,如果是定时器中断,则执行步骤106;如果是按键中断,则执行步骤108。
步骤106,设备关闭中断,更新定时器的计数值。
具体地,设备可以将定时器的计数值加第一预设步长,将得到的结果作为更新后的定时器的计数值;也可以将定时器的计数值减第一预设步长,将得到的结果作为更新后的定时器的计数值。
例如,第一预设步长为1,当设备通过步骤103将定时器的计数值设置为零时,设备在接收到定时器中断后,将定时器的计数值加1,将得到的结果作为更新后的定时器的计数值。
步骤107,设备判断定时器的计数值是否达到第一阈值,如果是,则设备关机,结束流程;否则,将定时器中断标识复位,打开按键中断和定时器中断,并返回步骤104。
例如,第一阈值为60。
步骤108,设备将定时器的计数值设置为第一初始值,关闭中断,扫描按键,获取被按下的按键的键值。
步骤109,设备根据获取的键值,对被按下的按键进行判断,如果是方向键,则执行步骤110;如果是电源键,则执行步骤112;如果是确认键,则执行步骤114;如果是其他键,则执行步骤113。
具体地,设备可以对获取的键值进行判断,如果该键值为第四预设值或第五预设值,则确定被按下的按键为方向键;如果该键值为第六预设值,则确定被按下的按键为确认键;如果该键值为第七预设值,则确定被按下的按键为电源键。
本实施例中,方向键可以包括上翻键和下翻键。相应地,当获取的键值为第四预设值时,设备可以确定被按下的按键为上翻建;当获取的键值为第五预设值时,设备可以确定被按下的按键为下翻建。
步骤110,设备根据被按下的按键,对主菜单状态寄存器中的数据进行更新。
具体地,当被按下的按键为上翻建时,设备可以将主菜单状态寄存器中的数据与第八预设值相加,将得到的和减去第二预设步长,再以第八预设值为模数,对得到的差值取模,将得到的结果作为更新后的主菜单状态寄存器中的数据;当被按下的按键为下翻建时,设备可以将主菜单状态寄存器中的数据与第二预设步长相加,将得到的结果作为更新后的主菜单寄存器中的数据。其中,主菜单状态寄存器中的数据的初始值为第一预设值,例如,1;第八预设值为设备的菜单数,例如,2。
步骤111,设备根据主菜单状态寄存器中的数据,显示对应的菜单信息,将按键中断标识复位,打开按键中断和定时器中断,并返回步骤104。
具体地,设备可以对主菜单状态寄存器中的数据进行判断,如果该数据为第一预设值,则反选显示第一菜单信息;如果该数据为第二预设值,则反选显示第二菜单信息。其中,第一菜单信息是与智能密钥功能对应的菜单信息,例如,“进入智能密钥功能”;第二菜单信息是与动态口令功能对应的菜单信息,例如,“进入动态口令功能”。
步骤112,设备判断电源键被按下的时长是否达到第一预设时长,如果是,则设备关机,结束流程;否则,执行步骤113。
例如,第一预设时长为2秒。
步骤113,设备将按键中断标识复位,打开按键中断和定时器中断,并返回步骤104。
步骤114,设备将按键中断标识复位,打开中断,根据主菜单状态寄存器中的数据,打开与该数据对应的数据接口,并执行与该数据对应的功能流程。
具体地,设备可以对主菜单状态寄存器中的数据进行判断,如果该数据为第一预设值,则将按键中断标识复位,打开蓝牙数据接口、USB数据接口和中断,执行智能密钥功能的流程,详见步骤201至步骤272;如果该数据为第二预设值,则将按键中断标识复位,打开蓝牙数据接口和中断,执行动态口令功能的流程,详见步骤301至步骤428。
如图2至图8所示,为本发明实施例中的一种多功能认证设备执行智能密钥功能的流程图,包括以下步骤:
步骤201,设备判断工作电压是否低于第一预设电压,如果是,则执行步骤202;否则,执行步骤203。
步骤202,设备提示低电压状态,关机,结束流程。
步骤203,设备等待接收中断。
步骤204,设备对接收到的中断进行判断,
如果是定时器中断,则执行步骤205;
如果是插卡中断,则设备将定时器的计数值设置为第一初始值,并执行步骤209;
如果是拔卡中断,则设备将定时器的计数值设置为第一初始值,并执行步骤211;
如果是插USB中断,则设备将定时器的计数值设置为第一初始值,并执行步骤213;
如果是拔USB中断,则设备将定时器的计数值设置为第一初始值,并执行步骤218;
如果是蓝牙连接中断,则设备将定时器的计数值设置为第一初始值,并执行步骤222;
如果是蓝牙断开中断,则设备将定时器的计数值设置为第一初始值,并执行步骤228;
如果是USB数据中断,则设备将定时器的计数值设置为第一初始值,并执行步骤232;
如果是蓝牙数据中断,则设备将定时器的计数值设置为第一初始值,并执行步骤233;
如果是按键中断,则设备将定时器的计数值设置为第一初始值,并执行步骤255。
步骤205,设备关闭中断,更新定时器的计数值。
具体地,设备可以将定时器的计数值加第一预设步长,将得到的结果作为更新后的定时器的计数值;也可以将定时器的计数值减第一预设步长,将得到的结果作为更新后的定时器的计数值。
例如,第一预设步长为1,设备在接收到定时器中断后,将定时器的计数值加1,将得到的结果作为更新后的定时器的计数值。
步骤206,设备判断定时器的计数值是否达到第一阈值,如果是,则执行步骤207;否则,执行步骤208。
例如,第一阈值为60。
步骤207,设备使MCU休眠,将休眠标识置位,并执行步骤208。
步骤208,设备将定时器中断标识复位,打开中断,并返回步骤201。
步骤209,设备关闭中断。
步骤210,设备将卡槽状态设置为有卡未激活状态,向上位机发送插卡响应,将插卡中断标识复位,打开中断,并返回步骤201。
具体地,设备可以通过将卡槽状态寄存器中的卡槽状态信息设置为第九预设值的方式,将卡槽状态设置为有卡未激活状态,并在USB通道标识置位时,通过USB通道向上位机发送插卡响应;在蓝牙通道标识置位时,通过蓝牙通道向上位机发送插卡响应。
步骤211,设备关闭中断。
步骤212,设备将卡槽状态设置为无卡状态,向上位机发送拔卡响应,打开中断,将拔卡中断标识复位,并返回步骤201。
具体地,设备可以通过将卡槽状态寄存器中的卡槽状态信息设置为第三预设值的方式,将卡槽状态设置为无卡状态,并在USB通道标识置位时,通过USB通道向上位机发送拔卡响应;在蓝牙通道标识置位时,通过蓝牙通道向上位机发送拔卡响应。
步骤213,设备关闭中断。
步骤214,设备判断休眠标识是否置位,如果是,则执行步骤215;否则,执行步骤216。
步骤215,设备唤醒MCU,将休眠标识复位,并执行步骤216。
步骤216,设备打开USB通道使能,将USB通道标识置位,关闭蓝牙通道使能,将蓝牙通道标识、按键等待标识和身份标识复位,显示USB连接信息,并执行步骤217。
本实施例中,设备关闭蓝牙通道使能后,将无法接收到蓝牙数据。
步骤217,设备关闭定时器,将插USB中断标识复位,打开中断,并返回步骤201。
步骤218,设备关闭中断。
步骤219,设备关闭USB通道使能,将USB通道标识、按键等待标识和身份标识复位,显示USB断开信息。
本实施例中,设备关闭USB通道使能后,将无法接收到USB数据。
步骤220,设备打开定时器。
步骤221,设备将拔USB中断标识复位,打开中断,并返回步骤201。
步骤222,设备关闭中断。
步骤223,设备判断休眠标识是否置位,如果是,则执行步骤224;否则,执行步骤226。
步骤224,设备唤醒MCU,将休眠标识复位,并执行步骤225。
步骤225,设备打开蓝牙通道使能,将蓝牙通道标识置位,将USB通道标识、按键等待标识和身份标识复位,显示蓝牙连接信息,关闭定时器,将蓝牙连接中断标识复位,打开中断,并返回步骤201。
步骤226,设备判断USB通道标识是否置位,如果是,则执行步骤227;否则,返回步骤225。
步骤227,设备将蓝牙断开中断标识复位,打开中断,并返回步骤201。
步骤228,设备关闭中断。
步骤229,设备判断USB通道标识是否置位,如果是,则执行步骤230;否则,执行步骤231。
步骤230,设备关闭蓝牙通道使能,将蓝牙通道标识和蓝牙断开中断标识复位,打开中断,并返回步骤201。
步骤231,设备将休眠标识置位,关闭蓝牙通道使能,将蓝牙通道标识、按键等待标识、身份标识复位和蓝牙断开中断标识,显示蓝牙断开信息,打开中断和定时器,并返回步骤201。
步骤232,设备关闭中断,将USB数据中断标识复位,通过USB通道接收指令,并执行步骤234。
步骤233,设备关闭中断,将蓝牙数据中断标识复位,通过蓝牙通道接收指令,并执行步骤234。
步骤234,设备对接收到的指令的类型进行判断,如果是卡槽上电指令,则执行步骤235;如果是卡槽下电指令,则执行步骤238;如果是查询卡槽状态指令,则执行步骤239;如果是智能密钥功能指令,则执行步骤240。
步骤235,设备判断卡槽中是否有签名接触卡,如果是,则执行步骤236;否则,执行步骤237。
具体地,设备可以查询卡槽状态寄存器中的卡槽状态信息,并对卡槽状态信息进行判断,如果为第三预设值,则确定卡槽中没有签名接触卡;如果为第九预设值或第十预设值,则确定卡槽中有签名接触卡。
步骤236,设备对卡槽上电,将卡槽状态设置为有卡已激活状态,读取上电响应,将上电响应发送给上位机,打开中断,并返回步骤201。
具体地,设备可以通过将卡槽状态寄存器中的卡槽状态信息设置为第十预设值的方式,将卡槽状态设置为有卡已激活状态。当USB通道标识置位时,设备可以通过USB通道向上位机发送上电响应;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送上电响应。
步骤237,设备向上位机发送无卡响应,打开中断,并返回步骤201。
具体地,当USB通道标识置位时,设备可以通过USB通道向上位机发送无卡响应;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送无卡响应。
步骤238,设备对卡槽下电,将卡槽状态设置为有卡未激活状态,读取下电响应,将下电响应发送给上位机,打开中断,并返回步骤201。
具体地,设备可以通过将卡槽状态寄存器中的卡槽状态信息设置为第九预设值的方式,将卡槽状态设置为有卡未激活状态。当USB通道标识置位时,设备可以通过USB通道向上位机发送下电响应;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送下电响应。
步骤239,设备查询卡槽状态信息,将卡槽状态信息发送给上位机,打开中断,并返回步骤201。
具体地,设备可以查询卡槽状态寄存器,获取该卡槽状态寄存器中存储的卡槽状态信息,并在USB通道标识置位时,通过USB通道向上位机发送卡槽状态信息;在蓝牙通道标识置位时,通过蓝牙通道向上位机发送卡槽状态信息。
步骤240,设备判断卡槽状态是否为有卡已激活状态,如果是,则执行步骤241;否则,执行步骤243。
具体地,设备可以判断卡槽状态寄存器中的卡槽状态信息是否为第十预设值,如果是,则确定卡槽状态为有卡已激活状态;否则,确定卡槽状态不是有卡已激活状态。
步骤241,设备将接收到的指令发送给卡槽中的签名接触卡。
步骤242,设备接收签名接触卡返回的指令执行结果,将该指令执行结果发送给上位机,打开中断,并返回步骤201。
具体地,当USB通道标识置位时,设备可以通过USB通道向上位机发送指令执行结果;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送指令执行结果。
步骤243,设备判断接收到的指令是否为身份认证指令,如果是,则执行步骤244;否则,执行步骤248。
步骤244,设备对身份认证指令进行解析,得到验证信息。
步骤245,设备根据验证信息判断用户身份是否合法,如果是,则执行步骤246,否则,执行步骤247。
步骤246,设备将身份标识置位,向上位机发送验证成功消息,打开中断,并返回步骤201。
具体地,当USB通道标识置位时,设备可以通过USB通道向上位机发送验证成功消息;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送验证成功消息。
步骤247,设备向上位机发送验证失败消息,打开中断,并返回步骤201。
具体地,当USB通道标识置位时,设备可以通过USB通道向上位机发送验证失败消息;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送验证失败消息。
步骤248,设备判断接收到的指令是否为在身份认证成功后才被允许执行的指令,如果是,则执行步骤249;否则,执行步骤251。
步骤249,设备判断身份标识是否置位,如果是,则执行步骤251;否则,执行步骤250。
步骤250,设备向上位机发送指令执行失败消息,打开中断,并返回步骤201。
具体地,当USB通道标识置位时,设备可以通过USB通道向上位机发送指令执行失败消息;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送指令执行失败消息。
步骤251,设备根据接收到的指令,执行相应的指令操作,得到指令响应。
步骤252,设备判断是否需要等待按键操作,如果是,则执行步骤253;否则,执行步骤254。
步骤253,设备保存指令中的业务信息以及通过执行指令操作得到的哈希结果,对按键等待标识进行置位,并执行步骤254。
步骤254,设备向上位机发送指令响应,打开中断,并返回步骤201。
具体地,当USB通道标识置位时,设备可以通过USB通道向上位机发送指令响应;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送指令响应。
步骤255,设备关闭中断,扫描按键,获取被按下的按键的键值。
步骤256,设备判断获取的键值是否为空,如果是,则执行步骤257;否则,执行步骤258。
步骤257,设备打开中断,将按键中断标识复位,返回步骤201。
步骤258,设备根据获取的键值,对被按下的按键进行判断,如果是电源键,则执行步骤259;如果是返回键,则执行260;如果是其他按键,则执行步骤261。
步骤259,设备判断电源键被按下的时长是否达到第一预设时长,如果是,则设备关机,结束流程;否则,设备将按键中断标识复位,打开中断,并返回步骤201。
例如,第一预设时长为2秒。
步骤260,设备打开中断,并返回步骤102。
步骤261,设备判断按键等待标识是否被置位,如果是,则执行步骤262;否则,设备将按键中断标识复位,打开中断,并返回步骤201。
步骤262,设备根据获取的键值,对被按下的按键进行判断,如果是方向键,则执行步骤263;如果是确认键,则执行步骤267;如果是取消键,则执行步骤272;如果是其他按键,则设备将按键中断标识复位,打开中断,并返回步骤201。
步骤263,设备显示业务信息。
步骤264,设备判断自身存储的业务信息是否已显示完毕,如果是,则执行步骤265;否则,执行步骤266。
步骤265,设备对报文显示完成标识进行置位,并执行步骤266。
步骤266,设备将按键中断标识复位,打开中断,并返回步骤201。
步骤267,设备判断报文显示完成标识是否置位,如果是,则执行步骤268;否则,执行步骤271。
步骤268,设备使用用户私钥对自身保存的哈希结果进行签名。
步骤269,设备判断签名是否成功,如果是,则执行步骤270;否则,将报文显示完成标识复位,并执行步骤271;
步骤270,设备保存签名结果,显示操作成功信息,将按键中断标识和报文显示完成标识复位,打开中断,并返回步骤201。
步骤271,设备显示操作失败信息,将按键中断标识复位,打开中断,并返回步骤201。
步骤272,设备显示操作取消信息,将按键中断标识复位,打开中断,并返回步骤201。
需要说明的是,在本发明实施例的另一种实施方式中,设备接收到插USB中断后,可以先关闭中断,并将定时器的计数值设置为第一初始值,对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识、按键等待标识和身份标识复位,显示USB连接信息,将插USB中断标识复位,打开中断,返回步骤201;
设备接收到拔USB中断后,可以先关闭中断,并将定时器的计数值设置为第一初始值,对蓝牙模块上电,关闭USB通道使能,将USB通道标识、按键等待标识和身份标识复位,显示USB断开信息,将拔USB中断标识复位,打开中断,返回步骤201;
设备接收到蓝牙连接中断后,可以先关闭中断,并将定时器的计数值设置为第一初始值,打开蓝牙通道使能,将蓝牙通道标识置位,显示蓝牙连接信息,将蓝牙连接中断标识复位,打开中断,返回步骤201;
设备接收到蓝牙断开中断后,可以先关闭中断,并将定时器的计数值设置为第一初始值,关闭蓝牙通道使能,将蓝牙通道标识、按键等待标识和身份标识复位,显示蓝牙断开信息,将蓝牙断开中断标识复位,打开中断,返回步骤201。上述实施方式同样可以实现本发明的发明目的。
在本发明实施例的又一种实施方式中,设备接收到插USB中断后,可以关闭中断,并将定时器的计数值设置为第一初始值,打开USB通道使能,将USB通道标识置位,关闭蓝牙通道使能,将蓝牙通道标识、按键等待标识和身份标识复位,显示USB连接信息,将插USB中断标识复位,再打开除蓝牙连接中断、蓝牙数据中断和蓝牙断开中断之外的其他外设中断,并返回步骤201;
设备接收到拔USB中断后,可以关闭中断,并将定时器的计数值设置为第一初始值,关闭USB通道使能,将USB通道标识、按键等待标识和身份标识复位,显示USB断开信息,将拔USB中断标识复位,再打开中断,并返回步骤201;
设备接收到蓝牙连接中断后,可以关闭中断,并将定时器的计数值设置为第一初始值,打开蓝牙通道使能,将蓝牙通道标识置位,显示蓝牙连接信息,将蓝牙连接中断标识复位,再打开中断,并返回步骤201;
设备接收到蓝牙断开中断后,可以关闭中断,并将定时器的计数值设置为第一初始值,关闭蓝牙通道使能,将蓝牙通道标识、按键等待标识和身份标识复位,显示蓝牙断开信息,将蓝牙断开中断标识复位,再打开中断,并返回步骤201。上述实施方式同样可以实现本发明的发明目的。
在本发明实施例的再一种实施方式中,设备接收到插USB中断后,可以关闭中断,并将定时器的计数值设置为第一初始值,对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识、按键等待标识和身份标识复位,显示USB连接信息,将插USB中断标识复位,再打开中断,并返回步骤201;
设备接收到拔USB中断后,可以关闭中断,并将定时器的计数值设置为第一初始值,对蓝牙模块上电,关闭USB通道使能,将USB通道标识、按键等待标识和身份标识复位,显示USB断开信息,将休眠标识置位,将拔USB中断标识复位,再打开中断,并返回步骤201。
设备接收到蓝牙连接中断后,可以关闭中断,并将定时器的计数值设置为第一初始值,打开蓝牙通道使能,将蓝牙通道标识置位,将USB通道标识、按键等待标识和身份标识复位,显示蓝牙连接信息,将蓝牙连接中断标识复位,再打开除插USB中断、USB数据中断和拔USB中断之外的其他外设中断,并返回步骤201;
设备接收到蓝牙断开中断后,可以关闭中断,并将定时器的计数值设置为第一初始值,关闭蓝牙通道使能,将蓝牙通道标识、按键等待标识和身份标识复位,显示蓝牙断开信息,将休眠标识置位,将蓝牙断开中断标识复位,再打开中断,并返回步骤201。上述实施方式同样可以实现本发明的发明目的。
如图9至图15所示,为本发明实施例中的一种多功能认证设备执行动态口令功能的流程图,包括以下步骤:
步骤301,设备将系统状态标识设置为检查密码标识。
步骤302,设备判断是否保存有锁定信息,如果是,则执行步骤303;否则,执行步骤304。
步骤303,设备将系统状态标识设置为锁定标识,并执行步骤304。
步骤304,设备等待接收中断。
步骤305,设备对接收到的中断进行判断,
如果是按键中断,则执行步骤306;
如果是蓝牙连接中断,则执行步骤383;
如果是蓝牙数据中断,则执行步骤386;
如果是蓝牙断开中断,则执行步骤392;
如果是定时器中断,则执行步骤401;
如果是其他中断,则设备将对应的中断标识复位,并返回步骤304。
本发明实施例中,设备执行动态口令功能的流程时,可以每隔一秒钟接收一次定时器中断。
步骤306,设备关闭中断,扫描按键,获取被按下的按键的键值。
步骤307,设备判断获取的键值是否为空,如果是,则执行步骤308;否则,执行步骤309。
步骤308,设备将按键中断标识复位,打开中断,返回步骤304。
步骤309,设备将无按键计数器的计数值置为第二初始值。
其中,第二初始值可以为零,也可以为非零的常数。
步骤310,设备根据获取的键值,对被按下的按键进行判断,如果是电源键,则执行步骤311;如果是返回键,则将按键中断标识复位,打开中断,并返回步骤102;如果是其他按键,则执行步骤312。
步骤311,设备判断电源键被按下的时长是否达到第一预设时长,如果是,则设备关机,结束流程;否则,将按键中断标识复位,打开中断,返回步骤304。
例如,第一预设时长为2秒。
步骤312,设备对系统状态标识进行判断,
如果是检查密码标识,则执行步骤313;
如果是蓝牙OTP标识,则执行步骤330;
如果是输入挑战码标识,则执行步骤346;
如果是菜单功能选择标识,则执行步骤358;
如果是等待标识,则执行步骤367;
如果是锁定标识,则执行步骤369;
如果是重置密码标识,则执行步骤377。
步骤313,设备根据获取的键值,对被按下的按键进行判断,
如果是数字键,则执行步骤314;
如果是删除键,则执行步骤317;
如果是确认键,则执行步骤319;
步骤314,设备判断按键数据长度是否小于第一预设长度,如果是,则执行步骤316;否则,执行步骤315。
例如,第一预设长度为6。
步骤315,设备将按键中断标识复位,打开中断,返回步骤304。
步骤316,设备将获取的键值保存到按键数据缓冲区中,更新按键数据长度,返回步骤315。
具体地,设备可以将按键数据长度加第三预设步长,将得到的结果作为更新后的按键数据长度;也可以将按键数据长度减第三预设步长,将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度加1,将得到的结果作为更新后的按键数据长度。
步骤317,设备判断按键数据长度是否为第三初始值,如果是,则返回步骤315;否则,执行步骤318。
其中,第三初始值为按键数据长度的初始值,可以为零,也可以为非零的常数。
步骤318,设备更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,并返回步骤315。
具体地,当设备在步骤316中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度。当设备在步骤316中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度减1,将得到的结果作为更新后的按键数据长度。
步骤319,设备判断按键数据缓冲区中的数据是否与密码数据缓冲区中的数据相同,如果是,则执行步骤324;否则,执行步骤320。
步骤320,设备更新密码错误次数,显示密码错误信息。
具体地,设备可以将密码错误次数加第四预设步长,将得到的结果作为更新后的密码错误次数;也可以将密码错误次数减第四预设步长,将得到的结果作为更新后的密码错误次数。
例如,第四预设步长为1,设备将密码错误次数加1,将得到的结果作为更新后的密码错误次数。
步骤321,设备判断密码错误次数是否等于预设次数,如果是,则执行步骤322;否则,执行步骤323。
例如,预设次数为4次。
步骤322,设备保存锁定信息,将系统状态标识设置为锁定标识,显示锁定信息,清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤315。
步骤323,设备清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤315。
步骤324,设备显示密码正确信息,将密码错误次数设置为第四初始值。
其中,第四初始值可以为零,也可以为非零的常数。
步骤325,设备判断蓝牙模块的工作电压是否低于第二预设电压,如果是,则执行步骤326;否则,执行步骤329。
步骤326,设备显示蓝牙模块低电压信息。
步骤327,设备判断蓝牙模块的工作电压低于第二预设电压的时长是否达到第二预设时长,如果是,则执行步骤328;否则,执行步骤329。
例如,第二预设时长为10秒。
步骤328,设备将系统状态标识设置为输入挑战码标识,显示输入挑战码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤315。
步骤329,设备对蓝牙模块上电,将蓝牙模块的工作模式切换至监听模式,将系统状态标识设置为蓝牙OTP标识,显示蓝牙OTP界面,将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识、主动选择蓝牙标识和蓝牙连接中断标识复位,清空按键数据缓冲区和接收数据缓冲区,将按键数据长度置为第三初始值,返回步骤315。
其中,第五初始值可以为零,也可以为非零的常数。
步骤330,设备根据获取的键值,对被按下的按键进行判断,
如果是数字键,则执行步骤331;
如果是确认键,则执行步骤334;
如果是删除键,则执行步骤340;
步骤331,设备判断允许按键输入标识是否置位,如果是,则执行步骤332;否则,返回步骤315。
步骤332,设备判断按键数据长度是否小于第二预设长度,如果是,则执行步骤333;否则,返回步骤315。
例如,第二预设长度为6。
步骤333,设备更新按键数据长度,将获取的键值保存到按键数据缓冲区中,显示按键数据缓冲区中的数据,并返回步骤315。
具体地,设备可以将按键数据长度加第三预设步长,将得到的结果作为更新后的按键数据长度;也可以将按键数据长度减第三预设步长,将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度加1,将得到的结果作为更新后的按键数据长度。
步骤334,设备判断蓝牙数据接收完成标识是否置位,如果是,则执行步骤335;否则,执行步骤336。
步骤335:设备将接收数据缓冲区中的数据作为挑战值,生成动态口令,显示该动态口令和预设数量的时间条,将系统状态标识设置为等待标识,将口令显示时长设置为第六初始值,清空接收数据缓冲区,通过蓝牙通道向上位机发送动态口令,并返回步骤315。
具体地,设备可以将接收数据缓冲区中的数据作为挑战值,生成挑战应答型动态口令,也可以对接收数据缓冲区中的数据和设备内部的动态因子进行组合,将组合得到的数据作为挑战值,生成挑战应答型动态口令。
其中,第六初始值可以为零,也可以为非零的常数。设备内部的动态因子可以为时间因子和/或事件因子。设备使用事件因子计算动态口令之后,可以对事件因子进行更新,例如,将事件因子加1。
步骤336,设备判断允许按键输入标识是否置位,如果是,则执行步骤337;否则,返回步骤315。
步骤337,设备判断按键数据长度是否等于第三初始值,如果是,则执行步骤338;否则,执行步骤339。
步骤338,设备根据自身内部的动态因子生成动态口令,显示该动态口令和预设数量的时间条,将系统状态标识设置为等待标识,将口令显示时长设置为第六初始值,通过蓝牙通道将动态口令发送给上位机,并返回步骤315。
其中,设备内部的动态因子可以为时间因子,也可以为或事件因子。相应地,设备可以根据时间因子计算时间型动态口令,也可以根据事件因子计算事件型动态口令,并对事件因子进行更新,例如,将事件因子加1。
步骤339,设备将按键数据缓冲区中的数据作为挑战值,生成动态口令,显示该动态口令和预设数量的时间条,将系统状态标识设置为等待标识,将口令显示时长设置为第六初始值,清空按键数据缓冲区,通过蓝牙通道向上位机发送动态口令,并返回步骤315。
具体地,设备可以将按键数据缓冲区中的数据作为挑战值,生成挑战应答型动态口令,也可以对按键数据缓冲区中的数据和设备内部的动态因子进行组合,将组合得到的数据作为挑战值,生成挑战应答型动态口令。其中,设备内部的动态因子可以为时间因子和/或事件因子。设备使用事件因子计算动态口令之后,可以对事件因子进行更新,例如,将事件因子加1。
步骤340,设备判断删除键被按下的时长是否达到第三预设时长,如果是,则执行步骤345;否则,执行步骤341。
步骤341,设备判断蓝牙数据接收完成标识是否置位,如果是,则返回步骤315;否则,执行步骤342。
步骤342,设备判断允许按键输入标识是否置位,如果是,则执行步骤343;否则,返回步骤315。
步骤343,设备判断按键数据长度是否等于第三初始值,如果是,则返回步骤315;否则,执行步骤344。
步骤344,设备更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,显示按键数据缓冲区中的数据,并返回步骤315。
具体地,当设备在步骤333中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度。当设备在步骤333中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度减1,将得到的结果作为更新后的按键数据长度。
步骤345,设备将系统状态标识设置为输入挑战码标识,显示输入挑战码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,并返回步骤315。
步骤346,设备根据获取的键值,对被按下的按键进行判断,
如果是数字键,则执行步骤347;
如果是确认键,则执行步骤349;
如果是删除键,则执行步骤352;
步骤347,设备判断按键数据长度是否小于第二预设长度,如果是,则执行步骤348;否则,返回步骤315。
步骤348,设备更新按键数据长度,将获取的键值保存到按键数据缓冲区中,显示按键数据缓冲区中的数据,并返回步骤315。
具体地,设备可以将按键数据长度加第三预设步长,将得到的结果作为更新后的按键数据长度;也可以将按键数据长度减第三预设步长,将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度加1,将得到的结果作为更新后的按键数据长度。
步骤349,设备判断按键数据长度是否等于第三初始值,如果是,则执行步骤350;否则,执行步骤351。
步骤350,设备根据自身内部的动态因子生成动态口令,显示该动态口令和预设数量的时间条,将系统状态标识设置为等待标识,将口令显示时长设置为第六初始值,并返回步骤315。
其中,设备内部的动态因子可以为时间因子,也可以为或事件因子。相应地,设备可以根据时间因子计算时间型动态口令,也可以根据事件因子计算事件型动态口令,并对事件因子进行更新,例如,将事件因子加1。
步骤351,设备将按键数据缓冲区中的数据作为挑战值,生成动态口令,显示该动态口令和预设数量的时间条,将系统状态标识设置为等待标识,将口令显示时长设置为第六初始值,清空按键数据缓冲区,并返回步骤315。
具体地,设备可以将按键数据缓冲区中的数据作为挑战值,生成挑战应答型动态口令,也可以对按键数据缓冲区中的数据和设备内部的动态因子进行组合,将组合得到的数据作为挑战值,生成挑战应答型动态口令。其中,设备内部的动态因子可以为时间因子和/或事件因子。设备使用事件因子计算动态口令之后,可以对事件因子进行更新,例如,将事件因子加1。
步骤352,设备判断删除键被按下的时长是否达到第四预设时长,如果是,则执行步骤355;否则,执行步骤353。
例如,第四预设时长为3秒。
步骤353,设备判断按键数据长度是否等于第三初始值,如果是,则返回步骤315;否则,执行步骤354。
步骤354,设备更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,显示按键数据缓冲区中的数据,并返回步骤315。
具体地,当设备在步骤348中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度。当设备在步骤348中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度减1,将得到的结果作为更新后的按键数据长度。
步骤355,设备判断按键数据长度是否等于第三初始值,如果是,则执行步骤356;否则,执行步骤357。
步骤356,设备将系统状态标识设置为菜单功能选择标识,显示菜单功能选择界面,并返回步骤315。
步骤357,设备清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤315。
步骤358,设备根据获取的键值,对被按下的按键进行判断,
如果是第一预设按键,则执行步骤359;
如果是第二预设按键,则设备将系统状态标识设置为重置密码标识,显示重置密码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,并返回步骤315。
步骤359,设备对蓝牙模块上电。
步骤360,设备读取蓝牙模块的参数。
其中,蓝牙模块的参数可以包括名称、密码等信息。
步骤361,设备判断是否成功读取蓝牙模块的参数,如果是,则执行步骤362;否则,执行步骤363。
步骤362,设备将蓝牙模块的工作模式切换为监听模式,将系统状态标识设置为蓝牙OTP标识,显示蓝牙OTP界面,将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识复位,将主动选择蓝牙标识置位,清空按键数据缓冲区和接收数据缓冲区,将按键数据长度置为第三初始值,将读取次数设置为第七初始值,并返回步骤315。
其中,第七初始值可以为零,也可以为非零的常数。
步骤363,设备更新读取次数。
具体地,设备可以将读取次数加第五预设步长,将得到的结果作为更新后的读取次数;也可以将读取次数减第五预设步长,将得到的结果作为更新后的读取次数。
例如,第五预设步长为1,设备将读取次数加1,将得到的结果作为更新后的读取次数。
步骤364,设备判断读取次数是否达到第二阈值,如果是,则执行步骤365;否则,返回步骤360。
例如,第二阈值为5。
步骤365,设备显示蓝牙模块损坏信息,对蓝牙模块下电。
步骤366,设备将系统状态标识设置为输入挑战码标识,显示输入挑战码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,并返回步骤315。
步骤367,设备根据获取的键值,判断被按下的按键是否为第三预设按键,如果是,则执行步骤368;否则,设备将口令显示时长设置为第六初始值,并返回步骤315。
其中,第三预设按键可以为确认键,第六初始值可以为零,也可以为非零的常数。
步骤368,设备将系统状态标识设置为输入挑战码标识,显示输入挑战码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤315。
步骤369,设备根据获取的键值,对被按下的按键进行判断,
如果是数字键,则执行步骤370;
如果是删除键,则执行步骤372;
如果是确认键,则执行步骤374;
步骤370,设备判断按键数据长度是否小于第三预设长度,如果是,则执行步骤371;否则,返回步骤315。
例如,第一预设长度为6。
步骤371,设备将获取的键值保存到按键数据缓冲区中,更新按键数据长度,返回步骤315。
具体地,设备可以将按键数据长度加第三预设步长,将得到的结果作为更新后的按键数据长度;也可以将按键数据长度减第三预设步长,将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度加1,将得到的结果作为更新后的按键数据长度。
步骤372,设备判断按键数据长度是否为第三初始值,如果是,则返回步骤315;否则,执行步骤373。
步骤373,设备更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,并返回步骤315。
具体地,当设备在步骤371中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度。当设备在步骤371中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度减1,将得到的结果作为更新后的按键数据长度。
步骤374,设备对按键数据缓冲区中的数据进行验证,如果验证通过,则执行步骤375;如果验证未通过,则执行步骤376。
步骤375,设备将系统状态标识设置为重置密码标识,显示重置密码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤315。
步骤376,设备显示解锁失败信息,清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤315。
步骤377,设备根据获取的键值,对被按下的按键进行判断,
如果是数字键,则执行步骤378;
如果是删除键,则执行步骤380;
如果是确认键,则执行步骤382;
步骤378,设备判断按键数据长度是否小于第一预设长度,如果是,则执行步骤379;否则,返回步骤315。
步骤379,设备将获取的键值保存到按键数据缓冲区中,更新按键数据长度,返回步骤315。
具体地,设备可以将按键数据长度加第三预设步长,将得到的结果作为更新后的按键数据长度;也可以将按键数据长度减第三预设步长,将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度加1,将得到的结果作为更新后的按键数据长度。
步骤380,设备判断按键数据长度是否为第三初始值,如果是,则返回步骤315;否则,执行步骤381。
步骤381,设备更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,并返回步骤315。
具体地,当设备在步骤379中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度。当设备在步骤379中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度减1,将得到的结果作为更新后的按键数据长度。
步骤382,设备将按键数据缓冲区中的数据存储到密码数据缓冲区,将系统状态标识设置为检查密码标识,显示检查密码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤315。
步骤383,设备关闭中断,判断系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤384;否则,执行步骤385。
步骤384,设备打开蓝牙通道使能,显示蓝牙连接信息,并执行步骤385。
步骤385,设备将蓝牙连接中断标识复位,打开中断,并返回步骤304。
步骤386,设备关闭中断,接收蓝牙数据,将接收到的蓝牙数据保存到接收数据缓冲区。
步骤387,设备判断接收数据缓冲区中的数据在第五预设时长内是否发生变化,如果是,则返回步骤386;否则,执行步骤388。
步骤388,设备判断接收数据缓冲区中的数据是否完整,如果是,则执行步骤389;否则,执行步骤391。
步骤389,设备对接收数据缓冲区中的数据进行校验,如果校验通过,则执行步骤390;如果校验未通过,则执行步骤391。
步骤390,设备将蓝牙数据接收完成标识置位,将蓝牙数据中断标识复位,打开中断,并返回步骤304。
步骤391,设备清空接收数据缓冲区,将蓝牙数据中断标识复位,打开中断,并返回步骤304。
步骤392,设备关闭中断,判断系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤393;否则,执行步骤394。
步骤393,设备显示蓝牙断开信息,清空接收数据缓冲区,将蓝牙数据接收完成标识复位,并执行步骤394。
步骤394,设备将蓝牙断开中断标识复位,打开中断,并返回步骤304。
步骤401,设备关闭中断,更新秒计数器的计数值。
具体地,设备可以将秒计数器的计数值加第十一预设步长,将得到的结果作为更新后的秒计数器的计数值;也可以将秒计数器的计数值减第十一预设步长,将得到的结果作为更新后的秒计数器的计数值。
例如,第十一预设步长为1,设备将秒计数器的计数值加1,将得到的结果作为更新后的秒计数器的计数值。
步骤402,设备对秒计数器的计数值进行判断,如果等于第八阈值,则执行步骤403;如果等于第九阈值,则执行步骤405;否则,返回步骤407。
其中,第九阈值可以小于第八阈值,例如,第八阈值为60,第九阈值为15。
步骤403,设备将秒计数器的计数值设置为第十初始值,将事件因子设置为第十一初始值,更新时间因子和校准计数器的计数值。
其中,第十初始值可以为零,也可以为非零的常数;第十一初始值可以为零,也可以为非零的常数。
设备可以将时间因子加第十二预设步长,将得到的结果作为更新后的时间因子;也可以将时间因子减第十二预设步长,将得到的结果作为更新后的时间因子。
设备可以将校准计数器的计数值加第十三预设步长,将得到的结果作为更新后的校准计数器的计数值;也可以将校准计数器的计数值减第十三预设步长,将得到的结果作为更新后的校准计数器的计数值。
例如,第十二预设步长为1,第十三预设步长为1,相应地,设备将时间因子加1,将得到的结果作为更新后的时间因子;将校准计数器的计数值加1,将得到的结果作为更新后的校准计数器的计数值。
步骤404,设备判断系统状态标识是否为等待标识,如果是,则设备关机,结束流程;否则,执行步骤407。
步骤405,设备判断校准计数器的计数值是否小于预设的校准值,如果是,则执行步骤407;否则,执行步骤406。
步骤406,设备根据校准值更新校准计数器的计数值和秒计数器的计数值,并执行步骤407。
具体地,设备可以将校准计数器的计数值减去预设的校准值,将得到的结果作为更新后的校准计数器的计数值。设备还可以根据校准值的最高位的取值,更新秒计数器的计数值。
本实施例中,当设备在步骤401中通过将秒计数器的计数值加第十一预设步长的方式,更新秒计数器的计数值时,如果校准值的最高位的取值为1,则设备在步骤406中通过将秒计数器的计数值减第十一预设步长的方式,更新秒计数器的计数值;如果校准值的最高位的取值为零,则设备在步骤406中通过将秒计数器的计数值加第十一预设步长的方式,更新秒计数器的计数值。
同样地,当设备在步骤401中通过将秒计数器的计数值减第十一预设步长的方式,更新秒计数器的计数值时,如果校准值的最高位的取值为1,则设备在步骤406中通过将秒计数器的计数值加第十一预设步长的方式,更新秒计数器的计数值;如果校准值的最高位的取值为零,则设备在步骤406中通过将秒计数器的计数值减第十一预设步长的方式,更新秒计数器的计数值。
例如,校准值为100,校准计数器的计数值为100时,设备可以将校准计数器的计数值更新为零。第十一预设步长为1,校准值的最高位的取值为1,设备在步骤401中通过将秒计数器的计数值加1的方式,更新秒计数器的计数值时,设备在步骤406中通过将秒计数器的计数值减1的方式,更新秒计数器的计数值。
步骤407,设备对系统状态标识进行判断,
如果是蓝牙OTP标识,则执行步骤408;
如果是等待标识,则执行步骤415;
如果是其他标识,则执行步骤418。
步骤408,设备更新蓝牙模式计数器的计数值。
具体地,设备可以将蓝牙模式计数器的计数值加第六预设步长,将得到的结果作为更新后的蓝牙模式计数器的计数值;也可以将蓝牙模式计数器的计数值减第六预设步长,将得到的结果作为更新后的蓝牙模式计数器的计数值。
例如,第六预设步长为1,设备将蓝牙模式计数器的计数值加1,将得到的结果作为更新后的蓝牙模式计数器的计数值。
步骤409,设备判断蓝牙模式计数器的计数值是否达到第三阈值,如果是,则执行步骤410;否则,执行步骤413。
例如,第三阈值为5。
步骤410,设备判断主动选择蓝牙标识是否置位,如果是,则执行步骤411;否则,执行步骤412。
步骤411,设备对蓝牙模块下电,将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识置位,并执行步骤418。
步骤412,设备对蓝牙模块下电,将蓝牙模式计数器的计数值置为第五初始值,将系统状态标识设置为输入挑战码标识,显示输入挑战码界面,并执行步骤418。
步骤413,设备判断蓝牙模块的工作电压是否低于第二预设电压,如果是,则执行步骤414;否则,执行步骤418。
步骤414,设备显示蓝牙模块低电压信息,对蓝牙模块下电,将蓝牙模式计数器的计数值置为第五初始值,将系统状态标识设置为输入挑战码标识,显示输入挑战码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,并执行步骤418。
步骤415,设备更新口令显示时长。
具体地,设备可以将口令显示时长加第七预设步长,将得到的结果作为更新后的口令显示时长;也可以将口令显示时长减第七预设步长,将得到的结果作为更新后的口令显示时长。
例如,第七预设步长为1,设备将口令显示时长加1,将得到的结果作为更新后的口令显示时长。
步骤416,设备判断更新后的口令显示时长是否达到第四阈值,如果是,则设备关机,结束流程;否则,执行步骤417。
例如,第四阈值为15。
步骤417,设备根据更新后的口令显示时长,显示对应数量的时间条,并执行步骤418。
步骤418,设备更新无按键计数器的计数值。
具体地,设备可以将无按键计数器的计数值加第八预设步长,将得到的结果作为更新后的无按键计数器的计数值;也可以将无按键计数器的计数值减第八预设步长,将得到的结果作为更新后的无按键计数器的计数值。
例如,第八预设步长为1,设备将无按键计数器的计数值加1,将得到的结果作为更新后的无按键计数器的计数值。
步骤419,设备判断无按键计数器的计数值是否达到第五阈值,如果是,则设备关机,结束流程;否则,执行步骤420。
例如,第五阈值为120。
步骤420,设备判断当前是否有按键被按下,如果是,则执行步骤421;否则,执行步骤425。
步骤421,设备对按键按下计数器的计数值进行更新,将按键松开计数器的计数值设置为第八初始值。
具体地,设备可以将按键按下计数器的计数值加第九预设步长,将得到的结果作为更新后的按键按下计数器的计数值;也可以将按键按下计数器的计数值减第九预设步长,将得到的结果作为更新后的按键按下计数器的计数值。其中,第八初始值可以为零,也可以为非零的常数。
例如,第九预设步长为1,设备将按键按下计数器的计数值加1,将得到的结果作为更新后的按键按下计数器的计数值。
步骤422,设备判断按键按下计数器的计数值是否达到第六阈值,如果是,则执行步骤423;否则,执行步骤424。
例如,第六阈值为10。
步骤423,设备将按键按下计数器的计数值设置为第九初始值,将定时器中断标识复位,打开除按键中断之外的其他中断,并执行步骤304。
其中,第九初始值可以为零,也可以为非零的常数。
步骤424,设备将定时器中断标识复位,打开中断,并返回步骤304。
步骤425,设备更新按键松开计数器的计数值,将按键按下计数器的计数值设置为第九初始值。
具体地,设备可以将按键松开计数器的计数值加第十预设步长,将得到的结果作为更新后的按键松开计数器的计数值;也可以将按键松开计数器的计数值减第十预设步长,将得到的结果作为更新后的按键松开计数器的计数值。
例如,第十预设步长为1,设备将按键松开计数器的计数值加1,将得到的结果作为更新后的按键松开计数器的计数值。
步骤426,设备判断按键松开计数器的计数值是否达到第七阈值,如果是,则执行步骤427;否则,执行步骤428。
例如,第七阈值为4。
步骤427,设备将按键松开计数器的计数值设置为第八初始值,并返回步骤424。
步骤428,设备将定时器中断标识复位,打开除按键中断之外的其他中断,并执行步骤304。
本发明实施例中的多功能认证设备,支持USB接口和蓝牙接口,实现多通道认证机制,且具备智能密钥功能、动态口令功能和读卡器功能,增加了人机交互功能,降低了对上位机的环境安全的依赖程度,提高了身份认证的安全性。
需要说明的是,基于本发明实施例中的中断机制,本发明实施例中的多功能认证设备可以轮询被置位的中断标识,并根据轮询到的中断标识的类型执行相应的操作,相应地,本发明实施例中的另一种多功能认证设备的工作方法,如图16所示,包括以下步骤:
步骤501,设备上电。
步骤502,设备执行初始化操作。
具体地,设备上电后,可以对系统时钟、I/O口、定时器中断、蓝牙数据接口、USB数据接口、状态寄存器和数据缓冲区进行初始化。其中,对蓝牙数据接口的初始化可以包含对蓝牙数据中断的初始化,对USB数据接口的初始化可以包含对USB数据中断的初始化,对I/O口的初始化可以包含对外部中断的初始化,外部中断可以包括按键中断、定时器中断、插USB中断、USB数据中断、拔USB中断、蓝牙连接中断、蓝牙数据中断、蓝牙断开中断、插卡中断和拔卡中断。数据缓冲区包括按键数据缓冲区和接收数据缓冲区。
本实施例中,状态寄存器可以包括主菜单状态寄存器,相应地,设备可以将主菜单状态寄存器中的数据设置为第一预设值,反选显示第一菜单信息,例如,“进入智能密钥功能”;或者,将主菜单状态寄存器中的数据设置为第二预设值,反选显示第二菜单信息,例如,“进入动态口令功能”。
另外,状态寄存器还可以包括卡槽状态寄存器,相应地,设备可以通过将卡槽状态寄存器中的卡槽状态信息设置为第三预设值的方式,将卡槽状态设置为无卡状态。
步骤503,设备关闭除按键中断和定时器中断之外的其他外设中断,将定时器的计数值设置为第一初始值。
其中,除按键中断和定时器中断之外的所有外设中断可以包括插USB中断、USB数据中断、拔USB中断、蓝牙连接中断、蓝牙数据中断、蓝牙断开中断、插卡中断和拔卡中断。第一初始值可以为零,也可以为非零的常数,例如,60。
步骤504,设备判断是否存在置位的中断标识,如果是,则执行步骤505;否则,继续判断是否存在置位的中断标识。
步骤505,设备对置位的中断标识的类型进行判断,
如果是定时器中断标识,则执行步骤506;
如果是按键中断标识,则执行步骤508。
步骤506,设备更新定时器的计数值。
具体地,设备可以将定时器的计数值加第一预设步长,将得到的结果作为更新后的定时器的计数值;也可以将定时器的计数值减第一预设步长,将得到的结果作为更新后的定时器的计数值。
例如,第一预设步长为1,当设备通过步骤503将定时器的计数值设置为零时,设备在轮询到定时器中断标识后,将定时器的计数值加1,将得到的结果作为更新后的定时器的计数值。
步骤507,设备判断定时器的计数值是否达到第一阈值,如果是,则设备关机,结束流程;否则,将定时器中断标识复位,并返回步骤504。
例如,第一阈值为60。
步骤508,设备将定时器的计数值设置为第一初始值,关闭按键中断,扫描按键,获取被按下的按键的键值。
步骤509,设备根据获取的键值,对被按下的按键进行判断,如果是方向键,则执行步骤510;如果是电源键,则执行步骤512;如果是确认键,则执行步骤514;如果是其他键,则执行步骤513。
具体地,设备可以对获取的键值进行判断,如果该键值为第四预设值或第五预设值,则确定被按下的按键为方向键;如果该键值为第六预设值,则确定被按下的按键为确认键;如果该键值为第七预设值,则确定被按下的按键为电源键。
本实施例中,方向键可以包括上翻键和下翻键。相应地,当获取的键值为第四预设值时,设备可以确定被按下的按键为上翻建;当获取的键值为第五预设值时,设备可以确定被按下的按键为下翻建。
步骤510,设备根据被按下的按键,对主菜单状态寄存器中的数据进行更新。
具体地,当被按下的按键为上翻建时,设备可以将主菜单状态寄存器中的数据与第八预设值相加,将得到的和减去第二预设步长,再以第八预设值为模数,对得到的差值取模,将得到的结果作为更新后的主菜单状态寄存器中的数据;当被按下的按键为下翻建时,设备可以将主菜单状态寄存器中的数据与第二预设步长相加,将得到的结果作为更新后的主菜单寄存器中的数据。其中,主菜单状态寄存器中的数据的初始值为第一预设值,例如,1;第八预设值为设备的菜单数,例如,2。
步骤511,设备根据主菜单状态寄存器中的数据,显示对应的菜单信息,将按键中断标识复位,打开按键中断,并返回步骤504。
具体地,设备可以对主菜单状态寄存器中的数据进行判断,如果该数据为第一预设值,则反选显示第一菜单信息;如果该数据为第二预设值,则反选显示第二菜单信息。其中,第一菜单信息是与智能密钥功能对应的菜单信息,例如,“进入智能密钥功能”;第二菜单信息是与动态口令功能对应的菜单信息,例如,“进入动态口令功能”。
步骤512,设备判断电源键被按下的时长是否达到第一预设时长,如果是,则设备关机,结束流程;否则,执行步骤513。
例如,第一预设时长为2秒。
步骤513,设备将按键中断标识复位,打开按键中断,并返回步骤504。
步骤514,设备将按键中断标识复位,打开中断,根据主菜单状态寄存器中的数据,打开与该数据对应的数据接口,并执行与该数据对应的功能流程。
具体地,设备可以对主菜单状态寄存器中的数据进行判断,如果该数据为第一预设值,则将按键中断标识复位,打开蓝牙数据接口、USB数据接口和中断,执行智能密钥功能的流程,详见步骤601至步骤659;如果该数据为第二预设值,则将按键中断标识复位,打开蓝牙数据接口和中断,执行动态口令功能的流程,详见步骤701至步骤821。
如图17至图19所示,为本发明实施例中的另一种多功能认证设备执行智能密钥功能的流程图,包括以下步骤:
步骤601,设备判断工作电压是否低于第一预设电压,如果是,则执行步骤602;否则,执行步骤603。
步骤602,设备提示低电压状态,关机,结束流程。
步骤603,设备判断是否存在置位的中断标识,如果是,则执行步骤604;否则,返回步骤601。
步骤604,设备对置位的中断标识的类型进行判断,
如果是定时器中断标识,则执行步骤605;
如果是插卡中断标识,则设备将定时器的计数值设置为第一初始值,并执行步骤607;
如果是拔卡中断标识,则设备将定时器的计数值设置为第一初始值,并执行步骤608;
如果是插USB中断标识,则设备将定时器的计数值设置为第一初始值,并执行步骤609;
如果是拔USB中断标识,则设备将定时器的计数值设置为第一初始值,并执行步骤612;
如果是蓝牙连接中断标识,则设备将定时器的计数值设置为第一初始值,并执行步骤613;
如果是蓝牙断开中断标识,则设备将定时器的计数值设置为第一初始值,并执行步骤616;
如果是USB数据中断标识,则设备将定时器的计数值设置为第一初始值,并执行步骤619;
如果是蓝牙数据中断标识,则设备将定时器的计数值设置为第一初始值,并执行步骤620;
如果是按键中断标识,则设备将定时器的计数值设置为第一初始值,并执行步骤642。
步骤605,设备更新定时器的计数值。
具体地,设备可以将定时器的计数值加第一预设步长,将得到的结果作为更新后的定时器的计数值;也可以将定时器的计数值减第一预设步长,将得到的结果作为更新后的定时器的计数值。
例如,第一预设步长为1,设备在轮询到定时器中断标识后,将定时器的计数值加1,将得到的结果作为更新后的定时器的计数值。
步骤606,设备判断定时器的计数值是否达到第一阈值,如果是,则关机,结束流程;否则,将定时器中断标识复位,返回步骤601。
例如,第一阈值为60。
步骤607,设备将卡槽状态设置为有卡未激活状态,向上位机发送插卡响应,将插卡中断标识复位,并返回步骤601。
具体地,设备可以将插卡中断标识复位,通过将卡槽状态寄存器中的卡槽状态信息设置为第九预设值的方式,将卡槽状态设置为有卡未激活状态,并在USB通道标识置位时,通过USB通道向上位机发送插卡响应;在蓝牙通道标识置位时,通过蓝牙通道向上位机发送插卡响应。
步骤608,设备将卡槽状态设置为无卡状态,向上位机发送拔卡响应,将拔卡中断标识复位,并返回步骤601。
具体地,设备可以将拔卡中断标识复位,通过将卡槽状态寄存器中的卡槽状态信息设置为第三预设值的方式,将卡槽状态设置为无卡状态,并在USB通道标识置位时,通过USB通道向上位机发送拔卡响应;在蓝牙通道标识置位时,通过蓝牙通道向上位机发送拔卡响应。
步骤609,设备判断蓝牙通道标识是否置位,如果是,则执行步骤610;否则,执行步骤611。
步骤610,设备关闭蓝牙通道使能,将蓝牙通道标识、按键等待标识和身份标识复位,并执行步骤611。
本实施例中,设备关闭蓝牙通道使能后,将无法接收到蓝牙数据。
步骤611,设备打开USB通道使能,将USB通道标识置位,显示USB连接信息,将插USB中断标识复位,并返回步骤601。
步骤612,设备关闭USB通道使能,打开蓝牙通道使能,将USB通道标识、按键等待标识、身份标识和拔USB中断标识复位,显示USB断开信息,并返回步骤601。
本实施例中,设备关闭USB通道使能后,将无法接收到USB数据;设备打开蓝牙通道使能后,可以接收到蓝牙数据。
步骤613,设备判断USB通道标识是否置位,如果是,则执行步骤614;否则,执行步骤615。
步骤614,设备将蓝牙连接中断标识复位,并返回步骤601。
步骤615,设备打开蓝牙通道使能,将蓝牙通道标识置位,显示蓝牙连接信息,将蓝牙连接中断标识复位,并返回步骤601。
步骤616,设备判断USB通道标识是否置位,如果是,则执行步骤617;否则,执行步骤618。
步骤617,设备将蓝牙断开中断标识复位,并返回步骤601。
步骤618,设备关闭蓝牙通道使能,将蓝牙通道标识、按键等待标识、身份标识和蓝牙断开中断标识复位,显示蓝牙断开信息,并返回步骤601。
步骤619,设备将USB数据中断标识复位,将USB通道标识置位,通过USB通道接收指令,并执行步骤621。
步骤620,设备将蓝牙数据中断标识复位,将蓝牙通道标识置位,通过蓝牙通道接收指令,并执行步骤621。
步骤621,设备对接收到的指令的类型进行判断,如果是卡槽上电指令,则执行步骤622;如果是卡槽下电指令,则执行步骤625;如果是查询卡槽状态指令,则执行步骤626;如果是智能密钥功能指令,则执行步骤627。
步骤622,设备判断卡槽中是否有签名接触卡,如果是,则执行步骤623;否则,执行步骤624。
具体地,设备可以查询卡槽状态寄存器中的卡槽状态信息,并对卡槽状态信息进行判断,如果为第三预设值,则确定卡槽中没有签名接触卡;如果为第九预设值或第十预设值,则确定卡槽中有签名接触卡。
步骤623,设备对卡槽上电,将卡槽状态设置为有卡已激活状态,读取上电响应,将上电响应发送给上位机,并返回步骤601。
具体地,设备可以通过将卡槽状态寄存器中的卡槽状态信息设置为第十预设值的方式,将卡槽状态设置为有卡已激活状态。当USB通道标识置位时,设备可以通过USB通道向上位机发送上电响应;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送上电响应。
步骤624,设备向上位机发送无卡响应,并返回步骤601。
具体地,当USB通道标识置位时,设备可以通过USB通道向上位机发送无卡响应;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送无卡响应。
步骤625,设备对卡槽下电,将卡槽状态设置为有卡未激活状态,读取下电响应,将下电响应发送给上位机,并返回步骤601。
具体地,设备可以通过将卡槽状态寄存器中的卡槽状态信息设置为第九预设值的方式,将卡槽状态设置为有卡未激活状态。当USB通道标识置位时,设备可以通过USB通道向上位机发送下电响应;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送下电响应。
步骤626,设备查询卡槽状态信息,将卡槽状态信息发送给上位机,并返回步骤601。
具体地,设备可以查询卡槽状态寄存器,获取该卡槽状态寄存器中存储的卡槽状态信息,并在USB通道标识置位时,通过USB通道向上位机发送卡槽状态信息;在蓝牙通道标识置位时,通过蓝牙通道向上位机发送卡槽状态信息。
步骤627,设备判断卡槽状态是否为有卡已激活状态,如果是,则执行步骤628;否则,执行步骤630。
具体地,设备可以判断卡槽状态寄存器中的卡槽状态信息是否为第十预设值,如果是,则确定卡槽状态为有卡已激活状态;否则,确定卡槽状态不是有卡已激活状态。
步骤628,设备将接收到的指令发送给卡槽中的签名接触卡。
步骤629,设备接收签名接触卡返回的指令执行结果,将该指令执行结果发送给上位机,并返回步骤601。
具体地,当USB通道标识置位时,设备可以通过USB通道向上位机发送指令执行结果;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送指令执行结果。
步骤630,设备判断接收到的指令是否为身份认证指令,如果是,则执行步骤631;否则,执行步骤635。
步骤631,设备对身份认证指令进行解析,得到验证信息。
步骤632,设备根据验证信息判断用户身份是否合法,如果是,则执行步骤633,否则,执行步骤634。
步骤633,设备将身份标识置位,向上位机发送验证成功消息,并返回步骤601。
具体地,当USB通道标识置位时,设备可以通过USB通道向上位机发送验证成功消息;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送验证成功消息。
步骤634,设备向上位机发送验证失败消息,并返回步骤601。
具体地,当USB通道标识置位时,设备可以通过USB通道向上位机发送验证失败消息;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送验证失败消息。
步骤635,设备判断接收到的指令是否为在身份认证成功后才被允许执行的指令,如果是,则执行步骤636;否则,执行步骤638。
步骤636,设备判断身份标识是否置位,如果是,则执行步骤638;否则,执行步骤637。
步骤637,设备向上位机发送指令执行失败消息,并返回步骤601。
具体地,当USB通道标识置位时,设备可以通过USB通道向上位机发送指令执行失败消息;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送指令执行失败消息。
步骤638,设备根据接收到的指令,执行相应的指令操作,得到指令响应。
步骤639,设备判断是否需要等待按键操作,如果是,则执行步骤640;否则,执行步骤641。
步骤640,设备保存指令中的业务信息以及通过执行指令操作得到的哈希结果,对按键等待标识进行置位,并执行步骤641。
步骤641,设备向上位机发送指令响应,并返回步骤601。
具体地,当USB通道标识置位时,设备可以通过USB通道向上位机发送指令响应;当蓝牙通道标识置位时,设备可以通过蓝牙通道向上位机发送指令响应。
步骤642,设备关闭按键中断,扫描按键,获取被按下的按键的键值。
步骤643,设备判断获取的键值是否为空,如果是,则执行步骤644;否则,执行步骤645。
步骤644,设备将按键中断标识复位,打开按键中断,返回步骤601。
步骤645,设备根据获取的键值,对被按下的按键进行判断,如果是电源键,则执行步骤646;如果是返回键,则执行647;如果是其他按键,则执行步骤648。
步骤646,设备判断电源键被按下的时长是否达到第一预设时长,如果是,则设备关机,结束流程;否则,返回步骤644。
例如,第一预设时长为2秒。
步骤647,设备将按键中断标识复位,打开按键中断,并返回步骤502。
步骤648,设备判断按键等待标识是否被置位,如果是,则执行步骤649;否则,返回步骤644。
步骤649,设备根据获取的键值,对被按下的按键进行判断,如果是方向键,则执行步骤650;如果是确认键,则执行步骤654;如果是取消键,则执行步骤659;如果是其他按键,则返回步骤644。
步骤650,设备显示业务信息。
步骤651,设备判断自身存储的业务信息是否已显示完毕,如果是,则执行步骤652;否则,执行步骤653。
步骤652,设备对报文显示完成标识进行置位,并执行步骤653。
步骤653,设备将按键中断标识复位,打开按键中断,并返回步骤601。
步骤654,设备判断报文显示完成标识是否置位,如果是,则执行步骤655;否则,执行步骤658。
步骤655,设备使用用户私钥对自身保存的哈希结果进行签名。
步骤656,设备判断签名是否成功,如果是,则执行步骤657;否则,执行步骤658;
步骤657,设备保存签名结果,显示操作成功信息,将报文显示完成标识和按键中断标识复位,打开按键中断,并返回步骤601。
步骤658,设备显示操作失败信息,将报文显示完成标识和按键中断标识复位,打开按键中断,并返回步骤601。
步骤659,设备显示操作取消信息,将按键中断标识复位,打开按键中断,并返回步骤601。
需要说明的是,在本发明实施例的另一种实施方式中,设备查询到插USB中断标识置位后,可以将定时器的计数值设置为第一初始值,对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识、按键等待标识、身份标识和插USB中断标识复位,显示USB连接信息,并返回步骤601;
设备查询到拔USB中断标识置位后,可以将定时器的计数值设置为第一初始值,对蓝牙模块上电,关闭USB通道使能,将USB通道标识、按键等待标识、身份标识和拔USB中断标识复位,显示USB断开信息,并返回步骤601;
设备查询到蓝牙连接中断标识置位后,可以将定时器的计数值设置为第一初始值,打开蓝牙通道使能,将蓝牙通道标识置位,显示蓝牙连接信息,将蓝牙连接中断标识复位,并返回步骤601;
设备查询到蓝牙断开中断标识置位后,可以将定时器的计数值设置为第一初始值,关闭蓝牙通道使能,将蓝牙通道标识、按键等待标识、身份标识和蓝牙断开中断标识复位,显示蓝牙断开信息,并返回步骤601。上述实施方式同样可以实现本发明的发明目的。
在本发明实施例的又一种实施方式中,设备查询到插USB中断标识置位后,可以将定时器的计数值设置为第一初始值,关闭蓝牙通道使能、蓝牙连接中断、蓝牙数据中断和蓝牙断开中断,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识、按键等待标识、身份标识和插USB中断标识复位,显示USB连接信息,并返回步骤601;
设备查询到拔USB中断标识置位后,可以将定时器的计数值设置为第一初始值,打开蓝牙连接中断、蓝牙数据中断和蓝牙断开中断,关闭USB通道使能,将USB通道标识、按键等待标识、身份标识和拔USB中断标识复位,显示USB断开信息,并返回步骤601;
设备查询到蓝牙连接中断标识置位后,可以将定时器的计数值设置为第一初始值,打开蓝牙通道使能,将蓝牙通道标识置位,显示蓝牙连接信息,将蓝牙连接中断标识复位,并返回步骤601;
设备查询到蓝牙断开中断标识置位后,可以将定时器的计数值设置为第一初始值,关闭蓝牙通道使能,将蓝牙通道标识、按键等待标识、身份标识和蓝牙断开中断标识复位,显示蓝牙断开信息,并返回步骤601。上述实施方式同样可以实现本发明的发明目的。
在本发明实施例的再一种实施方式中,设备查询到插USB中断标识置位后,可以将定时器的计数值设置为第一初始值,对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识、按键等待标识、身份标识和插USB中断标识复位,显示USB连接信息,并返回步骤601;
设备查询到拔USB中断标识置位后,可以将定时器的计数值设置为第一初始值,对蓝牙模块上电,关闭USB通道使能,将USB通道标识、按键等待标识、身份标识和拔USB中断标识复位,显示USB断开信息,并返回步骤601;也可以关机,结束流程。
设备查询到蓝牙连接中断标识置位后,可以将定时器的计数值设置为第一初始值,关闭插USB中断、USB数据中断和拔USB中断,打开蓝牙通道使能,将蓝牙通道标识置位,将USB通道标识、按键等待标识和身份标识复位,显示蓝牙连接信息,将蓝牙连接中断标识复位,并返回步骤601;
设备查询到蓝牙断开中断标识置位后,可以将定时器的计数值设置为第一初始值,打开插USB中断、USB数据中断和拔USB中断,关闭蓝牙通道使能,将蓝牙通道标识、按键等待标识、身份标识和蓝牙断开中断标识复位,显示蓝牙断开信息,并返回步骤601,也可以关机,结束流程。上述实施方式同样可以实现本发明的发明目的。
如图20至图26所示,为本发明实施例中的另一种多功能认证设备执行动态口令功能的流程图,包括以下步骤:
步骤701,设备将系统状态标识设置为检查密码标识。
步骤702,设备判断是否保存有锁定信息,如果是,则执行步骤703;否则,执行步骤704。
步骤703,设备将系统状态标识设置为锁定标识,并执行步骤704。
步骤704,设备判断是否存在置位的中断标识,如果是,则执行步骤705;否则,返回步骤704。
步骤705,设备对置位的中断标识的类型进行判断,
如果是按键中断标识,则执行步骤706;
如果是蓝牙连接中断标识,则执行步骤783;
如果是蓝牙数据中断标识,则执行步骤786;
如果是蓝牙断开中断标识,则执行步骤792;
如果是定时器中断标识,则执行步骤801;
如果是其他中断标识,则设备将对应的中断标识复位,并返回步骤704。
步骤706,设备关闭按键中断,扫描按键,获取被按下的按键的键值。
步骤707,设备判断获取的键值是否为空,如果是,则执行步骤708;否则,执行步骤709。
步骤708,设备将按键中断标识复位,打开按键中断,返回步骤704。
步骤709,设备将无按键计数器的计数值置为第二初始值。
其中,第二初始值可以为零,也可以为非零的常数。
步骤710,设备根据获取的键值,对被按下的按键进行判断,如果是电源键,如果是,则执行步骤711;如果是返回键,则将按键中断标识复位,打开按键中断,并返回步骤502;如果是其他按键,则执行步骤712。
步骤711,设备判断电源键被按下的时长是否达到第一预设时长,如果是,则设备关机,结束流程;否则,将按键中断标识复位,打开按键中断,并返回步骤704。
例如,第一预设时长为2秒。
步骤712,设备对系统状态标识进行判断,
如果是检查密码标识,则执行步骤713;
如果是蓝牙OTP标识,则执行步骤730;
如果是输入挑战码标识,则执行步骤746;
如果是菜单功能选择标识,则执行步骤758;
如果是等待标识,则执行步骤767;
如果是锁定标识,则执行步骤769;
如果是重置密码标识,则执行步骤777。
步骤713,设备根据获取的键值,对被按下的按键进行判断,
如果是数字键,则执行步骤714;
如果是删除键,则执行步骤717;
如果是确认键,则执行步骤719;
步骤714,设备判断按键数据长度是否小于第一预设长度,如果是,则执行步骤716;否则,执行步骤715。
例如,第一预设长度为6。
步骤715,设备将按键中断标识复位,打开按键中断,返回步骤704。
步骤716,设备将获取的键值保存到按键数据缓冲区中,更新按键数据长度,返回步骤715。
具体地,设备可以将按键数据长度加第三预设步长,将得到的结果作为更新后的按键数据长度;也可以将按键数据长度减第三预设步长,将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度加1,将得到的结果作为更新后的按键数据长度。
步骤717,设备判断按键数据长度是否为第三初始值,如果是,则返回步骤715;否则,执行步骤718。
其中,第三初始值可以为按键数据长度的初始值,可以为零,也可以为非零的常数。
步骤718,设备更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,并返回步骤715。
具体地,当设备在步骤716中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度。当设备在步骤716中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度减1,将得到的结果作为更新后的按键数据长度。
步骤719,设备判断按键数据缓冲区中的数据是否与密码数据缓冲区中的数据相同,如果是,则执行步骤724;否则,执行步骤720。
步骤720,设备更新密码错误次数,显示密码错误信息。
具体地,设备可以将密码错误次数加第四预设步长,将得到的结果作为更新后的密码错误次数;也可以将密码错误次数减第四预设步长,将得到的结果作为更新后的密码错误次数。
例如,第四预设步长为1,设备将密码错误次数加1,将得到的结果作为更新后的密码错误次数。
步骤721,设备判断密码错误次数是否等于预设次数,如果是,则执行步骤722;否则,执行步骤723。
例如,预设次数为4次。
步骤722,设备保存锁定信息,将系统状态标识设置为锁定标识,显示锁定信息,清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤715。
步骤723,设备清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤715。
步骤724,设备显示密码正确信息,将密码错误次数设置为第四初始值。
其中,第四初始值可以为零,也可以为非零的常数。
步骤725,设备判断蓝牙模块的工作电压是否低于第二预设电压,如果是,则执行步骤726;否则,执行步骤729。
步骤726,设备显示蓝牙模块低电压信息。
步骤727,设备判断蓝牙模块的工作电压低于第二预设电压的时长是否达到第二预设时长,如果是,则执行步骤728;否则,执行步骤729。
例如,第二预设时长为10秒。
步骤728,设备将系统状态标识设置为输入挑战码标识,显示输入挑战码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤715。
步骤729,设备对蓝牙模块上电,将蓝牙模块的工作模式切换至监听模式,将系统状态标识设置为蓝牙OTP标识,显示蓝牙OTP界面,将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识、主动选择蓝牙标识和蓝牙连接中断标识复位,清空按键数据缓冲区和接收数据缓冲区,将按键数据长度置为第三初始值,返回步骤715。
其中,第五初始值可以为零,也可以为非零的常数。
步骤730,设备根据获取的键值,对被按下的按键进行判断,
如果是数字键,则执行步骤731;
如果是确认键,则执行步骤734;
如果是删除键,则执行步骤740;
步骤731,设备判断允许按键输入标识是否置位,如果是,则执行步骤732;否则,返回步骤715。
步骤732,设备判断按键数据长度是否小于第二预设长度,如果是,则执行步骤733;否则,返回步骤715。
例如,第二预设长度为6。
步骤733,设备更新按键数据长度,将获取的键值保存到按键数据缓冲区中,显示按键数据缓冲区中的数据,并返回步骤715。
具体地,设备可以将按键数据长度加第三预设步长,将得到的结果作为更新后的按键数据长度;也可以将按键数据长度减第三预设步长,将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度加1,将得到的结果作为更新后的按键数据长度。
步骤734,设备判断蓝牙数据接收完成标识是否置位,如果是,则执行步骤735;否则,执行步骤736。
步骤735:设备将接收数据缓冲区中的数据作为挑战值,生成动态口令,显示该动态口令和预设数量的时间条,将系统状态标识设置为等待标识,将口令显示时长设置为第六初始值,清空接收数据缓冲区,通过蓝牙通道向上位机发送动态口令,并返回步骤715。
具体地,设备可以将接收数据缓冲区中的数据作为挑战值,生成挑战应答型动态口令,也可以对接收数据缓冲区中的数据和设备内部的动态因子进行组合,将组合得到的数据作为挑战值,生成挑战应答型动态口令。
其中,第六初始值可以为零,也可以为非零的常数。设备内部的动态因子可以为时间因子和/或事件因子。设备使用事件因子计算动态口令之后,可以对事件因子进行更新,例如,将事件因子加1。
步骤736,设备判断允许按键输入标识是否置位,如果是,则执行步骤737;否则,返回步骤715。
步骤737,设备判断按键数据长度是否等于第三初始值,如果是,则执行步骤738;否则,执行步骤739。
步骤738,设备根据自身内部的动态因子生成动态口令,显示该动态口令和预设数量的时间条,将系统状态标识设置为等待标识,将口令显示时长设置为第六初始值,通过蓝牙通道将动态口令发送给上位机,并返回步骤715。
其中,设备内部的动态因子可以为时间因子,也可以为或事件因子。相应地,设备可以根据时间因子计算时间型动态口令,也可以根据事件因子计算事件型动态口令,并对事件因子进行更新,例如,将事件因子加1。
步骤739,设备将按键数据缓冲区中的数据作为挑战值,生成动态口令,显示该动态口令和预设数量的时间条,将系统状态标识设置为等待标识,将口令显示时长设置为第六初始值,清空按键数据缓冲区,通过蓝牙通道向上位机发送动态口令,并返回步骤715。
具体地,设备可以将按键数据缓冲区中的数据作为挑战值,生成挑战应答型动态口令,也可以对按键数据缓冲区中的数据和设备内部的动态因子进行组合,将组合得到的数据作为挑战值,生成挑战应答型动态口令。其中,设备内部的动态因子可以为时间因子和/或事件因子。设备使用事件因子计算动态口令之后,可以对事件因子进行更新,例如,将事件因子加1。
步骤740,设备判断删除键被按下的时长是否达到第三预设时长,如果是,则执行步骤745;否则,执行步骤741。
步骤741,设备判断蓝牙数据接收完成标识是否置位,如果是,则返回步骤715;否则,执行步骤742。
步骤742,设备判断允许按键输入标识是否置位,如果是,则执行步骤743;否则,返回步骤715。
步骤743,设备判断按键数据长度是否等于第三初始值,如果是,则返回步骤715;否则,执行步骤744。
步骤744,设备更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,显示按键数据缓冲区中的数据,并返回步骤715。
具体地,当设备在步骤733中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度。当设备在步骤733中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度减1,将得到的结果作为更新后的按键数据长度。
步骤745,设备将系统状态标识设置为输入挑战码标识,显示输入挑战码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,并返回步骤715。
步骤746,设备根据获取的键值,对被按下的按键进行判断,
如果是数字键,则执行步骤747;
如果是确认键,则执行步骤749;
如果是删除键,则执行步骤752;
步骤747,设备判断按键数据长度是否小于第二预设长度,如果是,则执行步骤748;否则,返回步骤715。
步骤748,设备更新按键数据长度,将获取的键值保存到按键数据缓冲区中,显示按键数据缓冲区中的数据,并返回步骤715。
具体地,设备可以将按键数据长度加第三预设步长,将得到的结果作为更新后的按键数据长度;也可以将按键数据长度减第三预设步长,将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度加1,将得到的结果作为更新后的按键数据长度。
步骤749,设备判断按键数据长度是否为第三初始值,如果是,则执行步骤750;否则,执行步骤751。
步骤750,设备根据自身内部的动态因子生成动态口令,显示该动态口令和预设数量的时间条,将系统状态标识设置为等待标识,将口令显示时长设置为第六初始值,并返回步骤715。
其中,设备内部的动态因子可以为时间因子,也可以为事件因子。相应地,设备可以根据时间因子计算时间型动态口令,也可以根据事件因子计算事件型动态口令,并对事件因子进行更新,例如,将事件因子加1。
步骤751,设备将按键数据缓冲区中的数据作为挑战值,生成动态口令,显示该动态口令和预设数量的时间条,将系统状态标识设置为等待标识,将口令显示时长设置为第六初始值,清空按键数据缓冲区,并返回步骤715。
具体地,设备可以将按键数据缓冲区中的数据作为挑战值,生成挑战应答型动态口令,也可以对按键数据缓冲区中的数据和设备内部的动态因子进行组合,将组合得到的数据作为挑战值,生成挑战应答型动态口令。其中,设备内部的动态因子可以为时间因子和/或事件因子。设备使用事件因子计算动态口令之后,可以对事件因子进行更新,例如,将事件因子加1。
步骤752,设备判断删除键被按下的时长是否达到第四预设时长,如果是,则执行步骤755;否则,执行步骤753。
例如,第四预设时长为3秒。
步骤753,设备判断按键数据长度是否等于第三初始值,如果是,则返回步骤715;否则,执行步骤754。
步骤754,设备更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,显示按键数据缓冲区中的数据,并返回步骤715。
具体地,当设备在步骤748中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度。当设备在步骤748中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度减1,将得到的结果作为更新后的按键数据长度。
步骤755,设备判断按键数据长度是否等于第三初始值,如果是,则执行步骤756;否则,执行步骤757。
步骤756,设备将系统状态标识设置为菜单功能选择标识,显示菜单功能选择界面,并返回步骤715。
步骤757,设备清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤715。
步骤758,设备根据获取的键值,对被按下的按键进行判断,
如果是第一预设按键,则执行步骤759;
如果是第二预设按键,则设备将系统状态标识设置为重置密码标识,显示重置密码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,并返回步骤715。
步骤759,设备对蓝牙模块上电。
步骤760,设备读取蓝牙模块的参数。
其中,蓝牙模块的参数可以包括名称、密码等信息。
步骤761,设备判断是否成功读取蓝牙模块的参数,如果是,则执行步骤762;否则,执行步骤763。
步骤762,设备将蓝牙模块的工作模式切换为监听模式,将系统状态标识设置为蓝牙OTP标识,显示蓝牙OTP界面,将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识复位,将主动选择蓝牙标识置位,清空按键数据缓冲区和接收数据缓冲区,将按键数据长度置为第三初始值,将读取次数设置为第七初始值,并返回步骤715。
其中,第七初始值可以为零,也可以为非零的常数。
步骤763,设备更新读取次数。
具体地,设备可以将读取次数加第五预设步长,将得到的结果作为更新后的读取次数;也可以将读取次数减第五预设步长,将得到的结果作为更新后的读取次数。
例如,第五预设步长为1,设备将读取次数加1,将得到的结果作为更新后的读取次数。
步骤764,设备判断读取次数是否达到第二阈值,如果是,则执行步骤765;否则,返回步骤760。
例如,第二阈值为5。
步骤765,设备显示蓝牙模块损坏信息,对蓝牙模块下电。
步骤766,设备将系统状态标识设置为输入挑战码标识,显示输入挑战码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,并返回步骤715。
步骤767,设备根据获取的键值,判断被按下的按键是否为第三预设按键,如果是,则执行步骤768;否则,设备将口令显示时长设置为第六初始值,并返回步骤715。
其中,第三预设按键可以为确认键,第六初始值可以为零,也可以为非零的常数。
步骤768,设备将系统状态标识设置为输入挑战码标识,显示输入挑战码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤715。
步骤769,设备根据获取的键值,对被按下的按键进行判断,
如果是数字键,则执行步骤770;
如果是删除键,则执行步骤772;
如果是确认键,则执行步骤774;
步骤770,设备判断按键数据长度是否小于第三预设长度,如果是,则执行步骤771;否则,返回步骤715。
例如,第三预设长度为6。
步骤771,设备将获取的键值保存到按键数据缓冲区中,更新按键数据长度,返回步骤715。
具体地,设备可以将按键数据长度加第三预设步长,将得到的结果作为更新后的按键数据长度;也可以将按键数据长度减第三预设步长,将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度加1,将得到的结果作为更新后的按键数据长度。
步骤772,设备判断按键数据长度是否为第三初始值,如果是,则返回步骤715;否则,执行步骤773。
步骤773,设备更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,并返回步骤715。
具体地,当设备在步骤771中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度。当设备在步骤771中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度减1,将得到的结果作为更新后的按键数据长度。
步骤774,设备对按键数据缓冲区中的数据进行验证,如果验证通过,则执行步骤775;如果验证未通过,则执行步骤776。
步骤775,设备将系统状态标识设置为重置密码标识,显示重置密码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤715。
步骤776,设备显示解锁失败信息,清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤715。
步骤777,设备根据获取的键值,对被按下的按键进行判断,
如果是数字键,则执行步骤778;
如果是删除键,则执行步骤780;
如果是确认键,则执行步骤782;
步骤778,设备判断按键数据长度是否小于第一预设长度,如果是,则执行步骤779;否则,返回步骤715。
步骤779,设备将获取的键值保存到按键数据缓冲区中,更新按键数据长度,返回步骤715。
具体地,设备可以将按键数据长度加第三预设步长,将得到的结果作为更新后的按键数据长度;也可以将按键数据长度减第三预设步长,将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度加1,将得到的结果作为更新后的按键数据长度。
步骤780,设备判断按键数据长度是否为第三初始值,如果是,则返回步骤715;否则,执行步骤781。
步骤781,设备更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,并返回步骤715。
具体地,当设备在步骤779中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度。当设备在步骤779中将按键数据长度减第三预设步长,并将得到的结果作为更新后的按键数据长度时,设备可以在本步骤中将按键数据长度加第三预设步长,并将得到的结果作为更新后的按键数据长度。
例如,第三预设步长为1,设备将按键数据长度减1,将得到的结果作为更新后的按键数据长度。
步骤782,设备将按键数据缓冲区中的数据存储到密码数据缓冲区,将系统状态标识设置为检查密码标识,显示检查密码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,返回步骤715。
步骤783,设备判断系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤784;否则,执行步骤785。
步骤784,设备打开蓝牙通道使能,显示蓝牙连接信息,并执行步骤785。
步骤785,设备将蓝牙连接中断标识复位,并返回步骤704。
步骤786,设备接收蓝牙数据,将接收到的蓝牙数据保存到接收数据缓冲区中。
步骤787,设备判断接收数据缓冲区中的数据在第五预设时长内是否发生变化,如果是,则返回步骤786;否则,执行步骤788。
步骤788,设备判断接收数据缓冲区中的数据是否完整,如果是,则执行步骤789;否则,执行步骤791。
步骤789,设备对接收数据缓冲区中的数据进行校验,如果校验通过,则执行步骤790;如果校验未通过,则执行步骤791。
步骤790,设备将蓝牙数据接收完成标识置位,将蓝牙数据中断标识复位,并返回步骤704。
步骤791,设备清空接收数据缓冲区,将蓝牙数据中断标识复位,并返回步骤704。
步骤792,设备判断系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤793;否则,执行步骤794。
步骤793,设备显示蓝牙断开信息,清空接收数据缓冲区,将蓝牙数据接收完成标识复位,并执行步骤794。
步骤794,设备将蓝牙断开中断标识复位,并返回步骤704。
步骤801,设备对系统状态标识进行判断,
如果是蓝牙OTP标识,则执行步骤802;
如果是等待标识,则执行步骤809;
如果是其他标识,则执行步骤812。
步骤802,设备更新蓝牙模式计数器的计数值。
具体地,设备可以将蓝牙模式计数器的计数值加第六预设步长,将得到的结果作为更新后的蓝牙模式计数器的计数值;也可以将蓝牙模式计数器的计数值减第六预设步长,将得到的结果作为更新后的蓝牙模式计数器的计数值。
例如,第六预设步长为1,设备将蓝牙模式计数器的计数值加1,将得到的结果作为更新后的蓝牙模式计数器的计数值。
步骤803,设备判断蓝牙模式计数器的计数值是否达到第三阈值,如果是,则执行步骤804;否则,执行步骤807。
例如,第三阈值为5。
步骤804,设备判断主动选择蓝牙标识是否置位,如果是,则执行步骤805;否则,执行步骤806。
步骤805,设备对蓝牙模块下电,将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识置位,并执行步骤812。
步骤806,设备对蓝牙模块下电,将蓝牙模式计数器的计数值置为第五初始值,将系统状态标识设置为输入挑战码标识,显示输入挑战码界面,并执行步骤812。
步骤807,设备判断蓝牙模块的工作电压是否低于第二预设电压,如果是,则执行步骤808;否则,执行步骤812。
步骤808,设备显示蓝牙模块低电压信息,对蓝牙模块下电,将蓝牙模式计数器的计数值置为第五初始值,将系统状态标识设置为输入挑战码标识,显示输入挑战码界面,清空按键数据缓冲区,将按键数据长度置为第三初始值,并执行步骤812。
步骤809,设备更新口令显示时长。
具体地,设备可以将口令显示时长加第七预设步长,将得到的结果作为更新后的口令显示时长;也可以将口令显示时长减第七预设步长,将得到的结果作为更新后的口令显示时长。
例如,第七预设步长为1,设备将口令显示时长加1,将得到的结果作为更新后的口令显示时长。
步骤810,设备判断更新后的口令显示时长是否达到第四阈值,如果是,则设备关机,结束流程;否则,执行步骤811。
例如,第四阈值为15。
步骤811,设备根据更新后的口令显示时长,显示对应数量的时间条,并执行步骤812。
步骤812,设备更新无按键计数器的计数值。
具体地,设备可以将无按键计数器的计数值加第八预设步长,将得到的结果作为更新后的无按键计数器的计数值;也可以将无按键计数器的计数值减第八预设步长,将得到的结果作为更新后的无按键计数器的计数值。
例如,第八预设步长为1,设备将无按键计数器的计数值加1,将得到的结果作为更新后的无按键计数器的计数值。
步骤813,设备判断无按键计数器的计数值是否达到第五阈值,如果是,则设备关机,结束流程;否则,执行步骤814。
例如,第五阈值为120。
步骤814,设备判断当前是否有按键被按下,如果是,则执行步骤815;否则,执行步骤819。
步骤815,设备对按键按下计数器的计数值进行更新,将按键松开计数器的计数值设置为第八初始值。
具体地,设备可以将按键按下计数器的计数值加第九预设步长,将得到的结果作为更新后的按键按下计数器的计数值;也可以将按键按下计数器的计数值减第九预设步长,将得到的结果作为更新后的按键按下计数器的计数值。其中,第八初始值可以为零,也可以为非零的常数。
例如,第九预设步长为1,设备将按键按下计数器的计数值加1,将得到的结果作为更新后的按键按下计数器的计数值。
步骤816,设备判断按键按下计数器的计数值是否达到第六阈值,如果是,则执行步骤817;否则,执行步骤818。
例如,第六阈值为10。
步骤817,设备将按键按下计数器的计数值设置为第九初始值,关闭按键中断,并执行步骤818。
其中,第九初始值可以为零,也可以为非零的常数。
步骤818,设备将定时器中断标识复位,并返回步骤704。
步骤819,设备更新按键松开计数器的计数值,将按键按下计数器的计数值设置为第九初始值。
具体地,设备可以将按键松开计数器的计数值加第十预设步长,将得到的结果作为更新后的按键松开计数器的计数值;也可以将按键松开计数器的计数值减第十预设步长,将得到的结果作为更新后的按键松开计数器的计数值。
例如,第十预设步长为1,设备将按键松开计数器的计数值加1,将得到的结果作为更新后的按键松开计数器的计数值。
步骤820,设备判断按键松开计数器的计数值是否达到第七阈值,如果是,则执行步骤821;否则,返回步骤818。
例如,第七阈值为4。
步骤821,设备将按键松开计数器的计数值设置为第八初始值,打开按键中断,并返回步骤818。
需要说明的是,本发明实施例中,设备通过轮询中断标识的方式执行动态口令功能时,每隔一秒钟接收一次定时器中断;设备接收到定时器中断后,将定时器中断标识置位,并执行如图27所示的流程,包括以下步骤:
步骤901,设备更新秒计数器的计数值。
具体地,设备可以将秒计数器的计数值加第十一预设步长,将得到的结果作为更新后的秒计数器的计数值;也可以将秒计数器的计数值减第十一预设步长,将得到的结果作为更新后的秒计数器的计数值。
例如,第十一预设步长为1,设备将秒计数器的计数值加1,将得到的结果作为更新后的秒计数器的计数值。
步骤902,设备对秒计数器的计数值进行判断,如果等于第八阈值,则执行步骤903;如果等于第九阈值,则执行步骤905;如果等于其他值,则返回步骤704。
其中,第九阈值可以小于第八阈值,例如,第八阈值为60,第九阈值为15。
步骤903,设备将秒计数器的计数值设置为第十初始值,将事件因子设置为第十一初始值,更新时间因子和校准计数器的计数值。
其中,第十初始值可以为零,也可以为非零的常数;第十一初始值可以为零,也可以为非零的常数。
设备可以将时间因子加第十二预设步长,将得到的结果作为更新后的时间因子;也可以将时间因子减第十二预设步长,将得到的结果作为更新后的时间因子。
设备可以将校准计数器的计数值加第十三预设步长,将得到的结果作为更新后的校准计数器的计数值;也可以将校准计数器的计数值减第十三预设步长,将得到的结果作为更新后的校准计数器的计数值。
例如,第十二预设步长为1,第十三预设步长为1,相应地,设备将时间因子加1,将得到的结果作为更新后的时间因子;将校准计数器的计数值加1,将得到的结果作为更新后的校准计数器的计数值。
步骤904,设备判断系统状态标识是否为等待标识,如果是,则设备关机,结束流程;否则,返回步骤704。
步骤905,设备判断校准计数器的计数值是否小于预设的校准值,如果是,则返回步骤704;否则,执行步骤906。
步骤906,设备根据校准值更新校准计数器的计数值和秒计数器的计数值,并返回步骤704。
具体地,设备可以将校准计数器的计数值减去预设的校准值,将得到的结果作为更新后的校准计数器的计数值。设备还可以根据校准值的最高位的取值,更新秒计数器的计数值。
本实施例中,当设备在步骤901中通过将秒计数器的计数值加第十一预设步长的方式,更新秒计数器的计数值时,如果校准值的最高位的取值为1,则设备在步骤906中通过将秒计数器的计数值减第十一预设步长的方式,更新秒计数器的计数值;如果校准值的最高位的取值为零,则设备在步骤906中通过将秒计数器的计数值加第十一预设步长的方式,更新秒计数器的计数值。
同样地,当设备在步骤901中通过将秒计数器的计数值减第十一预设步长的方式,更新秒计数器的计数值时,如果校准值的最高位的取值为1,则设备在步骤906中通过将秒计数器的计数值加第十一预设步长的方式,更新秒计数器的计数值;如果校准值的最高位的取值为零,则设备在步骤906中通过将秒计数器的计数值减第十一预设步长的方式,更新秒计数器的计数值。
例如,校准值为100,校准计数器的计数值为100时,设备可以将校准计数器的计数值更新为零。第十一预设步长为1,校准值的最高位的取值为1,设备在步骤901中通过将秒计数器的计数值加1的方式,更新秒计数器的计数值时,设备在步骤906中通过将秒计数器的计数值减1的方式,更新秒计数器的计数值。
本发明实施例中的多功能认证设备,支持USB接口和蓝牙接口,实现多通道认证机制,且具备智能密钥功能、动态口令功能和读卡器功能,增加了人机交互功能,降低了对上位机的环境安全的依赖程度,提高了身份认证的安全性。
本发明实施例还提供了一种多功能认证设备,如图28所示,包括:
初始化模块1010,用于执行初始化操作;
第一功能模块1020,用于执行智能密钥功能的流程;
第二功能模块1030,用于执行动态口令功能的流程;
获取模块1040,用于获取功能选择信息;
选择模块1050,用于根据获取模块1040获取的功能选择信息触发第一功能模块1020执行智能密钥功能的流程,或者触发第二功能模块1030执行动态口令功能的流程;
其中,功能选择信息包括用户按键信息和/或多功能认证设备与上位机之间的连接状态;
相应地,选择模块1050,可以具体用于根据用户按键信息触发第一功能模块1020执行智能密钥功能的流程,或者触发第二功能模块1030执行动态口令功能的流程;
或者,
根据连接状态触发第一功能模块1020执行智能密钥功能的流程,或者触发第二功能模块1030执行动态口令功能的流程;
或者,
根据用户按键信息和连接状态触发第一功能模块1020执行智能密钥功能的流程,或者触发第二功能模块1030执行动态口令功能的流程;
或者,
ⅰ、触发第一功能模块1020执行智能密钥功能的流程,并在根据用户按键信息监测到第一预设按键被触发时,执行步骤ⅱ;
ⅱ、触发初始化模块1010执行初始化操作,触发第二功能模块1030执行动态口令功能的流程,并在根据用户按键信息监测到第二预设按键被触发时,触发初始化模块1010执行初始化操作,并返回步骤ⅰ;
或者,
ⅲ、触发第二功能模块1030执行动态口令功能的流程,并在根据用户按键信息监测到第一预设按键被触发时,执行步骤ⅳ;
ⅳ、触发初始化模块1010执行初始化操作,触发第一功能模块1020执行执行智能密钥功能的流程,并在根据用户按键信息监测到第二预设按键被触发时,触发初始化模块1010执行初始化操作,并返回步骤ⅲ。
其中,第一预设按键和第二预设按键可以为同一按键,也可以为不同的按键。
上述选择模块1050,也可以具体用于对连接状态进行判断,如果多功能认证设备通过USB接口与上位机进行连接,则触发第一功能模块1020执行智能密钥功能的流程;如果多功能认证设备通过蓝牙接口与上位机进行连接,则触发第一功能模块1020执行智能密钥功能的流程,或者触发第二功能模块1030执行动态口令功能的流程;如果多功能认证设备没有与上位机建立连接,则触发第二功能模块1030执行动态口令功能的流程。
上述选择模块1050,还可以具体用于执行以下操作:
①、对连接状态进行判断,如果多功能认证设备通过USB接口与上位机建立连接,则执行步骤②;如果多功能认证设备通过蓝牙接口与上位机建立连接,则执行步骤②或步骤③;如果多功能认证设备没有与上位机建立连接,则执行步骤③;
②、触发第一功能模块1020执行智能密钥功能的流程,在根据用户按键信息监测到第三预设按键被触发时,触发初始化模块1010执行初始化操作,并执行步骤③;
③、触发第二功能模块1030执行动态口令功能的流程,在根据用户按键信息监测到第四预设按键被触发时,触发初始化模块1010执行初始化操作,并返回步骤②。
其中,第三预设按键和第四预设按键可以为同一按键,也可以为不同的按键。
本发明实施例中,用户按键信息可以为被按下的按键的键值;
相应地,选择模块1050,可以具体用于执行以下操作:
A3、关闭除按键中断和定时器中断之外的其他中断,将定时器的计数值设置为第一初始值;
A4、等待接收中断;
A5、对接收到的中断进行判断,如果是定时器中断,则执行步骤A6;如果是按键中断,则执行步骤A7;
A6、关闭中断,更新定时器的计数值,判断定时器的计数值是否达到第一阈值,如果是,则关机,结束流程;否则,将定时器中断标识复位,打开按键中断和定时器中断,并返回步骤A4;
A7、将定时器的计数值设置为第一初始值,关闭中断,扫描按键,获取被按下的按键的键值,根据键值对被按下的按键进行判断,如果是方向键,则执行步骤A8;如果是确认键,则执行步骤A10;
A8、根据被按下的按键,对主菜单状态寄存器中的数据进行更新;
A9、根据主菜单状态寄存器中的数据,显示对应的菜单信息,将按键中断标识复位,打开按键中断和定时器中断,并返回步骤A4;
A10、对主菜单状态寄存器中的数据进行判断,如果是第一预设值,则将按键中断标识复位,打开蓝牙数据接口、USB数据接口和中断,触发第一功能模块1020执行智能密钥功能的流程;如果是第二预设值,则将按键中断标识复位,打开所述蓝牙数据接口和中断,触发第二功能模块1030执行动态口令功能的流程。
上述第一功能模块1020,可以具体用于执行以下操作:
B1、等待接收中断;
B2、对接收到的中断进行判断,如果是插卡中断,则关闭中断,将插卡中断标识置位,并执行步骤B3;如果是数据中断,则关闭中断,并执行步骤B4;如果是拔卡中断,则关闭中断,并执行步骤B10;
B3、将卡槽状态设置为有卡未激活状态,将插卡中断标识复位,打开中断,返回步骤B1;
B4、接收来自上位机的指令;
B5、对接收到的指令进行判断,如果是卡槽上电指令,则执行步骤B6;如果是智能密钥功能指令,则执行步骤B7;如果是卡槽下电指令,则执行步骤B9;
B6、对卡槽上电,将卡槽状态设置为有卡已激活状态,将数据中断标识复位,打开中断,并返回步骤B1;
B7、判断卡槽状态是否为有卡已激活状态,如果是,则执行步骤B8;否则,将数据中断标识复位,打开中断,并返回步骤B1;
B8、将接收到的指令发送给卡槽中的签名接触卡,接收签名接触卡返回的指令执行结果,将指令执行结果发送给上位机,将数据中断标识复位,打开中断,并返回步骤B1;
B9、对卡槽下电,将卡槽状态设置为有卡未激活状态,将数据中断标识复位,打开中断,并返回步骤B1;
B10、将卡槽状态设置为无卡状态,将拔卡中断标识复位,打开中断,并返回步骤B1。
其中,上述数据中断为蓝牙数据中断时,数据中断标识为蓝牙数据标识;上述数据中断为USB数据中断时,数据中断标识为USB数据标识。
上述第一功能模块1020,也可以具体用于执行以下操作:
C1、等待接收中断;
C2、对接收到的中断进行判断,如果是插USB中断,则关闭中断,并执行步骤C3;如果是拔USB中断,则关闭中断,并执行步骤C4;如果是蓝牙连接中断,则关闭中断,并执行步骤C5;如果是蓝牙断开中断,则关闭中断,并执行步骤C7;如果是USB数据中断,则关闭中断,并执行步骤C8;如果是蓝牙数据中断,则关闭中断,并执行步骤C9;
C3、打开USB通道使能,关闭蓝牙通道使能,将USB通道标识置位,将蓝牙通道标识复位,将插USB中断标识复位,打开中断,并返回步骤C1;
C4、关闭USB通道使能,将USB通道标识复位,将拔USB中断标识复位,打开中断,并返回步骤C1;
C5、判断USB通道标识是否置位,如果是,则将蓝牙连接中断标识复位,打开中断,并返回步骤C1;否则,执行步骤C6;
C6、打开蓝牙通道使能,将蓝牙通道标识置位,将USB通道标识复位,将蓝牙连接中断标识复位,打开中断,并返回步骤C1;
C7、关闭蓝牙通道使能,将蓝牙通道标识复位,将蓝牙断开中断标识复位,打开中断,并返回步骤C1;
C8、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将USB数据中断标识复位,打开中断,并返回步骤C1;
C9、通过蓝牙通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将蓝牙数据中断标识复位,打开中断,并返回步骤C1。
其中,第一功能模块1020根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,具体为:
第一功能模块1020执行以下操作:
D1、判断接收到的指令是否为身份认证指令,如果是,则执行步骤D2;否则,执行步骤D5;
D2、对接收到的指令进行解析,得到验证信息,根据验证信息判断用户身份是否合法,如果是,则执行步骤D3;否则,执行步骤D4;
D3、将身份标识置位,向上位机发送验证成功消息;
D4、向上位机发送验证失败消息;
D5、判断接收到的指令是否为在身份认证成功后才被允许执行的指令,如果是,则执行步骤D6;否则,执行步骤D8;
D6、判断身份标识是否置位,如果是,则执行步骤D8;否则,执行步骤D7;
D7、向上位机发送指令执行失败消息;
D8、根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机;
第一功能模块1020执行步骤C2时,还用于在判断出接收到的中断是插USB中断之后,将身份标识复位;
第一功能模块1020,还用于在判断USB通道标识没有置位之后,将身份标识复位。
此外,第一功能模块1020根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,具体为:
第一功能模块1020根据接收到的指令执行相应的指令操作,得到指令响应;判断是否需要等待按键操作,如果是,则保存指令中的业务信息以及通过执行指令操作得到的哈希结果,对按键等待标识进行置位,向上位机发送指令响应;否则,向上位机发送指令响应;
第一功能模块1020执行步骤C2时,还用于在判断出接收到的中断是按键中断后,关闭中断,并执行以下操作:
E1、扫描按键,获取被按下的按键的键值,判断按键等待标识是否被置位,如果是,则执行步骤E2;否则,根据键值执行相应的操作,将按键中断标识复位,打开中断,并返回步骤C1;
E2、根据键值,对被按下的按键进行判断,如果是方向键,则执行步骤E3;如果是确认键,则执行步骤E4;如果是取消键,则执行步骤E6;
E3、显示业务信息,判断自身存储的业务信息是否已显示完毕,如果是,则对报文显示完成标识进行置位,将按键中断标识复位,打开中断,并返回步骤C1;否则,将按键中断标识复位,打开中断,并返回步骤C1;
E4、判断报文显示完成标识是否置位,如果是,则执行步骤E5;否则,显示操作失败信息,将按键中断标识复位,打开中断,并返回步骤C1;
E5、对哈希结果进行签名,判断签名是否成功,如果是,则保存签名结果,显示操作成功信息,对报文显示完成标识进行复位,将按键中断标识复位,打开中断,并返回步骤C1;否则,显示操作失败信息,对报文显示完成标识进行复位,将按键中断标识复位,打开中断,并返回步骤C1;
E6、显示操作取消信息,将按键中断标识复位,打开中断,并返回步骤C1;
第一功能模块1020执行步骤C2时,还用于在判断接收到的中断是插USB中断之后,将按键等待标识复位;
第一功能模块1020,还用于在判断出USB通道标识没有置位之后,将按键等待标识复位。
上述第一功能模块1020,还可以具体用于执行以下操作:
F1、等待接收中断;
F2、对接收到的中断进行判断,如果是插USB中断,则关闭中断,并执行步骤F3;如果是拔USB中断,则关闭中断,并执行步骤F4;如果是蓝牙连接中断,则关闭中断,并执行步骤F5;如果是蓝牙断开中断,则关闭中断,并执行步骤F6;如果是USB数据中断,则关闭中断,并执行步骤F7;如果是蓝牙数据中断,则关闭中断,并执行步骤F8;
F3、对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识复位,将插USB中断标识复位,打开中断,并返回步骤F1;
F4、对蓝牙模块上电,关闭USB通道使能,将USB通道标识复位,将拔USB中断标识复位,打开中断,并返回步骤F1;
F5、打开蓝牙通道使能,将蓝牙通道标识置位,将蓝牙连接中断标识复位,打开中断,并返回步骤F1;
F6、关闭蓝牙通道使能,将蓝牙通道标识复位,将蓝牙断开中断标识复位,打开中断,并返回步骤F1;
F7、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将USB数据中断标识复位,打开中断,并返回步骤F1;
F8、通过蓝牙通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将蓝牙数据中断标识复位,打开中断,并返回步骤F1。
上述第一功能模块1020,还可以具体用于执行以下操作:
G1、等待接收中断;
G2、对接收到的中断进行判断,如果是插USB中断,则关闭中断,并执行步骤G3;如果是拔USB中断,则关闭中断,并执行步骤G4;如果是蓝牙连接中断,则关闭中断,并执行步骤G5;如果是蓝牙断开中断,则关闭中断,并执行步骤G6;如果是USB数据中断,则关闭中断,并执行步骤G7;如果是蓝牙数据中断,则关闭中断,并执行步骤G8;
G3、打开USB通道使能,将USB通道标识置位,将蓝牙通道标识复位,将插USB中断标识复位,打开除蓝牙连接中断、蓝牙数据中断和蓝牙断开中断之外的其他中断,并返回步骤G1;
G4、关闭USB通道使能,将USB通道标识复位,将拔USB中断标识复位,打开中断,并返回步骤G1;
G5、打开蓝牙通道使能,将蓝牙通道标识置位,将蓝牙连接中断标识复位,打开中断,并返回步骤G1;
G6、关闭蓝牙通道使能,将蓝牙通道标识复位,将蓝牙断开中断标识复位,打开中断,并返回步骤G1;
G7、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将USB数据中断标识复位,打开中断,并返回步骤G1;
G8、通过蓝牙通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将蓝牙数据中断标识复位,打开中断,并返回步骤G1。
上述第一功能模块1020,还可以具体用于执行以下操作:
H1、等待接收中断;
H2、对接收到的中断进行判断,如果是插USB中断,则关闭中断,并执行步骤H3;如果是拔USB中断,则关闭中断,并执行步骤H4;如果是蓝牙连接中断,则关闭中断,并执行步骤H5;如果是蓝牙断开中断,则关闭中断,并执行步骤H6;如果是USB数据中断,则关闭中断,并执行步骤H7;如果是蓝牙数据中断,则关闭中断,并执行步骤H8;
H3、对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识和插USB中断标识复位,打开中断,并返回步骤H1;
H4、对所述蓝牙模块上电,关闭USB通道使能,将USB通道标识和拔USB中断标识复位,打开中断,并返回步骤H1;
H5、打开蓝牙通道使能,将蓝牙通道标识置位,将USB通道标识复位,将蓝牙连接中断标识复位,打开除插USB中断、USB数据中断和拔USB中断之外的其他中断,并返回步骤H1;
H6、关闭蓝牙通道使能,将蓝牙通道标识和蓝牙断开中断标识复位,打开中断,并返回步骤H1;
H7、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将USB数据中断标识复位,打开中断,并返回步骤H1;
H8、通过蓝牙通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将蓝牙数据中断标识复位,打开中断,并返回步骤H1。
其中,第一功能模块1020根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,具体为:
第一功能模块1020执行以下操作:
K1、判断接收到的指令是否为身份认证指令,如果是,则执行步骤K2;否则,执行步骤K3;
K2、对接收到的指令进行解析,得到验证信息,根据验证信息判断用户身份是否合法,如果是,则将身份标识置位,向上位机发送验证成功消息;否则,向上位机发送验证失败消息;
K3、判断接收到的指令是否为在身份认证成功后才被允许执行的指令,如果是,则执行步骤K4;否则,执行步骤K5;
K4、判断身份标识是否置位,如果是,则执行步骤K5;否则,向上位机发送指令执行失败消息;
K5、根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机;
第一功能模块1020,还用于在判断出接收到的中断是插USB中断之后,将身份标识复位;在判断出接收到的中断是蓝牙连接中断之后,将身份标识复位。
其中,上述第一功能模块1020根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,具体为:
第一功能模块1020根据接收到的指令执行相应的指令操作,得到指令响应;判断是否需要等待按键操作,如果是,则保存指令中的业务信息以及通过执行指令操作得到的哈希结果,对按键等待标识进行置位,向上位机发送指令响应;否则,向上位机发送指令响应;
第一功能模块1020,还用于在判断出接收到的中断是按键中断后,关闭中断,将按键中断标识置位,并执行以下操作:
L1、扫描按键,获取被按下的按键的键值,判断按键等待标识是否被置位,如果是,则执行步骤L2;否则,根据键值执行相应的操作,将按键中断标识复位,打开中断,并继续等待接收中断;
L2、根据键值,对被按下的按键进行判断,如果是方向键,则执行步骤L3;如果是确认键,则执行步骤L4;如果是取消键,则执行步骤L6;
L3、显示业务信息,判断自身存储的业务信息是否已显示完毕,如果是,则对报文显示完成标识进行置位,将按键中断标识复位,打开中断,并继续等待接收中断;否则,将按键中断标识复位,打开中断,并继续等待接收中断;
L4、判断报文显示完成标识是否置位,如果是,则执行步骤L5;否则,显示操作失败信息,将按键中断标识复位,打开中断,并继续等待接收中断;
L5、对哈希结果进行签名,判断签名是否成功,如果是,则保存签名结果,显示操作成功信息,对报文显示完成标识进行复位,将按键中断标识复位,打开中断,并继续等待接收中断;否则,显示操作失败信息,对报文显示完成标识进行复位,将按键中断标识复位,打开中断,并继续等待接收中断;
L6、显示操作取消信息,将按键中断标识复位,打开中断,并继续等待接收中断;
第一功能模块1020,还用于在判断出接收到的中断是插USB中断之后,将按键等待标识复位;在判断出接收到的中断是蓝牙连接中断之后,将按键等待标识复位。
上述第二功能模块1030,可以具体用于执行以下操作:
M0、对蓝牙模块上电,将蓝牙模块的工作模式切换至监听模式,清空接收数据缓冲区;
M1、等待接收中断;
M2、对接收到的中断进行判断,
如果是蓝牙连接中断,则关闭中断,将蓝牙连接中断标识置位,并执行步骤M3;
如果是蓝牙数据中断,则关闭中断,将蓝牙数据中断标识置位,并执行步骤M4;
如果是蓝牙断开中断,则关闭中断,将蓝牙断开中断标识置位,并执行步骤M5;
如果是按键中断,则关闭中断,将按键中断标识置位,并执行步骤M6;
M3、打开蓝牙通道使能,将蓝牙连接中断标识复位,打开中断,并返回步骤M1;
M4、接收蓝牙数据,将蓝牙数据保存到接收数据缓冲区中,将蓝牙数据接收完成标识置位,将蓝牙数据中断标识复位,打开中断,并返回步骤M1;
M5、将蓝牙数据接收完成标识复位,清空接收数据缓冲区,将蓝牙断开中断标识复位,打开中断,并返回步骤M1;
M6、对被按下的按键进行判断,如果被按下的按键不是确认键,则将按键中断标识复位,打开中断,并返回步骤M1;如果是确认键,则判断蓝牙数据接收完成标识是否置位,如果置位,则执行步骤M7;否则,将按键中断标识复位,打开中断,并返回步骤M1;
M7、根据接收数据缓冲区中的数据,生成动态口令,显示动态口令,清空接收数据缓冲区,将按键中断标识复位,打开中断,并返回步骤M1。
进一步地,上述述第二功能模块1030,还用于在执行步骤M1之前,将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识复位,清空按键数据缓冲区,将按键数据长度置为第三初始值;
第二功能模块1030执行步骤M2时,还用于在判断出接收到的中断为定时器中断后,关闭中断,将定时器中断标识置位,并更新蓝牙模式计数器的计数值,判断蓝牙模式计数器的计数值是否为第三阈值,如果是,则对蓝牙模块下电,将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识置位,将定时器中断标识复位,打开中断,并返回步骤M1;否则,将定时器中断标识复位,打开中断,并返回步骤M1;
第二功能模块1030执行步骤M6时,还用于在判断出被按下的按键为数字键之后,判断允许按键输入标识是否置位,如果没有置位,则将按键中断标识复位,打开中断,并返回步骤M1;如果置位,则判断按键数据长度是否小于第二预设长度,如果小于,则更新按键数据长度,将与被按下的按键对应的键值保存到按键数据缓冲区中,显示按键数据缓冲区中的数据;如果不小于,则将按键中断标识复位,打开中断,并返回步骤M1;
第二功能模块1030还用于在判断出被按下的按键为删除键之后,判断蓝牙数据接收完成标识是否置位,如果是,则将按键中断标识复位,打开中断,并返回步骤M1;否则,判断允许按键输入标识是否置位,如果没有置位,则将按键中断标识复位,打开中断,并返回步骤M1;如果置位,则判断按键数据长度是否等于第三初始值,如果等于,则将按键中断标识复位,打开中断,并返回步骤M1;如果不等于,则更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,显示按键数据缓冲区中的数据,将按键中断标识复位,打开中断,并返回步骤M1;
第二功能模块1030,还用于在判断出蓝牙数据接收完成标识没有置位之后,判断允许按键输入标识是否置位,如果没有置位,则将按键中断标识复位,打开中断,并返回步骤M1;如果置位,则判断按键数据长度是否等于第三初始值,如果是,则根据自身内部的动态因子生成动态口令,显示动态口令,将按键中断标识复位,打开中断,并返回步骤M1;否则,根据按键数据缓冲区中的数据生成动态口令,显示动态口令,清空按键数据缓冲区,将按键中断标识复位,打开中断,并返回步骤M1。
上述第二功能模块1030,也可以具体用于执行以下操作:
N1、判断蓝牙模块的工作电压是否低于第二预设电压,如果是,则执行步骤N2;否则,执行步骤N4;
N2、显示蓝牙模块低电压信息,判断蓝牙模块的工作电压低于第二预设电压的时长是否达到第二预设时长,如果是,则执行步骤N3;否则,执行步骤N4;
N3、将系统状态标识设置为输入挑战码标识,清空按键数据缓冲区,将按键数据长度置为第三初始值,并执行步骤N5;
N4、对蓝牙模块上电,将蓝牙模块的工作模式切换至监听模式,将系统状态标识设置为蓝牙OTP标识,清空接收数据缓冲区,并执行步骤N5;
N5、等待接收中断;
N6、对接收到的中断进行判断,
如果是蓝牙连接中断,则关闭中断,将蓝牙连接中断标识置位,并执行步骤N7;
如果是蓝牙数据中断,则关闭中断,将蓝牙数据中断标识置位,并执行步骤N10;
如果是蓝牙断开中断,则关闭中断,将蓝牙断开中断标识置位,并执行步骤N11;
如果是按键中断,则关闭中断,将按键中断标识置位,并执行步骤N14;
N7、判断系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤N8;否则,执行步骤N9;
N8、打开蓝牙通道使能,并执行步骤N9;
N9、将蓝牙连接中断标识复位,打开中断,并返回步骤N5;
N10、接收蓝牙数据,将蓝牙数据保存到接收数据缓冲区中,将蓝牙数据接收完成标识置位,将蓝牙数据中断标识复位,打开中断,并返回步骤N5;
N11、判断系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤N12;否则,执行步骤N13;
N12、清空接收数据缓冲区,将蓝牙数据接收完成标识复位,并执行步骤N13;
N13、将蓝牙断开中断标识复位,打开中断,并返回步骤N5;
N14、对系统状态标识进行判断,如果是蓝牙OTP标识,则执行步骤N15;如果是输入挑战码标识,则执行步骤N17;
N15、对被按下的按键进行判断,如果被按下的按键不是确认键,则将按键中断标识复位,打开中断,并返回步骤N5;如果被按下的按键是确认键,则判断蓝牙数据接收完成标识是否置位,如果置位,则执行步骤N16;否则,将按键中断标识复位,打开中断,并返回步骤N5;
N16、根据接收数据缓冲区中的数据,生成动态口令,显示动态口令,清空接收数据缓冲区,将按键中断标识复位,打开中断,并返回步骤N5;
N17、对被按下的按键进行判断,
如果是数字键,则执行步骤N18;
如果是删除键,则执行步骤N20;
如果是确认键,则执行步骤N21;
N18、判断按键数据长度是否小于第二预设长度,如果是,则执行步骤N19;否则,将按键中断标识复位,打开中断,并返回步骤N5;
N19、更新按键数据长度,将与被按下的按键对应的键值保存到按键数据缓冲区中,显示按键数据缓冲区中的数据,将按键中断标识复位,打开中断,并返回步骤N5;
N20、判断按键数据长度是否等于第三初始值,如果是,则将按键中断标识复位,打开中断,并返回步骤N5;否则,更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,显示按键数据缓冲区中的数据,将按键中断标识复位,打开中断,并返回步骤N5;
N21、判断按键数据长度是否等于第三初始值,如果是,则执行步骤N22;否则,执行步骤N23;
N22、根据自身内部的动态因子生成动态口令,显示动态口令,将按键中断标识复位,打开中断,并返回步骤N5;
N23、根据按键数据缓冲区中的数据生成动态口令,显示动态口令,清空按键数据缓冲区,将按键中断标识复位,打开中断,并返回步骤N5。
进一步地,上述第二功能模块1030执行步骤N17时,还用于在判断出被按下的按键为删除键之后,判断删除键被按下的时长是否达到第四预设时长,如果没有达到,则执行步骤N20;如果达到,则判断按键数据长度是否等于第三初始值,如果是,则将系统状态标识设置为菜单功能选择标识,显示菜单功能选择界面,将按键中断标识复位,打开中断,并返回步骤N5;否则,将按键数据长度置为第三初始值,将按键中断标识复位,打开中断,并返回步骤N5;
第二功能模块1030执行步骤N14时,还用于在判断出系统状态标识为菜单功能选择标识之后,执行以下操作:
N24、判断被按下的按键是否为第一预设按键,如果是,则执行步骤N25;否则,根据被按下的按键执行相应的操作;
N25、对蓝牙模块上电,将蓝牙模块的工作模式切换至监听模式,将系统状态标识设置为蓝牙OTP标识,清空接收数据缓冲区,将按键中断标识复位,打开中断,并返回步骤N5。
进一步地,上述第二功能模块1030执行步骤N4和步骤N25时,还用于将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识复位,清空按键数据缓冲区,将按键数据长度置为第三初始值;
第二功能模块1030执行步骤N6时,还用于在判断出接收到的中断为定时器中断后,关闭中断,将定时器中断标识置位,并执行以下操作:
N26、判断系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤N27;否则,将定时器中断标识复位,打开中断,并返回步骤N5;
N27、更新蓝牙模式计数器的计数值,判断蓝牙模式计数器的计数值是否为第三阈值,如果是,则执行步骤N28;否则,将定时器中断标识复位,打开中断,并返回步骤N5;
N28、对蓝牙模块下电,将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识置位,将定时器中断标识复位,打开中断,并返回步骤N5;
第二功能模块1030执行步骤N15时,还用于在判断出被按下的按键为数字键之后,执行以下操作:
N29、判断允许按键输入标识是否置位;如果没有置位,则将按键中断标识复位,打开中断,并返回步骤N5;如果置位,则判断按键数据长度是否小于第二预设长度,如果小于,则更新按键数据长度,将与被按下的按键对应的键值保存到按键数据缓冲区中,显示按键数据缓冲区中的数据;如果不小于,则将按键中断标识复位,打开中断,并返回步骤N5;
第二功能模块1030执行步骤N15时,还用于在判断出被按下的按键为删除键之后,执行以下操作:
N30、判断蓝牙数据接收完成标识是否置位,如果是,则将按键中断标识复位,打开中断,并返回步骤N5;否则,判断允许按键输入标识是否置位,如果没有置位,则将按键中断标识复位,打开中断,并返回步骤N5;如果置位,则判断按键数据长度是否等于第三初始值,如果等于,则将按键中断标识复位,打开中断,并返回步骤N5;如果不等于,则更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,显示按键数据缓冲区中的数据,将按键中断标识复位,打开中断,并返回步骤N5;
第二功能模块1030还用于在判断出蓝牙数据接收完成标识没有置位之后,执行以下操作:
N31、判断允许按键输入标识是否置位,如果没有置位,则将按键中断标识复位,打开中断,并返回步骤N5;如果置位,则判断按键数据长度是否等于第三初始值,如果是,则根据自身内部的动态因子生成动态口令,显示动态口令,将按键中断标识复位,打开中断,并返回步骤N5;否则,根据按键数据缓冲区中的数据生成动态口令,显示动态口令,清空按键数据缓冲区,将按键中断标识复位,打开中断,并返回步骤N5。
进一步地,上述第二功能模块1030执行步骤N4时,还用于将主动选择蓝牙标识复位;
第二功能模块1030执行步骤N25时,还用于将主动选择蓝牙标识置位;
第二功能模块1030还用于在判断出蓝牙模式计数器的计数值为第三阈值之后,判断主动选择蓝牙标识是否置位,如果是,则执行步骤N28;否则,对蓝牙模块下电,将蓝牙模式计数器的计数值置为第五初始值,将系统状态标识设置为输入挑战码标识,将定时器中断标识复位,打开中断,并返回步骤N5。
进一步地,上述第二功能模块1030执行步骤N15时,还用于在判断出被按下的按键是删除键之后,判断删除键被按下的时长是否达到第三预设时长,如果是,则将系统状态标识设置为输入挑战码标识,清空按键数据缓冲区,将按键数据长度置为第三初始值,将按键中断标识复位,打开中断,并返回步骤N5;否则,执行步骤N30。
第二功能模块1030执行步骤N6时,还用于在判断出接收到的中断为定时器中断后,关闭中断,将定时器中断标识置位,并执行以下操作:
N32、更新秒计数器的计数值,对秒计数器的计数值进行判断,如果等于第八阈值,则执行步骤N33;如果等于第九阈值,则执行步骤N34;
N33、将秒计数器的计数值设置为第十初始值,更新校准计数器的计数值和自身内部的动态因子,将定时器中断标识复位,打开中断,并返回步骤N5;
N34、判断校准计数器的计数值是否小于预设的校准值,如果是,则将定时器中断标识复位,打开中断,并返回步骤N5;否则,根据校准值更新校准计数器的计数值和秒计数器的计数值,将定时器中断标识复位,打开中断,并返回步骤N5。
第二功能模块1030执行步骤N6时,还用于在判断出接收到的中断为按键中断后,关闭中断,将按键中断标识置位,并执行以下操作:
将无按键计数器的计数值置为第二初始值;
第二功能模块1030执行步骤N6时,还用于在判断出接收到的中断为定时器中断之后,执行以下操作:
N35、更新无按键计数器的计数值,判断无按键计数器的计数值是否达到第五阈值,如果是,则关机,结束流程;否则,执行步骤N36;
N36、判断当前是否有按键被按下,如果是,则执行步骤N37;否则,执行步骤N39;
N37、对按键按下计数器的计数值进行更新,将按键松开计数器的计数值设置为第八初始值,判断按键按下计数器的计数值是否达到第六阈值,如果是,则执行步骤N38;否则,将定时器中断标识复位,打开中断,并返回步骤N5;
N38、将按键按下计数器的计数值设置为第九初始值,将定时器中断标识复位,打开除按键中断之外的其他中断,并返回步骤N5;
N39、更新按键松开计数器的计数值,将按键按下计数器的计数值设置为第九初始值,判断按键松开计数器的计数值是否达到第七阈值,如果是,则执行步骤N40;否则,将定时器中断标识复位,打开除按键中断之外的其他中断,并返回步骤N5;
N40、将按键松开计数器的计数值设置为第八初始值,将定时器中断标识复位,打开中断,并返回步骤N5。
本发明实施例中的多功能认证设备,还可以进一步包括:
设置模块1060,用于在接收到按键中断后,将按键中断标识置位;在接收到定时器中断后,将定时器中断标识置位;
相应地,选择模块1050,具体用于执行以下操作:
P3、关闭除按键中断和定时器中断之外的其他中断,将定时器的计数值设置为第一初始值;
P4、判断是否存在置位的中断标识,如果是,则执行步骤P5;否则,继续判断是否存在置位的中断标识;
P5、对置位的中断标识进行判断,如果是定时器中断标识,则执行步骤P6;如果是按键中断标识,则关闭按键中断,并执行步骤P7;
P6、更新定时器的计数值,判断定时器的计数值是否达到第一阈值,如果是,则关机,结束流程;否则,将定时器中断标识复位,并返回步骤P4;
P7、将定时器的计数值设置为第一初始值,扫描按键,获取被按下的按键的键值,根据键值对被按下的按键进行判断,如果是方向键,则执行步骤P8;如果是确认键,则执行步骤P10;
P8、根据被按下的按键,对主菜单状态寄存器中的数据进行更新;
P9、根据主菜单状态寄存器中的数据,显示对应的菜单信息,将按键中断标识复位,打开按键中断,并返回步骤P4;
P10、对主菜单状态寄存器中的数据进行判断,如果是第一预设值,则将按键中断标识复位,打开蓝牙数据接口、USB数据接口和中断,触发第一功能模块1020执行智能密钥功能的流程;如果是第二预设值,则将按键中断标识复位,打开蓝牙数据接口和中断,触发第二功能模块1030执行动态口令功能的流程;
进一步地,上述设置模块1060,还可以用于在接收到插卡中断后,将插卡中断标识置位;在接收到数据中断后,将数据中断标识置位;在接收到拔卡中断后,将拔卡中断标识置位;
相应地,第一功能模块1020,具体用于执行以下操作:
Q1、判断是否存在置位的中断标识,如果是,则执行步骤Q2;否则,继续判断是否存在置位的中断标识;
Q2、对置位的中断标识进行判断,如果是插卡中断标识,则执行步骤Q3;如果是数据中断标识,则执行步骤Q4;如果是拔卡中断标识,则执行步骤Q10;
Q3、将卡槽状态设置为有卡未激活状态,将插卡中断标识复位,返回步骤Q1;
Q4、接收来自上位机的指令;
Q5、对接收到的指令进行判断,如果是卡槽上电指令,则执行步骤Q6;如果是智能密钥功能指令,则执行步骤Q7;如果是卡槽下电指令,则执行步骤Q9;
Q6、对卡槽上电,将卡槽状态设置为有卡已激活状态,将数据中断标识复位,并返回步骤Q1;
Q7、判断卡槽状态是否为有卡已激活状态,如果是,则执行步骤Q8;否则,将数据中断标识复位,并返回步骤Q1;
Q8、将接收到的指令发送给卡槽中的签名接触卡,接收签名接触卡返回的指令执行结果,将指令执行结果发送给上位机,将数据中断标识复位,并返回步骤Q1;
Q9、对卡槽下电,将卡槽状态设置为有卡未激活状态,将数据中断标识复位,并返回步骤Q1;
Q10、将卡槽状态设置为无卡状态,将拔卡中断标识复位,并返回步骤Q1;
其中,上述数据中断为蓝牙数据中断时,数据中断标识为蓝牙数据标识;上述数据中断为USB数据中断时,数据中断标识为USB数据标识。
进一步地,上述设置模块1060,还可以用于在接收到插USB中断后,将插USB中断标识置位;在接收到拔USB中断后,将拔USB中断标识置位;在接收到蓝牙连接中断后,将蓝牙连接中断标识置位;在接收到蓝牙断开中断后,将蓝牙断开中断标识置位;在接收到USB数据中断后,将USB数据中断标识置位;在接收到蓝牙数据中断后,将蓝牙数据中断标识置位;
相应地,第一功能模块1020,可以具体用于执行以下操作:
R1、判断是否存在置位的中断标识,如果是,则执行步骤R2;否则,继续判断是否存在置位的中断标识;
R2、对置位的中断标识进行判断,如果是插USB中断标识,则执行步骤R3;如果是拔USB中断标识,则执行步骤R4;如果是蓝牙连接中断标识,则执行步骤R5;如果是蓝牙断开中断标识,则执行步骤R7;如果是USB数据中断标识,则执行步骤R8;如果是蓝牙数据中断标识,则执行步骤R9;
R3、打开USB通道使能,关闭蓝牙通道使能,将USB通道标识置位,将蓝牙通道标识复位,将插USB中断标识复位,并返回步骤R1;
R4、关闭USB通道使能,将USB通道标识复位,将拔USB中断标识复位,并返回步骤R1;
R5、判断USB通道标识是否置位,如果是,则将蓝牙连接中断标识复位,并返回步骤R1;否则,执行步骤R6;
R6、打开蓝牙通道使能,将蓝牙通道标识置位,将蓝牙连接中断标识复位,并返回步骤R1;
R7、关闭蓝牙通道使能,将蓝牙通道标识复位,将蓝牙断开中断标识复位,并返回步骤R1;
R8、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将USB数据中断标识复位,并返回步骤R1;
R9、通过蓝牙通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将蓝牙数据中断标识复位,并返回步骤R1。
具体地,上述第一功能模块1020根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,具体为:
第一功能模块1020执行以下操作:
S1、判断接收到的指令是否为身份认证指令,如果是,则执行步骤S2;否则,执行步骤S5;
S2、对接收到的指令进行解析,得到验证信息,根据验证信息判断用户身份是否合法,如果是,则执行步骤S3;否则,执行步骤S4;
S3、将身份标识置位,向上位机发送验证成功消息;
S4、向上位机发送验证失败消息;
S5、判断接收到的指令是否为在身份认证成功后才被允许执行的指令,如果是,则执行步骤S6;否则,执行步骤S8;
S6、判断身份标识是否置位,如果是,则执行步骤S8;否则,执行步骤S7;
S7、向上位机发送指令执行失败消息;
S8、根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机;
其中,第一功能模块1020执行步骤R2时,还用于在判断出置位的中断标识为插USB中断标识之后,将身份标识复位;
此外,第一功能模块1020,还用于在判断出USB通道标识没有置位之后,将身份标识复位。
上述第一功能模块1020根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,具体为:
第一功能模块1020根据接收到的指令执行相应的指令操作,得到指令响应;判断是否需要等待按键操作,如果是,则保存指令中的业务信息以及通过执行指令操作得到的哈希结果,对按键等待标识进行置位,向上位机发送指令响应;否则,向上位机发送指令响应;
第一功能模块1020执行步骤R2时,还用于在判断出置位的中断标识为按键中断标识后,关闭按键中断,并执行以下操作:
T1、扫描按键,获取被按下的按键的键值,判断按键等待标识是否被置位,如果是,则执行步骤T2;否则,根据键值执行相应的操作,将按键中断标识复位,打开按键中断,并返回步骤R1;
T2、根据键值,对被按下的按键进行判断,如果是方向键,则执行步骤T3;如果是确认键,则执行步骤T4;如果是取消键,则执行步骤T6;
T3、显示业务信息,判断自身存储的业务信息是否已显示完毕,如果是,则对报文显示完成标识进行置位,将按键中断标识复位,打开按键中断,并返回步骤R1;否则,将按键中断标识复位,打开按键中断,并返回步骤R1;
T4、判断报文显示完成标识是否置位,如果是,则执行步骤T5;否则,显示操作失败信息,将按键中断标识复位,打开按键中断,并返回步骤R1;
T5、对哈希结果进行签名,判断签名是否成功,如果是,则保存签名结果,显示操作成功信息,对报文显示完成标识进行复位,将按键中断标识复位,打开按键中断,并返回步骤R1;否则,显示操作失败信息,对报文显示完成标识进行复位,将按键中断标识复位,打开按键中断,并返回步骤R1;
T6、显示操作取消信息,将按键中断标识复位,打开按键中断,并返回步骤R1;
第一功能模块1020执行步骤R2时,还用于在判断出置位的中断标识为插USB中断标识之后,将按键等待标识复位;
此外,第一功能模块1020,还用于在判断出USB通道标识没有置位之后,将按键等待标识复位。
上述第一功能模块1020,也可以具体用于执行以下操作:
U1、判断是否存在置位的中断标识,如果是,则执行步骤U2;否则,继续判断是否存在置位的中断标识;
U2、对置位的中断标识进行判断,如果是插USB中断标识,则执行步骤U3;如果是拔USB中断标识,则执行步骤U4;如果是蓝牙连接中断标识,则执行步骤U5;如果是蓝牙断开中断标识,则执行步骤U6;如果是USB数据中断标识,则执行步骤U7;如果是蓝牙数据中断标识,则执行步骤U8;
U3、对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识复位,将插USB中断标识复位,并返回步骤U1;
U4、对蓝牙模块上电,关闭USB通道使能,将USB通道标识复位,将拔USB中断标识复位,并返回步骤U1;
U5、打开蓝牙通道使能,将蓝牙通道标识置位,将蓝牙连接中断标识复位,并返回步骤U1;
U6、关闭蓝牙通道使能,将蓝牙通道标识复位,将蓝牙断开中断标识复位,并返回步骤U1;
U7、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将USB数据中断标识复位,并返回步骤U1;
U8、通过蓝牙通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将蓝牙数据中断标识复位,并返回步骤U1。
上述第一功能模块1020,还可以具体用于执行以下操作:
V1、判断是否存在置位的中断标识,如果是,则执行步骤V2;否则,继续判断是否存在置位的中断标识;
V2、对置位的中断标识进行判断,如果是插USB中断标识,则执行步骤V3;如果是拔USB中断标识,则执行步骤V4;如果是蓝牙连接中断标识,则执行步骤V5;如果是蓝牙断开中断标识,则执行步骤V6;如果是USB数据中断标识,则执行步骤V7;如果是蓝牙数据中断标识,则执行步骤V8;
V3、打开USB通道使能,将USB通道标识置位,将蓝牙通道标识复位,将插USB中断标识复位,关闭蓝牙连接中断、蓝牙数据中断和蓝牙断开中断,并返回步骤V1;
V4、关闭USB通道使能,将USB通道标识复位,将拔USB中断标识复位,打开蓝牙连接中断、蓝牙数据中断和蓝牙断开中断,并返回步骤V1;
V5、打开蓝牙通道使能,将蓝牙通道标识置位,将蓝牙连接中断标识复位,并返回步骤V1;
V6、关闭蓝牙通道使能,将蓝牙通道标识复位,将蓝牙断开中断标识复位,并返回步骤V1;
V7、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将USB数据中断标识复位,并返回步骤V1;
V8、通过蓝牙通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将蓝牙数据中断标识复位,并返回步骤V1。
上述第一功能模块1020,还可以具体用于执行以下操作:
W1、判断是否存在置位的中断标识,如果是,则执行步骤W2;否则,继续判断是否存在置位的中断标识;
W2、对置位的中断标识进行判断,如果是插USB中断标识,则执行步骤W3;如果是拔USB中断标识,则执行步骤W4;如果是蓝牙连接中断标识,则执行步骤W5;如果是蓝牙断开中断标识,则执行步骤W6;如果是USB数据中断标识,则执行步骤W7;如果是蓝牙数据中断标识,则执行步骤W8;
W3、对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识和插USB中断标识复位,并返回步骤W1;
W4、对蓝牙模块上电,关闭USB通道使能,将拔USB中断标识复位,并返回步骤W1;
W5、打开蓝牙通道使能,将蓝牙通道标识置位,将USB通道标识复位,将蓝牙连接中断标识复位,关闭插USB中断、USB数据中断和拔USB中断,并返回步骤W1;
W6、关闭蓝牙通道使能,将蓝牙通道标识和蓝牙断开中断标识复位,打开插USB中断、USB数据中断和拔USB中断,并返回步骤W1;
W7、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将USB数据中断标识复位,并返回步骤W1;
W8、通过蓝牙通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,将蓝牙数据中断标识复位,并返回步骤W1。
具体地,第一功能模块1020根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,具体为:
第一功能模块1020执行以下操作:
X1、判断接收到的指令是否为身份认证指令,如果是,则执行步骤X2;否则,执行步骤X3;
X2、对接收到的指令进行解析,得到验证信息,根据验证信息判断用户身份是否合法,如果是,则将身份标识置位,向上位机发送验证成功消息;否则,向上位机发送验证失败消息;
X3、判断接收到的指令是否为在身份认证成功后才被允许执行的指令,如果是,则执行步骤X4;否则,执行步骤X5;
X4、判断身份标识是否置位,如果是,则执行步骤X5;否则,向上位机发送指令执行失败消息;
X5、根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机;
此外,第一功能模块1020,还用于在判断出置位的中断标识为插USB中断标识之后,将身份标识复位;在判断出置位的中断标识为蓝牙连接中断标识之后,将身份标识复位。
第一功能模块1020根据接收到的指令执行相应的指令操作,将得到的指令响应发送给上位机,具体包括:
第一功能模块1020根据接收到的指令执行相应的指令操作,得到指令响应;判断是否需要等待按键操作,如果是,则保存指令中的业务信息以及通过执行指令操作得到的哈希结果,对按键等待标识进行置位,向上位机发送指令响应;否则,向上位机发送指令响应;
此外,第一功能模块1020,还用于在判断出置位的中断标识是按键中断标识后,关闭按键中断,并执行以下操作:
Y1、扫描按键,获取被按下的按键的键值,判断按键等待标识是否被置位,如果是,则执行步骤Y2;否则,根据键值执行相应的操作,将按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
Y2、根据键值,对被按下的按键进行判断,如果是方向键,则执行步骤Y3;如果是确认键,则执行步骤Y4;如果是取消键,则执行步骤Y6;
Y3、显示业务信息,判断自身存储的业务信息是否已显示完毕,如果是,则对报文显示完成标识进行置位,将按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;否则,将按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
Y4、判断报文显示完成标识是否置位,如果是,则执行步骤Y5;否则,显示操作失败信息,将按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
Y5、对哈希结果进行签名,判断签名是否成功,如果是,则保存签名结果,显示操作成功信息,对报文显示完成标识进行复位,将按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;否则,显示操作失败信息,对报文显示完成标识进行复位,将按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
Y6、显示操作取消信息,将按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
另外,第一功能模块1020,还用于在判断出置位的中断标识是插USB中断标识之后,将按键等待标识复位;在判断出置位的中断标识是蓝牙连接中断标识之后,将按键等待标识复位。
上述第二功能模块1030,具体用于执行以下操作:
Z0、对蓝牙模块上电,将蓝牙模块的工作模式切换至监听模式,清空接收数据缓冲区;
Z1、判断是否存在置位的中断标识,如果是,则执行步骤Z2;否则,继续判断是否存在置位的中断标识;
Z2、对置位的中断标识进行判断,
如果是蓝牙连接中断标识,则执行步骤Z3;
如果是蓝牙数据中断标识,则执行步骤Z4;
如果是蓝牙断开中断标识,则执行步骤Z5;
如果是按键中断,则关闭按键中断,并执行步骤Z6;
Z3、打开蓝牙通道使能,将蓝牙连接中断标识复位,并返回步骤Z1;
Z4、接收蓝牙数据,将蓝牙数据保存到接收数据缓冲区中,将蓝牙数据接收完成标识置位,将蓝牙数据中断标识复位,并返回步骤Z1;
Z5、将蓝牙数据接收完成标识复位,清空接收数据缓冲区,将蓝牙断开中断标识复位,并返回步骤Z1;
Z6、对被按下的按键进行判断,如果被按下的按键不是确认键,则将按键中断标识复位,打开按键中断,并返回步骤Z1;如果是确认键,则判断蓝牙数据接收完成标识是否置位,如果置位,则执行步骤Z7;否则,将按键中断标识复位,打开按键中断,并返回步骤Z1;
Z7、将根据接收数据缓冲区中的数据,生成动态口令,显示动态口令,清空接收数据缓冲区,将按键中断标识复位,打开按键中断,并返回步骤Z1。
进一步地,第二功能模块1030,还用于在执行步骤Z1之前,将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识复位,清空按键数据缓冲区,将按键数据长度置为第三初始值;
第二功能模块1030执行步骤Z2时,还用于在判断出置位的中断标识为定时器中断标识后,更新蓝牙模式计数器的计数值,判断蓝牙模式计数器的计数值是否为第三阈值,如果是,则对蓝牙模块下电,将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识置位,将定时器中断标识复位,并返回步骤Z1;否则,将定时器中断标识复位,并返回步骤Z1;
第二功能模块1030执行步骤Z6时,还用于在判断出被按下的按键为数字键之后,判断允许按键输入标识是否置位,如果没有置位,则将按键中断标识复位,打开按键中断,并返回步骤Z1;如果置位,则判断按键数据长度是否小于第二预设长度,如果小于,则更新按键数据长度,将与被按下的按键对应的键值保存到按键数据缓冲区中,显示按键数据缓冲区中的数据;如果不小于,则将按键中断标识复位,打开按键中断,并返回步骤Z1;
第二功能模块1030还用于在判断出被按下的按键为删除键之后,判断蓝牙数据接收完成标识是否置位,如果是,则将按键中断标识复位,打开按键中断,并返回步骤Z1;否则,判断允许按键输入标识是否置位,如果没有置位,则将按键中断标识复位,打开按键中断,并返回步骤Z1;如果置位,则判断按键数据长度是否等于第三初始值,如果等于,则将按键中断标识复位,打开按键中断,并返回步骤Z1;如果不等于,则更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,显示按键数据缓冲区中的数据,将按键中断标识复位,打开按键中断,并返回步骤Z1;
第二功能模块1030,还用于在判断出蓝牙数据接收完成标识没有置位之后,判断允许按键输入标识是否置位,如果没有置位,则将按键中断标识复位,打开按键中断,并返回步骤Z1;如果置位,则判断按键数据长度是否等于第三初始值,如果是,则根据自身内部的动态因子生成动态口令,显示动态口令,将按键中断标识复位,打开按键中断,并返回步骤Z1;否则,根据按键数据缓冲区中的数据生成动态口令,显示动态口令,清空按键数据缓冲区,将按键中断标识复位,打开按键中断,并返回步骤Z1。
上述第二功能模块1030,还可以具体用于执行以下操作:
J1、判断蓝牙模块的工作电压是否低于第二预设电压,如果是,则执行步骤J2;否则,执行步骤J4;
J2、显示蓝牙模块低电压信息,判断蓝牙模块的工作电压低于第二预设电压的时长是否达到第二预设时长,如果是,则执行步骤J3;否则,执行步骤J4;
J3、将系统状态标识设置为输入挑战码标识,清空按键数据缓冲区,将按键数据长度置为第三初始值,并执行步骤J5;
J4、对蓝牙模块上电,将蓝牙模块的工作模式切换至监听模式,将系统状态标识设置为蓝牙OTP标识,清空接收数据缓冲区,并执行步骤J5;
J5、判断是否存在置位的中断标识,如果是,则执行步骤J6;否则,继续判断是否存在置位的中断标识;
J6、对置位的中断标识进行判断,
如果是蓝牙连接中断标识,则执行步骤J7;
如果是蓝牙数据中断标识,则执行步骤J10;
如果是蓝牙断开中断标识,则执行步骤J11;
如果是按键中断标识,则关闭按键中断,并执行步骤J14;
J7、判断系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤J8;否则,执行步骤J9;
J8、打开蓝牙通道使能,并执行步骤J9;
J9、将蓝牙连接中断标识复位,并返回步骤J5;
J10、接收蓝牙数据,将蓝牙数据保存到接收数据缓冲区中,将蓝牙数据接收完成标识置位,将蓝牙数据中断标识复位,并返回步骤J5;
J11、判断系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤J12;否则,执行步骤J13;
J12、清空接收数据缓冲区,将蓝牙数据接收完成标识复位,并执行步骤J13;
J13、将蓝牙断开中断标识复位,并返回步骤J5;
J14、对系统状态标识进行判断,如果是蓝牙OTP标识,则执行步骤J15;如果是输入挑战码标识,则执行步骤J17;
J15、对被按下的按键进行判断,如果被按下的按键不是确认键,则将按键中断标识复位,打开按键中断,并返回步骤J5;如果被按下的按键是确认键,则判断蓝牙数据接收完成标识是否置位,如果置位,则执行步骤J16;否则,将按键中断标识复位,打开按键中断,并返回步骤J5;
J16、根据接收数据缓冲区中的数据,生成动态口令,显示动态口令,清空接收数据缓冲区,将按键中断标识复位,打开按键中断,并返回步骤J5;
J17、对被按下的按键进行判断,
如果是数字键,则执行步骤J18;
如果是删除键,则执行步骤J20;
如果是确认键,则执行步骤J21;
J18、判断按键数据长度是否小于第二预设长度,如果是,则执行步骤J19;否则,将按键中断标识复位,打开按键中断,并返回步骤J5;
J19、更新按键数据长度,将与被按下的按键对应的键值保存到按键数据缓冲区中,显示按键数据缓冲区中的数据,将按键中断标识复位,打开按键中断,并返回步骤J5;
J20、判断按键数据长度是否等于第三初始值,如果是,则将按键中断标识复位,打开按键中断,并返回步骤J5;否则,更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,显示按键数据缓冲区中的数据,将按键中断标识复位,打开按键中断,并返回步骤J5;
J21、判断按键数据长度是否等于第三初始值,如果是,则执行步骤J22;否则,执行步骤J23;
J22、根据自身内部的动态因子生成动态口令,显示动态口令,将按键中断标识复位,打开按键中断,并返回步骤J5;
J23、根据按键数据缓冲区中的数据生成动态口令,显示动态口令,清空按键数据缓冲区,将按键中断标识复位,打开按键中断,并返回步骤J5。
进一步地,第二功能模块1030执行步骤J17时,还用于在判断出被按下的按键为删除键之后,判断删除键被按下的时长是否达到第四预设时长,如果没有达到,则执行步骤J20;如果达到,则判断按键数据长度是否等于第三初始值,如果是,则将系统状态标识设置为菜单功能选择标识,显示菜单功能选择界面,将按键中断标识复位,打开按键中断,并返回步骤J5;否则,将按键数据长度置为第三初始值,将按键中断标识复位,打开按键中断,并返回步骤J5;
第二功能模块1030执行步骤J14时,还用于在判断出系统状态标识为菜单功能选择标识之后,执行以下操作:
J24、判断被按下的按键是否为第一预设按键,如果是,则执行步骤J25;否则,根据被按下的按键执行相应的操作;
J25、对蓝牙模块上电,将蓝牙模块的工作模式切换至监听模式,将系统状态标识设置为蓝牙OTP标识,清空接收数据缓冲区,将按键中断标识复位,打开按键中断,并返回步骤J5。
上述第二功能模块1030执行步骤J4和步骤J25时,还用于将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识复位,清空按键数据缓冲区,将按键数据长度置为第三初始值;
第二功能模块1030执行步骤J6时,还用于在判断出置位的中断标识为定时器中断标识后,执行以下操作:
J26、判断系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤J27;否则,将定时器中断标识复位,并返回步骤J5;
J27、更新蓝牙模式计数器的计数值,判断蓝牙模式计数器的计数值是否为第三阈值,如果是,则执行步骤J28;否则,将定时器中断标识复位,并返回步骤J5;
J28、对蓝牙模块下电,将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识置位,将定时器中断标识复位,并返回步骤J5;
第二功能模块1030执行步骤J15时,还用于在判断出被按下的按键为数字键之后,执行以下操作:
J29、判断允许按键输入标识是否置位;如果没有置位,则将按键中断标识复位,打开按键中断,并返回步骤J5;如果置位,则判断按键数据长度是否小于第二预设长度,如果小于,则更新按键数据长度,将与被按下的按键对应的键值保存到按键数据缓冲区中,显示按键数据缓冲区中的数据;如果不小于,则将按键中断标识复位,打开按键中断,并返回步骤J5;
第二功能模块1030执行步骤J15时,还用于在判断出被按下的按键为删除键之后,执行以下操作:
J30、判断蓝牙数据接收完成标识是否置位,如果是,则将按键中断标识复位,打开按键中断,并返回步骤J5;否则,判断允许按键输入标识是否置位,如果没有置位,则将按键中断标识复位,打开按键中断,并返回步骤J5;如果置位,则判断按键数据长度是否等于第三初始值,如果等于,则将按键中断标识复位,打开按键中断,并返回步骤J5;如果不等于,则更新按键数据长度,将按键数据缓冲区中最后一次存入的数据删除,显示按键数据缓冲区中的数据,将按键中断标识复位,打开按键中断,并返回步骤J5;
第二功能模块1030执行步骤J15时,还用于在判断出蓝牙数据接收完成标识没有置位之后,执行以下操作:
J31、判断允许按键输入标识是否置位,如果没有置位,则将按键中断标识复位,打开按键中断,并返回步骤J5;如果置位,则判断按键数据长度是否等于第三初始值,如果是,则根据自身内部的动态因子生成动态口令,显示动态口令,将按键中断标识复位,打开按键中断,并返回步骤J5;否则,根据按键数据缓冲区中的数据生成动态口令,显示动态口令,清空按键数据缓冲区,将按键中断标识复位,打开按键中断,并返回步骤J5。
进一步地,上述第二功能模块1030执行步骤J4时,还用于将主动选择蓝牙标识复位;
第二功能模块1030执行步骤J25时,还用于将主动选择蓝牙标识置位;
第二功能模块1030,还用于在判断出蓝牙模式计数器的计数值为第三阈值之后,判断主动选择蓝牙标识是否置位,如果是,则执行步骤J28;否则,对蓝牙模块下电,将蓝牙模式计数器的计数值置为第五初始值,将系统状态标识设置为输入挑战码标识,将定时器中断标识复位,并返回步骤J5。
上述第二功能模块1030执行步骤J15时,还用于在判断出被按下的按键是删除键之后,判断删除键被按下的时长是否达到第三预设时长,如果是,则将系统状态标识设置为输入挑战码标识,清空按键数据缓冲区,将按键数据长度置为第三初始值,将按键中断标识复位,打开按键中断,并返回步骤J5;否则,执行步骤J30。
上述第二功能模块1030,还用于在接收到定时器中断后,将定时器中断标识置位,并执行以下操作:
J32、更新秒计数器的计数值,对秒计数器的计数值进行判断,如果等于第八阈值,则执行步骤J33;如果等于第九阈值,则执行步骤J34;
J33、将秒计数器的计数值设置为第十初始值,更新校准计数器的计数值和自身内部的动态因子,并返回步骤J5;
J34、判断校准计数器的计数值是否小于预设的校准值,如果是,则返回步骤J5;否则,根据校准值更新校准计数器的计数值和秒计数器的计数值,并返回步骤J5。
进一步地,上述第二功能模块1030执行步骤J6时,还用于在判断出置位的中断标识为按键中断标识后,关闭按键中断,将无按键计数器的计数值置为第二初始值;在判断出置位的中断标识为定时器中断标识之后,执行以下操作:
J35、更新无按键计数器的计数值,判断无按键计数器的计数值是否达到第五阈值,如果是,则关机,结束流程;否则,执行步骤J36;
J36、判断当前是否有按键被按下,如果是,则执行步骤J37;否则,执行步骤J39;
J37、对按键按下计数器的计数值进行更新,将按键松开计数器的计数值设置为第八初始值,判断按键按下计数器的计数值是否达到第六阈值,如果是,则执行步骤J38;否则,将定时器中断标识复位,打开按键中断,并返回步骤J5;
J38、将按键按下计数器的计数值设置为第九初始值,将定时器中断标识复位,并返回步骤J5;
J39、更新按键松开计数器的计数值,将按键按下计数器的计数值设置为第九初始值,判断按键松开计数器的计数值是否达到第七阈值,如果是,则执行步骤J40;否则,将定时器中断标识复位,并返回步骤J5;
J40、将按键松开计数器的计数值设置为第八初始值,将定时器中断标识复位,打开按键中断,并返回步骤J5。
本发明提供的多功能认证设备,支持USB接口和蓝牙接口,实现多通道认证机制,且具备智能密钥功能、动态口令功能和读卡器功能,增加了人机交互功能,降低了对上位机的环境安全的依赖程度,提高了身份认证的安全性。
结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (84)
1.一种多功能认证设备的工作方法,其特征在于,包括以下步骤:
Ⅰ、所述多功能认证设备上电;
Ⅱ、所述多功能认证设备执行初始化操作;
Ⅲ、所述多功能认证设备获取功能选择信息,根据所述功能选择信息,执行智能密钥功能的流程或动态口令功能的流程;
所述功能选择信息包括用户按键信息和/或所述多功能认证设备与上位机之间的连接状态;
所述步骤Ⅲ,具体包括:
所述多功能认证设备获取用户按键信息,根据所述用户按键信息,执行智能密钥功能的流程或动态口令功能的流程;
或者,
所述多功能认证设备获取自身与上位机之间的连接状态,根据自身与上位机之间的连接状态,执行智能密钥功能的流程或动态口令功能的流程;
所述多功能认证设备根据自身与上位机之间的连接状态,执行智能密钥功能的流程或动态口令功能的流程,具体包括:
所述多功能认证设备对自身与所述上位机之间的连接状态进行判断,如果所述多功能认证设备通过USB接口与所述上位机进行连接,则执行智能密钥功能的流程;如果所述多功能认证设备通过蓝牙接口与所述上位机进行连接,则执行智能密钥功能或动态口令功能的流程;如果所述多功能认证设备没有与所述上位机建立连接,则执行动态口令功能的流程;
或者,
所述多功能认证设备获取用户按键信息以及自身与上位机之间的连接状态,根据所述用户按键信息以及自身与所述上位机之间的连接状态,执行智能密钥功能的流程或动态口令功能的流程;
或者,
ⅰ、所述多功能认证设备执行第一功能流程,并在根据所述用户按键信息监测到第一预设按键被触发时,执行步骤ⅱ;
ⅱ、所述多功能认证设备执行初始化操作,执行第二功能流程,并在根据所述用户按键信息监测到第二预设按键被触发时,执行初始化操作,并返回步骤ⅰ;
所述第一功能流程为智能密钥功能的流程时,所述第二功能流程为动态口令功能的流程;所述第一功能流程为动态口令功能的流程时,所述第二功能流程为智能密钥功能的流程。
2.如权利要求1所述的方法,其特征在于,所述第一预设按键和所述第二预设按键为同一按键。
3.如权利要求1所述的方法,其特征在于,所述多功能认证设备根据所述用户按键信息以及自身与所述上位机之间的连接状态,执行智能密钥功能的流程或动态口令功能的流程,具体包括:
①、所述多功能认证设备对自身与所述上位机之间的连接状态进行判断,如果所述多功能认证设备通过USB接口与所述上位机建立连接,则执行步骤②;如果所述多功能认证设备通过蓝牙接口与所述上位机建立连接,则执行步骤②或步骤③;如果所述多功能认证设备没有与所述上位机建立连接,则执行步骤③;
②、所述多功能认证设备执行智能密钥功能的流程,在根据所述用户按键信息监测到第三预设按键被触发时,执行初始化操作,并执行步骤③;
③、所述多功能认证设备执行动态口令功能的流程,在根据所述用户按键信息监测到第四预设按键被触发时,执行初始化操作,并返回步骤②。
4.如权利要求3所述的方法,其特征在于,所述第三预设按键和所述第四预设按键为同一按键。
5.如权利要求1所述的方法,其特征在于,所述用户按键信息为被按下的按键的键值;
所述多功能认证设备获取用户按键信息,根据所述用户按键信息,执行智能密钥功能的流程或动态口令功能的流程,具体包括:
A3、所述多功能认证设备关闭除按键中断和定时器中断之外的其他中断,将定时器的计数值设置为第一初始值;
A4、所述多功能认证设备等待接收中断;
A5、所述多功能认证设备对接收到的中断进行判断,如果是定时器中断,则执行步骤A6;如果是按键中断,则执行步骤A7;
A6、所述多功能认证设备关闭中断,更新所述定时器的计数值,判断所述定时器的计数值是否达到第一阈值,如果是,则关机,结束流程;否则,将定时器中断标识复位,打开按键中断和定时器中断,并返回步骤A4;
A7、所述多功能认证设备将所述定时器的计数值设置为第一初始值,关闭中断,扫描按键,获取被按下的按键的键值,根据所述键值对所述被按下的按键进行判断,如果是方向键,则执行步骤A8;如果是确认键,则执行步骤A10;
A8、所述多功能认证设备根据所述被按下的按键,对主菜单状态寄存器中的数据进行更新;
A9、所述多功能认证设备根据所述主菜单状态寄存器中的数据,显示对应的菜单信息,将按键中断标识复位,打开按键中断和定时器中断,并返回步骤A4;
A10、所述多功能认证设备对所述主菜单状态寄存器中的数据进行判断,如果是第一预设值,则将按键中断标识复位,打开蓝牙数据接口、USB数据接口和中断,执行智能密钥功能的流程;如果是第二预设值,则将按键中断标识复位,打开所述蓝牙数据接口和中断,执行动态口令功能的流程。
6.如权利要求1所述的方法,其特征在于,所述多功能认证设备执行智能密钥功能的流程,具体包括:
B1、所述多功能认证设备等待接收中断;
B2、所述多功能认证设备对接收到的中断进行判断,如果是插卡中断,则关闭中断,并执行步骤B3;如果是数据中断,则关闭中断,并执行步骤B4;如果是拔卡中断,则关闭中断,并执行步骤B10;
B3、所述多功能认证设备将卡槽状态设置为有卡未激活状态,将插卡中断标识复位,打开中断,返回步骤B1;
B4、所述多功能认证设备接收来自上位机的指令;
B5、所述多功能认证设备对接收到的指令进行判断,如果是卡槽上电指令,则执行步骤B6;如果是智能密钥功能指令,则执行步骤B7;如果是卡槽下电指令,则执行步骤B9;
B6、所述多功能认证设备对卡槽上电,将卡槽状态设置为有卡已激活状态,将数据中断标识复位,打开中断,并返回步骤B1;
B7、所述多功能认证设备判断卡槽状态是否为有卡已激活状态,如果是,则执行步骤B8;否则,将数据中断标识复位,打开中断,并返回步骤B1;
B8、所述多功能认证设备将所述接收到的指令发送给所述卡槽中的签名接触卡,接收所述签名接触卡返回的指令执行结果,将所述指令执行结果发送给所述上位机,将数据中断标识复位,打开中断,并返回步骤B1;
B9、所述多功能认证设备对所述卡槽下电,将卡槽状态设置为有卡未激活状态,将数据中断标识复位,打开中断,并返回步骤B1;
B10、所述多功能认证设备将卡槽状态设置为无卡状态,将拔卡中断标识复位,打开中断,并返回步骤B1;
所述数据中断为蓝牙数据中断时,所述数据中断标识为蓝牙数据标识;所述数据中断为USB数据中断时,所述数据中断标识为USB数据标识。
7.如权利要求1所述的方法,其特征在于,所述多功能认证设备执行智能密钥功能的流程,具体包括:
C1、所述多功能认证设备等待接收中断;
C2、所述多功能认证设备对接收到的中断进行判断,如果是插USB中断,则关闭中断,并执行步骤C3;如果是拔USB中断,则关闭中断,并执行步骤C4;如果是蓝牙连接中断,则关闭中断,并执行步骤C5;如果是蓝牙断开中断,则关闭中断,并执行步骤C7;如果是USB数据中断,则关闭中断,并执行步骤C8;如果是蓝牙数据中断,则关闭中断,并执行步骤C9;
C3、所述多功能认证设备打开USB通道使能,关闭蓝牙通道使能,将USB通道标识置位,将蓝牙通道标识复位,将插USB中断标识复位,打开中断,并返回步骤C1;
C4、所述多功能认证设备关闭USB通道使能,将USB通道标识复位,将所述拔USB中断标识复位,打开中断,并返回步骤C1;
C5、所述多功能认证设备判断USB通道标识是否置位,如果是,则将所述蓝牙连接中断标识复位,打开中断,并返回步骤C1;否则,执行步骤C6;
C6、所述多功能认证设备打开蓝牙通道使能,将蓝牙通道标识置位,将蓝牙连接中断标识复位,打开中断,并返回步骤C1;
C7、所述多功能认证设备关闭蓝牙通道使能,将蓝牙通道标识复位,将蓝牙断开中断标识复位,打开中断,并返回步骤C1;
C8、所述多功能认证设备通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将USB数据中断标识复位,打开中断,并返回步骤C1;
C9、所述多功能认证设备通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将蓝牙数据中断标识复位,打开中断,并返回步骤C1。
8.如权利要求7所述的方法,其特征在于,所述多功能认证设备根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体包括:
D1、所述多功能认证设备判断所述接收到的指令是否为身份认证指令,如果是,则执行步骤D2;否则,执行步骤D5;
D2、所述多功能认证设备对所述接收到的指令进行解析,得到验证信息,根据所述验证信息判断用户身份是否合法,如果是,则执行步骤D3;否则,执行步骤D4;
D3、所述多功能认证设备将身份标识置位,向所述上位机发送验证成功消息;
D4、所述多功能认证设备向所述上位机发送验证失败消息;
D5、所述多功能认证设备判断所述接收到的指令是否为在身份认证成功后才被允许执行的指令,如果是,则执行步骤D6;否则,执行步骤D8;
D6、所述多功能认证设备判断所述身份标识是否置位,如果是,则执行步骤D8;否则,执行步骤D7;
D7、所述多功能认证设备向所述上位机发送指令执行失败消息;
D8、所述多功能认证设备根据所述接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机;
所述步骤C2中,所述多功能认证设备判断出所述接收到的中断是插USB中断之后,还包括:
所述多功能认证设备将所述身份标识复位;
所述多功能认证设备判断所述USB通道标识没有置位之后,还包括:
所述多功能认证设备将所述身份标识复位。
9.如权利要求7所述的方法,其特征在于,所述多功能认证设备根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体包括:
所述多功能认证设备根据所述接收到的指令执行相应的指令操作,得到指令响应;
所述多功能认证设备判断是否需要等待按键操作,如果是,则保存所述指令中的业务信息以及通过执行指令操作得到的哈希结果,对按键等待标识进行置位,向所述上位机发送所述指令响应;否则,向所述上位机发送所述指令响应;
所述步骤C2中,所述多功能认证设备判断出所述接收到的中断是按键中断后,关闭中断,并执行以下操作:
E1、所述多功能认证设备扫描按键,获取被按下的按键的键值,判断所述按键等待标识是否被置位,如果是,则执行步骤E2;否则,根据所述键值执行相应的操作,将所述按键中断标识复位,打开中断,并返回步骤C1;
E2、所述多功能认证设备根据所述键值,对所述被按下的按键进行判断,如果是方向键,则执行步骤E3;如果是确认键,则执行步骤E4;如果是取消键,则执行步骤E6;
E3、所述多功能认证设备显示业务信息,判断自身存储的业务信息是否已显示完毕,如果是,则对报文显示完成标识进行置位,将所述按键中断标识复位,打开中断,并返回步骤C1;否则,将所述按键中断标识复位,打开中断,并返回步骤C1;
E4、所述多功能认证设备判断所述报文显示完成标识是否置位,如果是,则执行步骤E5;否则,显示操作失败信息,将所述按键中断标识复位,打开中断,并返回步骤C1;
E5、所述多功能认证设备对所述哈希结果进行签名,判断签名是否成功,如果是,则保存签名结果,显示操作成功信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开中断,并返回步骤C1;否则,显示操作失败信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开中断,并返回步骤C1;
E6、所述多功能认证设备显示操作取消信息,将所述按键中断标识复位,打开中断,并返回步骤C1;
所述步骤C2中,所述多功能认证设备判断所述接收到的中断是插USB中断之后,还包括:
所述多功能认证设备将所述按键等待标识复位;
所述多功能认证设备判断出所述USB通道标识没有置位之后,还包括:
所述多功能认证设备将所述按键等待标识复位。
10.如权利要求1所述的方法,其特征在于,所述多功能认证设备执行智能密钥功能的流程,具体包括:
F1、所述多功能认证设备等待接收中断;
F2、所述多功能认证设备对接收到的中断进行判断,如果是插USB中断,则关闭中断,并执行步骤F3;如果是拔USB中断,则关闭中断,并执行步骤F4;如果是蓝牙连接中断,则关闭中断,并执行步骤F5;如果是蓝牙断开中断,则关闭中断,并执行步骤F6;如果是USB数据中断,则关闭中断,并执行步骤F7;如果是蓝牙数据中断,则关闭中断,并执行步骤F8;
F3、所述多功能认证设备对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识复位,将插USB中断标识复位,打开中断,并返回步骤F1;
F4、所述多功能认证设备对所述蓝牙模块上电,关闭USB通道使能,将USB通道标识复位,将拔USB中断标识复位,打开中断,并返回步骤F1;
F5、所述多功能认证设备打开蓝牙通道使能,将蓝牙通道标识置位,将蓝牙连接中断标识复位,打开中断,并返回步骤F1;
F6、所述多功能认证设备关闭蓝牙通道使能,将蓝牙通道标识复位,将蓝牙断开中断标识复位,打开中断,并返回步骤F1;
F7、所述多功能认证设备通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将USB数据中断标识复位,打开中断,并返回步骤F1;
F8、所述多功能认证设备通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将蓝牙数据中断标识复位,打开中断,并返回步骤F1。
11.如权利要求1所述的方法,其特征在于,所述多功能认证设备执行智能密钥功能的流程,具体包括:
G1、所述多功能认证设备等待接收中断;
G2、所述多功能认证设备对接收到的中断进行判断,如果是插USB中断,则关闭中断,并执行步骤G3;如果是拔USB中断,则关闭中断,并执行步骤G4;如果是蓝牙连接中断,则关闭中断,并执行步骤G5;如果是蓝牙断开中断,则关闭中断,并执行步骤G6;如果是USB数据中断,则关闭中断,并执行步骤G7;如果是蓝牙数据中断,则关闭中断,并执行步骤G8;
G3、所述多功能认证设备打开USB通道使能,将USB通道标识置位,将蓝牙通道标识复位,将插USB中断标识复位,打开除蓝牙连接中断、蓝牙数据中断和蓝牙断开中断之外的其他中断,并返回步骤G1;
G4、所述多功能认证设备关闭USB通道使能,将USB通道标识复位,将拔USB中断标识复位,打开中断,并返回步骤G1;
G5、所述多功能认证设备打开蓝牙通道使能,将蓝牙通道标识置位,将蓝牙连接中断标识复位,打开中断,并返回步骤G1;
G6、所述多功能认证设备关闭蓝牙通道使能,将蓝牙通道标识复位,将蓝牙断开中断标识复位,打开中断,并返回步骤G1;
G7、所述多功能认证设备通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将USB数据中断标识复位,打开中断,并返回步骤G1;
G8、所述多功能认证设备通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将蓝牙数据中断标识复位,打开中断,并返回步骤G1。
12.如权利要求1所述的方法,其特征在于,所述多功能认证设备执行智能密钥功能的流程,具体包括:
H1、所述多功能认证设备等待接收中断;
H2、所述多功能认证设备对接收到的中断进行判断,如果是插USB中断,则关闭中断,并执行步骤H3;如果是拔USB中断,则关闭中断,并执行步骤H4;如果是蓝牙连接中断,则关闭中断,并执行步骤H5;如果是蓝牙断开中断,则关闭中断,并执行步骤H6;如果是USB数据中断,则关闭中断,并执行步骤H7;如果是蓝牙数据中断,则关闭中断,并执行步骤H8;
H3、所述多功能认证设备对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识复位和插USB中断标识复位,打开中断,并返回步骤H1;
H4、所述多功能认证设备对所述蓝牙模块上电,关闭USB通道使能,将USB通道标识和拔USB中断标识复位,打开中断,并返回步骤H1;
H5、所述多功能认证设备打开蓝牙通道使能,将蓝牙通道标识置位,将USB通道标识复位,将蓝牙连接中断标识复位,打开除插USB中断、USB数据中断和拔USB中断之外的其他中断,并返回步骤H1;
H6、所述多功能认证设备关闭蓝牙通道使能,将蓝牙通道标识和蓝牙断开中断标识复位,打开中断,并返回步骤H1;
H7、所述多功能认证设备通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将USB数据中断标识复位,打开中断,并返回步骤H1;
H8、所述多功能认证设备通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将蓝牙数据中断标识复位,打开中断,并返回步骤H1。
13.如权利要求10至12中任一项所述的方法,其特征在于,所述多功能认证设备根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体包括:
K1、所述多功能认证设备判断所述接收到的指令是否为身份认证指令,如果是,则执行步骤K2;否则,执行步骤K3;
K2、所述多功能认证设备对所述接收到的指令进行解析,得到验证信息,根据所述验证信息判断用户身份是否合法,如果是,则将身份标识置位,向所述上位机发送验证成功消息;否则,向所述上位机发送验证失败消息;
K3、所述多功能认证设备判断所述接收到的指令是否为在身份认证成功后才被允许执行的指令,如果是,则执行步骤K4;否则,执行步骤K5;
K4、所述多功能认证设备判断所述身份标识是否置位,如果是,则执行步骤K5;否则,向所述上位机发送指令执行失败消息;
K5、所述多功能认证设备根据所述接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机;
所述多功能认证设备执行智能密钥功能的流程时,判断出所述接收到的中断是插USB中断之后,还包括:
所述多功能认证设备将所述身份标识复位;
所述多功能认证设备执行智能密钥功能的流程时,判断出所述接收到的中断是蓝牙连接中断之后,还包括:
所述多功能认证设备将所述身份标识复位。
14.如权利要求10至12中任一项所述的方法,其特征在于,所述多功能认证设备根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体包括:
所述多功能认证设备根据所述接收到的指令执行相应的指令操作,得到指令响应;
所述多功能认证设备判断是否需要等待按键操作,如果是,则保存所述指令中的业务信息以及通过执行指令操作得到的哈希结果,对按键等待标识进行置位,向所述上位机发送所述指令响应;否则,向所述上位机发送所述指令响应;
所述多功能认证设备执行智能密钥功能的流程时,判断出所述接收到的中断是按键中断后,关闭中断,将所述按键中断标识置位,并执行以下操作:
L1、所述多功能认证设备扫描按键,获取被按下的按键的键值,判断所述按键等待标识是否被置位,如果是,则执行步骤L2;否则,根据所述键值执行相应的操作,将所述按键中断标识复位,打开中断,并继续等待接收中断;
L2、所述多功能认证设备根据所述键值,对所述被按下的按键进行判断,如果是方向键,则执行步骤L3;如果是确认键,则执行步骤L4;如果是取消键,则执行步骤L6;
L3、所述多功能认证设备显示业务信息,判断自身存储的业务信息是否已显示完毕,如果是,则对报文显示完成标识进行置位,将所述按键中断标识复位,打开中断,并继续等待接收中断;否则,将所述按键中断标识复位,打开中断,并继续等待接收中断;
L4、所述多功能认证设备判断所述报文显示完成标识是否置位,如果是,则执行步骤L5;否则,显示操作失败信息,将所述按键中断标识复位,打开中断,并继续等待接收中断;
L5、所述多功能认证设备对所述哈希结果进行签名,判断签名是否成功,如果是,则保存签名结果,显示操作成功信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开中断,并继续等待接收中断;否则,显示操作失败信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开中断,并继续等待接收中断;
L6、所述多功能认证设备显示操作取消信息,将所述按键中断标识复位,打开中断,并继续等待接收中断;
所述多功能认证设备执行智能密钥功能的流程时,判断出所述接收到的中断是插USB中断之后,还包括:
所述多功能认证设备将所述按键等待标识复位;
所述多功能认证设备执行智能密钥功能的流程时,判断出所述接收到的中断是蓝牙连接中断之后,还包括:
所述多功能认证设备将所述按键等待标识复位。
15.如权利要求1所述的方法,其特征在于,所述多功能认证设备执行动态口令功能的流程,具体包括:
M0、所述多功能认证设备对蓝牙模块上电,将所述蓝牙模块的工作模式切换至监听模式,清空接收数据缓冲区;
M1、所述多功能认证设备等待接收中断;
M2、所述多功能认证设备对接收到的中断进行判断,
如果是蓝牙连接中断,则关闭中断,将蓝牙连接中断标识置位,并执行步骤M3;
如果是蓝牙数据中断,则关闭中断,将蓝牙数据中断标识置位,并执行步骤M4;
如果是蓝牙断开中断,则关闭中断,将蓝牙断开中断标识置位,并执行步骤M5;
如果是按键中断,则关闭中断,将所述按键中断标识置位,并执行步骤M6;
M3、所述多功能认证设备打开蓝牙通道使能,将所述蓝牙连接中断标识复位,打开中断,并返回步骤M1;
M4、所述多功能认证设备接收蓝牙数据,将所述蓝牙数据保存到所述接收数据缓冲区中,将所述蓝牙数据接收完成标识置位,将所述蓝牙数据中断标识复位,打开中断,并返回步骤M1;
M5、所述多功能认证设备将所述蓝牙数据接收完成标识复位,清空所述接收数据缓冲区,将所述蓝牙断开中断标识复位,打开中断,并返回步骤M1;
M6、所述多功能认证设备对被按下的按键进行判断,如果所述被按下的按键不是确认键,则将所述按键中断标识复位,打开中断,并返回步骤M1;如果是确认键,则判断所述蓝牙数据接收完成标识是否置位,如果置位,则执行步骤M7;否则,将所述按键中断标识复位,打开中断,并返回步骤M1;
M7、所述多功能认证设备根据所述接收数据缓冲区中的数据,生成动态口令,显示所述动态口令,清空所述接收数据缓冲区,将所述按键中断标识复位,打开中断,并返回步骤M1。
16.如权利要求15所述的方法,其特征在于,所述步骤M1之前,还包括:
所述多功能认证设备将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识复位,清空按键数据缓冲区,将按键数据长度置为第三初始值;
所述步骤M2中,所述多功能认证设备判断出所述接收到的中断为定时器中断后,关闭中断,将所述定时器中断标识置位,并执行以下操作:
所述多功能认证设备更新所述蓝牙模式计数器的计数值,判断所述蓝牙模式计数器的计数值是否为第三阈值,如果是,则对蓝牙模块下电,将所述蓝牙模式计数器的计数值置为第五初始值,将所述允许按键输入标识置位,将定时器中断标识复位,打开中断,并返回步骤M1;否则,将定时器中断标识复位,打开中断,并返回步骤M1;
所述步骤M6中,所述多功能认证设备判断出所述被按下的按键为数字键之后,还包括:
所述多功能认证设备判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开中断,并返回步骤M1;如果置位,则判断所述按键数据长度是否小于第二预设长度,如果小于,则更新所述按键数据长度,将与所述被按下的按键对应的键值保存到所述按键数据缓冲区中,显示所述按键数据缓冲区中的数据;如果不小于,则将所述按键中断标识复位,打开中断,并返回步骤M1;
所述步骤M6中,所述多功能认证设备判断出所述被按下的按键为删除键之后,还包括:
所述多功能认证设备判断所述蓝牙数据接收完成标识是否置位,如果是,则将所述按键中断标识复位,打开中断,并返回步骤M1;否则,判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开中断,并返回步骤M1;如果置位,则判断所述按键数据长度是否等于第三初始值,如果等于,则将所述按键中断标识复位,打开中断,并返回步骤M1;如果不等于,则更新所述按键数据长度,将所述按键数据缓冲区中最后一次存入的数据删除,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开中断,并返回步骤M1;
所述多功能认证设备判断出所述蓝牙数据接收完成标识没有置位之后,还包括:
所述多功能认证设备判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开中断,并返回步骤M1;如果置位,则判断所述按键数据长度是否等于第三初始值,如果是,则根据自身内部的动态因子生成动态口令,显示所述动态口令,将所述按键中断标识复位,打开中断,并返回步骤M1;否则,根据所述按键数据缓冲区中的数据生成动态口令,显示所述动态口令,清空所述按键数据缓冲区,将所述按键中断标识复位,打开中断,并返回步骤M1。
17.如权利要求1所述的方法,其特征在于,所述多功能认证设备执行动态口令功能的流程,具体包括:
N1、所述多功能认证设备判断蓝牙模块的工作电压是否低于第二预设电压,如果是,则执行步骤N2;否则,执行步骤N4;
N2、所述多功能认证设备显示蓝牙模块低电压信息,判断所述蓝牙模块的工作电压低于所述第二预设电压的时长是否达到第二预设时长,如果是,则执行步骤N3;否则,执行步骤N4;
N3、所述多功能认证设备将系统状态标识设置为输入挑战码标识,清空按键数据缓冲区,将按键数据长度置为第三初始值,并执行步骤N5;
N4、所述多功能认证设备对所述蓝牙模块上电,将所述蓝牙模块的工作模式切换至监听模式,将所述系统状态标识设置为蓝牙OTP标识,清空接收数据缓冲区,并执行步骤N5;
N5、所述多功能认证设备等待接收中断;
N6、所述多功能认证设备对接收到的中断进行判断,
如果是蓝牙连接中断,则关闭中断,将蓝牙连接中断标识置位,并执行步骤N7;
如果是蓝牙数据中断,则关闭中断,将蓝牙数据中断标识置位,并执行步骤N10;
如果是蓝牙断开中断,则关闭中断,将蓝牙断开中断标识置位,并执行步骤N11;
如果是按键中断,则关闭中断,将所述按键中断标识置位,并执行步骤N14;
N7、所述多功能认证设备判断所述系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤N8;否则,执行步骤N9;
N8、所述多功能认证设备打开蓝牙通道使能,并执行步骤N9;
N9、所述多功能认证设备将所述蓝牙连接中断标识复位,打开中断,并返回步骤N5;
N10、所述多功能认证设备接收蓝牙数据,将所述蓝牙数据保存到所述接收数据缓冲区中,将蓝牙数据接收完成标识置位,将所述蓝牙数据中断标识复位,打开中断,并返回步骤N5;
N11、所述多功能认证设备判断所述系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤N12;否则,执行步骤N13;
N12、所述多功能认证设备清空所述接收数据缓冲区,将所述蓝牙数据接收完成标识复位,并执行步骤N13;
N13、所述多功能认证设备将所述蓝牙断开中断标识复位,打开中断,并返回步骤N5;
N14、所述多功能认证设备对所述系统状态标识进行判断,如果是蓝牙OTP标识,则执行步骤N15;如果是输入挑战码标识,则执行步骤N17;
N15、所述多功能认证设备对被按下的按键进行判断,如果所述被按下的按键不是确认键,则将所述按键中断标识复位,打开中断,并返回步骤N5;如果所述被按下的按键是确认键,则判断所述蓝牙数据接收完成标识是否置位,如果置位,则执行步骤N16;否则,将所述按键中断标识复位,打开中断,并返回步骤N5;
N16、所述多功能认证设备根据所述接收数据缓冲区中的数据,生成动态口令,显示所述动态口令,清空所述接收数据缓冲区,将所述按键中断标识复位,打开中断,并返回步骤N5;
N17、所述多功能认证设备对所述被按下的按键进行判断,
如果是数字键,则执行步骤N18;
如果是删除键,则执行步骤N20;
如果是确认键,则执行步骤N21;
N18、所述多功能认证设备判断所述按键数据长度是否小于第二预设长度,如果是,则执行步骤N19;否则,将所述按键中断标识复位,打开中断,并返回步骤N5;
N19、所述多功能认证设备更新所述按键数据长度,将与所述被按下的按键对应的键值保存到所述按键数据缓冲区中,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开中断,并返回步骤N5;
N20、所述多功能认证设备判断所述按键数据长度是否等于第三初始值,如果是,则将所述按键中断标识复位,打开中断,并返回步骤N5;否则,更新所述按键数据长度,将所述按键数据缓冲区中最后一次存入的数据删除,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开中断,并返回步骤N5;
N21、所述多功能认证设备判断所述按键数据长度是否等于第三初始值,如果是,则执行步骤N22;否则,执行步骤N23;
N22、所述多功能认证设备根据自身内部的动态因子生成动态口令,显示所述动态口令,将所述按键中断标识复位,打开中断,并返回步骤N5;
N23、所述多功能认证设备根据所述按键数据缓冲区中的数据生成动态口令,显示所述动态口令,清空所述按键数据缓冲区,将所述按键中断标识复位,打开中断,并返回步骤N5。
18.如权利要求17所述的方法,其特征在于,所述步骤N17中,所述多功能认证设备判断出所述被按下的按键为删除键之后,还包括:
所述多功能认证设备判断所述删除键被按下的时长是否达到第四预设时长,如果没有达到,则执行步骤N20;如果达到,则判断所述按键数据长度是否等于第三初始值,如果是,则将所述系统状态标识设置为菜单功能选择标识,显示菜单功能选择界面,将所述按键中断标识复位,打开中断,并返回步骤N5;否则,将所述按键数据长度置为第三初始值,将所述按键中断标识复位,打开中断,并返回步骤N5;
所述步骤N14中,所述多功能认证设备判断出所述系统状态标识为菜单功能选择标识之后,还包括:
N24、所述多功能认证设备判断所述被按下的按键是否为第一预设按键,如果是,则执行步骤N25;否则,根据所述被按下的按键执行相应的操作;
N25、所述多功能认证设备对所述蓝牙模块上电,将所述蓝牙模块的工作模式切换至监听模式,将所述系统状态标识设置为蓝牙OTP标识,清空所述接收数据缓冲区,将所述按键中断标识复位,打开中断,并返回步骤N5。
19.如权利要求18所述的方法,其特征在于,所述步骤N4和所述步骤N25中,还包括:
所述多功能认证设备将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识复位,清空按键数据缓冲区,将按键数据长度置为第三初始值;
所述步骤N6中,所述多功能认证设备判断出所述接收到的中断为定时器中断后,关闭中断,将所述定时器中断标识置位,并执行以下操作:
N26、所述多功能认证设备判断所述系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤N27;否则,将所述定时器中断标识复位,打开中断,并返回步骤N5;
N27、所述多功能认证设备更新所述蓝牙模式计数器的计数值,判断所述蓝牙模式计数器的计数值是否为第三阈值,如果是,则执行步骤N28;否则,将所述定时器中断标识复位,打开中断,并返回步骤N5;
N28、所述多功能认证设备对蓝牙模块下电,将所述蓝牙模式计数器的计数值置为第五初始值,将所述允许按键输入标识置位,将所述定时器中断标识复位,打开中断,并返回步骤N5;
所述步骤N15中,所述多功能认证设备判断出所述被按下的按键为数字键之后,还包括:
N29、所述多功能认证设备判断所述允许按键输入标识是否置位;如果没有置位,则将所述按键中断标识复位,打开中断,并返回步骤N5;如果置位,则判断所述按键数据长度是否小于第二预设长度,如果小于,则更新所述按键数据长度,将与所述被按下的按键对应的键值保存到所述按键数据缓冲区中,显示所述按键数据缓冲区中的数据;如果不小于,则将所述按键中断标识复位,打开中断,并返回步骤N5;
所述步骤N15中,所述多功能认证设备判断出所述被按下的按键为删除键之后,还包括:
N30、所述多功能认证设备判断所述蓝牙数据接收完成标识是否置位,如果是,则将所述按键中断标识复位,打开中断,并返回步骤N5;否则,判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开中断,并返回步骤N5;如果置位,则判断所述按键数据长度是否等于第三初始值,如果等于,则将所述按键中断标识复位,打开中断,并返回步骤N5;如果不等于,则更新所述按键数据长度,将所述按键数据缓冲区中最后一次存入的数据删除,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开中断,并返回步骤N5;
所述步骤N15中,所述多功能认证设备判断出所述蓝牙数据接收完成标识没有置位之后,还包括:
N31、所述多功能认证设备判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开中断,并返回步骤N5;如果置位,则判断所述按键数据长度是否等于第三初始值,如果是,则根据自身内部的动态因子生成动态口令,显示所述动态口令,将所述按键中断标识复位,打开中断,并返回步骤N5;否则,根据所述按键数据缓冲区中的数据生成动态口令,显示所述动态口令,清空所述按键数据缓冲区,将所述按键中断标识复位,打开中断,并返回步骤N5。
20.如权利要求19所述的方法,其特征在于,所述步骤N4中,还包括:
所述多功能认证设备将主动选择蓝牙标识复位;
所述步骤N25中,还包括:
所述多功能认证设备将主动选择蓝牙标识置位;
所述多功能认证设备判断出所述蓝牙模式计数器的计数值为第三阈值之后,还包括:
所述多功能认证设备判断所述主动选择蓝牙标识是否置位,如果是,则执行步骤N28;否则,对所述蓝牙模块下电,将所述蓝牙模式计数器的计数值置为第五初始值,将所述系统状态标识设置为输入挑战码标识,将所述定时器中断标识复位,打开中断,并返回步骤N5。
21.如权利要求19所述的方法,其特征在于,所述步骤N15中,所述多功能认证设备判断出所述被按下的按键是删除键之后,还包括:
所述多功能认证设备判断所述删除键被按下的时长是否达到第三预设时长,如果是,则将所述系统状态标识设置为输入挑战码标识,清空所述按键数据缓冲区,将所述按键数据长度置为第三初始值,将所述按键中断标识复位,打开中断,并返回步骤N5;否则,执行步骤N30。
22.如权利要求17所述的方法,其特征在于,所述步骤N6中,所述多功能认证设备判断出所述接收到的中断为定时器中断后,关闭中断,将所述定时器中断标识置位,并执行以下操作:
N32、所述多功能认证设备更新秒计数器的计数值,对所述秒计数器的计数值进行判断,如果等于第八阈值,则执行步骤N33;如果等于第九阈值,则执行步骤N34;
N33、所述多功能认证设备将所述秒计数器的计数值设置为第十初始值,更新校准计数器的计数值和自身内部的动态因子,将所述定时器中断标识复位,打开中断,并返回步骤N5;
N34、所述多功能认证设备判断所述校准计数器的计数值是否小于预设的校准值,如果是,则将所述定时器中断标识复位,打开中断,并返回步骤N5;否则,根据所述校准值更新所述校准计数器的计数值和所述秒计数器的计数值,将所述定时器中断标识复位,打开中断,并返回步骤N5。
23.如权利要求17所述的方法,其特征在于,所述步骤N6中,所述多功能认证设备判断出所述接收到的中断为按键中断后,关闭中断,将所述按键中断标识置位,并执行以下操作:
所述多功能认证设备将无按键计数器的计数值置为第二初始值;
所述步骤N6中,所述多功能认证设备判断出所述接收到的中断为定时器中断之后,还包括:
N35、所述多功能认证设备更新所述无按键计数器的计数值,判断所述无按键计数器的计数值是否达到第五阈值,如果是,则关机,结束流程;否则,执行步骤N36;
N36、所述多功能认证设备判断当前是否有按键被按下,如果是,则执行步骤N37;否则,执行步骤N39;
N37、所述多功能认证设备对按键按下计数器的计数值进行更新,将按键松开计数器的计数值设置为第八初始值,判断所述按键按下计数器的计数值是否达到第六阈值,如果是,则执行步骤N38;否则,将所述定时器中断标识复位,打开中断,并返回步骤N5;
N38、所述多功能认证设备将所述按键按下计数器的计数值设置为第九初始值,将所述定时器中断标识复位,打开除按键中断之外的其他中断,并返回步骤N5;
N39、所述多功能认证设备更新所述按键松开计数器的计数值,将所述按键按下计数器的计数值设置为第九初始值,判断所述按键松开计数器的计数值是否达到第七阈值,如果是,则执行步骤N40;否则,将所述定时器中断标识复位,打开除按键中断之外的其他中断,并返回步骤N5;
N40、所述多功能认证设备将所述按键松开计数器的计数值设置为第八初始值,将所述定时器中断标识复位,打开中断,并返回步骤N5。
24.如权利要求1所述的方法,其特征在于,所述用户按键信息为被按下的按键的键值;
所述多功能认证设备获取用户按键信息,根据所述用户按键信息,执行智能密钥功能的流程或动态口令功能的流程,具体包括:
P3、所述多功能认证设备关闭除按键中断和定时器中断之外的其他中断,将定时器的计数值设置为第一初始值;
P4、所述多功能认证设备判断是否存在置位的中断标识,如果是,则执行步骤P5;否则,继续判断是否存在置位的中断标识;
P5、所述多功能认证设备对置位的中断标识进行判断,如果是定时器中断标识,则执行步骤P6;如果是按键中断标识,则关闭按键中断,并执行步骤P7;
P6、所述多功能认证设备更新所述定时器的计数值,判断所述定时器的计数值是否达到第一阈值,如果是,则关机,结束流程;否则,将定时器中断标识复位,并返回步骤P4;
P7、所述多功能认证设备将所述定时器的计数值设置为第一初始值,扫描按键,获取被按下的按键的键值,根据所述键值对所述被按下的按键进行判断,如果是方向键,则执行步骤P8;如果是确认键,则执行步骤P10;
P8、所述多功能认证设备根据所述被按下的按键,对主菜单状态寄存器中的数据进行更新;
P9、所述多功能认证设备根据所述主菜单状态寄存器中的数据,显示对应的菜单信息,将按键中断标识复位,打开按键中断,并返回步骤P4;
P10、所述多功能认证设备对所述主菜单状态寄存器中的数据进行判断,如果是第一预设值,则将按键中断标识复位,打开蓝牙数据接口、USB数据接口和中断,执行智能密钥功能的流程;如果是第二预设值,则将按键中断标识复位,打开所述蓝牙数据接口和中断,执行动态口令功能的流程;
所述方法,还包括:
所述多功能认证设备接收到所述按键中断后,将所述按键中断标识置位;所述多功能认证设备接收到所述定时器中断后,将所述定时器中断标识置位。
25.如权利要求1所述的方法,其特征在于,所述多功能认证设备执行智能密钥功能的流程,具体包括:
Q1、所述多功能认证设备判断是否存在置位的中断标识,如果是,则执行步骤Q2;否则,继续判断是否存在置位的中断标识;
Q2、所述多功能认证设备对置位的中断标识进行判断,如果是插卡中断标识,则执行步骤Q3;如果是数据中断标识,则执行步骤Q4;如果是拔卡中断标识,则执行步骤Q10;
Q3、所述多功能认证设备将卡槽状态设置为有卡未激活状态,将所述插卡中断标识复位,返回步骤Q1;
Q4、所述多功能认证设备接收来自上位机的指令;
Q5、所述多功能认证设备对接收到的指令进行判断,如果是卡槽上电指令,则执行步骤Q6;如果是智能密钥功能指令,则执行步骤Q7;如果是卡槽下电指令,则执行步骤Q9;
Q6、所述多功能认证设备对卡槽上电,将卡槽状态设置为有卡已激活状态,将所述数据中断标识复位,并返回步骤Q1;
Q7、所述多功能认证设备判断卡槽状态是否为有卡已激活状态,如果是,则执行步骤Q8;否则,将所述数据中断标识复位,并返回步骤Q1;
Q8、所述多功能认证设备将所述接收到的指令发送给所述卡槽中的签名接触卡,接收所述签名接触卡返回的指令执行结果,将所述指令执行结果发送给所述上位机,将所述数据中断标识复位,并返回步骤Q1;
Q9、所述多功能认证设备对所述卡槽下电,将卡槽状态设置为有卡未激活状态,将所述数据中断标识复位,并返回步骤Q1;
Q10、所述多功能认证设备将卡槽状态设置为无卡状态,将所述拔卡中断标识复位,并返回步骤Q1;
所述方法,还包括:
所述多功能认证设备接收到插卡中断后,将所述插卡中断标识置位;所述多功能认证设备接收到数据中断后,将所述数据中断标识置位;所述多功能认证设备接收到拔卡中断后,将所述拔卡中断标识置位;所述数据中断为蓝牙数据中断时,所述数据中断标识为蓝牙数据标识;所述数据中断为USB数据中断时,所述数据中断标识为USB数据标识。
26.如权利要求1所述的方法,其特征在于,所述多功能认证设备执行智能密钥功能的流程,具体包括:
R1、所述多功能认证设备判断是否存在置位的中断标识,如果是,则执行步骤R2;否则,继续判断是否存在置位的中断标识;
R2、所述多功能认证设备对置位的中断标识进行判断,如果是插USB中断标识,则执行步骤R3;如果是拔USB中断标识,则执行步骤R4;如果是蓝牙连接中断标识,则执行步骤R5;如果是蓝牙断开中断标识,则执行步骤R7;如果是USB数据中断标识,则执行步骤R8;如果是蓝牙数据中断标识,则执行步骤R9;
R3、所述多功能认证设备打开USB通道使能,关闭蓝牙通道使能,将USB通道标识置位,将蓝牙通道标识复位,将插USB中断标识复位,并返回步骤R1;
R4、所述多功能认证设备关闭USB通道使能,将USB通道标识复位,将拔USB中断标识复位,并返回步骤R1;
R5、所述多功能认证设备判断USB通道标识是否置位,如果是,则将蓝牙连接中断标识复位,并返回步骤R1;否则,执行步骤R6;
R6、所述多功能认证设备打开蓝牙通道使能,将蓝牙通道标识置位,将蓝牙连接中断标识复位,并返回步骤R1;
R7、所述多功能认证设备关闭蓝牙通道使能,将蓝牙通道标识复位,将蓝牙断开中断标识复位,并返回步骤R1;
R8、所述多功能认证设备通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将USB数据中断标识复位,并返回步骤R1;
R9、所述多功能认证设备通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将蓝牙数据中断标识复位,并返回步骤R1;
所述方法,还包括:
所述多功能认证设备接收到插USB中断后,将所述插USB中断标识置位;所述多功能认证设备接收到拔USB中断后,将所述拔USB中断标识置位;所述多功能认证设备接收到蓝牙连接中断后,将所述蓝牙连接中断标识置位;所述多功能认证设备接收到蓝牙断开中断后,将所述蓝牙断开中断标识置位;所述多功能认证设备接收到USB数据中断后,将所述USB数据中断标识置位;所述多功能认证设备接收到蓝牙数据中断后,将所述蓝牙数据中断标识置位。
27.如权利要求26所述的方法,其特征在于,所述多功能认证设备根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体包括:
S1、所述多功能认证设备判断所述接收到的指令是否为身份认证指令,如果是,则执行步骤S2;否则,执行步骤S5;
S2、所述多功能认证设备对所述接收到的指令进行解析,得到验证信息,根据所述验证信息判断用户身份是否合法,如果是,则执行步骤S3;否则,执行步骤S4;
S3、所述多功能认证设备将身份标识置位,向所述上位机发送验证成功消息;
S4、所述多功能认证设备向所述上位机发送验证失败消息;
S5、所述多功能认证设备判断所述接收到的指令是否为在身份认证成功后才被允许执行的指令,如果是,则执行步骤S6;否则,执行步骤S8;
S6、所述多功能认证设备判断所述身份标识是否置位,如果是,则执行步骤S8;否则,执行步骤S7;
S7、所述多功能认证设备向所述上位机发送指令执行失败消息;
S8、所述多功能认证设备根据所述接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机;
所述步骤R2中,所述多功能认证设备判断出所述置位的中断标识为插USB中断标识之后,还包括:
所述多功能认证设备将所述身份标识复位;
所述多功能认证设备判断出所述USB通道标识没有置位之后,还包括:
所述多功能认证设备将所述身份标识复位。
28.如权利要求26所述的方法,其特征在于,所述多功能认证设备根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体包括:
所述多功能认证设备根据所述接收到的指令执行相应的指令操作,得到指令响应;
所述多功能认证设备判断是否需要等待按键操作,如果是,则保存所述指令中的业务信息以及通过执行指令操作得到的哈希结果,对按键等待标识进行置位,向所述上位机发送所述指令响应;否则,向所述上位机发送所述指令响应;
所述步骤R2中,所述多功能认证设备判断出所述置位的中断标识为按键中断标识后,关闭按键中断,并执行以下操作:
T1、所述多功能认证设备扫描按键,获取被按下的按键的键值,判断所述按键等待标识是否被置位,如果是,则执行步骤T2;否则,根据所述键值执行相应的操作,将所述按键中断标识复位,打开按键中断,并返回步骤R1;
T2、所述多功能认证设备根据所述键值,对所述被按下的按键进行判断,如果是方向键,则执行步骤T3;如果是确认键,则执行步骤T4;如果是取消键,则执行步骤T6;
T3、所述多功能认证设备显示业务信息,判断自身存储的业务信息是否已显示完毕,如果是,则对报文显示完成标识进行置位,将所述按键中断标识复位,打开按键中断,并返回步骤R1;否则,将所述按键中断标识复位,打开按键中断,并返回步骤R1;
T4、所述多功能认证设备判断所述报文显示完成标识是否置位,如果是,则执行步骤T5;否则,显示操作失败信息,将所述按键中断标识复位,打开按键中断,并返回步骤R1;
T5、所述多功能认证设备对所述哈希结果进行签名,判断签名是否成功,如果是,则保存签名结果,显示操作成功信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开按键中断,并返回步骤R1;否则,显示操作失败信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开按键中断,并返回步骤R1;
T6、所述多功能认证设备显示操作取消信息,将所述按键中断标识复位,打开按键中断,并返回步骤R1;
所述步骤R2中,所述多功能认证设备判断出所述置位的中断标识为插USB中断标识之后,还包括:
所述多功能认证设备将所述按键等待标识复位;
所述多功能认证设备判断出所述USB通道标识没有置位之后,还包括:
所述多功能认证设备将所述按键等待标识复位。
29.如权利要求1所述的方法,其特征在于,所述多功能认证设备执行智能密钥功能的流程,具体包括:
U1、所述多功能认证设备判断是否存在置位的中断标识,如果是,则执行步骤U2;否则,继续判断是否存在置位的中断标识;
U2、所述多功能认证设备对置位的中断标识进行判断,如果是插USB中断标识,则执行步骤U3;如果是拔USB中断标识,则执行步骤U4;如果是蓝牙连接中断标识,则执行步骤U5;如果是蓝牙断开中断标识,则执行步骤U6;如果是USB数据中断标识,则执行步骤U7;如果是蓝牙数据中断标识,则执行步骤U8;
U3、所述多功能认证设备对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识复位,将所述插USB中断标识复位,并返回步骤U1;
U4、所述多功能认证设备对所述蓝牙模块上电,关闭USB通道使能,将USB通道标识复位,将所述拔USB中断标识复位,并返回步骤U1;
U5、所述多功能认证设备打开蓝牙通道使能,将蓝牙通道标识置位,将所述蓝牙连接中断标识复位,并返回步骤U1;
U6、所述多功能认证设备关闭蓝牙通道使能,将蓝牙通道标识复位,将所述蓝牙断开中断标识复位,并返回步骤U1;
U7、所述多功能认证设备通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将所述USB数据中断标识复位,并返回步骤U1;
U8、所述多功能认证设备通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将所述蓝牙数据中断标识复位,并返回步骤U1;
所述方法,还包括:
所述多功能认证设备接收到插USB中断后,将所述插USB中断标识置位;所述多功能认证设备接收到拔USB中断后,将所述拔USB中断标识置位;所述多功能认证设备接收到蓝牙连接中断后,将所述蓝牙连接中断标识置位;所述多功能认证设备接收到蓝牙断开中断后,将所述蓝牙断开中断标识置位;所述多功能认证设备接收到USB数据中断后,将所述USB数据中断标识置位;所述多功能认证设备接收到蓝牙数据中断后,将所述蓝牙数据中断标识置位。
30.如权利要求1所述的方法,其特征在于,所述多功能认证设备执行智能密钥功能的流程,具体包括:
V1、所述多功能认证设备判断是否存在置位的中断标识,如果是,则执行步骤V2;否则,继续判断是否存在置位的中断标识;
V2、所述多功能认证设备对置位的中断标识进行判断,如果是插USB中断标识,则执行步骤V3;如果是拔USB中断标识,则执行步骤V4;如果是蓝牙连接中断标识,则执行步骤V5;如果是蓝牙断开中断标识,则执行步骤V6;如果是USB数据中断标识,则执行步骤V7;如果是蓝牙数据中断标识,则执行步骤V8;
V3、所述多功能认证设备打开USB通道使能,将USB通道标识置位,将蓝牙通道标识复位,将所述插USB中断标识复位,关闭蓝牙连接中断、蓝牙数据中断和蓝牙断开中断,并返回步骤V1;
V4、所述多功能认证设备关闭USB通道使能,将USB通道标识复位,将所述拔USB中断标识复位,打开蓝牙连接中断、蓝牙数据中断和蓝牙断开中断,并返回步骤V1;
V5、所述多功能认证设备打开蓝牙通道使能,将蓝牙通道标识置位,将所述蓝牙连接中断标识复位,并返回步骤V1;
V6、所述多功能认证设备关闭蓝牙通道使能,将蓝牙通道标识复位,将所述蓝牙断开中断标识复位,并返回步骤V1;
V7、所述多功能认证设备通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将所述USB数据中断标识复位,并返回步骤V1;
V8、所述多功能认证设备通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将所述蓝牙数据中断标识复位,并返回步骤V1;
所述方法,还包括:
所述多功能认证设备接收到插USB中断后,将所述插USB中断标识置位;所述多功能认证设备接收到拔USB中断后,将所述拔USB中断标识置位;所述多功能认证设备接收到蓝牙连接中断后,将所述蓝牙连接中断标识置位;所述多功能认证设备接收到蓝牙断开中断后,将所述蓝牙断开中断标识置位;所述多功能认证设备接收到USB数据中断后,将所述USB数据中断标识置位;所述多功能认证设备接收到蓝牙数据中断后,将所述蓝牙数据中断标识置位。
31.如权利要求1所述的方法,其特征在于,所述多功能认证设备执行智能密钥功能的流程,具体包括:
W1、所述多功能认证设备判断是否存在置位的中断标识,如果是,则执行步骤W2;否则,继续判断是否存在置位的中断标识;
W2、所述多功能认证设备对置位的中断标识进行判断,如果是插USB中断标识,则执行步骤W3;如果是拔USB中断标识,则执行步骤W4;如果是蓝牙连接中断标识,则执行步骤W5;如果是蓝牙断开中断标识,则执行步骤W6;如果是USB数据中断标识,则执行步骤W7;如果是蓝牙数据中断标识,则执行步骤W8;
W3、所述多功能认证设备对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识和所述插USB中断标识复位,并返回步骤W1;
W4、所述多功能认证设备对所述蓝牙模块上电,关闭USB通道使能,将USB通道标识和所述拔USB中断标识复位,并返回步骤W1;
W5、所述多功能认证设备打开蓝牙通道使能,将蓝牙通道标识置位,将USB通道标识复位,将所述蓝牙连接中断标识复位,关闭插USB中断、USB数据中断和拔USB中断,并返回步骤W1;
W6、所述多功能认证设备关闭蓝牙通道使能,将蓝牙通道标识和所述蓝牙断开中断标识复位,打开插USB中断、USB数据中断和拔USB中断,并返回步骤W1;
W7、所述多功能认证设备通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将所述USB数据中断标识复位,并返回步骤W1;
W8、所述多功能认证设备通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将所述蓝牙数据中断标识复位,并返回步骤W1;
所述方法,还包括:
所述多功能认证设备接收到插USB中断后,将所述插USB中断标识置位;所述多功能认证设备接收到拔USB中断后,将所述拔USB中断标识置位;所述多功能认证设备接收到蓝牙连接中断后,将所述蓝牙连接中断标识置位;所述多功能认证设备接收到蓝牙断开中断后,将所述蓝牙断开中断标识置位;所述多功能认证设备接收到USB数据中断后,将所述USB数据中断标识置位;所述多功能认证设备接收到蓝牙数据中断后,将所述蓝牙数据中断标识置位。
32.如权利要求29至31中任一项所述的方法,其特征在于,所述多功能认证设备根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体包括:
X1、所述多功能认证设备判断所述接收到的指令是否为身份认证指令,如果是,则执行步骤X2;否则,执行步骤X3;
X2、所述多功能认证设备对所述接收到的指令进行解析,得到验证信息,根据所述验证信息判断用户身份是否合法,如果是,则将身份标识置位,向所述上位机发送验证成功消息;否则,向所述上位机发送验证失败消息;
X3、所述多功能认证设备判断所述接收到的指令是否为在身份认证成功后才被允许执行的指令,如果是,则执行步骤X4;否则,执行步骤X5;
X4、所述多功能认证设备判断所述身份标识是否置位,如果是,则执行步骤X5;否则,向所述上位机发送指令执行失败消息;
X5、所述多功能认证设备根据所述接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机;
所述多功能认证设备执行智能密钥功能的流程时,判断出所述置位的中断标识为插USB中断标识之后,还包括:
所述多功能认证设备将所述身份标识复位;
所述多功能认证设备执行智能密钥功能的流程时,判断出所述置位的中断标识为蓝牙连接中断标识之后,还包括:
所述多功能认证设备将所述身份标识复位。
33.如权利要求29至31中任一项所述的方法,其特征在于,所述多功能认证设备根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体包括:
所述多功能认证设备根据所述接收到的指令执行相应的指令操作,得到指令响应;
所述多功能认证设备判断是否需要等待按键操作,如果是,则保存所述指令中的业务信息以及通过执行指令操作得到的哈希结果,对按键等待标识进行置位,向所述上位机发送所述指令响应;否则,向所述上位机发送所述指令响应;
所述多功能认证设备执行智能密钥功能的流程时,判断出所述置位的中断标识是按键中断标识后,关闭按键中断,并执行以下操作:
Y1、所述多功能认证设备扫描按键,获取被按下的按键的键值,判断所述按键等待标识是否被置位,如果是,则执行步骤Y2;否则,根据所述键值执行相应的操作,将所述按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
Y2、所述多功能认证设备根据所述键值,对所述被按下的按键进行判断,如果是方向键,则执行步骤Y3;如果是确认键,则执行步骤Y4;如果是取消键,则执行步骤Y6;
Y3、所述多功能认证设备显示业务信息,判断自身存储的业务信息是否已显示完毕,如果是,则对报文显示完成标识进行置位,将所述按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;否则,将所述按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
Y4、所述多功能认证设备判断所述报文显示完成标识是否置位,如果是,则执行步骤Y5;否则,显示操作失败信息,将所述按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
Y5、所述多功能认证设备对所述哈希结果进行签名,判断签名是否成功,如果是,则保存签名结果,显示操作成功信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;否则,显示操作失败信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
Y6、所述多功能认证设备显示操作取消信息,将所述按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
所述多功能认证设备执行智能密钥功能的流程时,判断出所述置位的中断标识是插USB中断标识之后,还包括:
所述多功能认证设备将所述按键等待标识复位;
所述多功能认证设备执行智能密钥功能的流程时,判断出所述置位的中断标识是蓝牙连接中断标识之后,还包括:
所述多功能认证设备将所述按键等待标识复位。
34.如权利要求1所述的方法,其特征在于,所述多功能认证设备执行动态口令功能的流程,具体包括:
Z0、所述多功能认证设备对蓝牙模块上电,将所述蓝牙模块的工作模式切换至监听模式,清空接收数据缓冲区;
Z1、所述多功能认证设备判断是否存在置位的中断标识,如果是,则执行步骤Z2;否则,继续判断是否存在置位的中断标识;
Z2、所述多功能认证设备对置位的中断标识进行判断,
如果是蓝牙连接中断标识,则执行步骤Z3;
如果是蓝牙数据中断标识,则执行步骤Z4;
如果是蓝牙断开中断标识,则执行步骤Z5;
如果是按键中断,则关闭按键中断,并执行步骤Z6;
Z3、所述多功能认证设备打开蓝牙通道使能,将蓝牙连接中断标识复位,并返回步骤Z1;
Z4、所述多功能认证设备接收蓝牙数据,将所述蓝牙数据保存到所述接收数据缓冲区中,将所述蓝牙数据接收完成标识置位,将蓝牙数据中断标识复位,并返回步骤Z1;
Z5、所述多功能认证设备将所述蓝牙数据接收完成标识复位,清空所述接收数据缓冲区,将蓝牙断开中断标识复位,并返回步骤Z1;
Z6、所述多功能认证设备对被按下的按键进行判断,如果所述被按下的按键不是确认键,则将所述按键中断标识复位,打开按键中断,并返回步骤Z1;如果是确认键,则判断所述蓝牙数据接收完成标识是否置位,如果置位,则执行步骤Z7;否则,将所述按键中断标识复位,打开按键中断,并返回步骤Z1;
Z7、所述多功能认证设备将根据所述接收数据缓冲区中的数据,生成动态口令,显示所述动态口令,清空所述接收数据缓冲区,将所述按键中断标识复位,打开按键中断,并返回步骤Z1;
所述方法,还包括:
所述多功能认证设备接收到蓝牙连接中断后,将所述蓝牙连接中断标识置位;所述多功能认证设备接收到蓝牙断开中断后,将所述蓝牙断开中断标识置位;所述多功能认证设备接收到蓝牙数据中断后,将所述蓝牙数据中断标识置位。
35.如权利要求34所述的方法,其特征在于,所述步骤Z1之前,还包括:
所述多功能认证设备将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识复位,清空按键数据缓冲区,将按键数据长度置为第三初始值;
所述步骤Z2中,所述多功能认证设备判断出所述置位的中断标识为定时器中断标识后,执行以下操作:
所述多功能认证设备更新所述蓝牙模式计数器的计数值,判断所述蓝牙模式计数器的计数值是否为第三阈值,如果是,则对蓝牙模块下电,将所述蓝牙模式计数器的计数值置为第五初始值,将所述允许按键输入标识置位,将所述定时器中断标识复位,并返回步骤Z1;否则,将所述定时器中断标识复位,并返回步骤Z1;
所述步骤Z6中,所述多功能认证设备判断出所述被按下的按键为数字键之后,还包括:
所述多功能认证设备判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开按键中断,并返回步骤Z1;如果置位,则判断所述按键数据长度是否小于第二预设长度,如果小于,则更新所述按键数据长度,将与所述被按下的按键对应的键值保存到所述按键数据缓冲区中,显示所述按键数据缓冲区中的数据;如果不小于,则将所述按键中断标识复位,打开按键中断,并返回步骤Z1;
所述步骤Z6中,所述多功能认证设备判断出所述被按下的按键为删除键之后,还包括:
所述多功能认证设备判断所述蓝牙数据接收完成标识是否置位,如果是,则将所述按键中断标识复位,打开按键中断,并返回步骤Z1;否则,判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开按键中断,并返回步骤Z1;如果置位,则判断所述按键数据长度是否等于第三初始值,如果等于,则将所述按键中断标识复位,打开按键中断,并返回步骤Z1;如果不等于,则更新所述按键数据长度,将所述按键数据缓冲区中最后一次存入的数据删除,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开按键中断,并返回步骤Z1;
所述多功能认证设备判断出所述蓝牙数据接收完成标识没有置位之后,还包括:
所述多功能认证设备判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开按键中断,并返回步骤Z1;如果置位,则判断所述按键数据长度是否等于第三初始值,如果是,则根据自身内部的动态因子生成动态口令,显示所述动态口令,将所述按键中断标识复位,打开按键中断,并返回步骤Z1;否则,根据所述按键数据缓冲区中的数据生成动态口令,显示所述动态口令,清空所述按键数据缓冲区,将所述按键中断标识复位,打开按键中断,并返回步骤Z1。
36.如权利要求1所述的方法,其特征在于,所述多功能认证设备执行动态口令功能的流程,具体包括:
J1、所述多功能认证设备判断蓝牙模块的工作电压是否低于第二预设电压,如果是,则执行步骤J2;否则,执行步骤J4;
J2、所述多功能认证设备显示蓝牙模块低电压信息,判断所述蓝牙模块的工作电压低于所述第二预设电压的时长是否达到第二预设时长,如果是,则执行步骤J3;否则,执行步骤J4;
J3、所述多功能认证设备将系统状态标识设置为输入挑战码标识,清空按键数据缓冲区,将按键数据长度置为第三初始值,并执行步骤J5;
J4、所述多功能认证设备对所述蓝牙模块上电,将所述蓝牙模块的工作模式切换至监听模式,将所述系统状态标识设置为蓝牙OTP标识,清空接收数据缓冲区,并执行步骤J5;
J5、所述多功能认证设备判断是否存在置位的中断标识,如果是,则执行步骤J6;否则,继续判断是否存在置位的中断标识;
J6、所述多功能认证设备对置位的中断标识进行判断,
如果是蓝牙连接中断标识,则执行步骤J7;
如果是蓝牙数据中断标识,则执行步骤J10;
如果是蓝牙断开中断标识,则执行步骤J11;
如果是按键中断标识,则关闭按键中断,并执行步骤J14;
J7、所述多功能认证设备判断所述系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤J8;否则,执行步骤J9;
J8、所述多功能认证设备打开蓝牙通道使能,并执行步骤J9;
J9、所述多功能认证设备将所述蓝牙连接中断标识复位,并返回步骤J5;
J10、所述多功能认证设备接收蓝牙数据,将所述蓝牙数据保存到所述接收数据缓冲区中,将蓝牙数据接收完成标识置位,将所述蓝牙数据中断标识复位,并返回步骤J5;
J11、所述多功能认证设备判断所述系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤J12;否则,执行步骤J13;
J12、所述多功能认证设备清空所述接收数据缓冲区,将所述蓝牙数据接收完成标识复位,并执行步骤J13;
J13、所述多功能认证设备将所述蓝牙断开中断标识复位,并返回步骤J5;
J14、所述多功能认证设备对所述系统状态标识进行判断,如果是蓝牙OTP标识,则执行步骤J15;如果是输入挑战码标识,则执行步骤J17;
J15、所述多功能认证设备对被按下的按键进行判断,如果所述被按下的按键不是确认键,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;如果所述被按下的按键是确认键,则判断所述蓝牙数据接收完成标识是否置位,如果置位,则执行步骤J16;否则,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
J16、所述多功能认证设备根据所述接收数据缓冲区中的数据,生成动态口令,显示所述动态口令,清空所述接收数据缓冲区,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
J17、所述多功能认证设备对所述被按下的按键进行判断,
如果是数字键,则执行步骤J18;
如果是删除键,则执行步骤J20;
如果是确认键,则执行步骤J21;
J18、所述多功能认证设备判断所述按键数据长度是否小于第二预设长度,如果是,则执行步骤J19;否则,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
J19、所述多功能认证设备更新所述按键数据长度,将与所述被按下的按键对应的键值保存到所述按键数据缓冲区中,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
J20、所述多功能认证设备判断所述按键数据长度是否等于第三初始值,如果是,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;否则,更新所述按键数据长度,将所述按键数据缓冲区中最后一次存入的数据删除,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
J21、所述多功能认证设备判断所述按键数据长度是否等于第三初始值,如果是,则执行步骤J22;否则,执行步骤J23;
J22、所述多功能认证设备根据自身内部的动态因子生成动态口令,显示所述动态口令,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
J23、所述多功能认证设备根据所述按键数据缓冲区中的数据生成动态口令,显示所述动态口令,清空所述按键数据缓冲区,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
所述方法,还包括:
所述多功能认证设备接收到蓝牙连接中断后,将所述蓝牙连接中断标识置位;所述多功能认证设备接收到蓝牙断开中断后,将所述蓝牙断开中断标识置位;所述多功能认证设备接收到蓝牙数据中断后,将所述蓝牙数据中断标识置位。
37.如权利要求36所述的方法,其特征在于,所述步骤J17中,所述多功能认证设备判断出所述被按下的按键为删除键之后,还包括:
所述多功能认证设备判断所述删除键被按下的时长是否达到第四预设时长,如果没有达到,则执行步骤J20;如果达到,则判断所述按键数据长度是否等于第三初始值,如果是,则将所述系统状态标识设置为菜单功能选择标识,显示菜单功能选择界面,将所述按键中断标识复位,打开按键中断,并返回步骤J5;否则,将所述按键数据长度置为第三初始值,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
所述步骤J14中,所述多功能认证设备判断出所述系统状态标识为菜单功能选择标识之后,还包括:
J24、所述多功能认证设备判断所述被按下的按键是否为第一预设按键,如果是,则执行步骤J25;否则,根据所述被按下的按键执行相应的操作;
J25、所述多功能认证设备对所述蓝牙模块上电,将所述蓝牙模块的工作模式切换至监听模式,将所述系统状态标识设置为蓝牙OTP标识,清空所述接收数据缓冲区,将所述按键中断标识复位,打开按键中断,并返回步骤J5。
38.如权利要求37所述的方法,其特征在于,所述步骤J4和所述步骤J25中,还包括:
所述多功能认证设备将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识复位,清空按键数据缓冲区,将按键数据长度置为第三初始值;
所述步骤J6中,所述多功能认证设备判断出所述置位的中断标识为定时器中断标识后,执行以下操作:
J26、所述多功能认证设备判断所述系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤J27;否则,将所述定时器中断标识复位,并返回步骤J5;
J27、所述多功能认证设备更新所述蓝牙模式计数器的计数值,判断所述蓝牙模式计数器的计数值是否为第三阈值,如果是,则执行步骤J28;否则,将所述定时器中断标识复位,并返回步骤J5;
J28、所述多功能认证设备对蓝牙模块下电,将所述蓝牙模式计数器的计数值置为第五初始值,将所述允许按键输入标识置位,将所述定时器中断标识复位,并返回步骤J5;
所述步骤J15中,所述多功能认证设备判断出所述被按下的按键为数字键之后,还包括:
J29、所述多功能认证设备判断所述允许按键输入标识是否置位;如果没有置位,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;如果置位,则判断所述按键数据长度是否小于第二预设长度,如果小于,则更新所述按键数据长度,将与所述被按下的按键对应的键值保存到所述按键数据缓冲区中,显示所述按键数据缓冲区中的数据;如果不小于,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;
所述步骤J15中,所述多功能认证设备判断出所述被按下的按键为删除键之后,还包括:
J30、所述多功能认证设备判断所述蓝牙数据接收完成标识是否置位,如果是,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;否则,判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;如果置位,则判断所述按键数据长度是否等于第三初始值,如果等于,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;如果不等于,则更新所述按键数据长度,将所述按键数据缓冲区中最后一次存入的数据删除,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
所述步骤J15中,所述多功能认证设备判断出所述蓝牙数据接收完成标识没有置位之后,还包括:
J31、所述多功能认证设备判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;如果置位,则判断所述按键数据长度是否等于第三初始值,如果是,则根据自身内部的动态因子生成动态口令,显示所述动态口令,将所述按键中断标识复位,打开按键中断,并返回步骤J5;否则,根据所述按键数据缓冲区中的数据生成动态口令,显示所述动态口令,清空所述按键数据缓冲区,将所述按键中断标识复位,打开按键中断,并返回步骤J5。
39.如权利要求38所述的方法,其特征在于,所述步骤J4中,还包括:
所述多功能认证设备将主动选择蓝牙标识复位;
所述步骤J25中,还包括:
所述多功能认证设备将主动选择蓝牙标识置位;
所述多功能认证设备判断出所述蓝牙模式计数器的计数值为第三阈值之后,还包括:
所述多功能认证设备判断所述主动选择蓝牙标识是否置位,如果是,则执行步骤J28;否则,对所述蓝牙模块下电,将所述蓝牙模式计数器的计数值置为第五初始值,将所述系统状态标识设置为输入挑战码标识,将所述定时器中断标识复位,并返回步骤J5。
40.如权利要求38所述的方法,其特征在于,所述步骤J15中,所述多功能认证设备判断出所述被按下的按键是删除键之后,还包括:
所述多功能认证设备判断所述删除键被按下的时长是否达到第三预设时长,如果是,则将所述系统状态标识设置为输入挑战码标识,清空所述按键数据缓冲区,将所述按键数据长度置为第三初始值,将所述按键中断标识复位,打开按键中断,并返回步骤J5;否则,执行步骤J30。
41.如权利要求36所述的方法,其特征在于,所述多功能认证设备执行动态口令功能的流程时,接收到定时器中断后,将所述定时器中断标识置位,并执行以下操作:
J32、所述多功能认证设备更新秒计数器的计数值,对所述秒计数器的计数值进行判断,如果等于第八阈值,则执行步骤J33;如果等于第九阈值,则执行步骤J34;
J33、所述多功能认证设备将所述秒计数器的计数值设置为第十初始值,更新校准计数器的计数值和自身内部的动态因子,并返回步骤J5;
J34、所述多功能认证设备判断所述校准计数器的计数值是否小于预设的校准值,如果是,则返回步骤J5;否则,根据所述校准值更新所述校准计数器的计数值和所述秒计数器的计数值,并返回步骤J5。
42.如权利要求36所述的方法,其特征在于,所述步骤J6中,所述多功能认证设备判断出所述置位的中断标识为按键中断标识后,关闭按键中断,并执行以下操作:
所述多功能认证设备将无按键计数器的计数值置为第二初始值;
所述步骤J6中,所述多功能认证设备判断出所述置位的中断标识为定时器中断标识之后,还包括:
J35、所述多功能认证设备更新所述无按键计数器的计数值,判断所述无按键计数器的计数值是否达到第五阈值,如果是,则关机,结束流程;否则,执行步骤J36;
J36、所述多功能认证设备判断当前是否有按键被按下,如果是,则执行步骤J37;否则,执行步骤J39;
J37、所述多功能认证设备对按键按下计数器的计数值进行更新,将按键松开计数器的计数值设置为第八初始值,判断所述按键按下计数器的计数值是否达到第六阈值,如果是,则执行步骤J38;否则,将所述定时器中断标识复位,打开按键中断,并返回步骤J5;
J38、所述多功能认证设备将所述按键按下计数器的计数值设置为第九初始值,将所述定时器中断标识复位,并返回步骤J5;
J39、所述多功能认证设备更新所述按键松开计数器的计数值,将所述按键按下计数器的计数值设置为第九初始值,判断所述按键松开计数器的计数值是否达到第七阈值,如果是,则执行步骤J40;否则,将所述定时器中断标识复位,并返回步骤J5;
J40、所述多功能认证设备将所述按键松开计数器的计数值设置为第八初始值,将所述定时器中断标识复位,打开按键中断,并返回步骤J5。
43.一种多功能认证设备,其特征在于,包括:
初始化模块,用于执行初始化操作;
第一功能模块,用于执行智能密钥功能的流程;
第二功能模块,用于执行动态口令功能的流程;
获取模块,用于获取功能选择信息;
选择模块,用于根据所述获取模块获取的所述功能选择信息触发所述第一功能模块执行智能密钥功能的流程,或者触发所述第二功能模块执行动态口令功能的流程;
所述功能选择信息包括用户按键信息和/或所述多功能认证设备与上位机之间的连接状态;
所述选择模块,具体用于根据所述用户按键信息触发所述第一功能模块执行智能密钥功能的流程,或者触发所述第二功能模块执行动态口令功能的流程;
或者,
对所述连接状态进行判断,如果所述多功能认证设备通过USB接口与所述上位机进行连接,则触发所述第一功能模块执行智能密钥功能的流程;如果所述多功能认证设备通过蓝牙接口与所述上位机进行连接,则触发所述第一功能模块执行智能密钥功能的流程,或者触发所述第二功能模块执行动态口令功能的流程;如果所述多功能认证设备没有与所述上位机建立连接,则触发所述第二功能模块执行动态口令功能的流程;
或者,
根据所述用户按键信息和所述连接状态触发所述第一功能模块执行智能密钥功能的流程,或者触发所述第二功能模块执行动态口令功能的流程;
或者,
ⅰ、触发所述第一功能模块执行智能密钥功能的流程,并在根据所述用户按键信息监测到第一预设按键被触发时,执行步骤ⅱ;
ⅱ、触发所述初始化模块执行初始化操作,触发所述第二功能模块执行动态口令功能的流程,并在根据所述用户按键信息监测到第二预设按键被触发时,触发所述初始化模块执行初始化操作,并返回步骤ⅰ;
或者,
ⅲ、触发所述第二功能模块执行动态口令功能的流程,并在根据所述用户按键信息监测到第一预设按键被触发时,执行步骤ⅳ;
ⅳ、触发所述初始化模块执行初始化操作,触发所述第一功能模块执行执行智能密钥功能的流程,并在根据所述用户按键信息监测到第二预设按键被触发时,触发所述初始化模块执行初始化操作,并返回步骤ⅲ。
44.如权利要求43所述的设备,其特征在于,所述第一预设按键和第二预设按键为同一按键。
45.如权利要求43所述的设备,其特征在于,
所述选择模块,具体用于执行以下操作:
①、对所述连接状态进行判断,如果所述多功能认证设备通过USB接口与所述上位机建立连接,则执行步骤②;如果所述多功能认证设备通过蓝牙接口与所述上位机建立连接,则执行步骤②或步骤③;如果所述多功能认证设备没有与所述上位机建立连接,则执行步骤③;
②、触发所述第一功能模块执行智能密钥功能的流程,在根据所述用户按键信息监测到第三预设按键被触发时,触发所述初始化模块执行初始化操作,并执行步骤③;
③、触发所述第二功能模块执行动态口令功能的流程,在根据所述用户按键信息监测到第四预设按键被触发时,触发所述初始化模块执行初始化操作,并返回步骤②。
46.如权利要求45所述的设备,其特征在于,所述第三预设按键和第四预设按键为同一按键。
47.如权利要求43所述的设备,其特征在于,所述用户按键信息为被按下的按键的键值;
所述选择模块,具体用于执行以下操作:
A3、关闭除按键中断和定时器中断之外的其他中断,将定时器的计数值设置为第一初始值;
A4、等待接收中断;
A5、对接收到的中断进行判断,如果是定时器中断,则执行步骤A6;如果是按键中断,则执行步骤A7;
A6、关闭中断,更新所述定时器的计数值,判断所述定时器的计数值是否达到第一阈值,如果是,则关机,结束流程;否则,将定时器中断标识复位,打开按键中断和定时器中断,并返回步骤A4;
A7、将所述定时器的计数值设置为第一初始值,关闭中断,扫描按键,获取被按下的按键的键值,根据所述键值对所述被按下的按键进行判断,如果是方向键,则执行步骤A8;如果是确认键,则执行步骤A10;
A8、根据所述被按下的按键,对主菜单状态寄存器中的数据进行更新;
A9、根据所述主菜单状态寄存器中的数据,显示对应的菜单信息,将按键中断标识复位,打开按键中断和定时器中断,并返回步骤A4;
A10、对所述主菜单状态寄存器中的数据进行判断,如果是第一预设值,则将按键中断标识复位,打开蓝牙数据接口、USB数据接口和中断,触发所述第一功能模块执行智能密钥功能的流程;如果是第二预设值,则将按键中断标识复位,打开所述蓝牙数据接口和中断,触发所述第二功能模块执行动态口令功能的流程。
48.如权利要求43所述的设备,其特征在于,所述第一功能模块,具体用于执行以下操作:
B1、等待接收中断;
B2、对接收到的中断进行判断,如果是插卡中断,则关闭中断,并执行步骤B3;如果是数据中断,则关闭中断,并执行步骤B4;如果是拔卡中断,则关闭中断,并执行步骤B10;
B3、将卡槽状态设置为有卡未激活状态,将插卡中断标识复位,打开中断,返回步骤B1;
B4、接收来自上位机的指令;
B5、对接收到的指令进行判断,如果是卡槽上电指令,则执行步骤B6;如果是智能密钥功能指令,则执行步骤B7;如果是卡槽下电指令,则执行步骤B9;
B6、对卡槽上电,将卡槽状态设置为有卡已激活状态,将数据中断标识复位,打开中断,并返回步骤B1;
B7、判断卡槽状态是否为有卡已激活状态,如果是,则执行步骤B8;否则,将数据中断标识复位,打开中断,并返回步骤B1;
B8、将所述接收到的指令发送给所述卡槽中的签名接触卡,接收所述签名接触卡返回的指令执行结果,将所述指令执行结果发送给所述上位机,将数据中断标识复位,打开中断,并返回步骤B1;
B9、对所述卡槽下电,将卡槽状态设置为有卡未激活状态,将数据中断标识复位,打开中断,并返回步骤B1;
B10、将卡槽状态设置为无卡状态,将拔卡中断标识复位,打开中断,并返回步骤B1;
所述数据中断为蓝牙数据中断时,所述数据中断标识为蓝牙数据标识;所述数据中断为USB数据中断时,所述数据中断标识为USB数据标识。
49.如权利要求43所述的设备,其特征在于,所述第一功能模块,具体用于执行以下操作:
C1、等待接收中断;
C2、对接收到的中断进行判断,如果是插USB中断,则关闭中断,并执行步骤C3;如果是拔USB中断,则关闭中断,并执行步骤C4;如果是蓝牙连接中断,则关闭中断,并执行步骤C5;如果是蓝牙断开中断,则关闭中断,并执行步骤C7;如果是USB数据中断,则关闭中断,并执行步骤C8;如果是蓝牙数据中断,则关闭中断,并执行步骤C9;
C3、打开USB通道使能,关闭蓝牙通道使能,将USB通道标识置位,将蓝牙通道标识复位,将插USB中断标识复位,打开中断,并返回步骤C1;
C4、关闭USB通道使能,将USB通道标识复位,将所述拔USB中断标识复位,打开中断,并返回步骤C1;
C5、判断USB通道标识是否置位,如果是,则将所述蓝牙连接中断标识复位,打开中断,并返回步骤C1;否则,执行步骤C6;
C6、打开蓝牙通道使能,将蓝牙通道标识置位,将USB通道标识复位,将蓝牙连接中断标识复位,打开中断,并返回步骤C1;
C7、关闭蓝牙通道使能,将蓝牙通道标识复位,将蓝牙断开中断标识复位,打开中断,并返回步骤C1;
C8、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将USB数据中断标识复位,打开中断,并返回步骤C1;
C9、通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将蓝牙数据中断标识复位,打开中断,并返回步骤C1。
50.如权利要求49所述的设备,其特征在于,所述第一功能模块根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体为:
所述第一功能模块执行以下操作:
D1、判断所述接收到的指令是否为身份认证指令,如果是,则执行步骤D2;否则,执行步骤D5;
D2、对所述接收到的指令进行解析,得到验证信息,根据所述验证信息判断用户身份是否合法,如果是,则执行步骤D3;否则,执行步骤D4;
D3、将身份标识置位,向所述上位机发送验证成功消息;
D4、向所述上位机发送验证失败消息;
D5、判断所述接收到的指令是否为在身份认证成功后才被允许执行的指令,如果是,则执行步骤D6;否则,执行步骤D8;
D6、判断所述身份标识是否置位,如果是,则执行步骤D8;否则,执行步骤D7;
D7、向所述上位机发送指令执行失败消息;
D8、根据所述接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机;
所述第一功能模块执行所述步骤C2时,还用于在判断出所述接收到的中断是插USB中断之后,将所述身份标识复位;
所述第一功能模块,还用于在判断所述USB通道标识没有置位之后,将所述身份标识复位。
51.如权利要求49所述的设备,其特征在于,所述第一功能模块根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体为:
所述第一功能模块根据所述接收到的指令执行相应的指令操作,得到指令响应;判断是否需要等待按键操作,如果是,则保存所述指令中的业务信息以及通过执行指令操作得到的哈希结果,对按键等待标识进行置位,向所述上位机发送所述指令响应;否则,向所述上位机发送所述指令响应;
所述第一功能模块执行所述步骤C2时,还用于在判断出所述接收到的中断是按键中断后,关闭中断,并执行以下操作:
E1、扫描按键,获取被按下的按键的键值,判断所述按键等待标识是否被置位,如果是,则执行步骤E2;否则,根据所述键值执行相应的操作,将所述按键中断标识复位,打开中断,并返回步骤C1;
E2、根据所述键值,对所述被按下的按键进行判断,如果是方向键,则执行步骤E3;如果是确认键,则执行步骤E4;如果是取消键,则执行步骤E6;
E3、显示业务信息,判断自身存储的业务信息是否已显示完毕,如果是,则对报文显示完成标识进行置位,将所述按键中断标识复位,打开中断,并返回步骤C1;否则,将所述按键中断标识复位,打开中断,并返回步骤C1;
E4、判断所述报文显示完成标识是否置位,如果是,则执行步骤E5;否则,显示操作失败信息,将所述按键中断标识复位,打开中断,并返回步骤C1;
E5、对所述哈希结果进行签名,判断签名是否成功,如果是,则保存签名结果,显示操作成功信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开中断,并返回步骤C1;否则,显示操作失败信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开中断,并返回步骤C1;
E6、显示操作取消信息,将所述按键中断标识复位,打开中断,并返回步骤C1;
所述第一功能模块执行所述步骤C2时,还用于在判断所述接收到的中断是插USB中断之后,将所述按键等待标识复位;
所述第一功能模块,还用于在判断出所述USB通道标识没有置位之后,将所述按键等待标识复位。
52.如权利要求43所述的设备,其特征在于,所述第一功能模块,具体用于执行以下操作:
F1、等待接收中断;
F2、对接收到的中断进行判断,如果是插USB中断,则关闭中断,并执行步骤F3;如果是拔USB中断,则关闭中断,并执行步骤F4;如果是蓝牙连接中断,则关闭中断,并执行步骤F5;如果是蓝牙断开中断,则关闭中断,并执行步骤F6;如果是USB数据中断,则关闭中断,并执行步骤F7;如果是蓝牙数据中断,则关闭中断,并执行步骤F8;
F3、对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识复位,将插USB中断标识复位,打开中断,并返回步骤F1;
F4、对所述蓝牙模块上电,关闭USB通道使能,将USB通道标识复位,将拔USB中断标识复位,打开中断,并返回步骤F1;
F5、打开蓝牙通道使能,将蓝牙通道标识置位,将蓝牙连接中断标识复位,打开中断,并返回步骤F1;
F6、关闭蓝牙通道使能,将蓝牙通道标识复位,将蓝牙断开中断标识复位,打开中断,并返回步骤F1;
F7、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将USB数据中断标识复位,打开中断,并返回步骤F1;
F8、通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将蓝牙数据中断标识复位,打开中断,并返回步骤F1。
53.如权利要求43所述的设备,其特征在于,所述第一功能模块,具体用于执行以下操作:
G1、等待接收中断;
G2、对接收到的中断进行判断,如果是插USB中断,则关闭中断,并执行步骤G3;如果是拔USB中断,则关闭中断,并执行步骤G4;如果是蓝牙连接中断,则关闭中断,并执行步骤G5;如果是蓝牙断开中断,则关闭中断,并执行步骤G6;如果是USB数据中断,则关闭中断,并执行步骤G7;如果是蓝牙数据中断,则关闭中断,并执行步骤G8;
G3、打开USB通道使能,将USB通道标识置位,将蓝牙通道标识复位,将插USB中断标识复位,打开除蓝牙连接中断、蓝牙数据中断和蓝牙断开中断之外的其他中断,并返回步骤G1;
G4、关闭USB通道使能,将USB通道标识复位,将拔USB中断标识复位,打开中断,并返回步骤G1;
G5、打开蓝牙通道使能,将蓝牙通道标识置位,将蓝牙连接中断标识复位,打开中断,并返回步骤G1;
G6、关闭蓝牙通道使能,将蓝牙通道标识复位,将蓝牙断开中断标识复位,打开中断,并返回步骤G1;
G7、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将USB数据中断标识复位,打开中断,并返回步骤G1;
G8、通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将蓝牙数据中断标识复位,打开中断,并返回步骤G1。
54.如权利要求43所述的设备,其特征在于,所述第一功能模块,具体用于执行以下操作:
H1、等待接收中断;
H2、对接收到的中断进行判断,如果是插USB中断,则关闭中断,并执行步骤H3;如果是拔USB中断,则关闭中断,并执行步骤H4;如果是蓝牙连接中断,则关闭中断,并执行步骤H5;如果是蓝牙断开中断,则关闭中断,并执行步骤H6;如果是USB数据中断,则关闭中断,并执行步骤H7;如果是蓝牙数据中断,则关闭中断,并执行步骤H8;
H3、对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识和插USB中断标识复位,打开中断,并返回步骤H1;
H4、对所述蓝牙模块上电,关闭USB通道使能,将USB通道标识和拔USB中断标识复位,打开中断,并返回步骤H1;
H5、打开蓝牙通道使能,将蓝牙通道标识置位,将USB通道标识复位,将蓝牙连接中断标识复位,打开除插USB中断、USB数据中断和拔USB中断之外的其他中断,并返回步骤H1;
H6、关闭蓝牙通道使能,将蓝牙通道标识和蓝牙断开中断标识复位,打开中断,并返回步骤H1;
H7、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将USB数据中断标识复位,打开中断,并返回步骤H1;
H8、通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将蓝牙数据中断标识复位,打开中断,并返回步骤H1。
55.如权利要求52至54中任一项所述的设备,其特征在于,所述第一功能模块根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体为:
所述第一功能模块执行以下操作:
K1、判断所述接收到的指令是否为身份认证指令,如果是,则执行步骤K2;否则,执行步骤K3;
K2、对所述接收到的指令进行解析,得到验证信息,根据所述验证信息判断用户身份是否合法,如果是,则将身份标识置位,向所述上位机发送验证成功消息;否则,向所述上位机发送验证失败消息;
K3、判断所述接收到的指令是否为在身份认证成功后才被允许执行的指令,如果是,则执行步骤K4;否则,执行步骤K5;
K4、判断所述身份标识是否置位,如果是,则执行步骤K5;否则,向所述上位机发送指令执行失败消息;
K5、根据所述接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机;
所述第一功能模块,还用于在判断出所述接收到的中断是插USB中断之后,将所述身份标识复位;在判断出所述接收到的中断是蓝牙连接中断之后,将所述身份标识复位。
56.如权利要求52至54中任一项所述的设备,其特征在于,所述第一功能模块根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体为:
所述第一功能模块根据所述接收到的指令执行相应的指令操作,得到指令响应;判断是否需要等待按键操作,如果是,则保存所述指令中的业务信息以及通过执行指令操作得到的哈希结果,对按键等待标识进行置位,向所述上位机发送所述指令响应;否则,向所述上位机发送所述指令响应;
所述第一功能模块,还用于在判断出所述接收到的中断是按键中断后,关闭中断,将所述按键中断标识置位,并执行以下操作:
L1、扫描按键,获取被按下的按键的键值,判断所述按键等待标识是否被置位,如果是,则执行步骤L2;否则,根据所述键值执行相应的操作,将所述按键中断标识复位,打开中断,并继续等待接收中断;
L2、根据所述键值,对所述被按下的按键进行判断,如果是方向键,则执行步骤L3;如果是确认键,则执行步骤L4;如果是取消键,则执行步骤L6;
L3、显示业务信息,判断自身存储的业务信息是否已显示完毕,如果是,则对报文显示完成标识进行置位,将所述按键中断标识复位,打开中断,并继续等待接收中断;否则,将所述按键中断标识复位,打开中断,并继续等待接收中断;
L4、判断所述报文显示完成标识是否置位,如果是,则执行步骤L5;否则,显示操作失败信息,将所述按键中断标识复位,打开中断,并继续等待接收中断;
L5、对所述哈希结果进行签名,判断签名是否成功,如果是,则保存签名结果,显示操作成功信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开中断,并继续等待接收中断;否则,显示操作失败信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开中断,并继续等待接收中断;
L6、显示操作取消信息,将所述按键中断标识复位,打开中断,并继续等待接收中断;
所述第一功能模块,还用于在判断出所述接收到的中断是插USB中断之后,将所述按键等待标识复位;在判断出所述接收到的中断是蓝牙连接中断之后,将所述按键等待标识复位。
57.如权利要求43所述的设备,其特征在于,所述第二功能模块,具体用于执行以下操作:
M0、对蓝牙模块上电,将所述蓝牙模块的工作模式切换至监听模式,清空接收数据缓冲区;
M1、等待接收中断;
M2、对接收到的中断进行判断,
如果是蓝牙连接中断,则关闭中断,将蓝牙连接中断标识置位,并执行步骤M3;
如果是蓝牙数据中断,则关闭中断,将蓝牙数据中断标识置位,并执行步骤M4;
如果是蓝牙断开中断,则关闭中断,将蓝牙断开中断标识置位,并执行步骤M5;
如果是按键中断,则关闭中断,将所述按键中断标识置位,并执行步骤M6;
M3、打开蓝牙通道使能,将所述蓝牙连接中断标识复位,打开中断,并返回步骤M1;
M4、接收蓝牙数据,将所述蓝牙数据保存到所述接收数据缓冲区中,将所述蓝牙数据接收完成标识置位,将所述蓝牙数据中断标识复位,打开中断,并返回步骤M1;
M5、将所述蓝牙数据接收完成标识复位,清空所述接收数据缓冲区,将所述蓝牙断开中断标识复位,打开中断,并返回步骤M1;
M6、对被按下的按键进行判断,如果所述被按下的按键不是确认键,则将所述按键中断标识复位,打开中断,并返回步骤M1;如果是确认键,则判断所述蓝牙数据接收完成标识是否置位,如果置位,则执行步骤M7;否则,将所述按键中断标识复位,打开中断,并返回步骤M1;
M7、根据所述接收数据缓冲区中的数据,生成动态口令,显示所述动态口令,清空所述接收数据缓冲区,将所述按键中断标识复位,打开中断,并返回步骤M1。
58.如权利要求57所述的设备,其特征在于,所述第二功能模块,还用于在执行所述步骤M1之前,将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识复位,清空按键数据缓冲区,将按键数据长度置为第三初始值;
所述第二功能模块执行所述步骤M2时,还用于在判断出所述接收到的中断为定时器中断后,关闭中断,将所述定时器中断标识置位,并更新所述蓝牙模式计数器的计数值,判断所述蓝牙模式计数器的计数值是否为第三阈值,如果是,则对蓝牙模块下电,将所述蓝牙模式计数器的计数值置为第五初始值,将所述允许按键输入标识置位,将定时器中断标识复位,打开中断,并返回步骤M1;否则,将定时器中断标识复位,打开中断,并返回步骤M1;
所述第二功能模块执行所述步骤M6时,还用于在判断出所述被按下的按键为数字键之后,判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开中断,并返回步骤M1;如果置位,则判断所述按键数据长度是否小于第二预设长度,如果小于,则更新所述按键数据长度,将与所述被按下的按键对应的键值保存到所述按键数据缓冲区中,显示所述按键数据缓冲区中的数据;如果不小于,则将所述按键中断标识复位,打开中断,并返回步骤M1;
在判断出所述被按下的按键为删除键之后,判断所述蓝牙数据接收完成标识是否置位,如果是,则将所述按键中断标识复位,打开中断,并返回步骤M1;否则,判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开中断,并返回步骤M1;如果置位,则判断所述按键数据长度是否等于第三初始值,如果等于,则将所述按键中断标识复位,打开中断,并返回步骤M1;如果不等于,则更新所述按键数据长度,将所述按键数据缓冲区中最后一次存入的数据删除,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开中断,并返回步骤M1;
所述第二功能模块,还用于在判断出所述蓝牙数据接收完成标识没有置位之后,判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开中断,并返回步骤M1;如果置位,则判断所述按键数据长度是否等于第三初始值,如果是,则根据自身内部的动态因子生成动态口令,显示所述动态口令,将所述按键中断标识复位,打开中断,并返回步骤M1;否则,根据所述按键数据缓冲区中的数据生成动态口令,显示所述动态口令,清空所述按键数据缓冲区,将所述按键中断标识复位,打开中断,并返回步骤M1。
59.如权利要求43所述的设备,其特征在于,所述第二功能模块,具体用于执行以下操作:
N1、判断蓝牙模块的工作电压是否低于第二预设电压,如果是,则执行步骤N2;否则,执行步骤N4;
N2、显示蓝牙模块低电压信息,判断所述蓝牙模块的工作电压低于所述第二预设电压的时长是否达到第二预设时长,如果是,则执行步骤N3;否则,执行步骤N4;
N3、将系统状态标识设置为输入挑战码标识,清空按键数据缓冲区,将按键数据长度置为第三初始值,并执行步骤N5;
N4、对所述蓝牙模块上电,将所述蓝牙模块的工作模式切换至监听模式,将所述系统状态标识设置为蓝牙OTP标识,清空接收数据缓冲区,并执行步骤N5;
N5、等待接收中断;
N6、对接收到的中断进行判断,
如果是蓝牙连接中断,则关闭中断,将蓝牙连接中断标识置位,并执行步骤N7;
如果是蓝牙数据中断,则关闭中断,将蓝牙数据中断标识置位,并执行步骤N10;
如果是蓝牙断开中断,则关闭中断,将蓝牙断开中断标识置位,并执行步骤N11;
如果是按键中断,则关闭中断,将所述按键中断标识置位,并执行步骤N14;
N7、判断所述系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤N8;否则,执行步骤N9;
N8、打开蓝牙通道使能,并执行步骤N9;
N9、将所述蓝牙连接中断标识复位,打开中断,并返回步骤N5;
N10、接收蓝牙数据,将所述蓝牙数据保存到所述接收数据缓冲区中,将蓝牙数据接收完成标识置位,将所述蓝牙数据中断标识复位,打开中断,并返回步骤N5;
N11、判断所述系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤N12;否则,执行步骤N13;
N12、清空所述接收数据缓冲区,将所述蓝牙数据接收完成标识复位,并执行步骤N13;
N13、将所述蓝牙断开中断标识复位,打开中断,并返回步骤N5;
N14、对所述系统状态标识进行判断,如果是蓝牙OTP标识,则执行步骤N15;如果是输入挑战码标识,则执行步骤N17;
N15、对被按下的按键进行判断,如果所述被按下的按键不是确认键,则将所述按键中断标识复位,打开中断,并返回步骤N5;如果所述被按下的按键是确认键,则判断所述蓝牙数据接收完成标识是否置位,如果置位,则执行步骤N16;否则,将所述按键中断标识复位,打开中断,并返回步骤N5;
N16、根据所述接收数据缓冲区中的数据,生成动态口令,显示所述动态口令,清空所述接收数据缓冲区,将所述按键中断标识复位,打开中断,并返回步骤N5;
N17、对所述被按下的按键进行判断,
如果是数字键,则执行步骤N18;
如果是删除键,则执行步骤N20;
如果是确认键,则执行步骤N21;
N18、判断所述按键数据长度是否小于第二预设长度,如果是,则执行步骤N19;否则,将所述按键中断标识复位,打开中断,并返回步骤N5;
N19、更新所述按键数据长度,将与所述被按下的按键对应的键值保存到所述按键数据缓冲区中,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开中断,并返回步骤N5;
N20、判断所述按键数据长度是否等于第三初始值,如果是,则将所述按键中断标识复位,打开中断,并返回步骤N5;否则,更新所述按键数据长度,将所述按键数据缓冲区中最后一次存入的数据删除,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开中断,并返回步骤N5;
N21、判断所述按键数据长度是否等于第三初始值,如果是,则执行步骤N22;否则,执行步骤N23;
N22、根据自身内部的动态因子生成动态口令,显示所述动态口令,将所述按键中断标识复位,打开中断,并返回步骤N5;
N23、根据所述按键数据缓冲区中的数据生成动态口令,显示所述动态口令,清空所述按键数据缓冲区,将所述按键中断标识复位,打开中断,并返回步骤N5。
60.如权利要求59所述的设备,其特征在于,
所述第二功能模块执行所述步骤N17时,还用于在判断出所述被按下的按键为删除键之后,判断所述删除键被按下的时长是否达到第四预设时长,如果没有达到,则执行步骤N20;如果达到,则判断所述按键数据长度是否等于第三初始值,如果是,则将所述系统状态标识设置为菜单功能选择标识,显示菜单功能选择界面,将所述按键中断标识复位,打开中断,并返回步骤N5;否则,将所述按键数据长度置为第三初始值,将所述按键中断标识复位,打开中断,并返回步骤N5;
所述第二功能模块执行所述步骤N14时,还用于在判断出所述系统状态标识为菜单功能选择标识之后,执行以下操作:
N24、判断所述被按下的按键是否为第一预设按键,如果是,则执行步骤N25;否则,根据所述被按下的按键执行相应的操作;
N25、对所述蓝牙模块上电,将所述蓝牙模块的工作模式切换至监听模式,将所述系统状态标识设置为蓝牙OTP标识,清空所述接收数据缓冲区,将所述按键中断标识复位,打开中断,并返回步骤N5。
61.如权利要求60所述的设备,其特征在于,所述第二功能模块执行所述步骤N4和所述步骤N25时,还用于将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识复位,清空按键数据缓冲区,将按键数据长度置为第三初始值;
所述第二功能模块执行所述步骤N6时,还用于在判断出所述接收到的中断为定时器中断后,关闭中断,将所述定时器中断标识置位,并执行以下操作:
N26、判断所述系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤N27;否则,将所述定时器中断标识复位,打开中断,并返回步骤N5;
N27、更新所述蓝牙模式计数器的计数值,判断所述蓝牙模式计数器的计数值是否为第三阈值,如果是,则执行步骤N28;否则,将所述定时器中断标识复位,打开中断,并返回步骤N5;
N28、对蓝牙模块下电,将所述蓝牙模式计数器的计数值置为第五初始值,将所述允许按键输入标识置位,将所述定时器中断标识复位,打开中断,并返回步骤N5;
所述第二功能模块执行所述步骤N15时,还用于在判断出所述被按下的按键为数字键之后,执行以下操作:
N29、判断所述允许按键输入标识是否置位;如果没有置位,则将所述按键中断标识复位,打开中断,并返回步骤N5;如果置位,则判断所述按键数据长度是否小于第二预设长度,如果小于,则更新所述按键数据长度,将与所述被按下的按键对应的键值保存到所述按键数据缓冲区中,显示所述按键数据缓冲区中的数据;如果不小于,则将所述按键中断标识复位,打开中断,并返回步骤N5;
所述第二功能模块执行所述步骤N15时,还用于在判断出所述被按下的按键为删除键之后,执行以下操作:
N30、判断所述蓝牙数据接收完成标识是否置位,如果是,则将所述按键中断标识复位,打开中断,并返回步骤N5;否则,判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开中断,并返回步骤N5;如果置位,则判断所述按键数据长度是否等于第三初始值,如果等于,则将所述按键中断标识复位,打开中断,并返回步骤N5;如果不等于,则更新所述按键数据长度,将所述按键数据缓冲区中最后一次存入的数据删除,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开中断,并返回步骤N5;
在判断出所述蓝牙数据接收完成标识没有置位之后,执行以下操作:
N31、判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开中断,并返回步骤N5;如果置位,则判断所述按键数据长度是否等于第三初始值,如果是,则根据自身内部的动态因子生成动态口令,显示所述动态口令,将所述按键中断标识复位,打开中断,并返回步骤N5;否则,根据所述按键数据缓冲区中的数据生成动态口令,显示所述动态口令,清空所述按键数据缓冲区,将所述按键中断标识复位,打开中断,并返回步骤N5。
62.如权利要求61所述的设备,其特征在于,
所述第二功能模块执行所述步骤N4时,还用于将主动选择蓝牙标识复位;
所述第二功能模块执行所述步骤N25时,还用于将主动选择蓝牙标识置位;
所述第二功能模块还用于在判断出所述蓝牙模式计数器的计数值为第三阈值之后,判断所述主动选择蓝牙标识是否置位,如果是,则执行步骤N28;否则,对所述蓝牙模块下电,将所述蓝牙模式计数器的计数值置为第五初始值,将所述系统状态标识设置为输入挑战码标识,将所述定时器中断标识复位,打开中断,并返回步骤N5。
63.如权利要求61所述的设备,其特征在于,
所述第二功能模块执行所述步骤N15时,还用于在判断出所述被按下的按键是删除键之后,判断所述删除键被按下的时长是否达到第三预设时长,如果是,则将所述系统状态标识设置为输入挑战码标识,清空所述按键数据缓冲区,将所述按键数据长度置为第三初始值,将所述按键中断标识复位,打开中断,并返回步骤N5;否则,执行步骤N30。
64.如权利要求59所述的设备,其特征在于,
所述第二功能模块执行所述步骤N6时,还用于在判断出所述接收到的中断为定时器中断后,关闭中断,将所述定时器中断标识置位,并执行以下操作:
N32、更新秒计数器的计数值,对所述秒计数器的计数值进行判断,如果等于第八阈值,则执行步骤N33;如果等于第九阈值,则执行步骤N34;
N33、将所述秒计数器的计数值设置为第十初始值,更新校准计数器的计数值和自身内部的动态因子,将所述定时器中断标识复位,打开中断,并返回步骤N5;
N34、判断所述校准计数器的计数值是否小于预设的校准值,如果是,则将所述定时器中断标识复位,打开中断,并返回步骤N5;否则,根据所述校准值更新所述校准计数器的计数值和所述秒计数器的计数值,将所述定时器中断标识复位,打开中断,并返回步骤N5。
65.如权利要求59所述的设备,其特征在于,
所述第二功能模块执行所述步骤N6时,还用于在判断出所述接收到的中断为按键中断后,关闭中断,将所述按键中断标识置位,并执行以下操作:
将无按键计数器的计数值置为第二初始值;
所述第二功能模块执行所述步骤N6时,还用于在判断出所述接收到的中断为定时器中断之后,执行以下操作:
N35、更新所述无按键计数器的计数值,判断所述无按键计数器的计数值是否达到第五阈值,如果是,则关机,结束流程;否则,执行步骤N36;
N36、判断当前是否有按键被按下,如果是,则执行步骤N37;否则,执行步骤N39;
N37、对按键按下计数器的计数值进行更新,将按键松开计数器的计数值设置为第八初始值,判断所述按键按下计数器的计数值是否达到第六阈值,如果是,则执行步骤N38;否则,将所述定时器中断标识复位,打开中断,并返回步骤N5;
N38、将所述按键按下计数器的计数值设置为第九初始值,将所述定时器中断标识复位,打开除按键中断之外的其他中断,并返回步骤N5;
N39、更新所述按键松开计数器的计数值,将所述按键按下计数器的计数值设置为第九初始值,判断所述按键松开计数器的计数值是否达到第七阈值,如果是,则执行步骤N40;否则,将所述定时器中断标识复位,打开除按键中断之外的其他中断,并返回步骤N5;
N40、将所述按键松开计数器的计数值设置为第八初始值,将所述定时器中断标识复位,打开中断,并返回步骤N5。
66.如权利要求43所述的设备,其特征在于,所述用户按键信息为被按下的按键的键值;
所述选择模块,具体用于执行以下操作:
P3、关闭除按键中断和定时器中断之外的其他中断,将定时器的计数值设置为第一初始值;
P4、判断是否存在置位的中断标识,如果是,则执行步骤P5;否则,继续判断是否存在置位的中断标识;
P5、对置位的中断标识进行判断,如果是定时器中断标识,则执行步骤P6;如果是按键中断标识,则关闭按键中断,并执行步骤P7;
P6、更新所述定时器的计数值,判断所述定时器的计数值是否达到第一阈值,如果是,则关机,结束流程;否则,将定时器中断标识复位,并返回步骤P4;
P7、将所述定时器的计数值设置为第一初始值,扫描按键,获取被按下的按键的键值,根据所述键值对所述被按下的按键进行判断,如果是方向键,则执行步骤P8;如果是确认键,则执行步骤P10;
P8、根据所述被按下的按键,对主菜单状态寄存器中的数据进行更新;
P9、根据所述主菜单状态寄存器中的数据,显示对应的菜单信息,将按键中断标识复位,打开按键中断,并返回步骤P4;
P10、对所述主菜单状态寄存器中的数据进行判断,如果是第一预设值,则将按键中断标识复位,打开蓝牙数据接口、USB数据接口和中断,触发所述第一功能模块执行智能密钥功能的流程;如果是第二预设值,则将按键中断标识复位,打开所述蓝牙数据接口和中断,触发所述第二功能模块执行动态口令功能的流程;
所述设备,还包括:
设置模块,用于在接收到所述按键中断后,将所述按键中断标识置位;在接收到所述定时器中断后,将所述定时器中断标识置位。
67.如权利要求43所述的设备,其特征在于,所述第一功能模块,具体用于执行以下操作:
Q1、判断是否存在置位的中断标识,如果是,则执行步骤Q2;否则,继续判断是否存在置位的中断标识;
Q2、对置位的中断标识进行判断,如果是插卡中断标识,则执行步骤Q3;如果是数据中断标识,则执行步骤Q4;如果是拔卡中断标识,则执行步骤Q10;
Q3、将卡槽状态设置为有卡未激活状态,将所述插卡中断标识复位,返回步骤Q1;
Q4、接收来自上位机的指令;
Q5、对接收到的指令进行判断,如果是卡槽上电指令,则执行步骤Q6;如果是智能密钥功能指令,则执行步骤Q7;如果是卡槽下电指令,则执行步骤Q9;
Q6、对卡槽上电,将卡槽状态设置为有卡已激活状态,将所述数据中断标识复位,并返回步骤Q1;
Q7、判断卡槽状态是否为有卡已激活状态,如果是,则执行步骤Q8;否则,将所述数据中断标识复位,并返回步骤Q1;
Q8、将所述接收到的指令发送给所述卡槽中的签名接触卡,接收所述签名接触卡返回的指令执行结果,将所述指令执行结果发送给所述上位机,将所述数据中断标识复位,并返回步骤Q1;
Q9、对所述卡槽下电,将卡槽状态设置为有卡未激活状态,将所述数据中断标识复位,并返回步骤Q1;
Q10、将卡槽状态设置为无卡状态,将所述拔卡中断标识复位,并返回步骤Q1;
所述设备,还包括:
设置模块,用于在接收到插卡中断后,将所述插卡中断标识置位;在接收到数据中断后,将所述数据中断标识置位;在接收到拔卡中断后,将所述拔卡中断标识置位;所述数据中断为蓝牙数据中断时,所述数据中断标识为蓝牙数据标识;所述数据中断为USB数据中断时,所述数据中断标识为USB数据标识。
68.如权利要求43所述的设备,其特征在于,所述第一功能模块,具体用于执行以下操作:
R1、判断是否存在置位的中断标识,如果是,则执行步骤R2;否则,继续判断是否存在置位的中断标识;
R2、对置位的中断标识进行判断,如果是插USB中断标识,则执行步骤R3;如果是拔USB中断标识,则执行步骤R4;如果是蓝牙连接中断标识,则执行步骤R5;如果是蓝牙断开中断标识,则执行步骤R7;如果是USB数据中断标识,则执行步骤R8;如果是蓝牙数据中断标识,则执行步骤R9;
R3、打开USB通道使能,关闭蓝牙通道使能,将USB通道标识置位,将蓝牙通道标识复位,将插USB中断标识复位,并返回步骤R1;
R4、关闭USB通道使能,将USB通道标识复位,将拔USB中断标识复位,并返回步骤R1;
R5、判断USB通道标识是否置位,如果是,则将蓝牙连接中断标识复位,并返回步骤R1;否则,执行步骤R6;
R6、打开蓝牙通道使能,将蓝牙通道标识置位,将蓝牙连接中断标识复位,并返回步骤R1;
R7、关闭蓝牙通道使能,将蓝牙通道标识复位,将蓝牙断开中断标识复位,并返回步骤R1;
R8、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将USB数据中断标识复位,并返回步骤R1;
R9、通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将蓝牙数据中断标识复位,并返回步骤R1;
所述设备,还包括:
设置模块,用于在接收到插USB中断后,将所述插USB中断标识置位;在接收到拔USB中断后,将所述拔USB中断标识置位;在接收到蓝牙连接中断后,将所述蓝牙连接中断标识置位;在接收到蓝牙断开中断后,将所述蓝牙断开中断标识置位;在接收到USB数据中断后,将所述USB数据中断标识置位;在接收到蓝牙数据中断后,将所述蓝牙数据中断标识置位。
69.如权利要求68所述的设备,其特征在于,所述第一功能模块根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体为:
所述第一功能模块执行以下操作:
S1、判断所述接收到的指令是否为身份认证指令,如果是,则执行步骤S2;否则,执行步骤S5;
S2、对所述接收到的指令进行解析,得到验证信息,根据所述验证信息判断用户身份是否合法,如果是,则执行步骤S3;否则,执行步骤S4;
S3、将身份标识置位,向所述上位机发送验证成功消息;
S4、向所述上位机发送验证失败消息;
S5、判断所述接收到的指令是否为在身份认证成功后才被允许执行的指令,如果是,则执行步骤S6;否则,执行步骤S8;
S6、判断所述身份标识是否置位,如果是,则执行步骤S8;否则,执行步骤S7;
S7、向所述上位机发送指令执行失败消息;
S8、根据所述接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机;
所述第一功能模块执行所述步骤R2时,还用于在判断出所述置位的中断标识为插USB中断标识之后,将所述身份标识复位;
所述第一功能模块,还用于在判断出所述USB通道标识没有置位之后,将所述身份标识复位。
70.如权利要求68所述的设备,其特征在于,所述第一功能模块根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体为:
所述第一功能模块根据所述接收到的指令执行相应的指令操作,得到指令响应;判断是否需要等待按键操作,如果是,则保存所述指令中的业务信息以及通过执行指令操作得到的哈希结果,对按键等待标识进行置位,向所述上位机发送所述指令响应;否则,向所述上位机发送所述指令响应;
所述第一功能模块执行所述步骤R2时,还用于在判断出所述置位的中断标识为按键中断标识后,关闭按键中断,并执行以下操作:
T1、扫描按键,获取被按下的按键的键值,判断所述按键等待标识是否被置位,如果是,则执行步骤T2;否则,根据所述键值执行相应的操作,将所述按键中断标识复位,打开按键中断,并返回步骤R1;
T2、根据所述键值,对所述被按下的按键进行判断,如果是方向键,则执行步骤T3;如果是确认键,则执行步骤T4;如果是取消键,则执行步骤T6;
T3、显示业务信息,判断自身存储的业务信息是否已显示完毕,如果是,则对报文显示完成标识进行置位,将所述按键中断标识复位,打开按键中断,并返回步骤R1;否则,将所述按键中断标识复位,打开按键中断,并返回步骤R1;
T4、判断所述报文显示完成标识是否置位,如果是,则执行步骤T5;否则,显示操作失败信息,将所述按键中断标识复位,打开按键中断,并返回步骤R1;
T5、对所述哈希结果进行签名,判断签名是否成功,如果是,则保存签名结果,显示操作成功信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开按键中断,并返回步骤R1;否则,显示操作失败信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开按键中断,并返回步骤R1;
T6、显示操作取消信息,将所述按键中断标识复位,打开按键中断,并返回步骤R1;
所述第一功能模块执行所述步骤R2时,还用于在判断出所述置位的中断标识为插USB中断标识之后,将所述按键等待标识复位;
所述第一功能模块,还用于在判断出所述USB通道标识没有置位之后,将所述按键等待标识复位。
71.如权利要求43所述的设备,其特征在于,所述第一功能模块,具体用于执行以下操作:
U1、判断是否存在置位的中断标识,如果是,则执行步骤U2;否则,继续判断是否存在置位的中断标识;
U2、对置位的中断标识进行判断,如果是插USB中断标识,则执行步骤U3;如果是拔USB中断标识,则执行步骤U4;如果是蓝牙连接中断标识,则执行步骤U5;如果是蓝牙断开中断标识,则执行步骤U6;如果是USB数据中断标识,则执行步骤U7;如果是蓝牙数据中断标识,则执行步骤U8;
U3、对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识复位,将所述插USB中断标识复位,并返回步骤U1;
U4、对所述蓝牙模块上电,关闭USB通道使能,将USB通道标识复位,将所述拔USB中断标识复位,并返回步骤U1;
U5、打开蓝牙通道使能,将蓝牙通道标识置位,将所述蓝牙连接中断标识复位,并返回步骤U1;
U6、关闭蓝牙通道使能,将蓝牙通道标识复位,将所述蓝牙断开中断标识复位,并返回步骤U1;
U7、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将所述USB数据中断标识复位,并返回步骤U1;
U8、通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将所述蓝牙数据中断标识复位,并返回步骤U1;
所述设备,还包括:
设置模块,用于在接收到插USB中断后,将所述插USB中断标识置位;在接收到拔USB中断后,将所述拔USB中断标识置位;在接收到蓝牙连接中断后,将所述蓝牙连接中断标识置位;接收到蓝牙断开中断后,将所述蓝牙断开中断标识置位;在接收到USB数据中断后,将所述USB数据中断标识置位;在接收到蓝牙数据中断后,将所述蓝牙数据中断标识置位。
72.如权利要求43所述的设备,其特征在于,所述第一功能模块,具体用于执行以下操作:
V1、判断是否存在置位的中断标识,如果是,则执行步骤V2;否则,继续判断是否存在置位的中断标识;
V2、对置位的中断标识进行判断,如果是插USB中断标识,则执行步骤V3;如果是拔USB中断标识,则执行步骤V4;如果是蓝牙连接中断标识,则执行步骤V5;如果是蓝牙断开中断标识,则执行步骤V6;如果是USB数据中断标识,则执行步骤V7;如果是蓝牙数据中断标识,则执行步骤V8;
V3、打开USB通道使能,将USB通道标识置位,将蓝牙通道标识复位,将所述插USB中断标识复位,关闭蓝牙连接中断、蓝牙数据中断和蓝牙断开中断,并返回步骤V1;
V4、关闭USB通道使能,将USB通道标识复位,将所述拔USB中断标识复位,打开蓝牙连接中断、蓝牙数据中断和蓝牙断开中断,并返回步骤V1;
V5、打开蓝牙通道使能,将蓝牙通道标识置位,将所述蓝牙连接中断标识复位,并返回步骤V1;
V6、关闭蓝牙通道使能,将蓝牙通道标识复位,将所述蓝牙断开中断标识复位,并返回步骤V1;
V7、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将所述USB数据中断标识复位,并返回步骤V1;
V8、通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将所述蓝牙数据中断标识复位,并返回步骤V1;
所述设备,还包括:
设置模块,用于在接收到插USB中断后,将所述插USB中断标识置位;在接收到拔USB中断后,将所述拔USB中断标识置位;在接收到蓝牙连接中断后,将所述蓝牙连接中断标识置位;接收到蓝牙断开中断后,将所述蓝牙断开中断标识置位;在接收到USB数据中断后,将所述USB数据中断标识置位;在接收到蓝牙数据中断后,将所述蓝牙数据中断标识置位。
73.如权利要求43所述的设备,其特征在于,所述第一功能模块,具体用于执行以下操作:
W1、判断是否存在置位的中断标识,如果是,则执行步骤W2;否则,继续判断是否存在置位的中断标识;
W2、对置位的中断标识进行判断,如果是插USB中断标识,则执行步骤W3;如果是拔USB中断标识,则执行步骤W4;如果是蓝牙连接中断标识,则执行步骤W5;如果是蓝牙断开中断标识,则执行步骤W6;如果是USB数据中断标识,则执行步骤W7;如果是蓝牙数据中断标识,则执行步骤W8;
W3、对蓝牙模块下电,打开USB通道使能,将USB通道标识置位,将蓝牙通道标识和所述插USB中断标识复位,并返回步骤W1;
W4、对所述蓝牙模块上电,关闭USB通道使能,将USB通道标识和所述拔USB中断标识复位,并返回步骤W1;
W5、打开蓝牙通道使能,将蓝牙通道标识置位,将USB通道标识复位,将所述蓝牙连接中断标识复位,关闭插USB中断、USB数据中断和拔USB中断,并返回步骤W1;
W6、关闭蓝牙通道使能,将蓝牙通道标识和所述蓝牙断开中断标识复位,打开插USB中断、USB数据中断和拔USB中断,并返回步骤W1;
W7、通过USB通道接收来自上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将所述USB数据中断标识复位,并返回步骤W1;
W8、通过蓝牙通道接收来自所述上位机的指令,根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,将所述蓝牙数据中断标识复位,并返回步骤W1;
所述设备,还包括:
设置模块,用于在接收到插USB中断后,将所述插USB中断标识置位;在接收到拔USB中断后,将所述拔USB中断标识置位;在接收到蓝牙连接中断后,将所述蓝牙连接中断标识置位;在接收到蓝牙断开中断后,将所述蓝牙断开中断标识置位;在接收到USB数据中断后,将所述USB数据中断标识置位;在接收到蓝牙数据中断后,将所述蓝牙数据中断标识置位。
74.如权利要求71至73中任一项所述的设备,其特征在于,所述第一功能模块根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体为:
所述第一功能模块执行以下操作:
X1、判断所述接收到的指令是否为身份认证指令,如果是,则执行步骤X2;否则,执行步骤X3;
X2、对所述接收到的指令进行解析,得到验证信息,根据所述验证信息判断用户身份是否合法,如果是,则将身份标识置位,向所述上位机发送验证成功消息;否则,向所述上位机发送验证失败消息;
X3、判断所述接收到的指令是否为在身份认证成功后才被允许执行的指令,如果是,则执行步骤X4;否则,执行步骤X5;
X4、判断所述身份标识是否置位,如果是,则执行步骤X5;否则,向所述上位机发送指令执行失败消息;
X5、根据所述接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机;
所述第一功能模块,还用于在判断出所述置位的中断标识为插USB中断标识之后,将所述身份标识复位;在判断出所述置位的中断标识为蓝牙连接中断标识之后,将所述身份标识复位。
75.如权利要求71至73中任一项所述的设备,其特征在于,所述第一功能模块根据接收到的指令执行相应的指令操作,将得到的指令响应发送给所述上位机,具体包括:
所述第一功能模块根据所述接收到的指令执行相应的指令操作,得到指令响应;判断是否需要等待按键操作,如果是,则保存所述指令中的业务信息以及通过执行指令操作得到的哈希结果,对按键等待标识进行置位,向所述上位机发送所述指令响应;否则,向所述上位机发送所述指令响应;
所述第一功能模块,还用于在判断出所述置位的中断标识是按键中断标识后,关闭按键中断,并执行以下操作:
Y1、扫描按键,获取被按下的按键的键值,判断所述按键等待标识是否被置位,如果是,则执行步骤Y2;否则,根据所述键值执行相应的操作,将所述按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
Y2、根据所述键值,对所述被按下的按键进行判断,如果是方向键,则执行步骤Y3;如果是确认键,则执行步骤Y4;如果是取消键,则执行步骤Y6;
Y3、显示业务信息,判断自身存储的业务信息是否已显示完毕,如果是,则对报文显示完成标识进行置位,将所述按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;否则,将所述按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
Y4、判断所述报文显示完成标识是否置位,如果是,则执行步骤Y5;否则,显示操作失败信息,将所述按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
Y5、对所述哈希结果进行签名,判断签名是否成功,如果是,则保存签名结果,显示操作成功信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;否则,显示操作失败信息,对所述报文显示完成标识进行复位,将所述按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
Y6、显示操作取消信息,将所述按键中断标识复位,打开按键中断,并继续判断是否存在置位的中断标识;
所述第一功能模块,还用于在判断出所述置位的中断标识是插USB中断标识之后,将所述按键等待标识复位;在判断出所述置位的中断标识是蓝牙连接中断标识之后,将所述按键等待标识复位。
76.如权利要求43所述的设备,其特征在于,所述第二功能模块,具体用于执行以下操作:
Z0、对蓝牙模块上电,将所述蓝牙模块的工作模式切换至监听模式,清空接收数据缓冲区;
Z1、判断是否存在置位的中断标识,如果是,则执行步骤Z2;否则,继续判断是否存在置位的中断标识;
Z2、对置位的中断标识进行判断,
如果是蓝牙连接中断标识,则执行步骤Z3;
如果是蓝牙数据中断标识,则执行步骤Z4;
如果是蓝牙断开中断标识,则执行步骤Z5;
如果是按键中断,则关闭按键中断,并执行步骤Z6;
Z3、打开蓝牙通道使能,将蓝牙连接中断标识复位,并返回步骤Z1;
Z4、接收蓝牙数据,将所述蓝牙数据保存到所述接收数据缓冲区中,将所述蓝牙数据接收完成标识置位,将蓝牙数据中断标识复位,并返回步骤Z1;
Z5、将所述蓝牙数据接收完成标识复位,清空所述接收数据缓冲区,将蓝牙断开中断标识复位,并返回步骤Z1;
Z6、对被按下的按键进行判断,如果所述被按下的按键不是确认键,则将所述按键中断标识复位,打开按键中断,并返回步骤Z1;如果是确认键,则判断所述蓝牙数据接收完成标识是否置位,如果置位,则执行步骤Z7;否则,将所述按键中断标识复位,打开按键中断,并返回步骤Z1;
Z7、将根据所述接收数据缓冲区中的数据,生成动态口令,显示所述动态口令,清空所述接收数据缓冲区,将所述按键中断标识复位,打开按键中断,并返回步骤Z1;
所述设备,还包括:
设置模块,用于在接收到蓝牙连接中断后,将所述蓝牙连接中断标识置位;在接收到蓝牙断开中断后,将所述蓝牙断开中断标识置位;在接收到蓝牙数据中断后,将所述蓝牙数据中断标识置位。
77.如权利要求76所述的设备,其特征在于,所述第二功能模块,还用于在执行所述步骤Z1之前,将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识复位,清空按键数据缓冲区,将按键数据长度置为第三初始值;
所述第二功能模块执行所述步骤Z2时,还用于在判断出所述置位的中断标识为定时器中断标识后,更新所述蓝牙模式计数器的计数值,判断所述蓝牙模式计数器的计数值是否为第三阈值,如果是,则对蓝牙模块下电,将所述蓝牙模式计数器的计数值置为第五初始值,将所述允许按键输入标识置位,将所述定时器中断标识复位,并返回步骤Z1;否则,将所述定时器中断标识复位,并返回步骤Z1;
所述第二功能模块执行所述步骤Z6时,还用于在判断出所述被按下的按键为数字键之后,判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开按键中断,并返回步骤Z1;如果置位,则判断所述按键数据长度是否小于第二预设长度,如果小于,则更新所述按键数据长度,将与所述被按下的按键对应的键值保存到所述按键数据缓冲区中,显示所述按键数据缓冲区中的数据;如果不小于,则将所述按键中断标识复位,打开按键中断,并返回步骤Z1;
在判断出所述被按下的按键为删除键之后,判断所述蓝牙数据接收完成标识是否置位,如果是,则将所述按键中断标识复位,打开按键中断,并返回步骤Z1;否则,判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开按键中断,并返回步骤Z1;如果置位,则判断所述按键数据长度是否等于第三初始值,如果等于,则将所述按键中断标识复位,打开按键中断,并返回步骤Z1;如果不等于,则更新所述按键数据长度,将所述按键数据缓冲区中最后一次存入的数据删除,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开按键中断,并返回步骤Z1;
所述第二功能模块,还用于在判断出所述蓝牙数据接收完成标识没有置位之后,判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开按键中断,并返回步骤Z1;如果置位,则判断所述按键数据长度是否等于第三初始值,如果是,则根据自身内部的动态因子生成动态口令,显示所述动态口令,将所述按键中断标识复位,打开按键中断,并返回步骤Z1;否则,根据所述按键数据缓冲区中的数据生成动态口令,显示所述动态口令,清空所述按键数据缓冲区,将所述按键中断标识复位,打开按键中断,并返回步骤Z1。
78.如权利要求43所述的设备,其特征在于,所述第二功能模块,具体用于执行以下操作:
J1、判断蓝牙模块的工作电压是否低于第二预设电压,如果是,则执行步骤J2;否则,执行步骤J4;
J2、显示蓝牙模块低电压信息,判断所述蓝牙模块的工作电压低于所述第二预设电压的时长是否达到第二预设时长,如果是,则执行步骤J3;否则,执行步骤J4;
J3、将系统状态标识设置为输入挑战码标识,清空按键数据缓冲区,将按键数据长度置为第三初始值,并执行步骤J5;
J4、对所述蓝牙模块上电,将所述蓝牙模块的工作模式切换至监听模式,将所述系统状态标识设置为蓝牙OTP标识,清空接收数据缓冲区,并执行步骤J5;
J5、判断是否存在置位的中断标识,如果是,则执行步骤J6;否则,继续判断是否存在置位的中断标识;
J6、对置位的中断标识进行判断,
如果是蓝牙连接中断标识,则执行步骤J7;
如果是蓝牙数据中断标识,则执行步骤J10;
如果是蓝牙断开中断标识,则执行步骤J11;
如果是按键中断标识,则关闭按键中断,并执行步骤J14;
J7、判断所述系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤J8;否则,执行步骤J9;
J8、打开蓝牙通道使能,并执行步骤J9;
J9、将所述蓝牙连接中断标识复位,并返回步骤J5;
J10、接收蓝牙数据,将所述蓝牙数据保存到所述接收数据缓冲区中,将蓝牙数据接收完成标识置位,将所述蓝牙数据中断标识复位,并返回步骤J5;
J11、判断所述系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤J12;否则,执行步骤J13;
J12、清空所述接收数据缓冲区,将所述蓝牙数据接收完成标识复位,并执行步骤J13;
J13、将所述蓝牙断开中断标识复位,并返回步骤J5;
J14、对所述系统状态标识进行判断,如果是蓝牙OTP标识,则执行步骤J15;如果是输入挑战码标识,则执行步骤J17;
J15、对被按下的按键进行判断,如果所述被按下的按键不是确认键,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;如果所述被按下的按键是确认键,则判断所述蓝牙数据接收完成标识是否置位,如果置位,则执行步骤J16;否则,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
J16、根据所述接收数据缓冲区中的数据,生成动态口令,显示所述动态口令,清空所述接收数据缓冲区,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
J17、对所述被按下的按键进行判断,
如果是数字键,则执行步骤J18;
如果是删除键,则执行步骤J20;
如果是确认键,则执行步骤J21;
J18、判断所述按键数据长度是否小于第二预设长度,如果是,则执行步骤J19;否则,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
J19、更新所述按键数据长度,将与所述被按下的按键对应的键值保存到所述按键数据缓冲区中,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
J20、判断所述按键数据长度是否等于第三初始值,如果是,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;否则,更新所述按键数据长度,将所述按键数据缓冲区中最后一次存入的数据删除,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
J21、判断所述按键数据长度是否等于第三初始值,如果是,则执行步骤J22;否则,执行步骤J23;
J22、根据自身内部的动态因子生成动态口令,显示所述动态口令,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
J23、根据所述按键数据缓冲区中的数据生成动态口令,显示所述动态口令,清空所述按键数据缓冲区,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
所述设备,还包括:
设置模块,用于在接收到蓝牙连接中断后,将所述蓝牙连接中断标识置位;在接收到蓝牙断开中断后,将所述蓝牙断开中断标识置位;在接收到蓝牙数据中断后,将所述蓝牙数据中断标识置位。
79.如权利要求78所述的设备,其特征在于,
所述第二功能模块执行所述步骤J17时,还用于在判断出所述被按下的按键为删除键之后,判断所述删除键被按下的时长是否达到第四预设时长,如果没有达到,则执行步骤J20;如果达到,则判断所述按键数据长度是否等于第三初始值,如果是,则将所述系统状态标识设置为菜单功能选择标识,显示菜单功能选择界面,将所述按键中断标识复位,打开按键中断,并返回步骤J5;否则,将所述按键数据长度置为第三初始值,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
所述第二功能模块执行所述步骤J14时,还用于在判断出所述系统状态标识为菜单功能选择标识之后,执行以下操作:
J24、判断所述被按下的按键是否为第一预设按键,如果是,则执行步骤J25;否则,根据所述被按下的按键执行相应的操作;
J25、对所述蓝牙模块上电,将所述蓝牙模块的工作模式切换至监听模式,将所述系统状态标识设置为蓝牙OTP标识,清空所述接收数据缓冲区,将所述按键中断标识复位,打开按键中断,并返回步骤J5。
80.如权利要求79所述的设备,其特征在于,所述第二功能模块执行所述步骤J4和所述步骤J25时,还用于将蓝牙模式计数器的计数值置为第五初始值,将允许按键输入标识复位,清空按键数据缓冲区,将按键数据长度置为第三初始值;
所述第二功能模块执行所述步骤J6时,还用于在判断出所述置位的中断标识为定时器中断标识后,执行以下操作:
J26、判断所述系统状态标识是否为蓝牙OTP标识,如果是,则执行步骤J27;否则,将所述定时器中断标识复位,并返回步骤J5;
J27、更新所述蓝牙模式计数器的计数值,判断所述蓝牙模式计数器的计数值是否为第三阈值,如果是,则执行步骤J28;否则,将所述定时器中断标识复位,并返回步骤J5;
J28、对蓝牙模块下电,将所述蓝牙模式计数器的计数值置为第五初始值,将所述允许按键输入标识置位,将所述定时器中断标识复位,并返回步骤J5;
所述第二功能模块执行所述步骤J15时,还用于在判断出所述被按下的按键为数字键之后,执行以下操作:
J29、判断所述允许按键输入标识是否置位;如果没有置位,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;如果置位,则判断所述按键数据长度是否小于第二预设长度,如果小于,则更新所述按键数据长度,将与所述被按下的按键对应的键值保存到所述按键数据缓冲区中,显示所述按键数据缓冲区中的数据;如果不小于,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;
所述第二功能模块执行所述步骤J15时,还用于在判断出所述被按下的按键为删除键之后,执行以下操作:
J30、判断所述蓝牙数据接收完成标识是否置位,如果是,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;否则,判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;如果置位,则判断所述按键数据长度是否等于第三初始值,如果等于,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;如果不等于,则更新所述按键数据长度,将所述按键数据缓冲区中最后一次存入的数据删除,显示所述按键数据缓冲区中的数据,将所述按键中断标识复位,打开按键中断,并返回步骤J5;
所述第二功能模块执行所述步骤J15时,还用于在判断出所述蓝牙数据接收完成标识没有置位之后,执行以下操作:
J31、判断所述允许按键输入标识是否置位,如果没有置位,则将所述按键中断标识复位,打开按键中断,并返回步骤J5;如果置位,则判断所述按键数据长度是否等于第三初始值,如果是,则根据自身内部的动态因子生成动态口令,显示所述动态口令,将所述按键中断标识复位,打开按键中断,并返回步骤J5;否则,根据所述按键数据缓冲区中的数据生成动态口令,显示所述动态口令,清空所述按键数据缓冲区,将所述按键中断标识复位,打开按键中断,并返回步骤J5。
81.如权利要求80所述的设备,其特征在于,所述第二功能模块执行所述步骤J4时,还用于将主动选择蓝牙标识复位;
所述第二功能模块执行所述步骤J25时,还用于将主动选择蓝牙标识置位;
所述第二功能模块,还用于在判断出所述蓝牙模式计数器的计数值为第三阈值之后,判断所述主动选择蓝牙标识是否置位,如果是,则执行步骤J28;否则,对所述蓝牙模块下电,将所述蓝牙模式计数器的计数值置为第五初始值,将所述系统状态标识设置为输入挑战码标识,将所述定时器中断标识复位,并返回步骤J5。
82.如权利要求80所述的设备,其特征在于,所述第二功能模块执行所述步骤J15时,还用于在判断出所述被按下的按键是删除键之后,判断所述删除键被按下的时长是否达到第三预设时长,如果是,则将所述系统状态标识设置为输入挑战码标识,清空所述按键数据缓冲区,将所述按键数据长度置为第三初始值,将所述按键中断标识复位,打开按键中断,并返回步骤J5;否则,执行步骤J30。
83.如权利要求78所述的设备,其特征在于,所述第二功能模块,还用于在接收到定时器中断后,将所述定时器中断标识置位,并执行以下操作:
J32、更新秒计数器的计数值,对所述秒计数器的计数值进行判断,如果等于第八阈值,则执行步骤J33;如果等于第九阈值,则执行步骤J34;
J33、将所述秒计数器的计数值设置为第十初始值,更新校准计数器的计数值和自身内部的动态因子,并返回步骤J5;
J34、判断所述校准计数器的计数值是否小于预设的校准值,如果是,则返回步骤J5;否则,根据所述校准值更新所述校准计数器的计数值和所述秒计数器的计数值,并返回步骤J5。
84.如权利要求78所述的设备,其特征在于,所述第二功能模块执行所述步骤J6时,还用于在判断出所述置位的中断标识为按键中断标识后,关闭按键中断,将无按键计数器的计数值置为第二初始值;在判断出所述置位的中断标识为定时器中断标识之后,执行以下操作:
J35、更新所述无按键计数器的计数值,判断所述无按键计数器的计数值是否达到第五阈值,如果是,则关机,结束流程;否则,执行步骤J36;
J36、判断当前是否有按键被按下,如果是,则执行步骤J37;否则,执行步骤J39;
J37、对按键按下计数器的计数值进行更新,将按键松开计数器的计数值设置为第八初始值,判断所述按键按下计数器的计数值是否达到第六阈值,如果是,则执行步骤J38;否则,将所述定时器中断标识复位,打开按键中断,并返回步骤J5;
J38、将所述按键按下计数器的计数值设置为第九初始值,将所述定时器中断标识复位,并返回步骤J5;
J39、更新所述按键松开计数器的计数值,将所述按键按下计数器的计数值设置为第九初始值,判断所述按键松开计数器的计数值是否达到第七阈值,如果是,则执行步骤J40;否则,将所述定时器中断标识复位,并返回步骤J5;
J40、将所述按键松开计数器的计数值设置为第八初始值,将所述定时器中断标识复位,打开按键中断,并返回步骤J5。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410053891.7A CN103746816B (zh) | 2014-02-18 | 2014-02-18 | 一种多功能认证设备及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410053891.7A CN103746816B (zh) | 2014-02-18 | 2014-02-18 | 一种多功能认证设备及其工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103746816A CN103746816A (zh) | 2014-04-23 |
CN103746816B true CN103746816B (zh) | 2017-11-28 |
Family
ID=50503807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410053891.7A Active CN103746816B (zh) | 2014-02-18 | 2014-02-18 | 一种多功能认证设备及其工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103746816B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224484B (zh) * | 2014-07-02 | 2018-09-04 | 北京握奇智能科技有限公司 | 在身份认证设备中实现多接口应用的方法和装置 |
CN104184590B (zh) * | 2014-09-01 | 2017-06-06 | 飞天诚信科技股份有限公司 | 一种激活动态令牌的方法和装置 |
CN104468540B (zh) * | 2014-11-26 | 2018-04-06 | 新华三技术有限公司 | 一种工作模式切换方法及pe设备 |
CN104539430B (zh) * | 2014-12-30 | 2018-11-30 | 飞天诚信科技股份有限公司 | 一种基于卡片的动态口令生成方法及设备 |
CN105790953B (zh) * | 2016-03-02 | 2019-05-10 | 飞天诚信科技股份有限公司 | 双接口认证设备及其工作方法 |
CN110730441B (zh) * | 2019-10-18 | 2021-07-02 | 飞天诚信科技股份有限公司 | 一种蓝牙设备及其工作方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425904A (zh) * | 2008-11-28 | 2009-05-06 | 北京深思洛克软件技术股份有限公司 | 一种信息安全设备和系统及实现信息安全的方法 |
CN103297243A (zh) * | 2013-06-14 | 2013-09-11 | 飞天诚信科技股份有限公司 | 一种多功能智能密钥设备的工作方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420300B (zh) * | 2008-05-28 | 2013-05-29 | 北京易恒信认证科技有限公司 | 双因子组合公钥生成和认证方法 |
CN102222390B (zh) * | 2011-06-30 | 2012-10-31 | 飞天诚信科技股份有限公司 | 一种多功能智能密钥装置及其工作方法 |
-
2014
- 2014-02-18 CN CN201410053891.7A patent/CN103746816B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425904A (zh) * | 2008-11-28 | 2009-05-06 | 北京深思洛克软件技术股份有限公司 | 一种信息安全设备和系统及实现信息安全的方法 |
CN103297243A (zh) * | 2013-06-14 | 2013-09-11 | 飞天诚信科技股份有限公司 | 一种多功能智能密钥设备的工作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103746816A (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103746816B (zh) | 一种多功能认证设备及其工作方法 | |
CN101123811B (zh) | 管理和wpa-psk无线网络连接的站的设备和方法 | |
AU2005232316B2 (en) | Battery and authentication requesting device | |
JP5053424B2 (ja) | 中継装置、無線通信装置、ネットワークシステム、プログラム、および、方法 | |
CN104205899B (zh) | 使用短距离无线通信的网络安全配置 | |
CN101375460A (zh) | 无线通信设备中的电池认证 | |
EP0266044A2 (en) | Telecommunication security system and key memory module therefor | |
CN100590639C (zh) | 用于管理多个智能卡会话的系统和方法 | |
CN1283288A (zh) | 便携式单向无线金融消息单元 | |
CN105303651A (zh) | 基于蓝牙的双向通讯自动锁系统及其方法 | |
CN102930212B (zh) | 用于办公系统的防数据泄密方法 | |
CN106059760B (zh) | 一种从用户端密码模块调用系统私钥的密码系统 | |
CN101540680A (zh) | 内容传送装置、内容接收装置和内容传送方法 | |
EP3258646B1 (en) | Node networking method, apparatus and system | |
CN101853533A (zh) | 用于楼宇门禁系统的密码设定方法和装置 | |
CN110365474A (zh) | 密钥协商方法及通信设备 | |
CN103207964A (zh) | 一种多功能智能密钥设备及其工作方法 | |
CN101937584B (zh) | 门禁系统密码的生成方法 | |
CN103974243B (zh) | 一种语音通话的数据处理系统 | |
CN101465740B (zh) | 一种支持pci接口的wlan网卡芯片 | |
CN104320254B (zh) | 一种支持扩展接口的智能密钥设备的工作方法 | |
CN110311921A (zh) | 一种配电终端加解密方法、系统、设备及计算机存储介质 | |
CN103514540B (zh) | 一种优盾业务实现方法及系统 | |
CN110113734A (zh) | 蓝牙一对多的数据传输方法、系统及存储介质 | |
CN108120948A (zh) | 基于多工作模式的电能表运行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |