1、Electron框架
简介:是一个使用 JavaScript, HTML 和 CSS 等 Web 技术**创建原生程序的框架**,它负责比较难搞的部分,你只需把精力放在你的应用的核心上即可。
-
关于electron框架的网络模块:
使用Chromium的原生网络库发出HTTP / HTTPS请求
net 模块是一个发送 HTTP(S) 请求的客户端API。 它类似于Node.js的HTTP 和 HTTPS 模块 ,但它使用的是Chromium原生网络库来替代Node.js的实现,提供更好的网络代理支持。
下面是一个非详尽的列表, 用于说明为什么使用 net 模块而不是原生Node. js 模块:
- 系统代理配置的自动管理, 支持 wpad 协议和代理 pac 配置文件。
- HTTPS 请求的自动隧道。
- 支持使用basic、digest、NTLM、Kerberos 或协商身份验证方案对代理进行身份验证。
- 支持传输监控代理: 类似于Fiddler代理,用于访问控制和监视。
2、开源密码库OpenSSL
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
在计算机网络上,**OpenSSL**是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。
- 不管是Electron框架所依赖到的NodeJs,或者该是Chromium原生的网络库,都会用到OpenSSL库提供的加密/解密接口
- 支持的加密方式:公钥/私钥/签名/验证签名/加密/解密/非对称加密(RSA/DSA/SHA/MD5),参考资料:https://www.cnblogs.com/lexiaofei/p/8442245.html
- 官网地址:https://www.openssl.org/
- 官方文档地址:https://www.openssl.org/docs/man1.1.1/man3/
3、遇到的麻烦问题
需求场景:基于Electron框架开发了一个网络应用程序,在HTTP/HTTPS连接时用的是RSA密码算法,业务流程没有问题。但是现在需要在HTTP/HTTPS连接时用国密(SM)密码算法。
-
分析
- 如果OpenSSL库或者Chromium支持国密验证,那该怎么配置?
- 如果OpenSSL库或者Chromium不支持国密验证,那该如何修改源码使其支持国密验证?
麻烦各位大神给出指导