驱动层异步通信加密、解密传输方法及传输系统技术方案

技术编号:24333940 阅读:111 留言:0更新日期:2020-05-29 21:15
本发明专利技术公开了一种驱动层异步通信加密传输方法,包括以下步骤:S01、加载驱动执行WskReigster函数;S02、启动网络完成事件接收线程;S03、执行WSKConnet函数,完成IO操作;S04、回调函数把完成事件push到完成事件接收线程中;S05、接收到连接完成事件后,异步通讯的数据通过BIO_write写入数据接收缓冲区;S06、执行WSKSend,循环执行到函数返回0,表示SSL握手成功;S07、发送加密数据到服务器或者接收服务器的加密数据。本发明专利技术满足了驱动层中对多任务同时进行与服务器通讯数据加密传输访问的需求,使得驱动层中可以使用异步socket通讯,减轻用户态代码在I/O上等待的时间,而尽可能把时间交给内核。本发明专利技术还公开了一种驱动层异步通信加密、解密传输系统。

Transmission method and system of encryption and decryption in asynchronous communication of driver layer

【技术实现步骤摘要】
驱动层异步通信加密、解密传输方法及传输系统
本专利技术涉及加密
,具体来说,涉及一种驱动层异步通信加密、解密传输方法及其控制系统。
技术介绍
由于驱动中传统通讯过程是同步操作,只能按顺序执行才能完成对传输的数据加解密过程,这些操作会在I/O操作完成前一直处于等待中,不会把控制权立即返回给程序,无法满足多任务需求。
技术实现思路
基于此,针对上述问题,有必要提出一种驱动层异步通信加密、解密传输方法及其控制系统。本专利技术的技术方案是:一种驱动层异步通信加密、解密传输方法,包括以下步骤:S01、加载驱动执行WskReigster函数;S02、启动网络完成事件接收线程;S03、执行WSKConnet函数,完成IO操作;S04、回调函数把完成事件push到完成事件接收线程中;S05、接收到连接完成事件后,异步通讯的数据通过BIO_write写入数据接收缓冲区;S06、执行WSKSend函数,循环执行到函数返回0,表示SSL握手成功;S07、发送加密数据到服务器或者接收服务器的加密数据。加载驱动执行WskReigster函数,启动网络完成事件接收线程后执行WSKConnet函数,完成IO操作,使用WskReigster函数,减轻用户态代码在I/O上等待的时间,而尽可能把时间交给内核,回调函数把完成事件push到完成事件接收线程中接收到连接完成事件后,异步通讯的数据通过BIO_write写入数据接收缓冲区;执行WSKSend,循环执行到函数返回0,表示SSL握手成功;发送加密数据到服务器或者接收服务器的加密数据。优选的,所述步骤S01中包括以下步骤:S011、注册内核模式下WSK的socket模块;S012、初始化内核模式下WSK的socket网络通信模块函数。使得驱动层中可以使用异步socket通讯,不再局限于驱动层socket通讯同步操作方式,,减轻用户态代码在I/O上等待的时间,而尽可能把时间交给内核。优选的,所述步骤4中包括以下步骤:S041、初始化socket的Context,并借助BIO进行异步通信数据的数据交换;S042、执行mbedtls_ssl_handshake函数,判断函数是需要返回需要读还是需要返回需要写,如果函数返回需要读,执行WSKRead,如果返回需要写,通过BIO_read函数把数据读入发送至步骤S07的缓冲区内。加载驱动执行WskReigster函数,启动网络完成事件接收线程后执行WSKConnet函数,完成IO操作,使用WskReigster函数,减轻用户态代码在I/O上等待的时间,而尽可能把时间交给内核,回调函数把完成事件push到完成事件接收线程中接收到连接完成事件后,异步通讯的数据通过BIO_write写入数据接收缓冲区;执行WSKSend,循环执行到函数返回0,表示SSL握手成功;发送加密数据到服务器或者接收服务器的加密数据。优选的,所述步骤S04后还包括步骤S08、发送调用函数mbedtls_ssl_write的请求信息;S09、写入加密数据至BIO类型的Context;S010、执行BIO_Read把数据写入发送缓冲区;S011、执行WSKSend函数将数据发送至服务器。发送调用函数mbedtls_ssl_write的请求信息,同时写入加密数据至BIO类型的Context,执行BIO_Read把数据写入发送缓冲区,减轻用户态代码在I/O上等待的时间,而尽可能把时间交给内核。优选的,还包括以下步骤:S11、发送解密请求至服务器;S12、调用函数mbedtls_ssl_write,把要发送的数据写入BIO类型的Context;S13、执行BIO_Read把数据写入发送缓冲区;S14、执行WSKSend函数将数据发送至服务器,完成握手;S15、接收服务器的数据,执行WSKRecv函数,在接收完成事件到达后,完成线程调用BIO_write;S16、写入接收的数据至数据缓冲区内;S17、调用mbedtls_ssl_read,对数据进行解码得到明文数据。发送解密请求至服务器,调用函数mbedtls_ssl_write,把要发送的数据写入BIO类型的Context,执行BIO_Read把数据写入发送缓冲区,减轻用户态代码在I/O上等待的时间,而尽可能把时间交给内核,执行WSKSend函数将数据发送至服务器,完成握手;接收服务器的数据,执行WSKRecv函数,在接收完成事件到达后,完成线程调用BIO_write,写入接收的数据至数据缓冲区内;调用mbedtls_ssl_read,对数据进行解码得到明文数据。为解决上述技术问题,本专利技术还提供了一种驱动层异步通信加密、解密传输系统,包括驱动加载模块、接收线程模块、第一执行模块、回调模块、接收缓冲模块、循环模块和信息发送模块,其中:驱动加载模块,用于加载驱动执行WskReigster函数;接收线程模块,:用于启动网络完成事件接收线程;第一执行模块,用于执行WSKConnet函数,完成IO操作;回调模块,用于回调函数把完成事件push到完成事件接收线程中;接收缓冲模块,用于缓冲通过BIO_write写入的异步通讯的数据;循环模块,用于执行WSKSend函数,循环执行到函数返回0,表示SSL握手成功;信息发送模块,用于发送加密数据到服务器或者接收服务器的加密数据。优选的,所述驱动加载模块包括注册子模块和初始子模块,其中:注册子模块,用于注册内核模式下WSK的socket模块;初始子模块,用于化初始化内核模式下WSK的socket网络通信模块函数。优选的,所述回调模块包括还包括数据交换模块和判断模块,其中:数据交换模块,初始化socket的Context,并借助BIO进行异步通信数据的数据交换;判断模块,用于执行mbedtls_ssl_handshake函数,判断函数是需要返回需要读还是需要返回需要写。优选的,还包括发送调用模块、第一写入模块、第二执行模块和第一数据发送模块,其中:发送调用模块,用于发送调用函数mbedtls_ssl_write的请求信息;第一写入模块,用于写入加密数据至BIO类型的Context;第二执行模块,用于执行BIO_Read把数据写入发送缓冲区;第一数据发送模块用于执行WSKSend函数将数据发送至服务器。优选的,还包括解密发送模块、函数调用模块、数据发送子模块、第三执行模块、接收执行模块、第二写入模块和解密模块,其中:解密发送模块,用于发送解密请求至服务器;函数调用模块,用于调用函数mbedtls_ssl_write,把要发送的数据写入BIO类型的Context;第二数据发送模块,用于执行BIO_Read把数据写入发送缓本文档来自技高网...

【技术保护点】
1.一种驱动层异步通信加密、解密传输方法,其特征在于,包括以下步骤:/nS01、加载驱动执行WskReigster函数;/nS02、启动网络完成事件接收线程;/nS03、执行WSKConnet函数,完成IO操作;/nS04、回调函数把完成事件push到完成事件接收线程中;/nS05、接收到连接完成事件后,异步通讯的数据通过BIO_write写入数据接收缓冲区;/nS06、执行WSKSend函数,循环执行到函数返回0,表示SSL握手成功;/nS07、发送加密数据到服务器或者接收服务器的加密数据。/n

【技术特征摘要】
1.一种驱动层异步通信加密、解密传输方法,其特征在于,包括以下步骤:
S01、加载驱动执行WskReigster函数;
S02、启动网络完成事件接收线程;
S03、执行WSKConnet函数,完成IO操作;
S04、回调函数把完成事件push到完成事件接收线程中;
S05、接收到连接完成事件后,异步通讯的数据通过BIO_write写入数据接收缓冲区;
S06、执行WSKSend函数,循环执行到函数返回0,表示SSL握手成功;
S07、发送加密数据到服务器或者接收服务器的加密数据。


2.根据权利要求1所述的驱动层异步通信加密、解密传输方法,其特征在于,所述步骤S01中包括以下步骤:
S011、注册内核模式下WSK的socket模块;
S012、初始化内核模式下WSK的socket网络通信模块函数。


3.根据权利要求1所述的驱动层异步通信加密、解密传输方法,其特征在于,所述步骤4中包括以下步骤:
S041、初始化socket的Context,并借助BIO进行异步通信数据的数据交换;
S042、执行mbedtls_ssl_handshake函数,判断函数是需要返回需要读还是需要返回需要写,如果函数返回需要读,执行WSKRead,如果返回需要写,通过BIO_read函数把数据读入发送至步骤S07的缓冲区内。


4.根据权利要求1所述的驱动层异步通信加密、解密传输方法,其特征在于,所述步骤S04后还包括步骤S08、发送调用函数mbedtls_ssl_write的请求信息;
S09、写入加密数据至BIO类型的Context;
S010、执行BIO_Read把数据写入发送缓冲区;
S011、执行WSKSend函数将数据发送至服务器。


5.根据权利要求1-4任意一项所述的驱动层异步通信加密、解密传输方法,其特征在于,还包括以下步骤:
S11、发送解密请求至服务器;
S12、调用函数mbedtls_ssl_write,把要发送的数据写入BIO类型的Context;
S13、执行BIO_Read把数据写入发送缓冲区;
S14、执行WSKSend函数将数据发送至服务器,完成握手;
S15、接收服务器的数据,执行WSKRecv函数,在接收完成事件到达后,完成线程调用BIO_write;
S16、写入接收的数据至数据缓冲区内;
S17、调用mbedtls_ssl_read,对数据进行解码得到明文数据。


6.一种驱动层异步通信加密、解密传输系统,其特征在于,包括驱动加载模块、接收线程模块、第一执行模块、回调模块、接收缓冲模块、循环模块和信息发送模块,其...

【专利技术属性】
技术研发人员:王忠福
申请(专利权)人:四川盛趣时代网络科技有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1