CN111212045A - 驱动层异步通信加密、解密传输方法及传输系统 - Google Patents

驱动层异步通信加密、解密传输方法及传输系统 Download PDF

Info

Publication number
CN111212045A
CN111212045A CN201911359421.2A CN201911359421A CN111212045A CN 111212045 A CN111212045 A CN 111212045A CN 201911359421 A CN201911359421 A CN 201911359421A CN 111212045 A CN111212045 A CN 111212045A
Authority
CN
China
Prior art keywords
module
data
function
executing
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911359421.2A
Other languages
English (en)
Inventor
王忠福
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Shengxi Times Network Technology Co ltd
Original Assignee
Sichuan Shengxi Times Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sichuan Shengxi Times Network Technology Co ltd filed Critical Sichuan Shengxi Times Network Technology Co ltd
Priority to CN201911359421.2A priority Critical patent/CN111212045A/zh
Publication of CN111212045A publication Critical patent/CN111212045A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

驱动层异步通信加密、解密传输方法及传输系统
技术领域
本发明涉及加密技术领域,具体来说,涉及一种驱动层异步通信加密、解密传输方法及其控制系统。
背景技术
由于驱动中传统通讯过程是同步操作,只能按顺序执行才能完成对传输的数据加解密过程,这些操作会在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把数据写入发送缓冲区;
第三执行模块,用于执行WSKSend函数将数据发送至服务器,完成握手;
接收执行模块,用于接收服务器的数据,执行WSKRecv函数,在接收完成事件到达后,完成线程调用BIO_write;
第二写入模块,用于写入接收的数据至数据缓冲区内;
解密模块,用于调用mbedtls_ssl_read,对数据进行解码得到明文数据。
本发明的有益效果是:
1、加载驱动执行WskReigster函数,启动网络完成事件接收线程后执行WSKConnet函数,完成IO操作,使用WskReigster函数,减轻用户态代码在I/O上等待的时间,而尽可能把时间交给内核,回调函数把完成事件push到完成事件接收线程中接收到连接完成事件后,异步通讯的数据通过BIO_write写入数据接收缓冲区;执行WSKSend,循环执行到函数返回0,表示SSL握手成功;发送加密数据到服务器或者接收服务器的加密数据。
2、使得驱动层中可以使用异步socket通讯,不再局限于驱动层socket通讯同步操作方式,,减轻用户态代码在I/O上等待的时间,而尽可能把时间交给内核。
3、加载驱动执行WskReigster函数,启动网络完成事件接收线程后执行WSKConnet函数,完成IO操作,使用WskReigster函数,减轻用户态代码在I/O上等待的时间,而尽可能把时间交给内核,回调函数把完成事件push到完成事件接收线程中接收到连接完成事件后,异步通讯的数据通过BIO_write写入数据接收缓冲区;执行WSKSend,循环执行到函数返回0,表示SSL握手成功;发送加密数据到服务器或者接收服务器的加密数据。
4、发送调用函数mbedtls_ssl_write的请求信息,同时写入加密数据至BIO类型的Context,执行BIO_Read把数据写入发送缓冲区,减轻用户态代码在I/O上等待的时间,而尽可能把时间交给内核。
5、发送解密请求至服务器,调用函数mbedtls_ssl_write,把要发送的数据写入BIO类型的Context,执行BIO_Read把数据写入发送缓冲区,减轻用户态代码在I/O上等待的时间,而尽可能把时间交给内核,执行WSKSend函数将数据发送至服务器,完成握手;接收服务器的数据,执行WSKRecv函数,在接收完成事件到达后,完成线程调用BIO_write,写入接收的数据至数据缓冲区内;调用mbedtls_ssl_read,对数据进行解码得到明文数据。
6、本发明满足了驱动层中对多任务同时进行与服务器通讯数据加密传输访问的需求,使得驱动层中可以使用异步socket通讯,不再局限于驱动层socket通讯同步操作方式,减轻用户态代码在I/O上等待的时间,而尽可能把时间交给内核。
附图说明
图1是本发明实施例1所述的驱动层异步通信加密、解密传输方法的流程框图;
图2是本发明实施例2所述的驱动层异步通信加密、解密传输方法的流程框图;
图3是本发明实施例3所述的驱动层异步通信加密、解密传输方法的流程框图;
图4是本发明实施例4所述的驱动层异步通信加密、解密传输方法的流程框图;
图5是本发明实施例5所述的驱动层异步通信加密、解密传输方法的流程框图;
图6是本发明实施例6所述的驱动层异步通信加密、解密传输方法的控制系统的信号流向示意图;
图7是本发明实施例7所述的驱动层异步通信加密、解密传输方法的控制系统的信号流向示意图;
图8是本发明实施例8所述的驱动层异步通信加密、解密传输方法的控制系统的信号流向示意图;
图9是本发明实施例9所述的驱动层异步通信加密、解密传输方法的控制系统的信号流向示意图;
图10是本发明实施例10所述的驱动层异步通信加密、解密传输方法的控制系统的信号流向示意图;
图11是本发明所述的驱动层异步通信加密、解密传输方法的控制系统的实施例的线程流程逻辑示意图;
附图标记说明:
1、驱动加载模块;2、接收线程模块;3、第一执行模块;4、回调模块;5、接收缓冲模块;6、循环模块;7、信息发送模块;8、注册子模块;9、初始子模块;10、数据交换模块;11、判断模块;12、发送调用模块;13、第一写入模块;14、第二执行模块;15、第一数据发送模块;16、解密发送模块;17、函数调用模块;18、第二数据发送模块;19、第三执行模块;20、接收执行模块;21、第二写入模块;22、解密模块。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
实施例1:
如图1所示,一种驱动层异步通信加密、解密传输方法,包括以下步骤:
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握手成功;发送加密数据到服务器或者接收服务器的加密数据。
实施例2:
如图2所示,本实施例在实施例1的基础上,所述步骤S01中包括以下步骤:
S011、注册内核模式下WSK的socket模块;
S012、初始化内核模式下WSK的socket网络通信模块函数。
使得驱动层中可以使用异步socket通讯,不再局限于驱动层socket通讯同步操作方式,,减轻用户态代码在I/O上等待的时间,而尽可能把时间交给内核。
实施例3:
如图3所示,本实施例在实施例1的基础上,所述步骤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握手成功;发送加密数据到服务器或者接收服务器的加密数据。
实施例4:
如图4所示,本实施例在实施例1的基础上,所述步骤S04后还包括步骤S08、发送调用函数mbedtls_ssl_write的请求信息;
S09、写入加密数据至BIO类型的Context;
S010、执行BIO_Read把数据写入发送缓冲区;
S011、执行执行WSKSend函数将数据发送至服务器。
发送调用函数mbedtls_ssl_write的请求信息,同时写入加密数据至BIO类型的Context,执行BIO_Read把数据写入发送缓冲区,减轻用户态代码在I/O上等待的时间,而尽可能把时间交给内核。
实施例5:
如图5所示,本实施例在实施例1-4任意一项的基础上,还包括以下步骤:
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,对数据进行解码得到明文数据。
实施例6:
如图6所示,一种驱动层异步通信加密、解密传输系统,包括驱动加载模块1、接收线程模块2、第一执行模块3、回调模块4、接收缓冲模块5、循环模块6和信息发送模块7,其中:
驱动加载模块1,用于加载驱动执行WskReigster函数;
接收线程模块2,用于启动网络完成事件接收线程;
第一执行模块3,用于执行WSKConnet函数,完成IO操作;
回调模块4,用于回调函数把完成事件push到完成事件接收线程中;
接收缓冲模块5,用于缓冲通过BIO_write写入的异步通讯的数据;
循环模块6,用于循环执行WSKSend函数;
信息发送模块7,用于发送加密数据到服务器或者接收服务器的加密数据。
实施例7:
如图7所示,本实施例在实施例6的基础上,所述驱动加载模块1包括注册子模块8和初始子模块9,其中:
注册子模块8,用于注册内核模式下WSK的socket模块;
初始子模块9,用于化初始化内核模式下WSK的socket网络通信模块函数。
实施例8:
如图8所示,本实施例在实施例6的基础上,所述回调模块4包括还包括数据交换模块10和判断模块11,其中:
数据交换模块10,初始化socket的Context,并借助BIO进行异步通信数据的数据交换;
判断模块11,用于执行mbedtls_ssl_handshake函数,判断函数是需要返回需要读还是需要返回需要写。
实施例9:
如图9所示,本实施例在实施例6的基础上,还包括发送调用模块12、第一写入模块13、第二执行模块14和第一数据发送模块15,其中:
发送调用模块12,用于发送调用函数mbedtls_ssl_write的请求信息;
第一写入模块13,用于写入加密数据至BIO类型的Context;
第二执行模块14,用于执行BIO_Read把数据写入发送缓冲区;
第一数据发送模块15,用于执行WSKSend函数将数据发送至服务器。
实施例10:
如图10所示,本实施例在实施例6-9任意一项的基础上,还包括解密发送模块16、函数调用模块17、第二数据发送模块18、第三执行模块19、接收执行模块20、第二写入模块21和解密模块22,其中:
解密发送模块16,用于发送解密请求至服务器;
函数调用模块17,用于调用函数mbedtls_ssl_write,把要发送的数据写入BIO类型的Context;
第二数据发送模块18,用于执行BIO_Read把数据写入发送缓冲区;
第三执行模块19,用于执行WSKSend把数据发送出去;
接收执行模块20,用于接收服务器的数据,执行WSKRecv函数,在接收完成事件到达后,完成线程调用BIO_write;
第二写入模块21,用于写入接收的数据至数据缓冲区内;
解密模块22,用于调用mbedtls_ssl_read,对数据进行解码得到明文数据。
具体工作流程:
驱动层内核模式下WSK的socket使用mbedTLS异步通信过程以下流程完成:
WSK内核模块初始化过程:
Figure BDA0002336787840000111
WSK异步通信加解密传输过程如下:
Figure BDA0002336787840000112
Figure BDA0002336787840000121
Figure BDA0002336787840000131
Figure BDA0002336787840000141
Figure BDA0002336787840000151
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (10)

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.一种驱动层异步通信加密、解密传输系统,其特征在于,包括驱动加载模块、接收线程模块、第一执行模块、回调模块、接收缓冲模块、循环模块和信息发送模块,其中:
驱动加载模块,用于加载驱动执行WskReigster函数;
接收线程模块,用于启动网络完成事件接收线程;
第一执行模块,用于执行WSKConnet函数,完成IO操作;
回调模块,用于回调函数把完成事件push到完成事件接收线程中;
接收缓冲模块,用于缓冲通过BIO_write写入的异步通讯的数据;
循环模块,用于执行WSKSend函数,循环执行到函数返回0,表示SSL握手成功;
信息发送模块,用于发送加密数据到服务器或者接收服务器的加密数据。
7.根据权利要求6所述的驱动层异步通信加密、解密传输系统,其特征在于,所述驱动加载模块包括注册子模块和初始子模块,其中:
注册子模块,用于注册内核模式下WSK的socket模块;
初始子模块,用于化初始化内核模式下WSK的socket网络通信模块函数。
8.根据权利要求6所述的驱动层异步通信加密、解密传输系统,其特征在于,所述回调模块包括还包括数据交换模块和判断模块,其中:
数据交换模块,初始化socket的Context,并借助BIO进行异步通信数据的数据交换;
判断模块,用于执行mbedtls_ssl_handshake函数,判断函数是需要返回需要读还是需要返回需要写。
9.根据权利要求6所述的驱动层异步通信加密、解密传输系统,其特征在于,还包括发送调用模块、第一写入模块、第二执行模块和第一数据发送模块,其中:
发送调用模块,用于发送调用函数mbedtls_ssl_write的请求信息;
第一写入模块,用于写入加密数据至BIO类型的Context;
第二执行模块,用于执行BIO_Read把数据写入发送缓冲区;
第一数据发送模块,用于执行WSKSend函数将数据发送至服务器。
10.根据权利要求6-9任意一项所述的驱动层异步通信加密、解密传输系统,其特征在于,还包括解密发送模块、函数调用模块、第二数据发送模块、第三执行模块、接收执行模块、第二写入模块和解密模块,其中:
解密发送模块,用于发送解密请求至服务器;
函数调用模块,用于调用函数mbedtls_ssl_write,把要发送的数据写入BIO类型的Context;
第二数据发送模块,用于执行BIO_Read把数据写入发送缓冲区;
第三执行模块,执行WSKSend函数将数据发送至服务器,完成握手;
接收执行模块,用于接收服务器的数据,执行WSKRecv函数,在接收完成事件到达后,完成线程调用BIO_write;
第二写入模块,用于写入接收的数据至数据缓冲区内;
解密模块,用于调用mbedtls_ssl_read,对数据进行解码得到明文数据。
CN201911359421.2A 2019-12-25 2019-12-25 驱动层异步通信加密、解密传输方法及传输系统 Pending CN111212045A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911359421.2A CN111212045A (zh) 2019-12-25 2019-12-25 驱动层异步通信加密、解密传输方法及传输系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911359421.2A CN111212045A (zh) 2019-12-25 2019-12-25 驱动层异步通信加密、解密传输方法及传输系统

Publications (1)

Publication Number Publication Date
CN111212045A true CN111212045A (zh) 2020-05-29

Family

ID=70788324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911359421.2A Pending CN111212045A (zh) 2019-12-25 2019-12-25 驱动层异步通信加密、解密传输方法及传输系统

Country Status (1)

Country Link
CN (1) CN111212045A (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102811201A (zh) * 2011-05-31 2012-12-05 阿里巴巴集团控股有限公司 Ssl非阻塞通信方法及用于ssl非阻塞通信的服务器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102811201A (zh) * 2011-05-31 2012-12-05 阿里巴巴集团控股有限公司 Ssl非阻塞通信方法及用于ssl非阻塞通信的服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
软件团队: "《驱动层与应用层的异步通信》", 《互联网资源》 *

Similar Documents

Publication Publication Date Title
EP3570175B1 (en) Method for implementing nvme over fabrics, terminal, server, and system
US8504105B2 (en) Simultaneous interface use
CN110134534B (zh) 基于nio针对大数据分布式系统进行消息处理优化的系统及方法
WO2019037458A1 (zh) 通信方法和装置
CN111445331A (zh) 交易撮合方法及装置
CN114077562B (zh) 一种1553b总线控制器协议处理ip核
CN109189705B (zh) 一种usb扩展方法、装置、设备、存储介质及系统
CN117118828B (zh) 一种协议转换器、电子设备及一种配置方法
CN111212045A (zh) 驱动层异步通信加密、解密传输方法及传输系统
CN103019975A (zh) 通用串行总线传输控制方法及主机设备
CN116361031A (zh) 消息的传输方法、系统、装置、处理器以及电子设备
US12056393B2 (en) System and method for exchanging messages
RU2001129159A (ru) Механизм реализации функции ядра, развлекательное устройство с таким механизмом и способ управления периферийным устройством с помощью этого механизма
CN114153573A (zh) 一种基于单线程池的多任务处理的方法及相关装置
JP4212296B2 (ja) コマンド制御方法及びicカード利用端末装置及びメモリカード
JPH06301655A (ja) 分散処理システム
CN111427813A (zh) 一种基于串口的核间通讯方法、终端及存储介质
TWI384374B (zh) 具資料串流功能之多核心遠端程序呼叫方法
JP2005346175A (ja) コマンド通信装置およびコマンド通信方法
WO1989008886A1 (en) Data exchange between a plurality of processors
US11714608B2 (en) Device and method for handling programming language function
CN115543343B (zh) 变量跨线程操作方法及装置
JP3074722B2 (ja) Icカードの通信システム
CN101452398B (zh) 异步请求应答的通信方法
US6574677B1 (en) Method for using smart card on HPC

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20200529

RJ01 Rejection of invention patent application after publication