262.4. PGP 署名検証中の署名者 ID の制限

Since Camel 2.12.3.

署名を検証する場合、署名の正確性を検証するだけでなく、署名が特定の ID または特定の ID のセットに由来することも確認する必要があります。したがって、署名の検証に使用できる公開キーリングからの公開鍵の数を制限することができます。 

署名ユーザー ID

// specify the User IDs of the expected signer identities
 List<String> expectedSigUserIds = new ArrayList<String>();
 expectedSigUserIds.add("Trusted company1");
 expectedSigUserIds.add("Trusted company2");
 
 PGPDataFormat pgpVerifyWithSpecificKeysAndDecrypt = new PGPDataFormat();
 pgpVerifyWithSpecificKeysAndDecrypt.setPassword("my password"); // for decrypting with private key
 pgpVerifyWithSpecificKeysAndDecrypt.setKeyFileName(keyfileName);
 pgpVerifyWithSpecificKeysAndDecrypt.setSignatureKeyFileName(signatgureKeyfileName);
 pgpVerifyWithSpecificKeysAndDecrypt.setSignatureKeyUserids(expectedSigUserIds); // if you have only one signer identity then you can also use setSignatureKeyUserid("expected Signer")
 
from("direct:start")
         ...
        .unmarshal(pgpVerifyWithSpecificKeysAndDecrypt)
        ...
  • PGP コンテンツに複数の署名がある場合、1 つの署名が検証されるとすぐに検証が成功します。
  • 検証のために署名者 ID を制限したくない場合は、署名鍵のユーザー ID を指定しないでください。この場合、公開キーリング内のすべての公開鍵が考慮されます。