【发布时间】:2017-12-14 19:05:20
【问题描述】:
Go 的 official documentation 中为 x509.ParsePKIXPublicKey 给出的示例遇到运行时错误,因为 pem.Decode() 返回的 Block 是 nil。
(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)
是什么导致第一个失败而第二个失败?
【问题讨论】: