问题标签 [mbedtls]

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 投票
1 回答
1334 浏览

c - 如何使用 mbedtls 在 libcurl 中加载 PEM 证书和私钥

您好,我正在使用 libcurl 实现一个应用程序。我在内存中有一个证书和私钥。

我找到了一个如何使用 openSSL http://curl.haxx.se/libcurl/c/usercertinmem.html的示例,但根据文档,这种方法仅适用于 OpenSSL 或 wolfSSL/CyaSSL。

0 投票
1 回答
692 浏览

cryptography - 带有 PSK 的 mbedtls 导致错误

我正在尝试将 PSK 与 mbedtls 库与 SGX 结合使用。如果没有 PSK,则连接可以正常工作。

这是相关的客户端代码:

我的 openssl 测试服务器运行:

服务器接收连接并交换 PSK 消息,但在解密点我收到以下错误:

我也尝试将其更改-cipher PSK-AES256-CBC-SHA为不同的密码,但仍然是相同的错误。当完全省略密码时,连接有效,但不执行 PSK!?

0 投票
1 回答
1773 浏览

c++ - 使用 mbedtls 的 AES-CMAC:未定义的参考错误

我尝试使用 mbedTLS 实现 AES-CMAC。我收到一些错误:

未定义的引用mbedtls_cipher_cmac_starts,未定义的引用mbedtls_cipher_cmac_update,未定义的引用mbedtls_cipher_cmac_finish

为什么这些功能不能解决,即使mbedtls_cipher_init并且mbedtls_cipher_setup可以?

顺便提一句。我在同一个项目下使用 mbedTLS 实现了 AES 没有问题。我使用 Eclipse Nano。

这是我的代码:

0 投票
1 回答
1267 浏览

ssl - 指定 Arduino WiFiClientSecure 证书

您应该以什么格式在 WifiClientSecure 模块中提供证书(和密钥)?存在示例,也没有使用文档。

我正在关注 Arduino (ESP32) WiFiClientSecure 示例代码 - 并在指定 CA 证书时尝试连接,例如:

client.connect(server, 443, test_ca_cert, test_client_cert, test_client_key)

test_client_cert并且test_client_key是 NULL 指针)。如果test_ca_cert是 NULL 指针,则 SSL 连接正常。

如果我尝试指定自己的test_ca_cert,我总是得到:

CA cert: mbedtls_x509_crt_parse returned -0x2180(这是“无效格式”的错误代码)

我已经尝试了很多东西,test_ca_cert例如带有 PEM 格式(明文)base64 编码证书的字符串,以及 DER 格式证书的字节数组。似乎没有任何效果。

应指定此证书的格式是什么?

0 投票
1 回答
582 浏览

ssl - Mbedtls - 从服务器下载文件

有人可以解释如何使用 Mbedtls 库从服务器下载文件吗?它们提供了一些使用来自 localhost 的 GET 请求的示例。我已经使用它并对其进行了修改以使用 POST。这工作得很好,但看起来当我发送一个 GET 请求时,它假设将文件数据作为流带回,我只返回一个没有数据的标题。

我很确定我的代码做错了什么。我需要设置一些特定的配置来下载文件吗?

非常卡住并需要帮助,任何帮助都将不胜感激。

0 投票
1 回答
679 浏览

sockets - DTLS-Server 在第二个 ClientHello 之后没有正确回答

我正在使用与 UDP 不同的网络传输协议构建 DTLS 服务器和客户端设置。但是这个协议也是不可靠的,所以需要 DTLS。该协议使用无线电网络将数据从客户端传输到服务器,反之亦然。为了使其与 DTLS 兼容,接收到的数据随后通过 UDP-Client 转发到服务器端的 DTLS-Server,并通过 UDP-Server 转发到客户端的 DTLS-Client,两者都在 localhost 上工作。

作为基础,我使用了 mbedTLS 的程序/ssl 目录中给出的 DTLS 示例实现。由于在传输的情况下使用的协议不是 fastet,我通过使用 mbedtls_ssl_conf_handshake_timeout 函数调整了握手超时,这样就没有任何可能干扰实际数据传输的早期重传。这是根据需要工作的。

大约 2 分钟后,服务器收到第一个握手消息(ClientHello)。服务器使用 VerifyRequest 进行应答,再过 3 分钟,服务器收到客户端的应答 (ClientHello+Cookie)。但是,服务器没有发送 ServerHello,而是使用另一个 VerifyRequest 来回答,例如他忘记了第一次初始化 ClientHello。

我将收到的 ClientHello 消息与使用相同设置但 UDP 作为网络协议的 DTLS-Handshake 生成的一些消息进行了比较,它们几乎是等效的(除了随机部分和 cookie)。

我是否需要调整另一个超时计时器,以便服务器等待第二个 ClientHello 的时间更长?还是我忽略了另一件事?

如果您需要对问题的任何进一步描述,我会尽力提供。

我将不胜感激任何想法或提示。

0 投票
1 回答
287 浏览

arm - mbedtls_printf 未在终端上显示文本

我想在两个带有 ARM Mbed OS 的 K64F 板上测试 DTLS 库。我刚刚创建了一个新项目:

我创建了一个名为 source 的文件夹,并将从 mbeddtls 项目页面获得的 dtls_client.c 复制到那里。我更改了 SERVER_ADDR 常量的值。

我已经用 dtls_server.c 文件重复了这个过程。

两个项目都编译没有错误。

我将每个 bin 文件复制到不同的板上,但是当我通过 putty 终端连接到它们时,我什么也看不到。我一直在将此连接与我的其他程序一起使用,并且它可以正常工作。我认为它可能与连接有关(现在是 115200)。

我看到代码使用 mbedtls_printf 函数来打印消息。我尝试插入一些 printf 痕迹,但我也没有看到它们。我应该如何设置终端才能看到一些东西?

0 投票
1 回答
559 浏览

arm - mbed tls NET 和 TIMING 模块不可用

我已经为带有 ARM Mbed OS 的 K64F 板编译了 mbedtls。我正在尝试运行 dtls_client.c 和 dtls_server.c 中的示例。最初,在编译客户端时出现此错误:

我发现这与在 config.h 文件中激活这两行有关。

现在我看到我得到的编译错误与某些函数的重新定义有关:

如何定义此调用以使其正常工作?

0 投票
1 回答
422 浏览

c - code1 和 code2 的区别

代码 1

代码 2

我使用mbedtls_base64_decode()解码 base64 字符串,mbedTLS 的 API。

我的程序是这样的:</p>

如果参数*src使用代码 2 ,则输出为

00 00 00 83 46 b4 56 b8 e2 55 4e fa 33 55 91 57

如果 *src 使用代码 1,则输出为

a0 5a 93 83 46 b4 56 b8 e2 55 4e fa 33 55 91 57

这是正确的。为什么?

0 投票
1 回答
427 浏览

c++ - mbedTLS pk 解析错误

谁能帮我找出为什么我在尝试从 unsigned char* 解析公钥/私钥时得到 -16000(错误的输入数据)?

这是我的代码(为简洁而编辑):

和私钥一样,我做错了什么?