| package org.bouncycastle.jcajce.provider.digest; |
| |
| import org.bouncycastle.asn1.misc.MiscObjectIdentifiers; |
| import org.bouncycastle.crypto.digests.Blake2bDigest; |
| import org.bouncycastle.jcajce.provider.config.ConfigurableProvider; |
| |
| public class Blake2b |
| { |
| private Blake2b() |
| { |
| |
| } |
| |
| static public class Blake2b512 |
| extends BCMessageDigest |
| implements Cloneable |
| { |
| public Blake2b512() |
| { |
| super(new Blake2bDigest(512)); |
| } |
| |
| public Object clone() |
| throws CloneNotSupportedException |
| { |
| Blake2b512 d = (Blake2b512)super.clone(); |
| d.digest = new Blake2bDigest((Blake2bDigest)digest); |
| |
| return d; |
| } |
| } |
| |
| static public class Blake2b384 |
| extends BCMessageDigest |
| implements Cloneable |
| { |
| public Blake2b384() |
| { |
| super(new Blake2bDigest(384)); |
| } |
| |
| public Object clone() |
| throws CloneNotSupportedException |
| { |
| Blake2b384 d = (Blake2b384)super.clone(); |
| d.digest = new Blake2bDigest((Blake2bDigest)digest); |
| |
| return d; |
| } |
| } |
| |
| static public class Blake2b256 |
| extends BCMessageDigest |
| implements Cloneable |
| { |
| public Blake2b256() |
| { |
| super(new Blake2bDigest(256)); |
| } |
| |
| public Object clone() |
| throws CloneNotSupportedException |
| { |
| Blake2b256 d = (Blake2b256)super.clone(); |
| d.digest = new Blake2bDigest((Blake2bDigest)digest); |
| |
| return d; |
| } |
| } |
| |
| static public class Blake2b160 |
| extends BCMessageDigest |
| implements Cloneable |
| { |
| public Blake2b160() |
| { |
| super(new Blake2bDigest(160)); |
| } |
| |
| public Object clone() |
| throws CloneNotSupportedException |
| { |
| Blake2b160 d = (Blake2b160)super.clone(); |
| d.digest = new Blake2bDigest((Blake2bDigest)digest); |
| |
| return d; |
| } |
| } |
| |
| public static class Mappings |
| extends DigestAlgorithmProvider |
| { |
| private static final String PREFIX = Blake2b.class.getName(); |
| |
| public Mappings() |
| { |
| } |
| |
| public void configure(ConfigurableProvider provider) |
| { |
| provider.addAlgorithm("MessageDigest.BLAKE2B-512", PREFIX + "$Blake2b512"); |
| provider.addAlgorithm("Alg.Alias.MessageDigest." + MiscObjectIdentifiers.id_blake2b512, "BLAKE2B-512"); |
| |
| provider.addAlgorithm("MessageDigest.BLAKE2B-384", PREFIX + "$Blake2b384"); |
| provider.addAlgorithm("Alg.Alias.MessageDigest." + MiscObjectIdentifiers.id_blake2b384, "BLAKE2B-384"); |
| |
| provider.addAlgorithm("MessageDigest.BLAKE2B-256", PREFIX + "$Blake2b256"); |
| provider.addAlgorithm("Alg.Alias.MessageDigest." + MiscObjectIdentifiers.id_blake2b256, "BLAKE2B-256"); |
| |
| provider.addAlgorithm("MessageDigest.BLAKE2B-160", PREFIX + "$Blake2b160"); |
| provider.addAlgorithm("Alg.Alias.MessageDigest." + MiscObjectIdentifiers.id_blake2b160, "BLAKE2B-160"); |
| } |
| } |
| } |