263.5. 单个 PGP 数据格式的多个签名
自 Camel 2.12.3.
PGP 规范允许一个 PGP 数据格式可以包含来自不同密钥的多个签名。从 Camel 2.13.3 开始,可以通过指定与 secret 密钥环中的多个私钥相关的签名用户 ID 来创建此类 PGP 内容。
多个签名
PGPDataFormat pgpSignAndEncryptSeveralSignerKeys = new PGPDataFormat();
pgpSignAndEncryptSeveralSignerKeys.setKeyUserid(keyUserid); // for encrypting, you can also use setKeyUserids if you want to encrypt with several keys
pgpSignAndEncryptSeveralSignerKeys.setKeyFileName(keyfileName);
pgpSignAndEncryptSeveralSignerKeys.setSignatureKeyFileName(signatgureKeyfileName);
pgpSignAndEncryptSeveralSignerKeys.setSignaturePassword("sdude"); // here we assume that all private keys have the same password, if this is not the case then you can use setPassphraseAccessor
List<String> signerUserIds = new ArrayList<String>();
signerUserIds.add("company old key");
signerUserIds.add("company new key");
pgpSignAndEncryptSeveralSignerKeys.setSignatureKeyUserids(signerUserIds);
from("direct:start")
...
.marshal(pgpSignAndEncryptSeveralSignerKeys)
...