【发布时间】:2020-03-23 07:36:08
【问题描述】:
Mbedtls 可以使用其mbedtls_x509_crt_verify(...) 函数 (link) 验证 x509 证书。
但是,我有什么:
- 公钥/私钥对(保存在
mbedtls_pk_context中)。 - 我从其他来源获得的证书(因此,不能保证它不包含任何可能的智能修改)。
证书的验证没有问题。
但是,如果该证书验证了不同的密钥怎么办?(可能是软件问题和破解尝试的结果。)当然,这样的密钥/证书对将无法tls 握手,但我认为我不需要为此建立一个 tcp 连接。
还有一个mbedtls_pk_verify(...) 函数(ref),但在我看来,它主要与签名一起使用。但是我没有签名,我有一个证书(以 pem 格式获得)和我的密钥(我也有一个 pem 格式的密钥)。将它们处理成内部 mbedtls 数据结构(mbedtls_x509_crt 和 mbedtls_pk_context)不是问题,但我如何验证它们是否匹配?
【问题讨论】:
-
注意,这个问题不问示例代码,也不是“做我的工作”的问题。这个问题的本质是:如何验证我的
mbedtls_pk_context和我的mbedtls_x509_cert匹配?