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

package org.bouncycastle.pqc.crypto.lms;

import java.util.HashMap;
import org.bouncycastle.asn1.nist.NISTObjectIdentifiers;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import java.util.Map;

public class LMSigParameters
{
    public static final LMSigParameters lms_sha256_n32_h5;
    public static final LMSigParameters lms_sha256_n32_h10;
    public static final LMSigParameters lms_sha256_n32_h15;
    public static final LMSigParameters lms_sha256_n32_h20;
    public static final LMSigParameters lms_sha256_n32_h25;
    public static final LMSigParameters lms_sha256_n24_h5;
    public static final LMSigParameters lms_sha256_n24_h10;
    public static final LMSigParameters lms_sha256_n24_h15;
    public static final LMSigParameters lms_sha256_n24_h20;
    public static final LMSigParameters lms_sha256_n24_h25;
    public static final LMSigParameters lms_shake256_n32_h5;
    public static final LMSigParameters lms_shake256_n32_h10;
    public static final LMSigParameters lms_shake256_n32_h15;
    public static final LMSigParameters lms_shake256_n32_h20;
    public static final LMSigParameters lms_shake256_n32_h25;
    public static final LMSigParameters lms_shake256_n24_h5;
    public static final LMSigParameters lms_shake256_n24_h10;
    public static final LMSigParameters lms_shake256_n24_h15;
    public static final LMSigParameters lms_shake256_n24_h20;
    public static final LMSigParameters lms_shake256_n24_h25;
    private static Map<Object, LMSigParameters> paramBuilders;
    private final int type;
    private final int m;
    private final int h;
    private final ASN1ObjectIdentifier digestOid;
    
    protected LMSigParameters(final int type, final int m, final int h, final ASN1ObjectIdentifier digestOid) {
        this.type = type;
        this.m = m;
        this.h = h;
        this.digestOid = digestOid;
    }
    
    public int getType() {
        return this.type;
    }
    
    public int getH() {
        return this.h;
    }
    
    public int getM() {
        return this.m;
    }
    
    public ASN1ObjectIdentifier getDigestOID() {
        return this.digestOid;
    }
    
    public static LMSigParameters getParametersForType(final int i) {
        return LMSigParameters.paramBuilders.get(i);
    }
    
    static {
        lms_sha256_n32_h5 = new LMSigParameters(5, 32, 5, NISTObjectIdentifiers.id_sha256);
        lms_sha256_n32_h10 = new LMSigParameters(6, 32, 10, NISTObjectIdentifiers.id_sha256);
        lms_sha256_n32_h15 = new LMSigParameters(7, 32, 15, NISTObjectIdentifiers.id_sha256);
        lms_sha256_n32_h20 = new LMSigParameters(8, 32, 20, NISTObjectIdentifiers.id_sha256);
        lms_sha256_n32_h25 = new LMSigParameters(9, 32, 25, NISTObjectIdentifiers.id_sha256);
        lms_sha256_n24_h5 = new LMSigParameters(10, 24, 5, NISTObjectIdentifiers.id_sha256);
        lms_sha256_n24_h10 = new LMSigParameters(11, 24, 10, NISTObjectIdentifiers.id_sha256);
        lms_sha256_n24_h15 = new LMSigParameters(12, 24, 15, NISTObjectIdentifiers.id_sha256);
        lms_sha256_n24_h20 = new LMSigParameters(13, 24, 20, NISTObjectIdentifiers.id_sha256);
        lms_sha256_n24_h25 = new LMSigParameters(14, 24, 25, NISTObjectIdentifiers.id_sha256);
        lms_shake256_n32_h5 = new LMSigParameters(15, 32, 5, NISTObjectIdentifiers.id_shake256_len);
        lms_shake256_n32_h10 = new LMSigParameters(16, 32, 10, NISTObjectIdentifiers.id_shake256_len);
        lms_shake256_n32_h15 = new LMSigParameters(17, 32, 15, NISTObjectIdentifiers.id_shake256_len);
        lms_shake256_n32_h20 = new LMSigParameters(18, 32, 20, NISTObjectIdentifiers.id_shake256_len);
        lms_shake256_n32_h25 = new LMSigParameters(19, 32, 25, NISTObjectIdentifiers.id_shake256_len);
        lms_shake256_n24_h5 = new LMSigParameters(20, 24, 5, NISTObjectIdentifiers.id_shake256_len);
        lms_shake256_n24_h10 = new LMSigParameters(21, 24, 10, NISTObjectIdentifiers.id_shake256_len);
        lms_shake256_n24_h15 = new LMSigParameters(22, 24, 15, NISTObjectIdentifiers.id_shake256_len);
        lms_shake256_n24_h20 = new LMSigParameters(23, 24, 20, NISTObjectIdentifiers.id_shake256_len);
        lms_shake256_n24_h25 = new LMSigParameters(24, 24, 25, NISTObjectIdentifiers.id_shake256_len);
        LMSigParameters.paramBuilders = new HashMap<Object, LMSigParameters>() {
            {
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_sha256_n32_h5.type, LMSigParameters.lms_sha256_n32_h5);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_sha256_n32_h10.type, LMSigParameters.lms_sha256_n32_h10);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_sha256_n32_h15.type, LMSigParameters.lms_sha256_n32_h15);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_sha256_n32_h20.type, LMSigParameters.lms_sha256_n32_h20);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_sha256_n32_h25.type, LMSigParameters.lms_sha256_n32_h25);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_sha256_n24_h5.type, LMSigParameters.lms_sha256_n24_h5);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_sha256_n24_h10.type, LMSigParameters.lms_sha256_n24_h10);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_sha256_n24_h15.type, LMSigParameters.lms_sha256_n24_h15);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_sha256_n24_h20.type, LMSigParameters.lms_sha256_n24_h20);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_sha256_n24_h25.type, LMSigParameters.lms_sha256_n24_h25);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_shake256_n32_h5.type, LMSigParameters.lms_shake256_n32_h5);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_shake256_n32_h10.type, LMSigParameters.lms_shake256_n32_h10);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_shake256_n32_h15.type, LMSigParameters.lms_shake256_n32_h15);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_shake256_n32_h20.type, LMSigParameters.lms_shake256_n32_h20);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_shake256_n32_h25.type, LMSigParameters.lms_shake256_n32_h25);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_shake256_n24_h5.type, LMSigParameters.lms_shake256_n24_h5);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_shake256_n24_h10.type, LMSigParameters.lms_shake256_n24_h10);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_shake256_n24_h15.type, LMSigParameters.lms_shake256_n24_h15);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_shake256_n24_h20.type, LMSigParameters.lms_shake256_n24_h20);
                ((HashMap<Integer, LMSigParameters>)this).put(LMSigParameters.lms_shake256_n24_h25.type, LMSigParameters.lms_shake256_n24_h25);
            }
        };
    }
}
