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

package org.bouncycastle.pqc.crypto.lms;

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

public class LMSKeyPairGenerator implements AsymmetricCipherKeyPairGenerator
{
    LMSKeyGenerationParameters param;
    
    @Override
    public void init(final KeyGenerationParameters keyGenerationParameters) {
        this.param = (LMSKeyGenerationParameters)keyGenerationParameters;
    }
    
    @Override
    public AsymmetricCipherKeyPair generateKeyPair() {
        final SecureRandom random = this.param.getRandom();
        final byte[] bytes = new byte[16];
        random.nextBytes(bytes);
        final LMSigParameters lmSigParam = this.param.getParameters().getLMSigParam();
        final byte[] bytes2 = new byte[lmSigParam.getM()];
        random.nextBytes(bytes2);
        final LMSPrivateKeyParameters generateKeys = LMS.generateKeys(lmSigParam, this.param.getParameters().getLMOTSParam(), 0, bytes, bytes2);
        return new AsymmetricCipherKeyPair(generateKeys.getPublicKey(), generateKeys);
    }
}
