问题标签 [wolfssl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
55 浏览

c - 如何确保或检查未初始化的内存是否包含 0?

我正在尝试重现针对 cyassl < 3.3.0 (wolfSSL) 的 skipTLS 攻击,该攻击允许跳过握手中的步骤,从而模拟服务器并强制客户端进行清晰的通信。此处描述了具体的攻击:http ://www.ieee-security.org/TC/SP2015/papers-archived/6949a535.pdf (第 9-10 页)。

此漏洞利用依赖于 cyassl 客户端(用 C 编码)中的未初始化内存设置为 0(12 长字节数组)这一事实。

攻击莫名其妙地失败了,我想检查一下是不是因为未初始化的内存没有设置为0。

现在,论文声称:

因此,存储转录 MAC 的字节数组保持未初始化,并且在大多数运行时环境中,该数组包含零。

我在 Ubuntu 16.04 上运行客户端。

您是否知道检查内存是否包含 0 的方法(调试会很痛苦,因为我在黑盒中工作)?

或者,是否存在这样一种环境,其中未初始化内存的该区域包含 0 的概率会更高?

我知道我不能确定它总是包含 0,但如果它不时工作,我没问题。

0 投票
1 回答
859 浏览

ssl - 即使密码套件共有,TLS 握手也会失败

我在与 www.howsmyssl.com/a/check 建立安全连接时遇到了一些问题。我正在使用 wolfSSL 进行连接,但是,握手总是失败(致命错误警报 40)。我试图嗅探网络以查看数据包以查看究竟发送了什么以及支持哪些密码套件,我发现根据 ssllabs 的测试,howsmyssl.com 和我的客户有共同的密码套件。所以我真的不知道错误发生在哪里。这是客户端的跟踪:

痕迹

这是www.howsmyssl.com 的 ssllabs 分析的链接在这里你可以看到他们有共同的密码套件(例如 0xc02f),所以我认为连接应该成功,或者我错过了什么?

编辑: 这里是 wolfssl 的调试日志

更新 我尝试连接到 www.google.com 并且成功了。我的代码没有进行任何更改,所以我认为这将是服务器问题。但是,当我使用 mbedtls 连接到 www.howsmyssl.com 时,请求也成功,并且在通过嗅探网络比较数据包之后,我看不到任何重大差异。

0 投票
1 回答
271 浏览

c - 与 wolfssl 和 nordic 的蓝牙 LE 安全连接:密钥交换

我想使用北欧芯片(nRF52)从客户端建立安全的蓝牙连接。我还运行了 wolfSSL 库。所以我收到了来自北欧软设备的“BLE_GAP_EVT_LESC_DHKEY_REQUEST”请求,带有对等 64 字节的密钥。现在我需要生成自己的密钥对并将公钥发送回中央。我该如何管理?我对以下功能不是正确的 BTLE 安全连接吗?

我需要生成一个长度为 P-256 的椭圆曲线 diffie helman 密钥对。不幸的是,我不是这个主题的专家。我需要从 wolfSSL 库中调用哪些函数来生成这样的公共 dh 密钥?

感谢您的回答或提示

0 投票
2 回答
657 浏览

c - 连接到 AWS IoT 时出现警报失败,错误 = 42

我正在尝试用 AWS IoT C SDK 中的 wolfSSL 替换 mbedTLS 网络层。

使用 mbedTLS 时,SDK 附带的简单 subscribe_publish_sample 演示可以在 Linux 主机上正常工作。

但是,用 wolfSSL 替换它后,我遇到了错误,错误 = 42,这似乎是服务器拒绝了客户端证书......?

与 AWS 服务器建立 TCP 连接,然后与 wolfSSL 会话关联的套接字,以及服务器的 rootCA、客户端的证书和私钥添加到会话中(我删除了错误处理代码):

这是启用调试的完整转储:

这是运行演示时的wireshark捕获:

使用 mbedTLS 时使用完全相同的证书/密钥。

我显然在这里遗漏了一些东西,对某人来说也可能很明显,但我没有看到。

(也发布在 wolfSSL 论坛 [ https://www.wolfssl.com/forums/topic1122-failure-with-alert-error-42-when-connecting-to-aws-iot.html],但我想我会打扰了观众)

0 投票
1 回答
471 浏览

gsm - 适用于 C 的 Azure IoT SDK 与 WolfSSL 和 STM32

我正在尝试将用于 C 的 Azure IoT SDK 移植到 STM32 控制器。我正在为 TLS 1.2 版使用 wolfSSL 库,并且能够在 OpenSTM32 环境中成功构建代码。

但是,在与 Azure 服务器建立成功连接后,我无法与服务器建立 TLS 握手。我正在使用 wolfSSL 库中的 OpenSTM32 示例 user_settings.h 文件来构建 wolfSSL 库。

我是否需要在 WolfSSL 库中进行任何其他更改才能将其与 Azure 一起使用?

或者

是否有任何其他 TLS 库可以与 Azure IoT SDK for C 和 STM32 控制器一起使用?

0 投票
2 回答
230 浏览

c++ - wc_RsaSSL_Verify 返回 BAD_FUNC_ARG,我不知道为什么

我正在尝试使用 wolfcrypt 对签名文件进行 RSA 公钥解密 - 是的,我可能会也可能不会滥用 RSA 的“签名/验证”功能来使用私钥加密单独的 AES 密钥并使用公钥解密。

不幸的是,我被困在 wc_RsaSSL_Verify() 上——在我的一生中,我无法弄清楚为什么它会返回 BAD_FUNC_ARG——我认为这样的错误应该立即对其他人可见,所以我决定呼吁集体StackOverflow 的强大功能。

据我所知,我正在向函数提供它所要求的 - 输入缓冲区、输出缓冲区、每个缓冲区的大小以及指向 RsaKey 结构的指针。以下是相关函数的代码片段:

rsa_key 是在带有公钥 DER 文件的单独函数中初始化的私有成员(成功地,使用 wc_PublicKeyDecode())。我使用 OpenSSL 生成了公钥和私钥——它应该使用 PKCS#1 v1.5 b 默认正确填充我的 AES 密钥和 iv 文件。

我还应该提到我使用的是 wolfssl 版本 3.9.8。谢谢!

0 投票
1 回答
100 浏览

c++ - 如何在 DTLS 中检测收到的消息?

我在 C、C++ 上为 CoAP 实现 DTLS 协议。如我所见,我可以使用 OpenSSL 或 WolfSSL。例如 WolfSSL:

https://github.com/wolfSSL/wolfssl-examples/blob/master/dtls/client-dtls-nonblocking.c

但是我怎样才能检测到某些消息已发送给我呢?

0 投票
1 回答
46 浏览

jpeg - 如何使用http-parser找到包含C中图像的http响应的结尾?

我正在编写一个 https 客户端来使用 Wolfssl 和 http-parser 获取 https 原始数据。它适用于常规 HTML 页面,但不适用于 MIME 类型文件。

问题是 http-parser 无法决定 HTTP 响应流的结束。根据我对http-parser和http协议的文档的阅读,我知道与流的结束有关的三个信号:内容长度和响应正文和EOF之后的'\r\n'。但是,我发现许多包含 jpeg 图像的 HTTP 响应不包含它们。例如,此 URL 的响应没有内容长度、没有 '\r\n' 和 EOF。https://raw.githubusercontent.com/wolfSSL/wolfssl-examples/master/SGX_Linux/README-images/expected-make-output.png

我想知道是否有其他方法可以找到流的结尾,或者我的代码中是否存在一些错误?

0 投票
1 回答
216 浏览

c++ - 使用 curlpp 设置 SSL 记录的最大片段长度协商

我需要在我的 C++ 应用程序中为 SSL 记录设置最大片段长度协商。我正在使用 curlpp 和 wolfSSL 来支持 SSL。

在 wolfSSL 中,我可以找到支持此功能的 wolfSSL_UseMaxFragment() 和 wolfSSL_CTX_UseMaxFragment()。但是,我无法在options.hpp中的 curlpp 中找到任何此类选项。

我对 curl 和 curlpp 很陌生。请让我知道如何实现这一目标。

0 投票
1 回答
516 浏览

c++ - 如何在 Windows 上静态构建和包含 wolfssl?

我想在 c++ Windows 项目中静态构建和集成 wolfssl。

我尝试按照官方教程进行操作,但这似乎给出了一个.dll,即如果我错了,请纠正我,动态的。

是否有任何解决方案来构建 .lib 并在编译期间将其集成?

如果是这种情况,将这个 .lib 集成到 makefile 的命令是什么?

这是我尝试使用的makefile,但仍然找不到wolfssl.lib的功能:

如果有不清楚的地方,我可以添加所需的详细信息。