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

package org.bouncycastle.cms.jcajce;

import org.bouncycastle.operator.AsymmetricKeyUnwrapper;
import org.bouncycastle.operator.jcajce.JceSymmetricKeyUnwrapper;
import org.bouncycastle.operator.SymmetricKeyUnwrapper;
import javax.crypto.SecretKey;
import org.bouncycastle.operator.jcajce.JceKTSKeyUnwrapper;
import org.bouncycastle.operator.jcajce.JceAsymmetricKeyUnwrapper;
import java.security.PrivateKey;
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
import java.security.Provider;
import org.bouncycastle.jcajce.util.ProviderJcaJceHelper;

class ProviderJcaJceExtHelper extends ProviderJcaJceHelper implements JcaJceExtHelper
{
    public ProviderJcaJceExtHelper(final Provider provider) {
        super(provider);
    }
    
    @Override
    public JceAsymmetricKeyUnwrapper createAsymmetricUnwrapper(final AlgorithmIdentifier algorithmIdentifier, PrivateKey cleanPrivateKey) {
        cleanPrivateKey = CMSUtils.cleanPrivateKey(cleanPrivateKey);
        return new JceAsymmetricKeyUnwrapper(algorithmIdentifier, cleanPrivateKey).setProvider(this.provider);
    }
    
    @Override
    public JceKTSKeyUnwrapper createAsymmetricUnwrapper(final AlgorithmIdentifier algorithmIdentifier, PrivateKey cleanPrivateKey, final byte[] array, final byte[] array2) {
        cleanPrivateKey = CMSUtils.cleanPrivateKey(cleanPrivateKey);
        return new JceKTSKeyUnwrapper(algorithmIdentifier, cleanPrivateKey, array, array2).setProvider(this.provider);
    }
    
    @Override
    public SymmetricKeyUnwrapper createSymmetricUnwrapper(final AlgorithmIdentifier algorithmIdentifier, final SecretKey secretKey) {
        return new JceSymmetricKeyUnwrapper(algorithmIdentifier, secretKey).setProvider(this.provider);
    }
    
    @Override
    public AsymmetricKeyUnwrapper createKEMUnwrapper(final AlgorithmIdentifier algorithmIdentifier, final PrivateKey privateKey) {
        return new JceCMSKEMKeyUnwrapper(algorithmIdentifier, privateKey).setProvider(this.provider);
    }
}
