14c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrompackage org.bouncycastle.jcajce.provider.asymmetric;
24c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
316fbd3bddeabacaa6b64a84b547708a84a6ddf98Kenny Root// BEGIN android-added
416fbd3bddeabacaa6b64a84b547708a84a6ddf98Kenny Rootimport org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
516fbd3bddeabacaa6b64a84b547708a84a6ddf98Kenny Rootimport org.bouncycastle.jcajce.provider.asymmetric.dh.KeyFactorySpi;
616fbd3bddeabacaa6b64a84b547708a84a6ddf98Kenny Root// END android-added
74c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
84c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.jcajce.provider.util.AsymmetricAlgorithmProvider;
916fbd3bddeabacaa6b64a84b547708a84a6ddf98Kenny Root// BEGIN android-added
1016fbd3bddeabacaa6b64a84b547708a84a6ddf98Kenny Rootimport org.bouncycastle.jcajce.provider.util.AsymmetricKeyInfoConverter;
1116fbd3bddeabacaa6b64a84b547708a84a6ddf98Kenny Root// END android-added
124c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
134c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrompublic class DH
144c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom{
154c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    private static final String PREFIX = "org.bouncycastle.jcajce.provider.asymmetric" + ".dh.";
164c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
174c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public static class Mappings
184c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        extends AsymmetricAlgorithmProvider
194c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
204c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        public Mappings()
214c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        {
224c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        }
234c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
244c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        public void configure(ConfigurableProvider provider)
254c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        {
264c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("KeyPairGenerator.DH", PREFIX + "KeyPairGeneratorSpi");
274c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("Alg.Alias.KeyPairGenerator.DIFFIEHELLMAN", "DH");
284c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
294c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("KeyAgreement.DH", PREFIX + "KeyAgreementSpi");
304c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("Alg.Alias.KeyAgreement.DIFFIEHELLMAN", "DH");
314c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
324c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("KeyFactory.DH", PREFIX + "KeyFactorySpi");
334c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("Alg.Alias.KeyFactory.DIFFIEHELLMAN", "DH");
3416fbd3bddeabacaa6b64a84b547708a84a6ddf98Kenny Root            // BEGIN android-added
3516fbd3bddeabacaa6b64a84b547708a84a6ddf98Kenny Root            AsymmetricKeyInfoConverter keyFact = new KeyFactorySpi();
3616fbd3bddeabacaa6b64a84b547708a84a6ddf98Kenny Root            registerOid(provider, PKCSObjectIdentifiers.dhKeyAgreement, "DH", keyFact);
3716fbd3bddeabacaa6b64a84b547708a84a6ddf98Kenny Root            // END android-added
384c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
394c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("AlgorithmParameters.DH", PREFIX + "AlgorithmParametersSpi");
404c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("Alg.Alias.AlgorithmParameters.DIFFIEHELLMAN", "DH");
414c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
424c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator.DIFFIEHELLMAN", "DH");
434c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
444c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("AlgorithmParameterGenerator.DH", PREFIX + "AlgorithmParameterGeneratorSpi");
45e1142c149e244797ce73b0e7fad40816e447a817Brian Carlstrom
46e1142c149e244797ce73b0e7fad40816e447a817Brian Carlstrom            // BEGIN android-removed
47e1142c149e244797ce73b0e7fad40816e447a817Brian Carlstrom            // provider.addAlgorithm("Cipher.DHIES", PREFIX + "IESCipher$IES");
48e1142c149e244797ce73b0e7fad40816e447a817Brian Carlstrom            // provider.addAlgorithm("Cipher.DHIESwithAES", PREFIX + "IESCipher$IESwithAES");
49e1142c149e244797ce73b0e7fad40816e447a817Brian Carlstrom            // provider.addAlgorithm("Cipher.DHIESWITHAES", PREFIX + "IESCipher$IESwithAES");
50e1142c149e244797ce73b0e7fad40816e447a817Brian Carlstrom            // provider.addAlgorithm("Cipher.DHIESWITHDESEDE", PREFIX + "IESCipher$IESwithDESede");
51e1142c149e244797ce73b0e7fad40816e447a817Brian Carlstrom            // END android-removed
524c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        }
534c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
544c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom}
55