【问题标题】:How do I decode a PEM-encoded PKIX public key?如何解码 PEM 编码的 PKIX 公钥?
【发布时间】:2017-12-14 19:05:20
【问题描述】:

Go 的 official documentation 中为 x509.ParsePKIXPublicKey 给出的示例遇到运行时错误,因为 pem.Decode() 返回的 Blocknil。 (Playground example)

但是,official documentation 中用于pem.Decode() 的示例运行良好。 (Playground example)

我发现这两个示例之间的唯一区别是公钥的初始化方式以及它们在 pem.Decode() 中的使用方式。

第一个例子:

const pubPEM = `
    -----BEGIN PUBLIC KEY-----
    ...
    -----END PUBLIC KEY-----`
block, _ := pem.Decode([]byte(pubPEM))

第二个例子:

var pubPEMData = []byte(`
    -----BEGIN PUBLIC KEY-----
    ...
    -----END PUBLIC KEY-----`)
block, rest := pem.Decode(pubPEMData)

我已经编辑了第一个示例,使其以与第二个相同的方式完成,但这并没有改变结果。 (Playground example)

是什么导致第一个失败而第二个失败?

【问题讨论】:

    标签: go pem


    【解决方案1】:

    你的字符串中有空格,删除它们就可以了:fixed example

    【讨论】:

    • 谢谢,我不知道这些空格是怎么添加的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-13
    • 2022-10-06
    • 2017-11-11
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    相关资源
    最近更新 更多