| package org.bouncycastle.pkcs.bc; |
| |
| import org.bouncycastle.asn1.DERNull; |
| import org.bouncycastle.asn1.pkcs.PKCS12PBEParams; |
| import org.bouncycastle.asn1.x509.AlgorithmIdentifier; |
| import org.bouncycastle.operator.MacCalculator; |
| import org.bouncycastle.operator.OperatorCreationException; |
| import org.bouncycastle.operator.bc.BcDigestProvider; |
| import org.bouncycastle.pkcs.PKCS12MacCalculatorBuilder; |
| import org.bouncycastle.pkcs.PKCS12MacCalculatorBuilderProvider; |
| |
| public class BcPKCS12MacCalculatorBuilderProvider |
| implements PKCS12MacCalculatorBuilderProvider |
| { |
| private BcDigestProvider digestProvider; |
| |
| public BcPKCS12MacCalculatorBuilderProvider(BcDigestProvider digestProvider) |
| { |
| this.digestProvider = digestProvider; |
| } |
| |
| public PKCS12MacCalculatorBuilder get(final AlgorithmIdentifier algorithmIdentifier) |
| { |
| return new PKCS12MacCalculatorBuilder() |
| { |
| public MacCalculator build(final char[] password) |
| throws OperatorCreationException |
| { |
| PKCS12PBEParams pbeParams = PKCS12PBEParams.getInstance(algorithmIdentifier.getParameters()); |
| |
| return PKCS12PBEUtils.createMacCalculator(algorithmIdentifier.getAlgorithm(), digestProvider.get(algorithmIdentifier), pbeParams, password); |
| } |
| |
| public AlgorithmIdentifier getDigestAlgorithmIdentifier() |
| { |
| return new AlgorithmIdentifier(algorithmIdentifier.getAlgorithm(), DERNull.INSTANCE); |
| } |
| }; |
| } |
| } |