1package org.bouncycastle.jcajce.provider.asymmetric;
2
3import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
4import org.bouncycastle.asn1.x9.X9ObjectIdentifiers;
5import org.bouncycastle.jcajce.provider.asymmetric.dh.KeyFactorySpi;
6import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
7import org.bouncycastle.jcajce.provider.util.AsymmetricAlgorithmProvider;
8
9public class DH
10{
11    private static final String PREFIX = "org.bouncycastle.jcajce.provider.asymmetric" + ".dh.";
12
13    public static class Mappings
14        extends AsymmetricAlgorithmProvider
15    {
16        public Mappings()
17        {
18        }
19
20        public void configure(ConfigurableProvider provider)
21        {
22            provider.addAlgorithm("KeyPairGenerator.DH", PREFIX + "KeyPairGeneratorSpi");
23            provider.addAlgorithm("Alg.Alias.KeyPairGenerator.DIFFIEHELLMAN", "DH");
24
25            provider.addAlgorithm("KeyAgreement.DH", PREFIX + "KeyAgreementSpi");
26            provider.addAlgorithm("Alg.Alias.KeyAgreement.DIFFIEHELLMAN", "DH");
27
28            provider.addAlgorithm("KeyFactory.DH", PREFIX + "KeyFactorySpi");
29            provider.addAlgorithm("Alg.Alias.KeyFactory.DIFFIEHELLMAN", "DH");
30
31            provider.addAlgorithm("AlgorithmParameters.DH", PREFIX + "AlgorithmParametersSpi");
32            provider.addAlgorithm("Alg.Alias.AlgorithmParameters.DIFFIEHELLMAN", "DH");
33
34            provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator.DIFFIEHELLMAN", "DH");
35
36            provider.addAlgorithm("AlgorithmParameterGenerator.DH", PREFIX + "AlgorithmParameterGeneratorSpi");
37
38            // BEGIN android-removed
39            // provider.addAlgorithm("Cipher.DHIES", PREFIX + "IESCipher$IES");
40            // provider.addAlgorithm("Cipher.DHIESwithAES", PREFIX + "IESCipher$IESwithAES");
41            // provider.addAlgorithm("Cipher.DHIESWITHAES", PREFIX + "IESCipher$IESwithAES");
42            // provider.addAlgorithm("Cipher.DHIESWITHDESEDE", PREFIX + "IESCipher$IESwithDESede");
43            // END android-removed
44
45            registerOid(provider, PKCSObjectIdentifiers.dhKeyAgreement, "DH", new KeyFactorySpi());
46            registerOid(provider, X9ObjectIdentifiers.dhpublicnumber, "DH", new KeyFactorySpi());
47        }
48    }
49}
50