AsymmetricAlgorithmProvider.java revision e6bf3e8dfa2804891a82075cb469b736321b4827
1package org.bouncycastle.jcajce.provider.util;
2
3import org.bouncycastle.asn1.ASN1ObjectIdentifier;
4import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
5
6public abstract class AsymmetricAlgorithmProvider
7    extends AlgorithmProvider
8{
9    protected void addSignatureAlgorithm(
10        ConfigurableProvider provider,
11        String digest,
12        String algorithm,
13        String className,
14        ASN1ObjectIdentifier oid)
15    {
16        String mainName = digest + "WITH" + algorithm;
17        String jdk11Variation1 = digest + "with" + algorithm;
18        String jdk11Variation2 = digest + "With" + algorithm;
19        String alias = digest + "/" + algorithm;
20
21        provider.addAlgorithm("Signature." + mainName, className);
22        provider.addAlgorithm("Alg.Alias.Signature." + jdk11Variation1, mainName);
23        provider.addAlgorithm("Alg.Alias.Signature." + jdk11Variation2, mainName);
24        provider.addAlgorithm("Alg.Alias.Signature." + alias, mainName);
25        provider.addAlgorithm("Alg.Alias.Signature." + oid, mainName);
26        provider.addAlgorithm("Alg.Alias.Signature.OID." + oid, mainName);
27    }
28
29    protected void registerOid(ConfigurableProvider provider, ASN1ObjectIdentifier oid, String name, AsymmetricKeyInfoConverter keyFactory)
30    {
31        provider.addAlgorithm("Alg.Alias.KeyFactory." + oid, name);
32        provider.addAlgorithm("Alg.Alias.KeyPairGenerator." + oid, name);
33
34        provider.addKeyInfoConverter(oid, keyFactory);
35    }
36
37    protected void registerOidAlgorithmParameters(ConfigurableProvider provider, ASN1ObjectIdentifier oid, String name)
38    {
39        provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator." + oid, name);
40        provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + oid, name);
41    }
42}
43