问题标签 [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 Diffie-Hellman 中使用来自 Java 的 DER 密钥
我有一个 Java 应用程序正在为 Diffie-Hellman 密钥交换生成密钥。生成这些密钥,并导出公钥,如下所示:
其中包含的alicePubKeyEnc
是我发送到我的 C++ 应用程序的公钥。据我了解,此数据是我的 DHE 参数的编码 DER 密钥。另一方面,我尝试将此密钥与 mbedtls 一起使用,如下所示:
res
产生一个负的非零值 ( 0xffffcc1e
)。我检查了 mbedtls 中 x509 解析的错误代码,但找不到匹配的错误代码。
知道为什么我无法加载此证书吗?
更新
我更新了我的 C 代码以打印出 mbedtls 的相关错误消息:
所以我从我的密钥中获取了十六进制值并通过http://lapo.it/asn1js/运行它(<-- 链接了密钥的实际输出),这表明我的密钥有一些结构并且似乎解析了密钥正好。也许这是我如何将密钥传递给 mbedtls 的问题?
julia - 无法在 Julia 中安装 MbedTLS 包
我无法将唯一的“MbedTLS”包从网络导入到 Julia。在 Jupyter notebook 中使用 Julia 是必需的。我已经从 git 获取了它的压缩文件
但是,我不知道如何将它成功安装到 Julia。你可以帮帮我吗?错误消息是
"security protocol somthing..."
和"LoadError : Could not download https://github.com/quinnj/MbedTLSBuilder/releases/download/v0.6/MbedTLS.x86_64-w64-ming32.tar.gz to C:\Users\MYNAME\.julia\v0.6\Mbed"
此外,我重新安装"IJulia"
,然后,它出现"stackoverflow"
错误。这个程序有什么问题??
c - MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED
我试图将 Diffie-Hellman 密钥交换(客户端)编码到 XMC4500 中,我正在使用ARMmbed lib。
这是我得到的代码(基于dh_client.c):
int dhm(无效){
我没有尝试更进一步,因为它不起作用并且它是 dhm 算法的开始。函数mbedtls_ctr_drbg_seed正在返回MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED。
同样在ctr_drbg.h中,我必须将MBEDTLS_CTR_DRBG_MAX_SEED_INPUT从 384(默认)编辑为 336,否则代码会崩溃。其他一切都是默认的。
有人知道为什么返回此错误吗?提前致谢。
注意:我在 main 中调用此函数。运行代码没有给我任何错误。
amazon-web-services - mbedtls 熵生成 (nv_seed)
我正在使用 mbedtls 作为在我的硬件(SAM4E)上运行的亚马逊 FreeRTOS 的 TLS 库。
该库已被移植,我正在使用nv_seed方法生成随机数。我正在读取 32 位数据并将其写入 EEPROM。
我遇到了 TLS 握手失败(挂起)。调试后发现EEPROM保存和读取的数字一直都是一样的,这就是握手失败的原因。
我无法使用硬件生成随机数,因为我没有专用的 TRNG。所以,我必须以某种方式使播种工作。
mbedtls - 使用 libmbedtls-dev 安装 mbed TLS
我目前正在使用 mbed TLS,我发现了一些奇怪的东西:
我想使用 mbedtls_rsa_export_crt() 函数 [1] 提取私有 RSA 密钥的 CRT 参数。不幸的是,缺少该功能。问题似乎是我已经通过包管理器安装了库。具体我已经安装了 libmbedtls-dev 包 [2]。
[2] 中的代码是否已弃用或为什么缺少某些功能?
[1] https://tls.mbed.org/api/rsa_8h.html
[2] https://packages.debian.org/de/sid/libmbedtls-dev
谢谢您的支持
MK14
stm32 - mbedTLS 是否适用于 STM32 F1?
堆栈mbedTLS
由ST
for its提供,STM32 F7 microcontrollers
但不是 for STM32 F1
。
所以我想知道是否有原因,是否有可能mbedTLS
在STM32 F1
.
谢谢你。
curl - 使用 open_ssl 和 curl 验证服务器证书
我有一个嵌入式设备(运行 mbedTLS),它只能包含非常有限数量的服务器证书,我想验证我使用 curl 放在设备上的 PEM 文件。我正在使用 icanhazip.com (IPv6) 进行验证。要创建 PEM 文件,我使用 openSSL:
并将证书部分存储在 icanhazip_com.pem 中并尝试使用 curl 进行验证:
但我收到一个错误:
mbedtls - 如何使用 mbedtls 从证书中提取单个 OID?
我有一个 x509 证书加载到 mbedtls 中,我可以通过以下方式获取整个主题字段:
可以对输出进行字符串标记以提取特定字段,但这似乎容易出错。
是否有一种简单的方法来获取该字段的单个 OID 值,例如 CN 或 OU 条目?
ssl - 用于数据连接的 FTPS 客户端程序
我正在使用 LWIP 和 mbedTLS 堆栈的嵌入式系统中开发 FTPS 客户端。
现在,我要做的是:
- 使用 DHCP 获取 IP 地址
- 使用 DNS 获取服务器的 IP 地址
- 启动到服务器的 TCP 连接(控制连接)
- 使用命令 AUTH TLS 告诉 FTP 服务器我想使用 TLS 协议
- TLS 协议与服务器的握手
- 验证服务器发送的 x509 证书
- 告诉客户我想在被动模式下工作,并且我想用 RETR 命令读取文件。
现在,我需要打开一个数据连接来读取我的文件。所以我想知道的是数据连接是否以与控制连接相同的方式得到保护?这意味着我有要验证的证书吗?握手是一样的吗?
如果不清楚,请告诉我,我根本不是这方面的专家。
感谢您未来的回复
aes-gcm - 在 ESP32 解密上使用 mbedtls 的 AES128-GCM 不起作用
我目前正在开展一个项目,以使用带有 ESP-IDF 工具链的 ESP32 解密来自智能电表的字节流。(此处为感兴趣的人提供智能电表规范:P1PortSpecification.pdf,第 2.6 章第 9 页)。
我正在使用状态机将流拆分为文档中的不同部分,当将它们打印到终端时,我得到了预期的结果,所以我认为当前的输入是正确的。
进入解密有效负载的最终状态我不确定我是否正确使用了 mbedtls 库,因为我无法让它正常工作。使用的加密是 AES128-GCM,因此我使用的是 gcm.h。这是我当前的功能:
为您提供有关 Encrypted_Data 外观的更多详细信息:
将两个错误都打印到终端时,我看到 err1 = 0 和 err2 = -0x0012,即:
因此,我深入研究了 gcm.c 文件,发现只有 1 个地方使用了该定义(此处),但是其他一些东西引起了我的注意。我怀疑这是一个错误,但我无法真正理解这部分背后的原因
在这里找到。为什么它使用这种模式?如果我正在查看它的内容,cipher_info
它会告诉我它使用的是MBEDTLS_CIPHER_AES_128_ECB
as mbedtls_cipher_type_t
,而不是我最初所期望的MBEDTLS_CIPHER_AES_128_GCM
。这是一个问题吗?
总结一下我的主要问题:
- 这是一个意想不到
mbedtls_cipher_type_t
的问题吗? - 我是否正确使用了 mbedtls 功能?
- 开放寻求跟踪问题的建议,因为我仍然没有使用这个平台的经验。
谢谢阅读。