1e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes/*
2e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more
3e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * contributor license agreements.  See the NOTICE file distributed with
4e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * this work for additional information regarding copyright ownership.
5e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0
6e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * (the "License"); you may not use this file except in compliance with
7e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * the License.  You may obtain a copy of the License at
8e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes *
9e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes *
11e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * Unless required by applicable law or agreed to in writing, software
12e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * distributed under the License is distributed on an "AS IS" BASIS,
13e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * See the License for the specific language governing permissions and
15e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * limitations under the License.
16e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes */
17e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
18e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughespackage tests.support;
19e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
20e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughesimport java.security.AccessController;
21e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughesimport java.security.PrivilegedAction;
22e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughesimport java.security.Provider;
23e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
24e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes/**
25e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * This class implements a dummy provider.
26e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes */
27e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughespublic class Support_ProviderRSA extends Provider {
28e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes    private static final long serialVersionUID = 1L;
29e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
30e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes    // Provider name
318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    private static final String NAME = "ProviderRSA";
328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    // Version of the services provided
348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    private static final double VERSION = 1.0;
358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    private static final String INFO = NAME
378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            + " DSA key, parameter generation and signing; SHA-1 digest";
388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /**
408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath     * Constructs a new instance of the dummy provider.
418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath     */
428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public Support_ProviderRSA() {
438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        super(NAME, VERSION, INFO);
448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        registerServices();
458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /**
488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath     * Register the services the receiver provides.
498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath     */
508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    private void registerServices() {
518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        AccessController.doPrivileged(new PrivilegedAction<Void>() {
528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            public Void run() {
538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                // Digest engine
548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                put("MessageDigest.SHA",
558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                        "made.up.provider.name.MessageDigestSHA");
568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                put("MessageDigest.MD5",
578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                        "made.up.provider.name.MessageDigestMD5");
588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                // Secure Random
608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                put("SecureRandom.SHA1PRNG",
618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                        "made.up.provider.name.SecureRandomImpl");
628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                // Algorithm parameter generator
648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                put("AlgorithmParameterGenerator.DSA",
658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                        "made.up.provider.name.AlgorithmParameterGeneratorDSA");
668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                // Algorithm parameters
688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                put("AlgorithmParameters.DSA",
698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                        "made.up.provider.name.AlgorithmParametersDSA");
708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                // Key pair generator
728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                put("KeyPairGenerator.DSA",
738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                        "made.up.provider.name.KeyPairGeneratorDSA");
748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                // Key factory
768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                put("KeyFactory.DSA",
778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                        "made.up.provider.name.KeyFactoryDSA");
788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                put("KeyFactory.RSA",
798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                        "made.up.provider.name.KeyFactoryRSA");
808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                // Signature algorithm
828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                put("Signature.SHA1withDSA",
838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                        "made.up.provider.name.SignatureDSA");
848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                // KeyStore
868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                put("KeyStore.PKCS#12/Netscape",
878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                        "made.up.provider.name.KeyStore");
888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                // Certificate
908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                put("CertificateFactory.X509",
918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                        "made.up.provider.name.CertificateFactoryX509");
928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                return null;
938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            }
948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        });
958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
96e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes}