// 
// Decompiled by Procyon v0.6.0
// 

package org.bouncycastle.pkcs;

import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
import java.io.OutputStream;
import org.bouncycastle.operator.MacCalculator;
import org.bouncycastle.asn1.pkcs.PKCS12PBEParams;
import org.bouncycastle.util.Strings;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
import org.bouncycastle.asn1.x509.DigestInfo;
import org.bouncycastle.asn1.pkcs.MacData;

class MacDataGenerator
{
    private PKCS12MacCalculatorBuilder builder;
    
    MacDataGenerator(final PKCS12MacCalculatorBuilder builder) {
        this.builder = builder;
    }
    
    public MacData build(final char[] array, final byte[] b) throws PKCSException {
        MacCalculator build;
        try {
            build = this.builder.build(array);
            final OutputStream outputStream = build.getOutputStream();
            outputStream.write(b);
            outputStream.close();
        }
        catch (final Exception ex) {
            throw new PKCSException("unable to process data: " + ex.getMessage(), ex);
        }
        final AlgorithmIdentifier algorithmIdentifier = build.getAlgorithmIdentifier();
        final DigestInfo digestInfo = new DigestInfo(this.builder.getDigestAlgorithmIdentifier(), build.getMac());
        byte[] array2;
        int intValue;
        if (PKCSObjectIdentifiers.id_PBMAC1.equals(digestInfo.getAlgorithmId().getAlgorithm())) {
            array2 = Strings.toUTF8ByteArray("NOT USED".toCharArray());
            intValue = 1;
        }
        else {
            final PKCS12PBEParams instance = PKCS12PBEParams.getInstance(algorithmIdentifier.getParameters());
            array2 = instance.getIV();
            intValue = instance.getIterations().intValue();
        }
        return new MacData(digestInfo, array2, intValue);
    }
}
