org.bouncycastle.jcajce.provider.symmetric.Threefish Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-ext-debug-jdk18on Show documentation
Show all versions of bcprov-ext-debug-jdk18on Show documentation
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");
}
}
}