【问题标题】:How do I use Go's openpgp package?如何使用 Go 的 openpgp 包?
【发布时间】:2011-10-15 01:28:48
【问题描述】:

我一直在查看 documentation 的 Go 的 openpgp 包,我想我一定遗漏了一些明显的点。例如,有一个ReadKeyRing 函数,但没有WriteKeyRing。另一方面,我可以SerializeEntity,但我无法将其读回。这里发生了什么?真的有人用过这个包吗?

【问题讨论】:

  • Camlistore (camlistore.org) 是该软件包的主要用户(和动机)。

标签: go pgp openpgp


【解决方案1】:

一个实体表示公共+私有 GPG 密钥信息。 ReadKeyRing 函数允许您读取 GPG 密钥列表。

Entity.Serialize function documentation 声明:

序列化将给定实体的公共部分写入 w。 (不会输出任何私钥材料)。

由于它只是实体的公共部分,你可以用序列化的数据作为公钥创建一个新的实体。

WriteKeyRing 确实不存在。它会遍历实体列表并将公钥提取到一个数组中。

【讨论】:

  • 您所说的一切都在文档中,但我仍然不明白如何使用该软件包。例如,假设我想要一个程序,当传递一个标志时,它将创建一个密钥对并将其写入文件;当传递一个不同的标志时,它应该读取该密钥对并使用它来签署一些东西。我怎么能只用 ReadKeyRingSerialize(Private) 做到这一点?
  • 您不能按原样使用 Gos GPG 包创建密钥对。您只能使用已经存在的密钥。
【解决方案2】:

我也为此苦苦挣扎 - 最后我只是通过示例学习了它:

这背后的想法不是为用户而设计的,但似乎强烈地来自于 pgp 在技术上实现的实际方式。

我建议不要通过包生成密钥,而只是使用 pgp 命令行工具。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    相关资源
    最近更新 更多