问题标签 [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 投票
2 回答
659 浏览

java - MbedTLS AES 128 在 Java 中加密和解密

我正在尝试使用 mbedTLS 在运行 FreeRTOS 的微处理器上加密一些文本。我正在使用带有 PKCS7 填充的 AES 128 CBC。如果我尝试在 mbedTLS 中加密并在文本短于 16 个字符时在 Java 中解密,它可以工作。我可以用 Java 解密它并且文本匹配。如果它更长,那么它不再起作用。我究竟做错了什么?

mbedTLS 代码:

Java代码:

Java 抛出 javax.crypto.BadPaddingException:垫块损坏

谢谢

// 编辑:

尝试了一种更新方法,但仍然没有运气,同样的例外:

Java 获得了 64 字节的数据,但仍然抛出相同的异常。

Topaco 请您提供更新和完成功能使用的简短示例吗?谢谢

0 投票
1 回答
596 浏览

c++ - 使用 mbedTLS 从服务器中提取公共证书链并存储为字符串

您好,提前致谢。

我是 mbedtls 的新手。以下使用 openssl 将非常简单,但是我不知道从哪里开始。

我需要从像https://example.com这样的服务器捕获证书链作为类似于下面的字符串示例的字符串。格式化应该是最简单的部分,我只是不知道到底要使用什么。我假设 x509 模块。

0 投票
1 回答
416 浏览

c++ - 如何正确使用来自 mbedtls 的 aes cbc api

我目前的方法甚至没有根据 golang 的 aes 实现生成正确的加密数据。它也不会解密回原始明文,但如果加密步骤无法正常工作,这是可以预期的。我最好的猜测是我以某种方式滥用了 api。这是一个独立的示例,可以按原样运行。

输出:

在 golang 中使用相同键 iv 数据的预期输出:

0 投票
1 回答
295 浏览

ssl - FreeRTOS+TCP 和 mbedTLS+TCP

我有一个程序,它通过使用 FreeRTOS+TCP 在客户端(洗衣机)和服务器(HawkBit)之间成功传输数据,其中我们只有来自 FreeRTOS 的套接字,但现在我想通过它实现 TLS,我正在使用 mbedTLS 在其中我们再次拥有 TCP 连接功能、打开关闭套接字的功能、我们在 FreeRTOS 中拥有的每个功能现在我不知道该怎么办......!有没有可能使用 FreeRTOS+TCP 中的套接字,只是在上面做 mbedTLS 的 CA 认证!或者我需要用 mbedTLS 再次实现我之前用 freeRTOS 实现的一切!

0 投票
0 回答
2002 浏览

rsa - 在 ESP32 上使用 RSA 加密消息

我在这里尝试实现的是在使用 PlatformIO + Arduino 框架构建的 ESP32 应用程序中加密消息。

经过一番搜索,我找到了这个仓库:https ://github.com/espressif/arduino-esp32

里面有一个工具似乎可以帮助我实现我想要的https://github.com/espressif/arduino-esp32/blob/master/tools/sdk/include/mbedtls/mbedtls/rsa.h

我在https://platformio.org/lib/show/10874/mbedtls将库“mbedtls”导入到 PlatformIO 项目并从那里开始工作。

问题:如何在应用程序中加载私钥文件并使用 RSA 工具对消息进行加密?

我目前拥有的是:

现在,我通过头文件直接以 char* 形式导入私钥内容(我不确定如何将 pem 密钥文件导入应用程序。): const unsigned char *vendorPrivateKey = reinterpret_cast<const unsigned char *>(VENDOR_PRIVATE_KEY); 值存储在 secrets.h 中的位置

然后,当我运行该程序时,它会为我产生以下错误消息: failed! mbedtls_pk_parse_key returned: 15616

根据pk.h文件描述,这个错误码15616的hexa是3D00,表示/**< Invalid key tag or value. */

是否有任何网站提供格式检查并查看我的私钥文件是否符合 mbedtls 的要求?

0 投票
1 回答
59 浏览

c - 从 Visual Studio 的源代码构建时出现 libcurl 重新定义错误

我正在尝试从源代码构建 libcurl 而不使用 Visual Studio 的 dll,但出现重新定义错误 Error list

0 投票
1 回答
60 浏览

https - 由 MBEDTLS 生成的 Chrome 拒绝证书

我正在使用 mbedtls 2.16.3 。我使用 mbedtls 库创建二级证书并使用证书设置 https 通信。根证书(也可以是 CA)是使用 ECC secp256r1 的自签名证书。设备认证由根证书签名,密钥算法也是ECC secp256r1。我在 OS 系统和 Firefox 认证管理器中安装了 root 认证。Chrome收到证书后会显示“Certificate Unknown”(chrome版本为86.0.4240.75)

Wireshark显示如下: Wireshark 标题

chrome显示如下:

NET::ERR_CERT_INVALID 主题:10.9.1.67 颁发者:Web 服务器根 到期日期:2021/10/13 当前日期:2020/10/19 PEM 编码链:

-----BEGIN CERTIFICATE----- MIIBejCCAR6gAwIBAgISANm85JYVS9N1992FvOfHxhsAMAwGCCqGSM49BAMCBQAw JzELMAkGA1UEBhMCQ04xGDAWBgNVBAMMD1dlYiBTZXJ2ZXIgUm9vdDAeFw0yMDEw MTYwMTIzMTdaFw0yMTEwMTMwMjQyNDRaMCExCzAJBgNVBAYTAkNOMRIwEAYDVQQD DAkxMC45LjEuNjcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATdpywNJKmMvDr2 esvqe9CVhjhQDgzzUo6WhMD91CosNJhkDtkMAbexQkq/je6IQyZABxFkiDMweLWe uJR3rTbNoy4wLDAPBgNVHREECDAGhwQKCQFDMAkGA1UdEwQCMAAwDgYDVR0PAQH/ BAQDAgOoMAwGCCqGSM49BAMCBQADSAAwRQIgPRgDnfR7NIXfUlvaUyDtsIJDUGV2 BFKf7wxElxfbKDICIQDpVu5Ty9tZznQeuch+5LV0vDqXm6EWg+Viv6w5O59QIg== -----END CERTIFICATE-----

-----BEGIN CERTIFICATE----- MIIBdDCCARigAwIBAgIRfRupqU8vSJw2LfGv1LSuXwAwDAYIKoZIzj0EAwIFADAn MQswCQYDVQQGEwJDTjEYMBYGA1UEAwwPV2ViIFNlcnZlciBSb290MB4XDTIwMTAx NjA5MjMxNloXDTQwMTAxNjA5MjMxNlowJzELMAkGA1UEBhMCQ04xGDAWBgNVBAMM D1dlYiBTZXJ2ZXIgUm9vdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMZaKSeR hoDgIeVbNkBYY0/n7z4JD+y+bZBXuDsFzYbz4odAe2C3WxpJ7fUw6sOCs1jpy8mv neV1sRH3KXEXqNOjIzAhMA8GA1UdEwQIMAYBAf8CAQAwDgYDVR0PAQH/BA​​QDAgKE MAwGCCqGSM49BAMCBQADSAAwRQIgPa8BVP5Bt2YLQ3DHEbGsg79nJbtTSAKmAPaa 5NLEIEcCIQCENcnKEdTKV0L/1c3evynH/hP97mid58trLgBRlFU3Dw== -----END CERTIFICATE-----

但该认证在 Firefox/Edge 上运行良好。

如果我将自签名证书更改为 RSA 1024,Chrome 中的 https 连接就可以了。

0 投票
0 回答
145 浏览

ubuntu - mbedtls websocket 客户端库

我想使用 mbedtls 库在 Ubuntu 上用作 websocket 客户端。

有人可以指出一些低占用空间的包装库,因为 mbedtls 本身似乎不支持开箱即用的 websockets 客户端。我的服务器是一个 node.js 实现。我想要一个最小的 C 库通过 websockets 连接到它。

0 投票
1 回答
188 浏览

c - X.509 DER 格式证书到 PEM 格式

如何使用 MbedTLS 将 DER 格式的 X.509 证书转换为 PEM 形式?实际上,我收到的证书是 BASE64 编码的,在执行 BASE64 解码时,它会提供 DER 格式的证书,但我需要 PEM 格式并希望使用 MbedTLS 将获得的 DER 格式证书转换为 PEM。

0 投票
0 回答
183 浏览

bluetooth-lowenergy - 为蓝牙低功耗设备实施 DTLS 握手

我正在尝试在两个 BLE 设备之间实现 DTLS 握手。为此,我想使用 BLE 的 L2CAP 通道与来自 DTLS 的消息进行通信。基本上,我想在 BLE 堆栈中的 L2CAP 的帮助下打开一个 DTLS 隧道。我为此使用了 mbedTLS 库。来自 MbedTLS 的文档(https://tls.mbed.org/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS),我知道我需要设置 mbed_tls_ssl_set_bio() 函数,该函数具有与 BLE 顶层 (L2CAP) 通信的读写回调函数。我正在使用对话框的 DA14695 加密狗来实现。我不太确定需要编写以与 BLE 的 L2CAP 通道通信的读写回调函数。有使用 BLE 顶层打开 TLS/DTLS 隧道经验的人可以提供帮助。

提前致谢