gpt4 book ai didi

ssl - 我如何使用 mbedtls 验证证书是否验证了 key ?

转载 作者:太空宇宙 更新时间:2023-11-03 13:19:47 25 4
gpt4 key购买 nike

Mbedtls 可以使用其 mbedtls_x509_crt_verify(...) 函数 ( link ) 验证 x509 证书。

但是,我有:

  • 公钥/私钥对(保存在 mbedtls_pk_context 中)。
  • 我从不同来源获得的证书(因此,不能保证它不包含任何可能的智能修改)。

证书验证没有问题。

但是,如果该证书验证不同的 key 怎么办?(这可能是软件问题和破解尝试的结果。)当然,这样的 key /证书对将无法用于 tls 握手,但我认为我不需要为此建立 tcp 连接。

This source (尽管它用于 openssl 脚本)使得证书 key 匹配验证有可能通过简单的模数匹配发生。

还有一个 mbedtls_pk_verify(...) 函数 ( ref ),但在我看来它主要使用签名。但是我没有签名,我有一个证书(以 pem 格式获得)和我的 key (我也有一个 pem 格式)。将它们处理成内部 mbedtls 数据结构(mbedtls_x509_crtmbedtls_pk_context)不是问题,但我如何验证它们是否匹配?

最佳答案

我知道这是一个较老的问题,但也许 mbedtls_pk_check_pair 就是您要找的。将您的私钥/公钥对和证书公钥传递给它。

/**
* \brief Check if a public-private pair of keys matches.
*
* \param pub Context holding a public key.
* \param prv Context holding a private (and public) key.
*
* \return \c 0 on success (keys were checked and match each other).
* \return #MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE if the keys could not
* be checked - in that case they may or may not match.
* \return #MBEDTLS_ERR_PK_BAD_INPUT_DATA if a context is invalid.
* \return Another non-zero value if the keys do not match.
*/
int mbedtls_pk_check_pair( const mbedtls_pk_context *pub, const mbedtls_pk_context *prv );

关于ssl - 我如何使用 mbedtls 验证证书是否验证了 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59075404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com