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

package org.bouncycastle.jcajce.provider.asymmetric;

import org.bouncycastle.jcajce.provider.util.AsymmetricKeyInfoConverter;
import org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyFactorySpi;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.bc.BCObjectIdentifiers;
import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
import org.bouncycastle.jcajce.provider.util.AsymmetricAlgorithmProvider;

public class SPHINCSPlus
{
    private static final String PREFIX = "org.bouncycastle.pqc.jcajce.provider.sphincsplus.";
    
    public static class Mappings extends AsymmetricAlgorithmProvider
    {
        @Override
        public void configure(final ConfigurableProvider configurableProvider) {
            configurableProvider.addAlgorithm("KeyFactory.SPHINCSPLUS", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyFactorySpi");
            configurableProvider.addAlgorithm("KeyPairGenerator.SPHINCSPLUS", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyPairGeneratorSpi");
            configurableProvider.addAlgorithm("Alg.Alias.KeyFactory.SPHINCS+", "SPHINCSPLUS");
            configurableProvider.addAlgorithm("Alg.Alias.KeyPairGenerator.SPHINCS+", "SPHINCSPLUS");
            this.addKeyPairGeneratorAlgorithm(configurableProvider, "SPHINCS+-SHA2-128S", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyPairGeneratorSpi$Sha2_128s", BCObjectIdentifiers.sphincsPlus_sha2_128s);
            this.addKeyPairGeneratorAlgorithm(configurableProvider, "SPHINCS+-SHA2-128F", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyPairGeneratorSpi$Sha2_128f", BCObjectIdentifiers.sphincsPlus_sha2_128f);
            this.addKeyPairGeneratorAlgorithm(configurableProvider, "SPHINCS+-SHA2-192S", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyPairGeneratorSpi$Sha2_192s", BCObjectIdentifiers.sphincsPlus_sha2_192s);
            this.addKeyPairGeneratorAlgorithm(configurableProvider, "SPHINCS+-SHA2-192F", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyPairGeneratorSpi$Sha2_192f", BCObjectIdentifiers.sphincsPlus_sha2_192f);
            this.addKeyPairGeneratorAlgorithm(configurableProvider, "SPHINCS+-SHA2-256S", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyPairGeneratorSpi$Sha2_256s", BCObjectIdentifiers.sphincsPlus_sha2_256s);
            this.addKeyPairGeneratorAlgorithm(configurableProvider, "SPHINCS+-SHA2-256F", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyPairGeneratorSpi$Sha2_256f", BCObjectIdentifiers.sphincsPlus_sha2_256f);
            this.addKeyPairGeneratorAlgorithm(configurableProvider, "SPHINCS+-SHAKE-128S", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyPairGeneratorSpi$Shake_128s", BCObjectIdentifiers.sphincsPlus_shake_128s);
            this.addKeyPairGeneratorAlgorithm(configurableProvider, "SPHINCS+-SHAKE-128F", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyPairGeneratorSpi$Shake_128f", BCObjectIdentifiers.sphincsPlus_shake_128f);
            this.addKeyPairGeneratorAlgorithm(configurableProvider, "SPHINCS+-SHAKE-192S", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyPairGeneratorSpi$Shake_192s", BCObjectIdentifiers.sphincsPlus_shake_192s);
            this.addKeyPairGeneratorAlgorithm(configurableProvider, "SPHINCS+-SHAKE-192F", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyPairGeneratorSpi$Shake_192f", BCObjectIdentifiers.sphincsPlus_shake_192f);
            this.addKeyPairGeneratorAlgorithm(configurableProvider, "SPHINCS+-SHAKE-256S", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyPairGeneratorSpi$Shake_256s", BCObjectIdentifiers.sphincsPlus_shake_256s);
            this.addKeyPairGeneratorAlgorithm(configurableProvider, "SPHINCS+-SHAKE-256F", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyPairGeneratorSpi$Shake_256f", BCObjectIdentifiers.sphincsPlus_shake_256f);
            this.addSignatureAlgorithm(configurableProvider, "SPHINCSPLUS", "org.bouncycastle.pqc.jcajce.provider.sphincsplus.SignatureSpi$Direct", BCObjectIdentifiers.sphincsPlus);
            for (int i = 1; i <= 36; ++i) {
                configurableProvider.addAlgorithm("Alg.Alias.Signature." + BCObjectIdentifiers.sphincsPlus + "." + i, "SPHINCSPLUS");
                configurableProvider.addAlgorithm("Alg.Alias.Signature.OID." + BCObjectIdentifiers.sphincsPlus + "." + i, "SPHINCSPLUS");
            }
            final ASN1ObjectIdentifier[] array = { BCObjectIdentifiers.sphincsPlus_sha2_128s, BCObjectIdentifiers.sphincsPlus_sha2_128f, BCObjectIdentifiers.sphincsPlus_shake_128s, BCObjectIdentifiers.sphincsPlus_shake_128f, BCObjectIdentifiers.sphincsPlus_sha2_192s, BCObjectIdentifiers.sphincsPlus_sha2_192f, BCObjectIdentifiers.sphincsPlus_shake_192s, BCObjectIdentifiers.sphincsPlus_shake_192f, BCObjectIdentifiers.sphincsPlus_sha2_256s, BCObjectIdentifiers.sphincsPlus_sha2_256f, BCObjectIdentifiers.sphincsPlus_shake_256s, BCObjectIdentifiers.sphincsPlus_shake_256f };
            for (int j = 0; j != array.length; ++j) {
                configurableProvider.addAlgorithm("Alg.Alias.Signature." + array[j], "SPHINCSPLUS");
                configurableProvider.addAlgorithm("Alg.Alias.Signature.OID." + array[j], "SPHINCSPLUS");
            }
            configurableProvider.addAlgorithm("Alg.Alias.Signature.SPHINCS+", "SPHINCSPLUS");
            final SPHINCSPlusKeyFactorySpi sphincsPlusKeyFactorySpi = new SPHINCSPlusKeyFactorySpi();
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_128s_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_128f_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_128s_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_128f_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_haraka_128s_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_haraka_128f_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_192s_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_192f_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_192s_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_192f_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_haraka_192s_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_haraka_192f_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_256s_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_256f_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_256s_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_256f_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_haraka_256s_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_haraka_256f_r3, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_128s_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_128f_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_128s_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_128f_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_haraka_128s_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_haraka_128f_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_192s_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_192f_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_192s_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_192f_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_haraka_192s_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_haraka_192f_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_256s_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_256f_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_256s_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_256f_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_haraka_256s_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_haraka_256f_r3_simple, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_128s, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_128f, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_192s, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_192f, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_256s, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_sha2_256f, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_128s, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_128f, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_192s, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_192f, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_256s, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerKeyFactoryOid(configurableProvider, BCObjectIdentifiers.sphincsPlus_shake_256f, "SPHINCSPLUS", sphincsPlusKeyFactorySpi);
            this.registerOidAlgorithmParameters(configurableProvider, BCObjectIdentifiers.sphincsPlus, "SPHINCSPLUS");
        }
    }
}
