14c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrompackage org.bouncycastle.jcajce;
24c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
34c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.security.AlgorithmParameterGenerator;
44c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.security.AlgorithmParameters;
54c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.security.KeyFactory;
64c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.security.KeyPairGenerator;
74c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.security.MessageDigest;
84c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.security.NoSuchAlgorithmException;
94c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.security.Provider;
104c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.security.Signature;
114c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.security.cert.CertificateException;
124c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.security.cert.CertificateFactory;
134c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
144c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport javax.crypto.Cipher;
154c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport javax.crypto.KeyAgreement;
164c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport javax.crypto.KeyGenerator;
174c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport javax.crypto.Mac;
184c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport javax.crypto.NoSuchPaddingException;
194c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
204c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrompublic class ProviderJcaJceHelper
214c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    implements JcaJceHelper
224c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom{
234c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    protected final Provider provider;
244c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
254c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public ProviderJcaJceHelper(Provider provider)
264c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
274c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        this.provider = provider;
284c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
294c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
304c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public Cipher createCipher(
314c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        String algorithm)
324c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        throws NoSuchAlgorithmException, NoSuchPaddingException
334c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
344c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        return Cipher.getInstance(algorithm, provider);
354c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
364c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
374c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public Mac createMac(String algorithm)
384c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        throws NoSuchAlgorithmException
394c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
404c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        return Mac.getInstance(algorithm, provider);
414c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
424c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
434c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public KeyAgreement createKeyAgreement(String algorithm)
444c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        throws NoSuchAlgorithmException
454c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
464c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        return KeyAgreement.getInstance(algorithm, provider);
474c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
484c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
494c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public AlgorithmParameterGenerator createAlgorithmParameterGenerator(String algorithm)
504c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        throws NoSuchAlgorithmException
514c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
524c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        return AlgorithmParameterGenerator.getInstance(algorithm, provider);
534c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
544c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
554c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public AlgorithmParameters createAlgorithmParameters(String algorithm)
564c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        throws NoSuchAlgorithmException
574c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
584c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        return AlgorithmParameters.getInstance(algorithm, provider);
594c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
604c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
614c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public KeyGenerator createKeyGenerator(String algorithm)
624c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        throws NoSuchAlgorithmException
634c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
644c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        return KeyGenerator.getInstance(algorithm, provider);
654c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
664c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
674c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public KeyFactory createKeyFactory(String algorithm)
684c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        throws NoSuchAlgorithmException
694c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
704c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        return KeyFactory.getInstance(algorithm, provider);
714c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
724c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
734c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public KeyPairGenerator createKeyPairGenerator(String algorithm)
744c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        throws NoSuchAlgorithmException
754c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
764c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        return KeyPairGenerator.getInstance(algorithm, provider);
774c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
784c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
794c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public MessageDigest createDigest(String algorithm)
804c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        throws NoSuchAlgorithmException
814c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
824c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        return MessageDigest.getInstance(algorithm, provider);
834c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
844c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
854c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public Signature createSignature(String algorithm)
864c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        throws NoSuchAlgorithmException
874c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
884c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        return Signature.getInstance(algorithm, provider);
894c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
904c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
914c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public CertificateFactory createCertificateFactory(String algorithm)
924c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        throws NoSuchAlgorithmException, CertificateException
934c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
944c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        return CertificateFactory.getInstance(algorithm, provider);
954c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
964c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom}
97