| package org.bouncycastle.cms.bc; |
| |
| import org.bouncycastle.cert.X509CertificateHolder; |
| import org.bouncycastle.cms.CMSSignatureAlgorithmNameGenerator; |
| import org.bouncycastle.cms.SignerInformationVerifier; |
| import org.bouncycastle.crypto.params.AsymmetricKeyParameter; |
| import org.bouncycastle.operator.DigestAlgorithmIdentifierFinder; |
| import org.bouncycastle.operator.DigestCalculatorProvider; |
| import org.bouncycastle.operator.OperatorCreationException; |
| import org.bouncycastle.operator.SignatureAlgorithmIdentifierFinder; |
| import org.bouncycastle.operator.bc.BcRSAContentVerifierProviderBuilder; |
| |
| public class BcRSASignerInfoVerifierBuilder |
| { |
| private BcRSAContentVerifierProviderBuilder contentVerifierProviderBuilder; |
| private DigestCalculatorProvider digestCalculatorProvider; |
| private CMSSignatureAlgorithmNameGenerator sigAlgNameGen; |
| private SignatureAlgorithmIdentifierFinder sigAlgIdFinder; |
| |
| public BcRSASignerInfoVerifierBuilder(CMSSignatureAlgorithmNameGenerator sigAlgNameGen, SignatureAlgorithmIdentifierFinder sigAlgIdFinder, DigestAlgorithmIdentifierFinder digestAlgorithmFinder, DigestCalculatorProvider digestCalculatorProvider) |
| { |
| this.sigAlgNameGen = sigAlgNameGen; |
| this.sigAlgIdFinder = sigAlgIdFinder; |
| this.contentVerifierProviderBuilder = new BcRSAContentVerifierProviderBuilder(digestAlgorithmFinder); |
| this.digestCalculatorProvider = digestCalculatorProvider; |
| } |
| |
| public SignerInformationVerifier build(X509CertificateHolder certHolder) |
| throws OperatorCreationException |
| { |
| return new SignerInformationVerifier(sigAlgNameGen, sigAlgIdFinder, contentVerifierProviderBuilder.build(certHolder), digestCalculatorProvider); |
| } |
| |
| public SignerInformationVerifier build(AsymmetricKeyParameter pubKey) |
| throws OperatorCreationException |
| { |
| return new SignerInformationVerifier(sigAlgNameGen, sigAlgIdFinder, contentVerifierProviderBuilder.build(pubKey), digestCalculatorProvider); |
| } |
| } |