All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bouncycastle.jcajce.provider.symmetric.Threefish Maven / Gradle / Ivy

Go to download

The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for Java 1.8 and later with debug enabled.

The newest version!
package org.bouncycastle.jcajce.provider.symmetric;

import org.bouncycastle.crypto.CipherKeyGenerator;
import org.bouncycastle.crypto.engines.ThreefishEngine;
import org.bouncycastle.crypto.macs.CMac;
import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;

public final class Threefish
{
    private Threefish()
    {
    }

    public static class ECB_256
        extends BaseBlockCipher
    {
        public ECB_256()
        {
            super(new ThreefishEngine(ThreefishEngine.BLOCKSIZE_256));
        }
    }

    public static class ECB_512
        extends BaseBlockCipher
    {
        public ECB_512()
        {
            super(new ThreefishEngine(ThreefishEngine.BLOCKSIZE_512));
        }
    }

    public static class ECB_1024
        extends BaseBlockCipher
    {
        public ECB_1024()
        {
            super(new ThreefishEngine(ThreefishEngine.BLOCKSIZE_1024));
        }
    }

    public static class KeyGen_256
        extends BaseKeyGenerator
    {
        public KeyGen_256()
        {
            super("Threefish-256", 256, new CipherKeyGenerator());
        }
    }

    public static class KeyGen_512
        extends BaseKeyGenerator
    {
        public KeyGen_512()
        {
            super("Threefish-512", 512, new CipherKeyGenerator());
        }
    }

    public static class KeyGen_1024
        extends BaseKeyGenerator
    {
        public KeyGen_1024()
        {
            super("Threefish-1024", 1024, new CipherKeyGenerator());
        }
    }

    public static class AlgParams_256
        extends IvAlgorithmParameters
    {
        protected String engineToString()
        {
            return "Threefish-256 IV";
        }
    }

    public static class AlgParams_512
        extends IvAlgorithmParameters
    {
        protected String engineToString()
        {
            return "Threefish-512 IV";
        }
    }

    public static class AlgParams_1024
        extends IvAlgorithmParameters
    {
        protected String engineToString()
        {
            return "Threefish-1024 IV";
        }
    }

    public static class CMAC_256
        extends BaseMac
    {
        public CMAC_256()
        {
            super(new CMac(new ThreefishEngine(256)));
        }
    }

    public static class CMAC_512
        extends BaseMac
    {
        public CMAC_512()
        {
            super(new CMac(new ThreefishEngine(512)));
        }
    }

    public static class CMAC_1024
        extends BaseMac
    {
        public CMAC_1024()
        {
            super(new CMac(new ThreefishEngine(1024)));
        }
    }

    public static class Mappings
        extends AlgorithmProvider
    {
        private static final String PREFIX = Threefish.class.getName();

        public Mappings()
        {
        }

        public void configure(ConfigurableProvider provider)
        {
            provider.addAlgorithm("Mac.Threefish-256CMAC", PREFIX + "$CMAC_256");
            provider.addAlgorithm("Mac.Threefish-512CMAC", PREFIX + "$CMAC_512");
            provider.addAlgorithm("Mac.Threefish-1024CMAC", PREFIX + "$CMAC_1024");

            provider.addAlgorithm("Cipher.Threefish-256", PREFIX + "$ECB_256");
            provider.addAlgorithm("Cipher.Threefish-512", PREFIX + "$ECB_512");
            provider.addAlgorithm("Cipher.Threefish-1024", PREFIX + "$ECB_1024");
            provider.addAlgorithm("KeyGenerator.Threefish-256", PREFIX + "$KeyGen_256");
            provider.addAlgorithm("KeyGenerator.Threefish-512", PREFIX + "$KeyGen_512");
            provider.addAlgorithm("KeyGenerator.Threefish-1024", PREFIX + "$KeyGen_1024");
            provider.addAlgorithm("AlgorithmParameters.Threefish-256", PREFIX + "$AlgParams_256");
            provider.addAlgorithm("AlgorithmParameters.Threefish-512", PREFIX + "$AlgParams_512");
            provider.addAlgorithm("AlgorithmParameters.Threefish-1024", PREFIX + "$AlgParams_1024");
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy