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

package org.bouncycastle.pqc.jcajce.spec;

import java.util.HashMap;
import org.bouncycastle.pqc.crypto.lms.LMOtsParameters;
import org.bouncycastle.pqc.crypto.lms.LMSigParameters;
import java.util.Map;
import java.security.spec.AlgorithmParameterSpec;

public class LMSKeyGenParameterSpec implements AlgorithmParameterSpec
{
    private static final Map<String, LMSigParameters> sigParameters;
    private static final Map<String, LMOtsParameters> otsParameters;
    private final LMSigParameters lmSigParams;
    private final LMOtsParameters lmOtsParameters;
    
    public LMSKeyGenParameterSpec(final LMSigParameters lmSigParams, final LMOtsParameters lmOtsParameters) {
        this.lmSigParams = lmSigParams;
        this.lmOtsParameters = lmOtsParameters;
    }
    
    public LMSigParameters getSigParams() {
        return this.lmSigParams;
    }
    
    public LMOtsParameters getOtsParams() {
        return this.lmOtsParameters;
    }
    
    public static LMSKeyGenParameterSpec fromNames(final String str, final String str2) {
        if (!LMSKeyGenParameterSpec.sigParameters.containsKey(str)) {
            throw new IllegalArgumentException("LM signature parameter name " + str + " not recognized");
        }
        if (!LMSKeyGenParameterSpec.otsParameters.containsKey(str2)) {
            throw new IllegalArgumentException("LM OTS parameter name " + str2 + " not recognized");
        }
        return new LMSKeyGenParameterSpec(LMSKeyGenParameterSpec.sigParameters.get(str), LMSKeyGenParameterSpec.otsParameters.get(str2));
    }
    
    static {
        sigParameters = new HashMap<String, LMSigParameters>();
        otsParameters = new HashMap<String, LMOtsParameters>();
        LMSKeyGenParameterSpec.sigParameters.put("lms-sha256-n32-h5", LMSigParameters.lms_sha256_n32_h5);
        LMSKeyGenParameterSpec.sigParameters.put("lms-sha256-n32-h10", LMSigParameters.lms_sha256_n32_h10);
        LMSKeyGenParameterSpec.sigParameters.put("lms-sha256-n32-h15", LMSigParameters.lms_sha256_n32_h15);
        LMSKeyGenParameterSpec.sigParameters.put("lms-sha256-n32-h20", LMSigParameters.lms_sha256_n32_h20);
        LMSKeyGenParameterSpec.sigParameters.put("lms-sha256-n32-h25", LMSigParameters.lms_sha256_n32_h25);
        LMSKeyGenParameterSpec.sigParameters.put("lms-sha256-n24-h5", LMSigParameters.lms_sha256_n24_h5);
        LMSKeyGenParameterSpec.sigParameters.put("lms-sha256-n24-h10", LMSigParameters.lms_sha256_n24_h10);
        LMSKeyGenParameterSpec.sigParameters.put("lms-sha256-n24-h15", LMSigParameters.lms_sha256_n24_h15);
        LMSKeyGenParameterSpec.sigParameters.put("lms-sha256-n24-h20", LMSigParameters.lms_sha256_n24_h20);
        LMSKeyGenParameterSpec.sigParameters.put("lms-sha256-n24-h25", LMSigParameters.lms_sha256_n24_h25);
        LMSKeyGenParameterSpec.sigParameters.put("lms-shake256-n32-h5", LMSigParameters.lms_shake256_n32_h5);
        LMSKeyGenParameterSpec.sigParameters.put("lms-shake256-n32-h10", LMSigParameters.lms_shake256_n32_h10);
        LMSKeyGenParameterSpec.sigParameters.put("lms-shake256-n32-h15", LMSigParameters.lms_shake256_n32_h15);
        LMSKeyGenParameterSpec.sigParameters.put("lms-shake256-n32-h20", LMSigParameters.lms_shake256_n32_h20);
        LMSKeyGenParameterSpec.sigParameters.put("lms-shake256-n32-h25", LMSigParameters.lms_shake256_n32_h25);
        LMSKeyGenParameterSpec.sigParameters.put("lms-shake256-n24-h5", LMSigParameters.lms_shake256_n24_h5);
        LMSKeyGenParameterSpec.sigParameters.put("lms-shake256-n24-h10", LMSigParameters.lms_shake256_n24_h10);
        LMSKeyGenParameterSpec.sigParameters.put("lms-shake256-n24-h15", LMSigParameters.lms_shake256_n24_h15);
        LMSKeyGenParameterSpec.sigParameters.put("lms-shake256-n24-h20", LMSigParameters.lms_shake256_n24_h20);
        LMSKeyGenParameterSpec.sigParameters.put("lms-shake256-n24-h25", LMSigParameters.lms_shake256_n24_h25);
        LMSKeyGenParameterSpec.otsParameters.put("sha256-n32-w1", LMOtsParameters.sha256_n32_w1);
        LMSKeyGenParameterSpec.otsParameters.put("sha256-n32-w2", LMOtsParameters.sha256_n32_w2);
        LMSKeyGenParameterSpec.otsParameters.put("sha256-n32-w4", LMOtsParameters.sha256_n32_w4);
        LMSKeyGenParameterSpec.otsParameters.put("sha256-n32-w8", LMOtsParameters.sha256_n32_w8);
    }
}
