【问题标题】:GnuTLS: Error during import of CertifcateGnuTLS:导入证书时出错
【发布时间】:2015-05-18 13:18:47
【问题描述】:

我在使用 GnuTLS 库导入证书时遇到问题。我生成了一个自签名证书,我想将它导入到我的 C++ 代码中,以进一步处理它。我使用fopen 阅读了证书。我将它保存到 gnutls_datum_t-type ,这似乎是 FILE-typelength of the FILE-type 的元组。为什么我的代码会抛出Error Value: -207,这意味着Base64 unexpected header error

当我查找证书的类型时,它告诉我是pkix-cert+pem,但我也尝试了x-x509-cert。全部使用 certtool 生成。

当我更改输入的预期格式时,错误值更改为 -73,这意味着 ASN1 解析器:TAG 中的错误

当我打印 FILE 类型时,我可以看到通常的证书结构。

我的错是什么?

【问题讨论】:

  • 也许您的证书不是PEM 格式(这是base64 编码的数据)并且GNUTLS_X509_FMT_DER 可以完成这项工作?
  • @frymode 这将问题更改为 -73: ASN1 parser: Error in TAG

标签: c++ x509certificate x509 pem gnutls


【解决方案1】:

gnutls_datum_t 是一个缓冲区及其长度。

这可能会在给定一些文本 certPem 的情况下对其进行初始化:

gnutls_datum_t certDat;
certDat.data = (unsigned char *)certPem;
certDat.size = strlen(certPem) + 1;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 2016-01-12
    • 2011-03-11
    • 1970-01-01
    • 2021-06-26
    相关资源
    最近更新 更多