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

package org.bouncycastle.pqc.crypto.frodo;

import org.bouncycastle.crypto.EncapsulatedSecretExtractor;

public class FrodoKEMExtractor implements EncapsulatedSecretExtractor
{
    private FrodoEngine engine;
    private FrodoKeyParameters key;
    
    public FrodoKEMExtractor(final FrodoKeyParameters key) {
        this.key = key;
        this.initCipher(this.key.getParameters());
    }
    
    private void initCipher(final FrodoParameters frodoParameters) {
        this.engine = frodoParameters.getEngine();
    }
    
    @Override
    public byte[] extractSecret(final byte[] array) {
        final byte[] array2 = new byte[this.engine.getSessionKeySize()];
        this.engine.kem_dec(array2, array, ((FrodoPrivateKeyParameters)this.key).getPrivateKey());
        return array2;
    }
    
    @Override
    public int getEncapsulationLength() {
        return this.engine.getCipherTextSize();
    }
}
