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}