1818public class JcaSimpleSignerInfoVerifierBuilder
1919{
2020 private Helper helper = new Helper ();
21+ private DigestCalculatorProvider digestCalculatorProvider = null ;
2122
2223 public JcaSimpleSignerInfoVerifierBuilder setProvider (Provider provider )
2324 {
@@ -33,22 +34,42 @@ public JcaSimpleSignerInfoVerifierBuilder setProvider(String providerName)
3334 return this ;
3435 }
3536
37+ public JcaSimpleSignerInfoVerifierBuilder setDigestCalculatorProvider (DigestCalculatorProvider digestCalculatorProvider )
38+ {
39+ this .digestCalculatorProvider = digestCalculatorProvider ;
40+
41+ return this ;
42+ }
43+
3644 public SignerInformationVerifier build (X509CertificateHolder certHolder )
3745 throws OperatorCreationException , CertificateException
3846 {
39- return new SignerInformationVerifier (new DefaultCMSSignatureAlgorithmNameGenerator (), new DefaultSignatureAlgorithmIdentifierFinder (), helper .createContentVerifierProvider (certHolder ), helper . createDigestCalculatorProvider ());
47+ return new SignerInformationVerifier (new DefaultCMSSignatureAlgorithmNameGenerator (), new DefaultSignatureAlgorithmIdentifierFinder (), helper .createContentVerifierProvider (certHolder ), getDigestCalculatorProvider ());
4048 }
4149
4250 public SignerInformationVerifier build (X509Certificate certificate )
4351 throws OperatorCreationException
4452 {
45- return new SignerInformationVerifier (new DefaultCMSSignatureAlgorithmNameGenerator (), new DefaultSignatureAlgorithmIdentifierFinder (), helper .createContentVerifierProvider (certificate ), helper . createDigestCalculatorProvider ());
53+ return new SignerInformationVerifier (new DefaultCMSSignatureAlgorithmNameGenerator (), new DefaultSignatureAlgorithmIdentifierFinder (), helper .createContentVerifierProvider (certificate ), getDigestCalculatorProvider ());
4654 }
4755
4856 public SignerInformationVerifier build (PublicKey pubKey )
4957 throws OperatorCreationException
5058 {
51- return new SignerInformationVerifier (new DefaultCMSSignatureAlgorithmNameGenerator (), new DefaultSignatureAlgorithmIdentifierFinder (), helper .createContentVerifierProvider (pubKey ), helper .createDigestCalculatorProvider ());
59+ return new SignerInformationVerifier (new DefaultCMSSignatureAlgorithmNameGenerator (), new DefaultSignatureAlgorithmIdentifierFinder (), helper .createContentVerifierProvider (pubKey ), getDigestCalculatorProvider ());
60+ }
61+
62+ private DigestCalculatorProvider getDigestCalculatorProvider ()
63+ throws OperatorCreationException
64+ {
65+ if (digestCalculatorProvider != null )
66+ {
67+ return digestCalculatorProvider ;
68+ }
69+ else
70+ {
71+ return helper .createDigestCalculatorProvider ();
72+ }
5273 }
5374
5475 private static class Helper
0 commit comments