【发布时间】:2015-08-03 11:50:00
【问题描述】:
我正在开发一个项目,该软件使用 GnuPG 二进制文件进行加密操作。有些函数有 OpenPGP 加密输出,有些函数采用 OpenPGP 加密输入。
为了进行单元测试,我的计划是为 unittest@project.example.com 生成一个无密码密钥并将其包含在存储库中。这(自然)会使密钥不适合生产使用,但这很好,因为用户应该生成/使用自己的密钥。
现在我的问题。如果密钥包含在存储库中,任何人都可以将其上传到密钥服务器,使用它来签署他/她自己的密钥,或撤销它(并上传撤销)。 GPG 可以自动从密钥服务器下载密钥,在个人密钥环中拥有这样的密钥(其中私钥是公共知识)似乎是不明智的。
是否可以将已撤销的密钥版本上传到密钥服务器(因此没有人会信任它)并在存储库中包含未撤销密钥的密钥版本?这是否可以解决密钥出现并在个人钥匙串中被信任的问题,同时仍然允许使用相同的密钥进行单元测试?
【问题讨论】:
-
为什么不以非交互方式为每次测试运行生成新密钥?
-
那么我还必须为每次测试运行更改测试用例。加密的有效负载是预期输出的一部分。
标签: unit-testing security gnupg pgp openpgp