1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18package tests.support;
19
20import java.security.AccessController;
21import java.security.PrivilegedAction;
22import java.security.Provider;
23
24/**
25 * This class implements a dummy provider.
26 */
27public class Support_TestProvider extends Provider {
28    private static final long serialVersionUID = 1L;
29
30    // Provider name
31    private static final String NAME = "TestProvider";
32
33    // Version of the services provided
34    private static final double VERSION = 1.0;
35
36    private static final String INFO = NAME
37            + " DSA key, parameter generation and signing; SHA-1 digest; "
38            + "SHA1PRNG SecureRandom; PKCS#12/Netscape KeyStore";
39
40    /**
41     * Constructs a new instance of the dummy provider.
42     */
43    public Support_TestProvider() {
44        super(NAME, VERSION, INFO);
45        registerServices();
46    }
47
48    /**
49     * Register the services the receiver provides.
50     */
51    private void registerServices() {
52        AccessController.doPrivileged(new PrivilegedAction<Void>() {
53            public Void run() {
54                // Digest engine
55                put("MessageDigest.SHA",
56                        "made.up.provider.name.MessageDigestSHA");
57                put("MessageDigest.MD2",
58                        "made.up.provider.name.MessageDigestMD2");
59                // aliases
60                put("Alg.Alias.MessageDigest.SHA1", "SHA");
61                put("Alg.Alias.MessageDigest.SHA-1", "SHA");
62                put("Alg.Alias.MessageDigest.OID.1.3.14.3.2.26", "SHA");
63                put("Alg.Alias.MessageDigest.1.3.14.3.2.26", "SHA");
64
65                // Algorithm parameter generator
66                put("AlgorithmParameterGenerator.DSA",
67                        "made.up.provider.name.AlgorithmParameterGeneratorDSA");
68
69                // Algorithm parameters
70                put("AlgorithmParameters.DSA",
71                        "made.up.provider.name.AlgorithmParametersDSA");
72                // aliases
73                put("Alg.Alias.AlgorithmParameters.1.2.840.10040.4.1", "DSA");
74                put("Alg.Alias.AlgorithmParameters.1.3.14.3.2.12", "DSA");
75
76                // Key pair generator
77                put("KeyPairGenerator.DSA",
78                        "made.up.provider.name.KeyPairGeneratorDSA");
79                // aliases
80                put("Alg.Alias.KeyPairGenerator.OID.1.2.840.10040.4.1", "DSA");
81                put("Alg.Alias.KeyPairGenerator.1.2.840.10040.4.1", "DSA");
82                put("Alg.Alias.KeyPairGenerator.1.3.14.3.2.12", "DSA");
83
84                // Key factory
85                put("KeyFactory.DSA", "made.up.provider.name.KeyFactoryDSA");
86                put("KeyFactory.RSA", "made.up.provider.name.KeyFactoryRSA");
87                // aliases
88                put("Alg.Alias.KeyFactory.1.2.840.10040.4.1", "DSA");
89                put("Alg.Alias.KeyFactory.1.3.14.3.2.12", "DSA");
90
91                // Signature algorithm
92                put("Signature.SHA1withDSA",
93                        "made.up.provider.name.SignatureDSA");
94
95                // aliases
96                put("Alg.Alias.Signature.DSA", "SHA1withDSA");
97                put("Alg.Alias.Signature.DSS", "SHA1withDSA");
98                put("Alg.Alias.Signature.SHA/DSA", "SHA1withDSA");
99                put("Alg.Alias.Signature.SHA1/DSA", "SHA1withDSA");
100                put("Alg.Alias.Signature.SHA-1/DSA", "SHA1withDSA");
101                put("Alg.Alias.Signature.SHAwithDSA", "SHA1withDSA");
102                put("Alg.Alias.Signature.DSAwithSHA1", "SHA1withDSA");
103                put("Alg.Alias.Signature.DSAWithSHA1", "SHA1withDSA");
104                put("Alg.Alias.Signature.SHA-1withDSA", "SHA1withDSA");
105                put("Alg.Alias.Signature.OID.1.2.840.10040.4.3", "SHA1withDSA");
106                put("Alg.Alias.Signature.1.2.840.10040.4.3", "SHA1withDSA");
107                put("Alg.Alias.Signature.1.3.14.3.2.13", "SHA1withDSA");
108                put("Alg.Alias.Signature.1.3.14.3.2.27", "SHA1withDSA");
109                put("Alg.Alias.Signature.OID.1.3.14.3.2.13", "SHA1withDSA");
110                put("Alg.Alias.Signature.OID.1.3.14.3.2.27", "SHA1withDSA");
111
112                put("KeyStore.PKCS#12/Netscape",
113                        "tests.support.Support_DummyPKCS12Keystore");
114
115                // Certificate
116                put("CertificateFactory.X509",
117                        "made.up.provider.name.CertificateFactoryX509");
118                // aliases
119                put("Alg.Alias.CertificateFactory.X.509", "X509");
120
121                return null;
122            }
123        });
124    }
125}