问题标签 [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.
java - MbedTLS AES 128 在 Java 中加密和解密
我正在尝试使用 mbedTLS 在运行 FreeRTOS 的微处理器上加密一些文本。我正在使用带有 PKCS7 填充的 AES 128 CBC。如果我尝试在 mbedTLS 中加密并在文本短于 16 个字符时在 Java 中解密,它可以工作。我可以用 Java 解密它并且文本匹配。如果它更长,那么它不再起作用。我究竟做错了什么?
mbedTLS 代码:
Java代码:
Java 抛出 javax.crypto.BadPaddingException:垫块损坏
谢谢
// 编辑:
尝试了一种更新方法,但仍然没有运气,同样的例外:
Java 获得了 64 字节的数据,但仍然抛出相同的异常。
Topaco 请您提供更新和完成功能使用的简短示例吗?谢谢
c++ - 使用 mbedTLS 从服务器中提取公共证书链并存储为字符串
您好,提前致谢。
我是 mbedtls 的新手。以下使用 openssl 将非常简单,但是我不知道从哪里开始。
我需要从像https://example.com这样的服务器捕获证书链作为类似于下面的字符串示例的字符串。格式化应该是最简单的部分,我只是不知道到底要使用什么。我假设 x509 模块。
c++ - 如何正确使用来自 mbedtls 的 aes cbc api
我目前的方法甚至没有根据 golang 的 aes 实现生成正确的加密数据。它也不会解密回原始明文,但如果加密步骤无法正常工作,这是可以预期的。我最好的猜测是我以某种方式滥用了 api。这是一个独立的示例,可以按原样运行。
输出:
在 golang 中使用相同键 iv 数据的预期输出:
ssl - FreeRTOS+TCP 和 mbedTLS+TCP
我有一个程序,它通过使用 FreeRTOS+TCP 在客户端(洗衣机)和服务器(HawkBit)之间成功传输数据,其中我们只有来自 FreeRTOS 的套接字,但现在我想通过它实现 TLS,我正在使用 mbedTLS 在其中我们再次拥有 TCP 连接功能、打开关闭套接字的功能、我们在 FreeRTOS 中拥有的每个功能现在我不知道该怎么办......!有没有可能使用 FreeRTOS+TCP 中的套接字,只是在上面做 mbedTLS 的 CA 认证!或者我需要用 mbedTLS 再次实现我之前用 freeRTOS 实现的一切!
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 的要求?
c - 从 Visual Studio 的源代码构建时出现 libcurl 重新定义错误
我正在尝试从源代码构建 libcurl 而不使用 Visual Studio 的 dll,但出现重新定义错误 Error list
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/BAQDAgKE MAwGCCqGSM49BAMCBQADSAAwRQIgPa8BVP5Bt2YLQ3DHEbGsg79nJbtTSAKmAPaa 5NLEIEcCIQCENcnKEdTKV0L/1c3evynH/hP97mid58trLgBRlFU3Dw== -----END CERTIFICATE-----
但该认证在 Firefox/Edge 上运行良好。
如果我将自签名证书更改为 RSA 1024,Chrome 中的 https 连接就可以了。
ubuntu - mbedtls websocket 客户端库
我想使用 mbedtls 库在 Ubuntu 上用作 websocket 客户端。
有人可以指出一些低占用空间的包装库,因为 mbedtls 本身似乎不支持开箱即用的 websockets 客户端。我的服务器是一个 node.js 实现。我想要一个最小的 C 库通过 websockets 连接到它。
c - X.509 DER 格式证书到 PEM 格式
如何使用 MbedTLS 将 DER 格式的 X.509 证书转换为 PEM 形式?实际上,我收到的证书是 BASE64 编码的,在执行 BASE64 解码时,它会提供 DER 格式的证书,但我需要 PEM 格式并希望使用 MbedTLS 将获得的 DER 格式证书转换为 PEM。
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 隧道经验的人可以提供帮助。
提前致谢