一种实现浏览器弹框的方法及装置转让专利

申请号 : CN202010720058.9

文献号 : CN111597491B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陆舟于华章

申请人 : 飞天诚信科技股份有限公司

摘要 :

本发明公开了一种实现浏览器弹框的方法及装置,包括:当浏览器扩展和浏览器扩展主应用为非首次运行时,浏览器扩展接收网页发送的签名请求,组成统一资源定位符数据,发送给操作系统,将接收到浏览器扩展主应用发送的签名请求的响应发送给网页;浏览器扩展主应用对操作系统发送的统一资源定位符数据进行解析得到签名请求中的待签名数据,调用函数动态库弹出弹框界面提示用户输入用户信息;判断接收到的签名设备验证用户信息的响应为正确响应后,调用函数动态库将待签名数据发送给签名设备,并调用函数动态库弹出弹框界面提示用户确认;将根据签名设备发送的签名值生成签名请求的响应发送给浏览器扩展。本发明实现了弹出用户界面弹框的功能。

权利要求 :

1.一种实现浏览器弹框的方法,其特征在于,包括:

浏览器扩展执行如下步骤:

步骤A1,所述浏览器扩展运行,当所述浏览器扩展为首次运行时,执行步骤A2,当所述浏览器扩展为非首次运行时,执行步骤A3;

步骤A2,所述浏览器扩展向操作系统注册类型为浏览器扩展类型,并被设置为启动状态,执行步骤A3;

步骤A3,所述浏览器扩展接收网页发送的签名请求,根据所述签名请求和统一资源定位符机制参数组成统一资源定位符数据,并将所述统一资源定位符数据发送给所述操作系统;

步骤A4,所述浏览器扩展接收浏览器扩展主应用发送的签名请求的响应,并将所述签名请求的响应发送给所述网页;

所述浏览器扩展主应用执行如下步骤:

步骤B1,所述浏览器扩展主应用运行,当所述浏览器扩展主应用为首次运行时,执行步骤B2,当所述浏览器扩展主应用为非首次运行时,执行步骤B3:步骤B2,所述浏览器扩展主应用向所述操作系统注册类型为应用类型,并向所述操作系统注册所述统一资源定位符机制参数,执行步骤B3;其中,所述浏览器扩展主应用与所述浏览器扩展均预置有所述统一资源定位符机制参数;

步骤B3,所述浏览器扩展主应用接收所述操作系统发送的所述统一资源定位符数据,对所述统一资源定位符数据进行解析得到签名请求中的待签名数据,调用函数动态库弹出弹框界面提示用户输入用户信息;

步骤B4,所述浏览器扩展主应用将接收到的用户输入的用户信息发送给签名设备,接收并判断所述签名设备返回的验证用户信息的响应是否为正确响应,如果是,执行步骤B5,如果否,结束;

步骤B5,所述浏览器扩展主应用调用函数动态库将所述待签名数据发送给所述签名设备,调用所述函数动态库弹出弹框界面提示用户确认;

步骤B6,所述浏览器扩展主应用接收所述签名设备发送的签名值,并根据所述签名值生成所述签名请求的响应,并将所述签名请求的响应发送给浏览器扩展。

2.如权利要求1所述的方法,其特征在于,所述步骤B3中,调用函数动态库弹出弹框界面提示用户输入用户信息之前还包括:加载所述函数动态库,所述加载所述函数动态库具体为:所述浏览器扩展主应用打开所述函数动态库,获取函数列表,初始化所述函数动态库,判断是否存在签名设备,如果是,则与所述签名设备建立会话;如果否,结束。

3.如权利要求1所述的方法,其特征在于,所述调用函数动态库弹出弹框界面包括:将所述弹框界面显示在顶层,将所述弹框界面设置为激活状态,将所述弹框界面设置为浮动显示,将所述弹框界面以模态显示,循环判断所述弹框界面模态对话是否进行。

4.如权利要求3所述的方法,其特征在于,

所述B5之前还包括,所述浏览器扩展主应用终止模态对话,关闭所述提示用户输入用户信息的弹框界面;

所述步骤B6中所述浏览器扩展主应用接收到所述签名设备发送的签名值之后还包括:所述浏览器扩展主应用终止模态对话,关闭提示用户确认的弹框界面。

5.如权利要求4所述的方法,其特征在于,所述将所述弹框界面显示在顶层具体为:当调用所述函数动态库时,通过显示置顶函数将所述弹框界面显示在顶层。

6.如权利要求4所述的方法,其特征在于,所述将所述弹框界面设置为激活状态具体为:当调用所述函数动态库时,通过界面激活函数将所述弹出框界面设置为激活状态。

7.如权利要求4所述的方法,其特征在于,所述将所述弹框界面设置为浮动显示具体为:当调用所述函数动态库时,通过界面浮动显示函数,将所述弹框界面设置为浮动显示。

8.如权利要求4所述的方法,其特征在于,所述循环判断所述弹框界面模态对话是否进行具体为:当调用所述函数动态库时,通过界面模态显示函数将所述弹框界面以模态显示。

9.如权利要求4所述的方法,其特征在于,所述循环判断所述弹框界面模态对话是否进行具体为:当调用所述函数动态库时,通过界面模态对话判断函数判断所述弹框界面的模态对话是否进行。

10.如权利要求1所述的方法,其特征在于,

所述步骤B3中对所述统一资源定位符数据解析得到所述签名请求中待签名数据具体为:对所述统一资源定位符数据解析得到签名请求中的待签名数据和证书可识别名;

所述步骤B5具体为:所述浏览器扩展主应用根据所述证书可识别名得到私钥句柄,调用函数动态库将所述待签名数据和所述私钥句柄发送给所述签名设备,调用函数动态库弹出弹框界面提示用户确认。

11.一种实现浏览器弹框的装置,其特征在于,包括:浏览器扩展模块和浏览器扩展主应用模块,所述浏览器扩展模块包括:

第一运行单元,用于运行所述浏览器扩展模块;

注册设置单元,用于当所述第一运行单元首次运行时,向操作系统注册类型为浏览器扩展类型,并设置为启动状态;

第一接收单元,用于当所述第一运行单元非首次运行时,接收网页发送的签名请求;

组成发送单元,用于当所述第一运行单元非首次运行时,根据所述签名请求和统一资源定位符机制参数组成统一资源定位符数据,将所述统一资源定位符数据发送给所述操作系统;

接收发送单元,用于当所述第一运行单元非首次运行时,接收所述浏览器扩展主应用模块发送签名请求的响应,并将所述签名请求的响应发送给所述网页;

所述浏览器扩展主应用模块包括:

第二运行单元,用于运行所述浏览器扩展主应用模块;

注册单元,用于当所述第二运行单元为首次运行时,向所述操作系统注册类型为应用类型,并向所述操作系统注册所述统一资源定位符机制参数;其中,所述浏览器扩展主应用模块与所述浏览器扩展模块均预置有所述统一资源定位符机制参数;

接收解析单元,用于当所述第二运行单元为非首次运行时,接收所述操作系统发送的所述统一资源定位符数据,对所述统一资源定位符数据进行解析得到所述签名请求中的待签名数据;

调用弹出提示单元,用于当所述第二运行单元为非首次运行时,接收解析单元对所述统一资源定位符数据进行解析得到所述签名请求中的待签名数据后,调用函数动态库弹出弹框界面提示用户输入用户信息;

第二发送单元,用于当所述第二运行单元为非首次运行时,将接收到的用户输入的所述用户信息发送给签名设备;

第二判断单元,用于当所述第二运行单元为非首次运行时,接收并判断所述签名设备返回的验证用户信息的响应是否为正确响应;

调用发送单元,用于当所述第二判断单元判断为是时调用函数动态库将所述待签名数据发送给签名设备;

所述调用弹出提示单元,还用于当调用发送单元调用所述函数动态库将所述待签名数据发送给签名设备后,调用所述函数动态库弹出弹框界面提示用户确认;

接收生成发送单元,用于当所述第二运行单元为非首次运行时,将接收所述签名设备发送的签名值,并根据所述签名值生成所述签名请求的响应,并将所述签名请求的响应发送给所述接收发送单元。

12.如权利要求11所述的装置,其特征在于,所述浏览器扩展主应用模块还包括:加载单元,用于在所述调用弹出提示单元调用所述函数动态库弹出弹框界面提示用户确认之前,加载所述函数动态库;所述加载单元具体包括:打开子单元,用于打开所述函数动态库;

获取子单元,用于获取函数列表;

初始化子单元,用于初始化所述函数动态库;

判断子单元,用于判断是否存在签名设备;

建立子单元,用于当所述判断子单元判断结果为是时,与所述签名设备建立会话。

13.如权利要求11所述的装置,其特征在于,所述调用弹出提示单元包括:显示子单元,用于将所述弹框界面显示在顶层;

激活子单元,用于将所述弹框界面设置为激活状态;

浮动显示子单元,用于将所述弹框界面设置为浮动显示;

模态显示子单元,用于将所述弹框界面以模态显示;

循环判断子单元,用于判断所述弹框界面模态对话是否进行。

14.如权利要求13所述的装置,其特征在于,所述浏览器扩展主应用模块还包括:终止关闭单元,用于当所述调用发送单元调用所述函数动态库将所述待签名数据发送给所述签名设备之后,终止模态对话,关闭所述提示用户输入用户信息的弹框界面;还用于当所述接收生成发送单元接收所述签名设备发送的签名值之后,终止模态对话,关闭提示用户确认的弹框界面。

15.如权利要求14所述的装置,其特征在于,所述显示子单元具体用于:当所述调用弹出提示单元调用所述函数动态库时,通过显示置顶函数将所述弹框界面显示在顶层。

16.如权利要求14所述的装置,其特征在于,所述激活子单元具体用于:当所述调用弹出提示单元调用所述函数动态库时,通过界面激活函数将所述弹出框界面设置为激活状态。

17.如权利要求14所述的装置,其特征在于,所述浮动显示子单元具体用于:当所述调用弹出提示单元调用所述函数动态库时,通过界面浮动显示函数,将所述弹框界面设置为浮动显示。

18.如权利要求14所述的装置,其特征在于,所述模态显示子单元具体用于:当所述调用弹出提示单元调用所述函数动态库时,通过界面模态显示函数将所述弹框界面以模态显示。

19.如权利要求14所述的装置,其特征在于,所述循环判断子单元具体用于:当所述调用弹出提示单元调用所述函数动态库时,通过界面模态对话判断函数判断所述弹框界面的模态对话是否进行。

20.如权利要求11所述的装置,其特征在于,所述接收解析单元用于对所述统一资源定位符数据进行解析得到所述签名请求中的待签名数据具体为:所述接收解析单元用于对所述统一资源定位符数据解析得到签名请求中的待签名数据和证书可识别名;

所述调用弹出提示单元,还用于当调用发送单元调用所述函数动态库将所述待签名数据发送给签名设备后,调用所述函数动态库弹出弹框界面提示用户确认具体为:所述调用弹出提示单元,还用于当调用发送单元调用所述函数动态库将所述待签名数据发送给签名设备后,根据所述证书可识别名得到私钥句柄,调用函数动态库将所述待签名数据和所述私钥句柄发送给签名设备;

调用弹出提示单元还用于当调用发送单元调用所述函数动态库将所述待签名数据发送给签名设备后,调用所述函数动态库弹出弹框界面提示用户确认具体为:调用弹出提示单元还用于当调用发送单元调用所述函数动态库将所述待签名数据和所述私钥句柄发送给签名设备后,调用所述函数动态库弹出弹框界面提示用户确认。

说明书 :

一种实现浏览器弹框的方法及装置

技术领域

[0001] 本发明涉及互联网技术领域,特别涉及一种实现浏览器弹框的方法及装置。

背景技术

[0002] 现有技术中,在实现浏览器与智能密钥设备之间的通信时,需要使用浏览器扩展来实现与智能密钥设备之间的通信,但是有的浏览器扩展不具有弹出用户界面弹框的功能,而在智能密钥设备的使用过程中,浏览器与智能密钥之间的通信需要通过用户界面弹框来实现用户对操作的确认,如果无法实现用户界面弹框则无法正常使用智能密钥设备。

发明内容

[0003] 本发明提供了一种实现浏览器弹框的方法及装置,解决了上述技术问题。
[0004] 本发明提供的一种实现浏览器弹框的方法,包括:
[0005] 浏览器扩展执行如下步骤:
[0006] 步骤A1,浏览器扩展运行,当浏览器扩展为首次运行时,执行步骤A2,当浏览器扩展为非首次运行时,执行步骤A3;
[0007] 步骤A2,浏览器扩展向操作系统注册类型为浏览器扩展类型,并被设置为启动状态,执行步骤A3;
[0008] 步骤A3,浏览器扩展接收网页发送的签名请求,根据签名请求和统一资源定位符机制参数组成统一资源定位符数据,并将统一资源定位符数据发送给操作系统;
[0009] 步骤A4,浏览器扩展接收浏览器扩展主应用发送的签名请求的响应,并将签名请求的响应发送给网页;
[0010] 浏览器扩展主应用执行如下步骤:
[0011] 步骤B1,浏览器扩展主应用运行,当浏览器扩展主应用为首次运行时,执行步骤B2,当浏览器扩展主应用为非首次运行时,执行步骤B3:
[0012] 步骤B2,浏览器扩展主应用向操作系统注册类型为应用类型,并向操作系统注册统一资源定位符机制参数,执行步骤B3;其中,浏览器扩展主应用与浏览器扩展均预置有统一资源定位符机制参数;
[0013] 步骤B3,浏览器扩展主应用接收操作系统发送的统一资源定位符数据,对统一资源定位符数据进行解析得到签名请求中的待签名数据,调用函数动态库弹出弹框界面提示用户输入用户信息;
[0014] 步骤B4,浏览器扩展主应用将接收到的用户输入的用户信息发送给签名设备,接收并判断签名设备返回的验证用户信息的响应是否为正确响应,如果是,执行步骤B5,如果否,结束;
[0015] 步骤B5,浏览器扩展主应用调用函数动态库将待签名数据发送给签名设备,调用函数动态库弹出弹框界面提示用户确认;
[0016] 步骤B6,浏览器扩展主应用接收签名设备发送的签名值,并根据签名值生成签名请求的响应,并将签名请求的响应发送给浏览器扩展。
[0017] 本发明提供了一种实现浏览器弹框的装置,该装置包括:
[0018] 一种实现浏览器弹框的装置,包括:浏览器扩展模块和浏览器扩展主应用模块,[0019] 浏览器扩展模块包括:
[0020] 第一运行单元,用于运行浏览器扩展模块;
[0021] 注册设置单元,用于当第一运行单元首次运行时,向操作系统注册类型为浏览器扩展类型,并设置为启动状态;
[0022] 第一接收单元,用于当第一运行单元非首次运行时,接收网页发送的签名请求;
[0023] 组成发送单元,用于当第一运行单元非首次运行时,根据签名请求和统一资源定位符机制参数组成统一资源定位符数据,将统一资源定位符数据发送给操作系统;
[0024] 接收发送单元,用于当第一运行单元非首次运行时,接收浏览器扩展主应用模块发送签名请求的响应,并将签名请求的响应发送给网页;
[0025] 浏览器扩展主应用模块包括:
[0026] 第二运行单元,用于运行浏览器扩展主应用;
[0027] 注册单元,用于当第二运行单元为首次运行时,向操作系统注册类型为应用类型,并向操作系统注册统一资源定位符机制参数;其中,浏览器扩展主应用模块与浏览器扩展模块均预置有统一资源定位符机制参数;
[0028] 接收解析单元,用于当第二运行单元为非首次运行时,接收操作系统发送的统一资源定位符数据,对统一资源定位符数据进行解析得到签名请求中的待签名数据;
[0029] 调用弹出提示单元,用于当第二运行单元为非首次运行时,接收解析单元对统一资源定位符数据进行解析得到签名请求中的待签名数据后,调用函数动态库弹出弹框界面提示用户输入用户信息;
[0030] 第二发送单元,用于当第二运行单元为非首次运行时,将接收到的用户输入的用户信息发送给签名设备;
[0031] 第二判断单元,用于当第二运行单元为非首次运行时,接收并判断签名设备返回的验证用户信息的响应是否为正确响应;
[0032] 调用发送单元,用于当第二判断单元判断为是时调用函数动态库将待签名数据发送给签名设备;
[0033] 调用弹出提示单元,还用于当调用发送单元调用函数动态库将待签名数据发送给签名设备后,调用函数动态库弹出弹框界面提示用户确认;
[0034] 接收生成发送单元,用于当第二运行单元为非首次运行时,将接收签名设备发送的签名值,并根据签名值生成签名请求的响应,并将签名请求的响应发送给接收发送单元。
[0035] 本发明的有益效果:本发明提供了一种实现浏览器弹框的方法及装置,浏览器扩展通过依赖浏览器扩展主应用,可以通过浏览器扩展主应用调用函数动态库,实现了弹出用户界面弹框的功能。

附图说明

[0036] 图1和图2为本发明实施例一提供的一种实现浏览器弹框的方法流程图;
[0037] 图3和图4为本发明实施例二提供的一种实现浏览器弹框的方法流程图;
[0038] 图5为本发明实施例二提供的一种实现浏览器弹框的方法中弹框过程的流程图;
[0039] 图6为本发明实施例三提供的一种实现浏览器弹框的装置框图。

具体实施方式

[0040] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041] 实施例一
[0042] 本实施例提供了一种实现浏览器弹框的方法,如图1和图2所示,包括:
[0043] 浏览器扩展执行如下步骤:
[0044] 步骤A101,浏览器扩展运行,当浏览器扩展为首次运行时,执行步骤A102,当浏览器扩展为非首次运行时,执行步骤A103;
[0045] 步骤A102,浏览器扩展向操作系统注册类型为浏览器扩展类型,并被设置为启动状态, 执行步骤A103;
[0046] 步骤A103,浏览器扩展接收网页发送的签名请求,根据签名请求和统一资源定位符机制参数组成统一资源定位符数据,并将统一资源定位符数据发送给操作系统;
[0047] 步骤A104,浏览器扩展接收浏览器扩展主应用发送的签名请求的响应,并将签名请求的响应发送给网页;
[0048] 如图1-2所示,浏览器扩展主应用执行如下步骤:
[0049] 步骤B101,浏览器扩展主应用运行,当浏览器扩展主应用为首次运行时,执行步骤B102,当浏览器扩展主应用为非首次运行时,执行步骤B103;
[0050] 步骤B102,浏览器扩展主应用向操作系统注册类型为应用类型,并向操作系统注册统一资源定位符机制参数,执行步骤B103;其中,浏览器扩展主应用与浏览器扩展均预置有统一资源定位符机制参数;
[0051] 步骤B103,浏览器扩展主应用接收操作系统发送的统一资源定位符数据,对统一资源定位符数据进行解析得到签名请求中的待签名数据,调用函数动态库弹出弹框界面提示用户输入用户信息;
[0052] 步骤B104,浏览器扩展主应用将接收到的用户输入的用户信息发送给签名设备,接收并判断签名设备返回的验证用户信息的响应是否为正确响应,如果是,执行步骤B105,如果否,结束;
[0053] 步骤B105,浏览器扩展主应用调用函数动态库将待签名数据发送给签名设备,调用函数动态库弹出弹框界面提示用户确认;
[0054] 步骤B106,浏览器扩展主应用接收签名设备发送的签名值,并根据签名值生成签名请求的响应,并将签名请求的响应发送给浏览器扩展。
[0055] 在本实施例中,步骤B103中,调用函数动态库弹出弹框界面提示用户输入用户信息之前还包括:加载函数动态库,加载函数动态库具体为:
[0056] 浏览器扩展主应用打开函数动态库,获取函数列表,初始化函数动态库,判断是否存在签名设备,如果是,则与签名设备建立会话;如果否,结束。
[0057] 在本实施例中,调用函数动态库弹出弹框界面包括:
[0058] 将弹框界面显示在顶层,将弹框界面设置为激活状态,将弹框界面设置为浮动显示,将弹框界面以模态显示,循环判断弹框界面模态对话是否进行。
[0059] 在本实施例中,步骤B105之前还包括,浏览器扩展主应用终止模态对话,关闭提示用户输入用户信息的弹框界面;
[0060] 步骤B106中浏览器扩展主应用接收到签名设备发送的签名值之后还包括:
[0061] 浏览器扩展主应用终止模态对话关闭提示用户确认的弹框界面。
[0062] 在本实施例中,将弹框界面显示在顶层具体为:
[0063] 当调用函数动态库时,通过显示置顶函数将弹框界面显示在顶层。
[0064] 在本实施例中,将弹框界面设置为激活状态具体为:
[0065] 当调用函数动态库时,通过界面激活函数将弹框界面设置为激活状态。
[0066] 在本实施例中,将弹框界面设置为浮动显示具体为:当调用函数动态库时,通过界面浮动显示函数,将弹框界面设置为浮动显示。
[0067] 在本实施例中,循环判断弹框界面模态对话是否进行具体为:当调用函数动态库时,通过界面模态显示函数将弹框界面以模态显示。
[0068] 在本实施例中,循环判断弹框界面模态对话是否进行具体为:当调用函数动态库时,通过界面模态对话判断函数判断弹框界面的模态对话是否进行。
[0069] 在本实施例中,步骤B103中对统一资源定位符数据解析得到签名请求中待签名数据具体为:对统一资源定位符数据解析得到签名请求中的待签名数据和证书可识别名;
[0070] 步骤B105具体为浏览器扩展主应用根据证书可识别名得到私钥句柄,调用函数动态库将待签名数据和私钥句柄发送给签名设备,调用函数动态库,弹出弹框界面提示用户确认。
[0071] 实施例二
[0072] 本实施例提供了一种实现浏览器弹框的方法,在本方法中,浏览器扩展和浏览器扩展主应用首次运行时,需要向操作系统进行注册,注册过程包括浏览器扩展主应用注册过程和浏览器扩展注册过程,其中,
[0073] 浏览器扩展主应用注册过程为:浏览器扩展主应用向操作系统注册浏览器扩展主应用的应用类型和统一资源定位符机制参数;
[0074] 在本实施例中,操作系统为MAC OS系统;
[0075] 浏览器扩展主应用注册过程还包括:浏览器扩展主应用向操作系统设置浏览器扩展主应用的应用标识;
[0076] 浏览器扩展主应用注册过程具体为:浏览器扩展主应用向操作系统注册浏览器扩展主应用的类型为应用类型,注册统一资源定位符机制参数(URL Schemes参数),并设置浏览器扩展主应用的应用标识,其中浏览器扩展主应用预置有浏览器扩展的应用ID,并且浏览器扩展主应用和浏览器扩展预置有相同的统一资源定位符机制参数;
[0077] 具体的,浏览器扩展主应用向MAC OS操作系统注册的统一资源定位符机制参数为:com.ftsafe.ftmgr;
[0078] 浏览器扩展主应用的应用标识的格式为:com+公司名称+项目名称,具体可以为:com.feitian.ICBC。
[0079] 浏览器扩展注册过程包括:浏览器扩展向操作系统注册类型;
[0080] 具体的,浏览器扩展预置有浏览器扩展的应用标识;
[0081] 浏览器扩展注册过程具体为:浏览器扩展向操作系统注册类型为浏览器扩展类型,并且浏览器扩展被设置为启动状态;
[0082] 具体的,浏览器扩展类型的名称为: appex,浏览器扩展的应用标识的格式为:com + 公司名+项目名称+浏览器扩展;
[0083] 浏览器扩展被设置为启动状态具体为:在浏览器偏好设置菜单中的扩展选项中,浏览器扩展被勾选。
[0084] 如图3和图4所示,本方法中,浏览器扩展和浏览器扩展主应用非首次运行时,包括如下步骤:
[0085] 步骤201,网页根据用户输入的待签名数据、签名算法和证书可识别名生成签名请求;
[0086] 步骤202,网页将签名请求发送给浏览器的浏览器扩展;
[0087] 步骤203,浏览器扩展根据签名请求和预置的统一资源定位符机制参数组成统一资源定位符数据;
[0088] 在本实施例中,浏览器扩展可以包括第二Java脚本模块和浏览器扩展主体模块;
[0089] 在本实施例中,步骤202还可以为:网页将预置的第二Java脚本模块应用标识和签名请求发送给浏览器的浏览器扩展;
[0090] 步骤203具体包括:
[0091] 步骤a1, 第二Java脚本模块判断接收到的预置的第二Java脚本模块应用标识和自身存储的第二Java脚本模块应用标识是否相同,如果是,执行步骤a2, 如果否,结束;
[0092] 步骤a2, 第二Java脚本模块将签名请求发送给浏览器扩展主体模块。
[0093] 步骤a3, 浏览器扩展主体模块接收签名请求后,根据预置的统一资源定位符机制参数(URL Schemes参数)和签名请求组成统一资源定位符数据(URL数据)。
[0094] 步骤204,浏览器扩展将统一资源定位符数据发送给操作系统;
[0095] 在本实施例中,操作系统可以为MAC OS 操作系统;
[0096] 本步骤具体为:浏览器扩展主体将统一资源定位符数据作为输入参数,调用[[NSWorkspace sharedWorkspace] openURL:url]函数将统一资源定位符数据数据发送给MAC OS操作系统。
[0097] 步骤205,操作系统将接收到的统一资源定位符数据进行解析,得到统一资源定位符机制参数;
[0098] 本步骤具体为:MAC OS 操作系统将接收到的统一资源定位符数据进行解析,统一资源定位符机制参数,判断解析得到的统一资源定位符机制参数是否与MAC OS操作系统所注册的统一资源定位符机制参数相同,如果相同,执行步骤206,如果不同,结束;
[0099] 步骤206,操作系统根据统一资源定位符机制参数将统一资源定位符数据发送给浏览器扩展主应用;
[0100] 本步骤具体为:操作系统将统一资源定位符数据发送给与统一资源定位符机制参数所对应的浏览器扩展主应用;
[0101] 步骤207,浏览器扩展主应用对接收到的统一资源定位符数据进行解析得到签名算法和待签名数据,调用公钥加密标准11函数动态库弹出提示用户输入用户信息的第一弹框界面;
[0102] 在本实施例中,用户信息可以为PIN码或者指纹,或者其他任何可供验证的用户信息。
[0103] 本步骤具体为:
[0104] 步骤b1, 浏览器扩展主应用接收MAC OS操作系统发送的签名请求,对签名请求进行解析,得到签名指令类型标识、签名算法、证书可识别名、待签名数据;
[0105] 步骤b2, 浏览器扩展主应用加载公钥加密标准11函数动态库(PKCS11库),调用公钥加密标准11函数动态库中的C_login函数,弹出提示用户输入用户信息的第一弹框界面;
[0106] 在步骤b2中,浏览器扩展主应用加载公钥加密标准11函数动态库具体包括:
[0107] 步骤c1, 浏览器扩展主应用调用dlopen函数打开公钥加密标准11函数动态库;
[0108] 步骤c2, 浏览器扩展主应用调用dlsym函数,获取函数列表;
[0109] 具体的,函数列表中包括:C_Initialize函数,C_Getslotlist函数,C_OpenSession函数,C_login函数,C_sign函数;
[0110] 步骤c3, 浏览器扩展主应用调用C_Initialize函数初始化PKCS11库;
[0111] 步骤c4, 浏览器扩展主应用调用C_Getslotlist函数,根据C_Getslotlist的返回值判断签名设备是否存在,如果签名设备存在,执行步骤c5, 如果否,结束;
[0112] 步骤c5, 浏览器扩展主应用调用C_OpenSession函数与签名设备建立会话,得到会话句柄;
[0113] 步骤c6, 浏览器扩展主应用调用C_Login函数弹出提示用户输入用户信息的第一弹框界面;
[0114] 步骤c6具体包括:
[0115] 当浏览器扩展主应用调用C_Login函数时,执行如下步骤:
[0116] 步骤c6-1, 通过调用显示置顶函数将第一弹框界面显示在顶层;
[0117] 具体的,显示置顶函数可以为makeKeyAndOrderFront函数;
[0118] 步骤c6-2,通过调用界面激活函数将第一弹框界面设置为激活状态;
[0119] 具体的,界面激活函数可以为activateIgnoringOtherApp函数;
[0120] 步骤c6-3, 通过调用界面浮动显示函数,将第一弹框界面设置为浮动显示;
[0121] 具体的,浮动显示函数可以为setLevel函数;
[0122] 步骤c6-4, 通过调用界面模态显示函数将第一弹框界面以模态显示;
[0123] 具体的,界面模态显示函数为beginModalSessionForWindow函数;
[0124] 步骤c6-5, 通过调用界面模态对话判断函数循环判断第一弹框界面的模态对话是否进行。
[0125] 具体的,界面模态对话判断函数可以为runModalSession函数。
[0126] 步骤208,浏览器扩展主应用接收用户输入的用户信息,根据用户输入的用户信息生成验证用户信息请求;
[0127] 步骤209,浏览器扩展主应用将验证用户信息请求发送给签名设备;
[0128] 本步骤具体为:浏览器扩展主应用根据用户输入的用户信息生成应用协议数据单元指令,将应用协议数据单元指令发送给签名设备;
[0129] 步骤210,签名设备验证用户信息;
[0130] 步骤211,签名设备向浏览器扩展主应用返回验证用户信息请求的响应;
[0131] 步骤212,浏览器扩展主应用判断验证用户信息请求的响应是否为正确的响应,如果是,执行步骤213,如果否,结束;
[0132] 本步骤具体为:浏览器扩展主应用判断验证用户信息请求的响应是否为正确的响应,如果是,浏览器扩展主应用关闭第一弹框界面,执行步骤213,如果否,结束;
[0133] 具体的,浏览器扩展主应用关闭第一弹框界面具体为:当浏览器扩展主应用浏览器扩展主应用调用C_Login函数时,通过调用终止模态对话函数终止模态对话,通过调用界面关闭函数关闭第一弹框界面。
[0134] 具体的,终止模态对话函数可以为stopModal函数;界面关闭函数可以为endModalSession函数。
[0135] 步骤213,浏览器扩展主应用获取私钥句柄,调用公钥加密标准11函数动态库将私钥句柄、签名算法和待签名数据发送给签名设备;
[0136] 本步骤中,浏览器扩展主应用获取私钥句柄具体为:浏览器扩展主应用根据证书可识别名获得私钥句柄。
[0137] 浏览器扩展主应用根据证书可识别名获得私钥句柄具体包括:
[0138] 步骤d1, 浏览器扩展主应用调用公钥加密标准11函数动态库枚举证书;
[0139] 步骤d2, 浏览器扩展主应用调用Openssl动态库对枚举的证书进行解析,获取所有证书的证书可识别名;
[0140] 步骤d3, 浏览器扩展主应用根据预置的证书可识别名从所有证书的证书可识别名中找到与预置的证书可识别名相同的证书;
[0141] 步骤d4, 浏览器扩展主应用根据找到的证书获取与找到的证书相对应的私钥句柄。
[0142] 在本步骤中,调用公钥加密标准11函数动态库,将私钥句柄和签名算法发送给签名设备具体为:
[0143] 浏览器扩展主应用调用调用公钥加密标准11函数动态库中的C_Signinit函数,将私钥句柄,会话句柄和签名算法作为输入参数,将私钥句柄和签名算法发送给签名设备。
[0144] 步骤214,浏览器扩展主应用调用公钥加密标准11函数动态库弹出提示需要用户确认的第二弹框界面;
[0145] 在本步骤中,如图5所示,步骤214具体为:当浏览器扩展主应用调用公钥加密标准11函数动态库中的C_Sign函数时,执行如下步骤:
[0146] 步骤e1, 通过显示置顶函数将第二弹框界面显示在顶层;
[0147] 具体的,显示置顶函数可以为makeKeyAndOrderFront函数;
[0148] 步骤e2,通过界面激活函数将第二弹框界面设置为激活状态;
[0149] 具体的,界面激活函数可以为activateIgnoringOtherApp函数;
[0150] 步骤e3, 通过界面浮动显示函数,将第二弹框界面设置为浮动显示;
[0151] 具体的,浮动显示函数可以为setLevel函数;
[0152] 步骤e4, 通过界面模态显示函数将第二弹框界面以模态显示;
[0153] 具体的,界面模态显示函数为beginModalSessionForWindow函数;
[0154] 步骤e5, 通过界面模态对话判断函数循环判断第二弹框界面的模态对话是否进行。
[0155] 具体的,界面模态对话判断函数可以为:runModalSession函数。
[0156] 步骤215,签名设备接收用户对第二弹框界面的确认信息后生成签名值;
[0157] 步骤216,签名设备将签名值发送给浏览器扩展主应用;
[0158] 具体的,在本步骤中,签名设备将签名值作为C_sign函数的返回值返回给浏览器扩展主应用。
[0159] 步骤217,浏览器扩展主应用根据签名值生成签名请求的响应;
[0160] 在本实施例中,步骤217之前还包括:浏览器扩展主应用接收签名设备发送的签名值后,通过stopModal函数终止模态对话,通过endModalSession关闭第二弹框界面。
[0161] 本步骤具体为:浏览器扩展主应用将签名值、签名指令类型标识和浏览器扩展应用标识组成签名请求的响应。
[0162] 步骤218,浏览器扩展主应用将签名请求的响应发送给浏览器的浏览器扩展;
[0163] 本步骤具体为:浏览器扩展主应用将签名请求的响应作为输入参数,调用+ (void)dispatchMessageWithName:(NSString  *)messageName toExtensionWithIdentifier:(NSString *)identifier userInfo:(nullable NSDictionary *)userInfo completionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler函数,将签名请求的响应发送给浏览器扩展。
[0164] 步骤219,浏览器扩展将签名请求的响应发送给网页。
[0165] 本步骤具体包括:
[0166] 步骤f1, 浏览器扩展的浏览器扩展主体模块接收浏览器扩展主应用发送的签名请求的响应;
[0167] 步骤f2, 浏览器扩展主体模块将签名请求的响应作为输入参数,调用- (void)dispatchMessageToScriptWithName:(NSString *)messageName userInfo:(nullable NSDictionary *)userInfo 函数,将签名请求的响应发送给第二Java脚本模块;
[0168] 步骤f3,  第二Java脚本模块将签名请求的响应作为输入参数,调用window.postMessage函数,将签名请求的响应发送给网页。
[0169] 实施例三
[0170] 如图6所示,本实施例提供了一种实现浏览器弹框的装置40,包括:浏览器扩展模块 401和浏览器扩展主应用模块 402,
[0171] 浏览器扩展模块 401包括:
[0172] 第一运行单元 4011,用于运行浏览器扩展模块 401;
[0173] 注册设置单元 4012,用于当第一运行单元 4011首次运行时,向操作系统注册类型为浏览器扩展类型,并设置为启动状态;
[0174] 第一接收单元 4013,用于当第一运行单元 4011非首次运行时,接收网页发送的签名请求;
[0175] 组成发送单元 4014,用于当第一运行单元 4011非首次运行时,根据签名请求和统一资源定位符机制参数组成统一资源定位符数据,将统一资源定位符数据发送给操作系统;
[0176] 接收发送单元 4015,用于当第一运行单元 4011非首次运行时,接收浏览器扩展主应用模块 402的接收生成发送单元 4028发送的签名请求的响应,并将签名请求的响应发送给网页;
[0177] 浏览器扩展主应用模块 402包括:
[0178] 第二运行单元 4021,用于运行浏览器扩展主应用;
[0179] 注册单元 4022,用于当第二运行单元 4021为首次运行时,向操作系统注册类型为应用类型,并向所述操作系统注册统一资源定位符机制参数;其中,浏览器扩展主应用模块 402与浏览器扩展模块 401均预置有统一资源定位符机制参数;
[0180] 接收解析单元 4023,用于当第二运行单元 4021为非首次运行时,接收操作系统发送的统一资源定位符数据,对统一资源定位符数据进行解析得到签名请求中的待签名数据;
[0181] 调用弹出提示单元 4024,用于当第二运行单元 4021为非首次运行时,接收解析单元 4023对统一资源定位符数据进行解析得到签名请求中的待签名数据后,调用函数动态库弹出弹框界面提示用户输入用户信息;
[0182] 第二发送单元 4025,用于当第二运行单元 4021为非首次运行时,将接收到的用户输入的用户信息发送给签名设备;
[0183] 第二判断单元 4026,用于当第二运行单元 4021为非首次运行时,接收并判断签名设备返回的验证用户信息的响应是否为正确响应;
[0184] 调用发送单元 4027,用于当第二判断单元 4026判断为是时,调用函数动态库将待签名数据发送给签名设备;
[0185] 调用弹出提示单元4024,还用于当调用发送单元4027调用函数动态库将待签名数据发送给签名设备后,调用函数动态库弹出弹框界面提示用户确认
[0186] 接收生成发送单元 4028,用于当第二运行单元 4021为非首次运行时,将接收签名设备发送的签名值,并根据签名值生成签名请求的响应,并将签名请求的响应发送给浏览器扩展模块401的接收发送单元 4015。
[0187] 在本实施例中,浏览器扩展主应用模块 402还包括:加载单元,用于在调用弹出提示单元 4024调用函数动态库弹出弹框界面提示用户确认之前,加载函数动态库;加载单元具体包括:
[0188] 打开子单元,用于打开函数动态库;
[0189] 获取子单元,用于获取函数列表;
[0190] 初始化子单元,用于初始化函数动态库;
[0191] 判断子单元,用与判断是否存在签名设备;
[0192] 建立子单元,用于当时判断子单元判断结果为是时,与签名设备建立会话。
[0193] 在本实施例中,调用弹出提示单元 4024包括:
[0194] 显示子单元,用于将弹框界面显示在顶层;
[0195] 激活子单元,用于将弹框界面设置为激活状态;
[0196] 浮动显示子单元,用于将弹框界面设置为浮动显示;
[0197] 模态显示子单元,用于将弹框界面以模态显示;
[0198] 循环判断子单元,用于判断弹框界面模态对话是否进行。
[0199] 在本实施例中,浏览器扩展主应用模块 402还包括:
[0200] 终止关闭单元,用于当调用发送单元 4027调用函数动态库将待签名数据发送给签名设备之后,终止模态对话,关闭提示用户输入用户信息的弹框界面;还用于当接收生成发送单元 4028接收签名设备发送的签名值之后,终止模态对话关闭提示用户确认的弹框界面。
[0201] 在本实施例中,显示单元具体用于:当调用弹出提示单元 4024调用函数动态库时,通过显示置顶函数将弹框界面显示在顶层。
[0202] 在本实施例中,激活子单元具体用于:当调用弹出提示单元 4024函数动态库时,通过调用界面激活函数将弹框界面设置为激活状态。
[0203] 在本实施例中,浮动显示子单元具体用于:当调用弹出提示单元 4024调用函数动态库时,通过界面浮动显示函数,将弹框界面设置为浮动显示。
[0204] 在本实施例中,模态显示子单元具体用于:当调用弹出提示单元 4024调用函数动态库时,通过界面模态显示函数将弹框界面以模态显示。
[0205] 在本实施例中,循环判断子单元具体用于:当调用弹出提示单元 4024调用函数动态库时,通过界面模态对话判断函数判断弹框界面的模态对话是否进行。
[0206] 在本实施例中,接收解析单元 4023用于对统一资源定位符数据进行解析得到签名请求中的待签名数据具体为:接收解析单元 4023用于对统一资源定位符数据解析得到签名请求中的待签名数据和证书可识别名;
[0207] 调用弹出提示单元 4024,还用于当调用发送单元 4027调用函数动态库将待签名数据发送给签名设备后,调用函数动态库弹出弹框界面提示用户确认具体为:调用弹出提示单元 4024,还用于当调用发送单元 4027调用函数动态库将待签名数据发送给签名设备后,根据证书可识别名得到私钥句柄,调用函数动态库将待签名数据和私钥句柄发送给签名设备;
[0208] 调用弹出提示单元 4024还用于当调用发送单元 4027调用函数动态库将待签名数据发送给签名设备后,调用函数动态库弹出弹框界面提示用户确认具体为:调用弹出提示单元 4024还用于当调用发送单元 4027调用函数动态库将待签名数据和私钥句柄发送给签名设备后,调用函数动态库弹出弹框界面提示用户确认。
[0209] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。