代码之家  ›  专栏  ›  技术社区  ›  larsks

是否向已签名的文档添加OpenPGP签名?[关闭]

  •  6
  • larsks  · 技术社区  · 16 年前

    我们希望实现一个需要多个人对文档进行数字签名的工作流。如果我自己的钥匙链中有多个密钥,我可以做一些简单的事情:

    gpg --sign -u userid1 -u userid2 filename
    

    但是如果我有一份已经签署的文件,我想怎么办 添加 签名?一种解决方案是让每个人都为文档生成分离的签名,然后将它们全部打包到一个zip文件或其他文件中,但是开销要大得多。有更好的方法吗?

    1 回复  |  直到 8 年前
        1
  •  4
  •   lapo    16 年前

    无需对其进行压缩:只需将分离的签名连接到一个文件中,所有签名都将逐个进行验证。

    % gpg -b -u $ID1 -o prova.c.sig1 prova.c
    % gpg -b -u $ID2 -o prova.c.sig2 prova.c
    % cat prova.c.sig1 prova.c.sig2 >prova.c.sig
    % gpg prova.c.sig
    gpg: Signature made Mar  1 Set 18:16:09 2009 CEST using RSA key ID $ID1
    gpg: Good signature from "Lapo Luchini <lapo@lapo.it>"
    gpg: Signature made Mar  1 Set 18:16:25 2009 CEST using RSA key ID $ID2
    gpg: Good signature from "Lapo Luchini <lapo@lapo.it>"
    

    我已经验证了这一点,也适用于ASCII装甲文件,在这种情况下,输出文件的大小是次优的,因为每个签名的头都是重复的,最好先连接二进制签名,然后用ASCII装甲整个文件。

    我不太清楚openpgp格式,但我想您可能也有一个软件,给定一个文件和一些分离的签名,用从所有文件中提取的签名包生成单个附加签名,尽管这需要更多的时间来实现(如果可能的话:可能有不同的包用于附加和分离的签名,其中一个不能在另一个中转换,但我敢打赌数据包只是一种类型)。