Support_ProviderRSA.java revision e98fbf8686c5289bf03fe5c3de7ff82d3a77104d
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
31e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes	private static final String NAME = "ProviderRSA";
32e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
33e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes	// Version of the services provided
34e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes	private static final double VERSION = 1.0;
35e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
36e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes	private static final String INFO = NAME
37e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes			+ " DSA key, parameter generation and signing; SHA-1 digest";
38e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
39e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes	/**
40e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes	 * Constructs a new instance of the dummy provider.
41e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes	 */
42e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes	public Support_ProviderRSA() {
43e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes		super(NAME, VERSION, INFO);
44e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes		registerServices();
45e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes	}
46e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
47e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes	/**
48e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes	 * Register the services the receiver provides.
49e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes	 */
50e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes	private void registerServices() {
51e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes		AccessController.doPrivileged(new PrivilegedAction<Void>() {
52e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes			public Void run() {
53e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				// Digest engine
54e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				put("MessageDigest.SHA",
55e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes						"made.up.provider.name.MessageDigestSHA");
56e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				put("MessageDigest.MD5",
57e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes						"made.up.provider.name.MessageDigestMD5");
58e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
59e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				// Secure Random
60e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				put("SecureRandom.SHA1PRNG",
61e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes						"made.up.provider.name.SecureRandomImpl");
62e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
63e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				// Algorithm parameter generator
64e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				put("AlgorithmParameterGenerator.DSA",
65e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes						"made.up.provider.name.AlgorithmParameterGeneratorDSA");
66e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
67e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				// Algorithm parameters
68e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				put("AlgorithmParameters.DSA",
69e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes						"made.up.provider.name.AlgorithmParametersDSA");
70e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
71e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				// Key pair generator
72e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				put("KeyPairGenerator.DSA",
73e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes						"made.up.provider.name.KeyPairGeneratorDSA");
74e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
75e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				// Key factory
76e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				put("KeyFactory.DSA",
77e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes						"made.up.provider.name.KeyFactoryDSA");
78e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				put("KeyFactory.RSA",
79e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes						"made.up.provider.name.KeyFactoryRSA");
80e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
81e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				// Signature algorithm
82e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				put("Signature.SHA1withDSA",
83e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes						"made.up.provider.name.SignatureDSA");
84e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
85e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				// KeyStore
86e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				put("KeyStore.PKCS#12/Netscape",
87e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes						"made.up.provider.name.KeyStore");
88e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
89e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				// Certificate
90e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				put("CertificateFactory.X509",
91e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes						"made.up.provider.name.CertificateFactoryX509");
92e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes				return null;
93e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes			}
94e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes		});
95e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes	}
96e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes}