将GPG签名添加到已签名的文档中?

问题描述:

我们希望实施一个需要多人进行数字签名文档的工作流程。如果我有多个密钥在我自己的钥匙串,我可以做简单的东西:将GPG签名添加到已签名的文档中?

gpg --sign -u userid1 -u userid2 filename 

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

+0

https://lists.gnupg.org/pipermail/gnupg-users/2013-July/047118.html – 2015-04-11 08:03:30

+0

感谢您的链接! – larsks 2015-04-11 21:44:00

不需要ZIP压缩:您可以简单地在单个文件中连接分离的签名,并且所有的签名都将被一个接一个地验证。

% 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 <[email protected]>" 
gpg: Signature made Mar 1 Set 18:16:25 2009 CEST using RSA key ID $ID2 
gpg: Good signature from "Lapo Luchini <[email protected]>" 

我已经验证了这个工程,以及有坚韧的ASCII铠文件,在这种情况下,因为头被重复每个签名,它可能是最好先串联二进制输出文件大小是次优签名和他们的ASCII装甲整个事情。

我不知道OpenPGP格式是否足够确定,但我猜你也可能有一个软件,在给定文件和一些分离签名的情况下,使用从所有他们,尽管这需要更多的时间来实现(如果可能的话:可能有不同的数据包用于连接和分离的签名,一个不能在另一个中转换,但我敢打赌,数据包只有一种类型)。