package org.bouncycastle.jcajce.provider.digest;
import org.bouncycastle.asn1.ua.UAObjectIdentifiers;
import org.bouncycastle.crypto.CipherKeyGenerator;
import org.bouncycastle.crypto.digests.DSTU7564Digest;
import org.bouncycastle.crypto.macs.DSTU7564Mac;
import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
public class DSTU7564
{
private DSTU7564()
{
}
static public class DigestDSTU7564
extends BCMessageDigest
implements Cloneable
{
public DigestDSTU7564(int size)
{
super(new DSTU7564Digest(size));
}
public Object clone()
throws CloneNotSupportedException
{
BCMessageDigest d = (BCMessageDigest)super.clone();
d.digest = new DSTU7564Digest((DSTU7564Digest)digest);
return d;
}
}
static public class Digest256
extends DigestDSTU7564
{
public Digest256()
{
super(256);
}
}
static public class Digest384
extends DigestDSTU7564
{
public Digest384()
{
super(384);
}
}
static public class Digest512
extends DigestDSTU7564
{
public Digest512()
{
super(512);
}
}
public static class HashMac256
extends BaseMac
{
public HashMac256()
{
super(new DSTU7564Mac(256));
}
}
public static class HashMac384
extends BaseMac
{
public HashMac384()
{
super(new DSTU7564Mac(384));
}
}
public static class HashMac512
extends BaseMac
{
public HashMac512()
{
super(new DSTU7564Mac(512));
}
}
public static class KeyGenerator256
extends BaseKeyGenerator
{
public KeyGenerator256()
{
super("HMACDSTU7564-256", 256, new CipherKeyGenerator());
}
}
public static class KeyGenerator384
extends BaseKeyGenerator
{
public KeyGenerator384()
{
super("HMACDSTU7564-384", 384, new CipherKeyGenerator());
}
}
public static class KeyGenerator512
extends BaseKeyGenerator
{
public KeyGenerator512()
{
super("HMACDSTU7564-512", 512, new CipherKeyGenerator());
}
}
public static class Mappings
extends DigestAlgorithmProvider
{
private static final String PREFIX = DSTU7564.class.getName();
public Mappings()
{
}
public void configure(ConfigurableProvider provider)
{
provider.addAlgorithm("MessageDigest.DSTU7564-256", PREFIX + "$Digest256");
provider.addAlgorithm("MessageDigest.DSTU7564-384", PREFIX + "$Digest384");
provider.addAlgorithm("MessageDigest.DSTU7564-512", PREFIX + "$Digest512");
provider.addAlgorithm("MessageDigest", UAObjectIdentifiers.dstu7564digest_256, PREFIX + "$Digest256");
provider.addAlgorithm("MessageDigest", UAObjectIdentifiers.dstu7564digest_384, PREFIX + "$Digest384");
provider.addAlgorithm("MessageDigest", UAObjectIdentifiers.dstu7564digest_512, PREFIX + "$Digest512");
addHMACAlgorithm(provider, "DSTU7564-256", PREFIX + "$HashMac256", PREFIX + "$KeyGenerator256");
addHMACAlgorithm(provider, "DSTU7564-384", PREFIX + "$HashMac384", PREFIX + "$KeyGenerator384");
addHMACAlgorithm(provider, "DSTU7564-512", PREFIX + "$HashMac512", PREFIX + "$KeyGenerator512");
addHMACAlias(provider, "DSTU7564-256", UAObjectIdentifiers.dstu7564mac_256);
addHMACAlias(provider, "DSTU7564-384", UAObjectIdentifiers.dstu7564mac_384);
addHMACAlias(provider, "DSTU7564-512", UAObjectIdentifiers.dstu7564mac_512);
}
}
}