package org.bouncycastle.jce.provider.symmetric;
import java.util.HashMap;
import org.bouncycastle.crypto.CipherKeyGenerator;
import org.bouncycastle.crypto.engines.SkipjackEngine;
import org.bouncycastle.crypto.macs.CBCBlockCipherMac;
import org.bouncycastle.crypto.macs.CFBBlockCipherMac;
import org.bouncycastle.jce.provider.JCEBlockCipher;
import org.bouncycastle.jce.provider.JCEKeyGenerator;
import org.bouncycastle.jce.provider.JCEMac;
import org.bouncycastle.jce.provider.JDKAlgorithmParameters;
public final class Skipjack
{
private Skipjack()
{
}
public static class ECB
extends JCEBlockCipher
{
public ECB()
{
super(new SkipjackEngine());
}
}
public static class KeyGen
extends JCEKeyGenerator
{
public KeyGen()
{
super("Skipjack", 80, new CipherKeyGenerator());
}
}
public static class AlgParams
extends JDKAlgorithmParameters.IVAlgorithmParameters
{
protected String engineToString()
{
return "Skipjack IV";
}
}
public static class Mac
extends JCEMac
{
public Mac()
{
super(new CBCBlockCipherMac(new SkipjackEngine()));
}
}
public static class MacCFB8
extends JCEMac
{
public MacCFB8()
{
super(new CFBBlockCipherMac(new SkipjackEngine()));
}
}
public static class Mappings
extends HashMap
{
public Mappings()
{
put("Cipher.SKIPJACK", "org.bouncycastle.jce.provider.symmetric.Skipjack$ECB");
put("KeyGenerator.SKIPJACK", "org.bouncycastle.jce.provider.symmetric.Skipjack$KeyGen");
put("AlgorithmParameters.SKIPJACK", "org.bouncycastle.jce.provider.symmetric.Skipjack$AlgParams");
put("Mac.SKIPJACKMAC", "org.bouncycastle.jce.provider.symmetric.Skipjack$Mac");
put("Alg.Alias.Mac.SKIPJACK", "SKIPJACKMAC");
put("Mac.SKIPJACKMAC/CFB8", "org.bouncycastle.jce.provider.symmetric.Skipjack$MacCFB8");
put("Alg.Alias.Mac.SKIPJACK/CFB8", "SKIPJACKMAC/CFB8");
}
}
}