【发布时间】:2018-08-02 23:50:13
【问题描述】:
我正在尝试使用 Go 的 openpgp/armor 包以 ASCII 装甲编码打印 PGP 公钥。
我期望的输出:
-----BEGIN PGP PUBLIC KEY BLOCK-----
<base64 encoded bytes of public key>
<checksum>
-----END PGP PUBLIC KEY BLOCK-----
我得到的输出:
-----BEGIN PGP PUBLIC KEY BLOCK-----
<first part of base64 encoded bytes of public key>
它只打印公钥的第一部分。
公钥从本地keyring文件中获取,处理如下:
keyRingFileBuffer, err := os.Open(keyRingFilePath)
if err != nil {
log.Fatal(err)
}
defer keyRingFileBuffer.Close()
keyRing,err := openpgp.ReadKeyRing(keyRingFileBuffer)
if err != nil {
log.Fatal(err)
}
for _, k := range keyRing {
w, _ := armor.Encode(os.Stdout, openpgp.PublicKeyType, nil)
k.PrimaryKey.Serialize(w)
}
我是否错误地使用了该软件包?关于如何跟踪这个(在我看来)错误输出的原因的任何想法?
【问题讨论】:
-
虽然我自己找到了答案,但我很乐意将赏金奖励给任何找到更清晰答案的人
标签: go public-key-encryption gnupg pgp openpgp