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

package org.bouncycastle.pqc.crypto.mlkem;

import org.bouncycastle.crypto.EncapsulatedSecretExtractor;

public class MLKEMExtractor implements EncapsulatedSecretExtractor
{
    private final MLKEMPrivateKeyParameters privateKey;
    private final MLKEMEngine engine;
    
    public MLKEMExtractor(final MLKEMPrivateKeyParameters privateKey) {
        if (privateKey == null) {
            throw new NullPointerException("'privateKey' cannot be null");
        }
        this.privateKey = privateKey;
        this.engine = privateKey.getParameters().getEngine();
    }
    
    @Override
    public byte[] extractSecret(final byte[] array) {
        return this.engine.kemDecrypt(this.privateKey, array);
    }
    
    @Override
    public int getEncapsulationLength() {
        return this.engine.getCryptoCipherTextBytes();
    }
}
