【问题标题】:How to import der certificate in wolfssl using wc_EccPublicKeyDecode如何使用 wc_EccPublicKeyDecode 在 wolfssl 中导入 der 证书
【发布时间】:2019-09-18 12:04:33
【问题描述】:

我尝试导入证书的公钥以将其置于 ecc_key 结构中以供进一步使用。

为此,我在 wolfssl API 文档中找到了这个 wc_EccPublicKeyDecode 函数。我尝试使用它来将证书加载到 ecc_key 结构中。

const byte b64_cert[] = "MIIB6TCCAY+gAwIBAgIJAPhfFTGxGQMtMAoGCCqGSM49BAMCMFExCzAJBgNVBAYT"
                        "AlhYMQswCQYDVQQIDAJYWDELMAkGA1UEBwwCWFgxCzAJBgNVBAoMAlhYMQswCQYD"
                        "VQQLDAJYWDEOMAwGA1UEAwwFWFhYWFgwHhcNMTkwOTE4MTExMDQ3WhcNMjAwOTE3"
                        "MTExMDQ3WjBRMQswCQYDVQQGEwJYWDELMAkGA1UECAwCWFgxCzAJBgNVBAcMAlhY"
                        "MQswCQYDVQQKDAJYWDELMAkGA1UECwwCWFgxDjAMBgNVBAMMBVhYWFhYMFkwEwYH"
                        "KoZIzj0CAQYIKoZIzj0DAQcDQgAEOJdKmIL9KXUMcrR2obrUuyDsWoj7GFYxnGAI"
                        "wKz7aWgKenLL9pOTs5xhIkeZIEekkRayhV++CqMzEHRJhF6vNaNQME4wHQYDVR0O"
                        "BBYEFKtf9OtFyPb7GIkxjXsc8LbI6p4xMB8GA1UdIwQYMBaAFKtf9OtFyPb7GIkx"
                        "jXsc8LbI6p4xMAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIhANN9YLSc"
                        "VcEQn/JEKcdPxdR70SnDkEa0hCrm3yiZqXSAAiB9krAmY/Shv2yq2sTD+84x7s9K"
                        "XcPcX00w1JyeaIbaDw==";

uint8_t der_cert[1000] = {0};
word32 size_of_cert = 1000;
ecc_key eccKey;
int wolfssl_ret = wc_ecc_init(&eccKey);

Base64_Decode(b64_cert, sizeof(b64_cert), der_cert, &size_of_cert);
word32 idx = 0;
wolfssl_ret = wc_EccPublicKeyDecode( der_cert, &idx, &eccKey, size_of_cert );
printf("wc_EccPublicKeyDecode failed! Wolfssl error = %d", wolfssl_ret);

但不幸的是,我总是收到 ASN_OBJECT_ID_E (-144) 错误代码:

wc_EccPublicKeyDecode failed! Wolfssl error = -144

那我做错了什么?我使用了错误的功能吗? 我还能如何将 DER/PEM 证书导入 ecc_key 结构?

【问题讨论】:

    标签: c cryptography asn.1 wolfssl


    【解决方案1】:

    就像你提到的,你有一个证书,你正试图将它传递给一个只需要一个密钥而不是证书的 API。

    尝试使用 InitDecodedCert()、ParseCert(),首先将证书解码为 DecodedCert 结构中的各个部分。然后将 cert->publicKey 传递给 wc_EccPublicKeyDecode()! (完成后不要忘记 FreeDecodedCert())。

    注意:您需要使用设置 WOLFSSL_TEST_CERTParseCert() 公开给调用应用程序,默认情况下它是一个不透明的 API。

    如果您有任何后续问题并获得最佳响应时间,您可以通过 support@wolfssl.com 联系 wolfSSL 支持团队。

    谢谢!

    • KH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-12
      • 1970-01-01
      • 1970-01-01
      • 2014-02-24
      • 2013-12-21
      • 2013-04-25
      • 1970-01-01
      • 2012-12-08
      相关资源
      最近更新 更多