一种与智能密钥设备通讯的方法及装置的制造方法

文档序号:9911517阅读:635来源:国知局
一种与智能密钥设备通讯的方法及装置的制造方法
【技术领域】
[0001] 本发明涉及通信技术领域,特别涉及一种与智能密钥设备通讯的方法及装置。
【背景技术】
[0002] 随着电子信息的快速发展,在日常生活中网上银行交易日渐普及。USBKEY是为保 证网上银行交易的安全性而提出的一种安全且便捷的具有USB接口的智能密钥设备。移动 终端是指可以在移动中使用的计算机设备,和传统计算机相比更具便携性。并且近些年来, 随着网络技术以及集成电路技术的飞速发展,移动终端已进入智能化发展阶段,其自身拥 有强大的处理能力,已成为一个综合信息处理平台,是人们生活和工作中不可或缺的一个 重要工具。
[0003] OTG(On-The-Go)技术是一种能够在没有主机的情况下,实现从设备间的数据传输 的现有技术,为USBKEY在移动终端上使用奠定了技术基础。但是现有技术中,具体如何利用 0TG技术实现移动终端和USBKEY之间的通讯还是一个亟需解决的技术问题。

【发明内容】

[0004] 本发明提供了一种与智能密钥设备通讯的方法及装置,解决了现有技术中的上述 技术问题。
[0005] 本发明提供了一种与智能密钥设备通讯的方法,包括:监控流程和通讯流程;
[0006] 所述监控流程包括:
[0007] 步骤si:移动终端初始化;
[0008] 步骤s2:所述移动终端采用广播或者枚举的方式,监控是否有智能密钥设备插入; 当所述移动终端监控到智能密钥设备插入后,执行步骤S3;
[0009] 步骤S3:所述移动终端获取与所述智能密钥设备对应的设备对象,判断所述设备 对象是否具有设备权限,如果是,则执行步骤s5;否则,执行步骤s4;
[001 0]步骤s4:所述移动终端为所述设备对象申请设备权限,判断所述设备对象是否具 有设备权限,如果是,则执行步骤s5,否则,返回步骤s2;
[0011] 步骤s5 :所述移动终端获取与所述设备对象对应的设备连接句柄和设备接口对 象,根据所述设备接口对象获取与所述设备对象对应的设备通讯端点;
[0012] 所述通讯流程包括:
[0013] 步骤rl:所述移动终端生成第一通讯指令,根据所述设备对象获取USB协议标识, 根据所述USB协议标识对所述第一通讯指令进行封装;
[0014] 步骤r2:所述移动终端通过所述设备连接句柄和所述设备通讯端点将封装后的第 一通讯指令,发送给对应的所述智能密钥设备;
[0015] 步骤r3:所述移动终端通过所述设备连接句柄和所述设备通讯端点接收来自所述 智能密钥设备的与所述封装后的第一通讯指令对应的第一应答;
[0016] 步骤r4:所述移动终端根据所述USB协议标识对所述第一应答进行解封,得到解封 后的第一应答,通讯成功。
[0017] 本发明还提供了一种与智能密钥设备通讯的装置,包括:初始化模块、监控模块、 第一获取模块、第一判断模块、申请权限模块、第二判断模块、第二获取模块、第一封装模 块、第一发送模块、第一接收模块和第一解封模块;
[0018] 所述初始化模块,用于初始化;
[0019]所述监控模块,用于当所述初始化模块进行初始化后,采用广播或者枚举的方式, 监控是否有智能密钥设备插入;以及当所述第二判断模块判定为否后,采用广播或者枚举 的方式,监控是否有智能密钥设备插入;
[0020] 所述第一获取模块,用于当所述监控模块监控到智能密钥设备插入后,获取与所 述智能密钥设备对应的设备对象;
[0021] 所述第一判断模块,用于判断第一获取模块获取到的所述设备对象是否具有设备 权限;
[0022] 所述申请权限模块,用于当所述第一判断模块判定为否后,为所述设备对象申请 设备权限;
[0023]所述第二判断模块,用于当所述申请权限模块为所述第一获取模块获取到的设备 对象申请设备权限后,判断所述设备对象是否具有设备权限;
[0024]所述第二获取模块,用于当所述第一判断模块判定为是后或当所述第二判断模块 判定为是后,获取与所述设备对象对应的设备连接句柄和设备接口对象,根据所述设备接 口对象获取与所述设备对象对应的设备通讯端点;
[0025]第一封装模块,用于当所述第二获取模块根据所述设备接口对象获取与所述设备 对象对应的设备通讯端点后,生成第一通讯指令,根据所述设备对象获取所述USB协议标 识,根据所述USB协议标识对所述第一通讯指令进行封装;
[0026] 所述第一发送模块,用于通过所述第二获取模块获取到的设备连接句柄和所述设 备通讯端点将所述第一封装模块封装的第一通讯指令发送给对应的所述智能密钥设备;
[0027] 所述第一接收模块,用于通过所述第二获取模块获取到的设备连接句柄和所述设 备通讯端点接收来自所述智能密钥设备的与所述封装后的第一通讯指令对应的第一应答;
[0028] 所述第一解封模块,用于根据所述USB协议标识对所述第一接收模块接收到的第 一应答进行解封,得到解封后的第一应答。
[0029] 本发明的有益效果是:本发明通过:当监控到智能密钥设备插入后,获取与智能密 钥设备对应的设备对象,判断设备对象是否具有设备权限,当判定智能密钥设备具有设备 权限后,获取与设备对象对应的设备连接句柄和设备接口对象,根据设备接口对象获取与 设备对象对应的设备通讯端点;根据与智能密钥设备对应的设备对象、设备连接句柄和设 备通讯端点与智能密钥设备通信,在利用0TG技术的基础上实现了移动终端和智能密钥设 备之间的通讯。
【附图说明】
[0030] 图1为本发明实施例1提供的一种监控流程的操作流程图;
[0031] 图2为本发明实施例1提供的一种通讯流程的操作流程图;
[0032] 图3为本发明实施例1提供的一种监控流程的具体操作流程图;
[0033] 图4为本发明实施例1提供的另一种监控流程的具体操作流程图;
[0034] 图5为本发明实施例1提供的又一种监控流程的具体操作流程图;
[0035] 图6为本发明实施例2提供的一种与智能密钥设备通讯的装置的结构图。
[0036]具体实施方法
[0037] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0038] 实施例1
[0039] 本实施例提供了一种与智能密钥设备通讯的方法,包括:监控流程和通讯流程;
[0040] 其中,监控流程,如图1所示,包括:
[0041 ]步骤A1:移动终端开启监控流程,初始化;
[0042] 本实施例中,移动终端支持0TG技术。
[0043]步骤A2:移动终端采用广播或者枚举的方式,监控是否有USBKEY插入或者拔出;当 移动终端监控到USBKEY插入后,执行步骤A3 ;当移动终端监控到USBKEY拔出后,执行步骤 A7;
[0044] 步骤A3:移动终端获取与USBKEY对应的设备对象,判断设备对象是否具有设备权 限,如果是,则执行步骤A4;否则,执行步骤A6;
[0045] 步骤A4:移动终端获取与设备对象对应的设备连接句柄和设备接口对象,根据设 备接口对象获取与设备对象对应的设备通讯端点;
[0046] 步骤A5:移动终端生成与设备对象对应的设备通讯句柄,将设备通讯句柄与设备 连接句柄、设备通讯端点及设备对象分别建立对应关系并保存,移动终端和USBKEY连接成 功,返回步骤A2;
[0047] 步骤A6:移动终端为设备对象申请设备权限,判断设备对象是否具有设备权限,如 果是,则返回步骤A4,否则,返回步骤A2。
[0048] 步骤A7:移动终端判断与USBKEY对应的设备对象是否存在对应的设备通讯句柄, 如果是,则执行步骤A8;否则,执行步骤A9;
[0049] 步骤A8:移动终端销毁与USBKEY对应的设备对象,及与其分别对应的设备通讯句 柄、设备连接句柄和设备通讯端点,移动终端和USBKEY连接失败,返回步骤A2;
[0050] 步骤A9:移动终端销毁与USBKEY对应的设备对象,移动终端和USBKEY连接失败,返 回步骤A2;
[0051 ] 通讯流程,如图2所示,包括:
[0052] 步骤B1:移动终端获取与USBKEY对应的设备通讯句柄,根据与USBKEY对应的设备 通讯句柄获取对应的设备对象、设备连接句柄和设备通讯端点;
[0053] 具体地,移动终端获取与USBKEY对应的设备通讯句柄,如果获取到的设备通讯句 柄不为空,则判定和USBKEY连接成功,根据与USBKEY对应的设备通讯句柄获取对应的设备 对象、设备连接句柄和设备通讯端点;否则,判定和USBKEY连接失败,继续获取与USBKEY对 应的设备通讯句柄,或者结束当前操作。
[0054] 步骤B2:移动终端判断是否获取到对应的设备对象、设备连接句柄和设备通讯端 点,如果是,则执行步骤B3;否则,通讯失败,结束。
[0055] 步骤B3:移动终端生成第一通讯指令,根据设备对象获取USB协议标识,根据USB协 议标识对第一通讯指令进行封装;
[0056] 其中,根据USB协议标识对第一通讯指令进行封装,具体为:在第一通讯指令前添 加与USB协议标识对应的USB协议头,得到封装后的第一通讯指令。其中,封装后的第一通讯 指令可以包括多包数据,每包数据中均包括USB协议头。
[0057]本实施例中,第一通讯指令可以具体为取随机数指令、验PIN指令、生成密钥对指 令或签名指令等;USB协议标识可以具体为CCID协议标识或HID协议标识或SCSI协议标识。 封装后的第一通讯指令可以包括一包数据或者多包数据。
[0058]例如,当第一通讯指令具体为签名指令,USB协议标识为HID协议标识后,第一通讯 指令为:0x00 0x2A 0x86 0x80 0x80 0x00 0x01 OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF 0x00 0x55 0x73 0x62 0x54 0x6F 0x6B 0x65 0x6E 0x20 0x52 0x75 0x6E 0x52 0x73 0x61 0x4B 0x65 0x79 0x47 0x65 0x6E 0x65 0x72 0x61 0x74 0x69 0x6F 0x6E 0x54 0x65 0x73 0x74 0x2E 0x2E 0x2E 0x55 0x73 0x62 0x54 0x6F 0x6B 0x65 0x6E 0x20 0x52 0x75 0x6E 0x52 0x73 0x61 0x4B 0x65 0x79 0x47 0x65 0x6E 0x65 0x72 0x61 0x74 0x69 0x6F 0x6E 0x54 0x65 0x73 0x74 0x2E 0x2E 0x2E 0x55 0x73 0x62 0x54 0x6F 0x6B 0x65 0x6E 0x20 0x52 0x75 0x6E 0x52 0x73 0x61 0x4B 0x65 0x79 0x47 0x65 0x6E 0x65 0x72 0x61 0x74 0x69 0x6F 0x6E 0x54 0x65 0x73 0x74 0x2E 0x2E 0x2E;
[0059] 根据USB协议标识对第一通讯指令进行封装,得到封装后的第一通讯指令,封装后 的第一通讯指令包括三包数据,其中,第一包数据为:0x00 0x85 0x00 0x00 0x00 0x3A 0x00 0x2A 0x86 0x80 0x80 0x00 0x01 OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF OxFF 0x00 0x55 0x73 0x62 0x54 0x6F 0x6B 0x65 0x6E 0x20 0x52 0x75 0x6E 0x52 0x73 0x61 0x4B 0x65 0x79 0x47 0x65 0x6E 0x65 0x72 0x61 0x74 0x69 0x6F 0x6E 0x54 0x65;
[0060] 第二包数据为:〇x〇〇 0x85 0x00 0x3A 0x00 0x3A 0x73 0x74 0x2E 0x2E 0x2E 0x55 0x73 0x62 0x54 0x6F 0x6B 0x65 0x6E 0x20 0x52 0x75 0x6E 0x52 0x73 0x61 0x4B 0x65 0x79 0x47 0x65 0x6E 0x65 0x72 0x61 0x74 0x69 0x6
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1