/************************************************************************** * Copyright (c) 2001 by Punch Telematix. All rights reserved. * * * * Redistribution and use in source and binary forms, with or without * * modification, are permitted provided that the following conditions * * are met: * * 1. Redistributions of source code must retain the above copyright * * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * * notice, this list of conditions and the following disclaimer in the * * documentation and/or other materials provided with the distribution. * * 3. Neither the name of Punch Telematix nor the names of * * other contributors may be used to endorse or promote products * * derived from this software without specific prior written permission.* * * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED * * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * * IN NO EVENT SHALL PUNCH TELEMATIX OR OTHER CONTRIBUTORS BE LIABLE * * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN * * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * **************************************************************************/ package wonka.security; import java.security.Provider; import java.util.Properties; public final class DefaultProvider extends Provider { private static final DefaultProvider theDefaultProvider = new DefaultProvider(); public static Provider getInstance(){ // ADD SECURITY CHECK ??? return theDefaultProvider; } public static final String INFO = "Wonka's own SecurityProvider"; public static final String NAME = "Wonka's DefaultProvider"; public static final double VERSION = 0.1; public DefaultProvider(){ super(NAME, VERSION , INFO); defaults = new Properties(); //ADD YOUR ALGORITHMS with thier classes here ... defaults.put("SecureRandom.notSoSecure", "wonka.security.SecureRandomImpl"); defaults.put("MessageDigest.MD5", "wonka.security.MD5MessageDigest"); defaults.put("MessageDigest.SHA", "wonka.security.ShaMessageDigest"); /** ** When reading the documentation, you are guaranteed to have some aliases ** for some well known algorithm's. Well here they are ... */ defaults.put("Alg.Alias.KeyFactory.1.2.840.10040.4.1","DSA"); defaults.put("Alg.Alias.Signature.1.2.840.10040.4.3","SHA1withDSA"); defaults.put("Alg.Alias.KeyPairGenerator.OID.1.2.840.10040.4.1","DSA"); defaults.put("Alg.Alias.KeyFactory.1.3.14.3.2.12","DSA"); defaults.put("Alg.Alias.KeyPairGenerator.1.3.14.3.2.12","DSA"); defaults.put("Alg.Alias.Signature.SHA/DSA","SHA1withDSA"); defaults.put("Alg.Alias.Signature.1.3.14.3.2.13","SHA1withDSA"); defaults.put("Alg.Alias.CertificateFactory.X.509","X509"); defaults.put("Alg.Alias.Signature.DSS","SHA1withDSA"); defaults.put("Alg.Alias.AlgorithmParameters.1.3.14.3.2.12","DSA"); defaults.put("Alg.Alias.Signature.DSA","SHA1withDSA"); defaults.put("Alg.Alias.Signature.DSAWithSHA1","SHA1withDSA"); defaults.put("Alg.Alias.Signature.SHAwithDSA","SHA1withDSA"); defaults.put("Alg.Alias.Signature.OID.1.2.840.10040.4.3","SHA1withDSA"); defaults.put("Alg.Alias.Signature.SHA1/DSA","SHA1withDSA"); defaults.put("Alg.Alias.KeyPairGenerator.1.2.840.10040.4.1","DSA"); defaults.put("Alg.Alias.MessageDigest.SHA-1","SHA"); defaults.put("Alg.Alias.MessageDigest.SHA1","SHA"); defaults.put("Alg.Alias.AlgorithmParameters.1.2.840.10040.4.1","DSA"); defaults.put("Alg.Alias.Signature.1.3.14.3.2.27","SHA1withDSA"); defaults.put("Alg.Alias.Signature.SHA-1/DSA","SHA1withDSA"); } //TODO make this provider immutable ... }