【问题标题】:error code -207 during import of certificate using GnuTLS使用 GnuTLS 导入证书期间出现错误代码 -207
【发布时间】:2015-06-11 09:02:28
【问题描述】:

我尝试导入证书,以便在我的 C++ 代码中处理它。我究竟做错了什么?以下是我在代码中执行的步骤:

我用gnutls_global_init()发起

我的程序中有一个 FILE 类型的对象,using fopen and fread

我将包含证书和 FILE 类型长度的 FILE 类型对象保存到 gnutls_datum_t 类型对象 (loaded_file) 中

我用gnutls_x509_crt_init(&cert)初始化了一个gnutls证书

我用gnutls_x509_crt_import(cert, &loaded_file, GNUTLS_X509_FMT_PEM)

我收到错误代码-207: Base64 unexpected header error...这是什么意思? 当我想使用 gnutls_x509_crt_print() 打印证书信息时,我得到以下信息:

证书[1424]:

X.509 证书信息:

版本:1

错误:get_serial:ASN1 解析器:找不到值。

发行人:

有效期:

   Not Before: Wed Dec 31 23:59:59 UTC 1969
    Not After: Wed Dec 31 23:59:59 UTC 1969

主题:

错误:get_signature_algorithm:ASN1 解析器:找不到值。

警告:使用可伪造的损坏签名算法进行签名。

错误:get_signature:ASN1 解析器:找不到值。

其他信息:

错误:get_fingerprint:ASN1 解析器:找不到值。

错误:get_key_id:ASN1 解析器:找不到值。


我尝试导入的证书是使用 certtool 创建的自签名证书。

我的导入链出了什么问题?

【问题讨论】:

  • 您尝试导入的证书似乎没有签名。你确定这不仅仅是一个证书请求吗?
  • 当我查看属性时,它说我的证书是 X.509-Certificate。这在我看来是一个有效的证书,可以将其导入 gnuTLS 格式,对吧?此外,它是自签名的。这会导致问题吗?
  • 检查证书格式(PEM、DEM)和功能预期
  • 证书格式是 PEM,正如您在上面看到的,预期的格式也是 PEM。

标签: certificate x509 c++ error-handling


【解决方案1】:

今天我得到了同样的错误代码。 在我的情况下,我使用了错误的缓冲区并尝试使用 gnutls_x509_crt_import 加载私钥而不是证书。 错误代码 -207 似乎是“我没有找到任何许可证”的通用代码。

因此,如果发生此错误,您应该始终检查输入缓冲区的数据是否正确。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多