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

package org.bouncycastle.pqc.crypto.saber;

import org.bouncycastle.crypto.EncapsulatedSecretExtractor;

public class SABERKEMExtractor implements EncapsulatedSecretExtractor
{
    private SABEREngine engine;
    private SABERKeyParameters key;
    
    public SABERKEMExtractor(final SABERKeyParameters key) {
        this.key = key;
        this.initCipher(this.key.getParameters());
    }
    
    private void initCipher(final SABERParameters saberParameters) {
        this.engine = saberParameters.getEngine();
    }
    
    @Override
    public byte[] extractSecret(final byte[] array) {
        final byte[] array2 = new byte[this.engine.getSessionKeySize()];
        this.engine.crypto_kem_dec(array2, array, ((SABERPrivateKeyParameters)this.key).getPrivateKey());
        return array2;
    }
    
    @Override
    public int getEncapsulationLength() {
        return this.engine.getCipherTextSize();
    }
}
