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

package org.bouncycastle.pqc.crypto.mldsa;

import org.bouncycastle.crypto.params.AsymmetricKeyParameter;
import org.bouncycastle.crypto.AsymmetricCipherKeyPair;
import org.bouncycastle.crypto.KeyGenerationParameters;
import java.security.SecureRandom;
import org.bouncycastle.crypto.AsymmetricCipherKeyPairGenerator;

public class MLDSAKeyPairGenerator implements AsymmetricCipherKeyPairGenerator
{
    private MLDSAParameters parameters;
    private SecureRandom random;
    
    @Override
    public void init(final KeyGenerationParameters keyGenerationParameters) {
        this.parameters = ((MLDSAKeyGenerationParameters)keyGenerationParameters).getParameters();
        this.random = keyGenerationParameters.getRandom();
    }
    
    @Override
    public AsymmetricCipherKeyPair generateKeyPair() {
        final byte[][] generateKeyPair = this.parameters.getEngine(this.random).generateKeyPair();
        return new AsymmetricCipherKeyPair(new MLDSAPublicKeyParameters(this.parameters, generateKeyPair[0], generateKeyPair[6]), new MLDSAPrivateKeyParameters(this.parameters, generateKeyPair[0], generateKeyPair[1], generateKeyPair[2], generateKeyPair[3], generateKeyPair[4], generateKeyPair[5], generateKeyPair[6], generateKeyPair[7]));
    }
}
