| /* Gnu.java --- Gnu provider main class | |
| Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc. | |
| This file is part of GNU Classpath. | |
| GNU Classpath is free software; you can redistribute it and/or modify | |
| it under the terms of the GNU General Public License as published by | |
| the Free Software Foundation; either version 2, or (at your option) | |
| any later version. | |
| GNU Classpath is distributed in the hope that it will be useful, but | |
| WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| General Public License for more details. | |
| You should have received a copy of the GNU General Public License | |
| along with GNU Classpath; see the file COPYING. If not, write to the | |
| Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | |
| 02110-1301 USA. | |
| Linking this library statically or dynamically with other modules is | |
| making a combined work based on this library. Thus, the terms and | |
| conditions of the GNU General Public License cover the whole | |
| combination. | |
| As a special exception, the copyright holders of this library give you | |
| permission to link this library with independent modules to produce an | |
| executable, regardless of the license terms of these independent | |
| modules, and to copy and distribute the resulting executable under | |
| terms of your choice, provided that you also meet, for each linked | |
| independent module, the terms and conditions of the license of that | |
| module. An independent module is a module which is not derived from | |
| or based on this library. If you modify this library, you may extend | |
| this exception to your version of the library, but you are not | |
| obligated to do so. If you do not wish to do so, delete this | |
| exception statement from your version. */ | |
| package gnu.java.security.provider; | |
| import java.security.AccessController; | |
| import java.security.PrivilegedAction; | |
| import java.security.Provider; | |
| public final class Gnu | |
| extends Provider | |
| { | |
| public Gnu() | |
| { | |
| super("GNU", 1.0, | |
| "GNU provider v1.0 implementing SHA-1, MD5, DSA, RSA, X.509 " | |
| + "Certificates and CRLs, PKIX certificate path validators, " | |
| + "Collection cert stores, Diffie-Hellman key agreement and " | |
| + "key pair generator"); | |
| AccessController.doPrivileged (new PrivilegedAction() | |
| { | |
| public Object run() | |
| { | |
| // Note that all implementation class names are referenced by using | |
| // Class.getName(). That way when we staticly link the Gnu provider | |
| // we automatically get all the implementation classes. | |
| // Signature | |
| put("Signature.SHA160withDSS", | |
| gnu.java.security.jce.sig.SHA160withDSS.class.getName()); | |
| put("Alg.Alias.Signature.SHA1withDSA", "SHA160withDSS"); | |
| put("Alg.Alias.Signature.DSS", "SHA160withDSS"); | |
| put("Alg.Alias.Signature.DSA", "SHA160withDSS"); | |
| put("Alg.Alias.Signature.SHAwithDSA", "SHA160withDSS"); | |
| put("Alg.Alias.Signature.DSAwithSHA", "SHA160withDSS"); | |
| put("Alg.Alias.Signature.DSAwithSHA1", "SHA160withDSS"); | |
| put("Alg.Alias.Signature.SHA/DSA", "SHA160withDSS"); | |
| put("Alg.Alias.Signature.SHA-1/DSA", "SHA160withDSS"); | |
| put("Alg.Alias.Signature.SHA1/DSA", "SHA160withDSS"); | |
| put("Alg.Alias.Signature.OID.1.2.840.10040.4.3", "SHA160withDSS"); | |
| put("Alg.Alias.Signature.1.2.840.10040.4.3", "SHA160withDSS"); | |
| put("Alg.Alias.Signature.1.3.14.3.2.13", "SHA160withDSS"); | |
| put("Alg.Alias.Signature.1.3.14.3.2.27", "SHA160withDSS"); | |
| put("Signature.MD2withRSA", | |
| gnu.java.security.jce.sig.MD2withRSA.class.getName()); | |
| put("Signature.MD2withRSA ImplementedIn", "Software"); | |
| put("Alg.Alias.Signature.md2WithRSAEncryption", "MD2withRSA"); | |
| put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.2", "MD2withRSA"); | |
| put("Alg.Alias.Signature.1.2.840.113549.1.1.2", "MD2withRSA"); | |
| put("Signature.MD5withRSA", | |
| gnu.java.security.jce.sig.MD5withRSA.class.getName()); | |
| put("Signature.MD5withRSA ImplementedIn", "Software"); | |
| put("Alg.Alias.Signature.md5WithRSAEncryption", "MD5withRSA"); | |
| put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.4", "MD5withRSA"); | |
| put("Alg.Alias.Signature.1.2.840.113549.1.1.4", "MD5withRSA"); | |
| put("Alg.Alias.Signature.RSA", "MD5withRSA"); | |
| put("Signature.SHA160withRSA", | |
| gnu.java.security.jce.sig.SHA160withRSA.class.getName()); | |
| put("Signature.SHA160withRSA ImplementedIn", "Software"); | |
| put("Alg.Alias.Signature.sha-1WithRSAEncryption", "SHA160withRSA"); | |
| put("Alg.Alias.Signature.sha-160WithRSAEncryption", "SHA160withRSA"); | |
| put("Alg.Alias.Signature.sha1WithRSAEncryption", "SHA160withRSA"); | |
| put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.5", "SHA160withRSA"); | |
| put("Alg.Alias.Signature.1.2.840.113549.1.1.5", "SHA160withRSA"); | |
| put("Alg.Alias.Signature.SHA1withRSA", "SHA160withRSA"); | |
| put("Signature.SHA256withRSA", | |
| gnu.java.security.jce.sig.SHA256withRSA.class.getName()); | |
| put("Signature.SHA160withRSA ImplementedIn", "Software"); | |
| put("Alg.Alias.Signature.sha256WithRSAEncryption", "SHA256withRSA"); | |
| put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.11", "SHA256withRSA"); | |
| put("Alg.Alias.Signature.1.2.840.113549.1.1.11", "SHA256withRSA"); | |
| put("Signature.SHA384withRSA", | |
| gnu.java.security.jce.sig.SHA384withRSA.class.getName()); | |
| put("Signature.SHA160withRSA ImplementedIn", "Software"); | |
| put("Alg.Alias.Signature.sha384WithRSAEncryption", "SHA384withRSA"); | |
| put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.12", "SHA384withRSA"); | |
| put("Alg.Alias.Signature.1.2.840.113549.1.1.12", "SHA384withRSA"); | |
| put("Signature.SHA512withRSA", | |
| gnu.java.security.jce.sig.SHA512withRSA.class.getName()); | |
| put("Signature.SHA160withRSA ImplementedIn", "Software"); | |
| put("Alg.Alias.Signature.sha512WithRSAEncryption", "SHA512withRSA"); | |
| put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.13", "SHA512withRSA"); | |
| put("Alg.Alias.Signature.1.2.840.113549.1.1.13", "SHA512withRSA"); | |
| put("Signature.DSS/RAW", | |
| gnu.java.security.jce.sig.DSSRawSignatureSpi.class.getName()); | |
| put("Signature.DSS/RAW KeySize", "1024"); | |
| put("Signature.DSS/RAW ImplementedIn", "Software"); | |
| put("Signature.RSA-PSS/RAW", | |
| gnu.java.security.jce.sig.RSAPSSRawSignatureSpi.class.getName()); | |
| put("Signature.RSA-PSS/RAW KeySize", "1024"); | |
| put("Signature.RSA-PSS/RAW ImplementedIn", "Software"); | |
| // Key Pair Generator | |
| put("KeyPairGenerator.DSS", | |
| gnu.java.security.jce.sig.DSSKeyPairGeneratorSpi.class.getName()); | |
| put("KeyPairGenerator.DSS KeySize", "1024"); | |
| put("KeyPairGenerator.DSS ImplementedIn", "Software"); | |
| put("Alg.Alias.KeyPairGenerator.DSA", "DSS"); | |
| put("Alg.Alias.KeyPairGenerator.OID.1.2.840.10040.4.1", "DSS"); | |
| put("Alg.Alias.KeyPairGenerator.1.2.840.10040.4.1", "DSS"); | |
| put("Alg.Alias.KeyPairGenerator.1.3.14.3.2.12", "DSS"); | |
| put("KeyPairGenerator.RSA", | |
| gnu.java.security.jce.sig.RSAKeyPairGeneratorSpi.class.getName()); | |
| put("KeyPairGenerator.RSA KeySize", "1024"); | |
| put("KeyPairGenerator.RSA ImplementedIn", "Software"); | |
| // Key Factory | |
| put("KeyFactory.DSS", | |
| gnu.java.security.jce.sig.DSSKeyFactory.class.getName()); | |
| put("Alg.Alias.KeyFactory.DSA", "DSS"); | |
| put("Alg.Alias.KeyFactory.OID.1.2.840.10040.4.1", "DSS"); | |
| put("Alg.Alias.KeyFactory.1.2.840.10040.4.1", "DSS"); | |
| put("Alg.Alias.KeyFactory.1.3.14.3.2.12", "DSS"); | |
| put("KeyFactory.RSA", | |
| gnu.java.security.jce.sig.RSAKeyFactory.class.getName()); | |
| put("KeyFactory.Encoded", | |
| gnu.java.security.jce.sig.EncodedKeyFactory.class.getName()); | |
| put("KeyFactory.Encoded ImplementedIn", "Software"); | |
| put("Alg.Alias.KeyFactory.X.509", "Encoded"); | |
| put("Alg.Alias.KeyFactory.X509", "Encoded"); | |
| put("Alg.Alias.KeyFactory.PKCS#8", "Encoded"); | |
| put("Alg.Alias.KeyFactory.PKCS8", "Encoded"); | |
| put("MessageDigest.HAVAL", | |
| gnu.java.security.jce.hash.HavalSpi.class.getName()); | |
| put("MessageDigest.HAVAL ImplementedIn", "Software"); | |
| put("MessageDigest.MD2", | |
| gnu.java.security.jce.hash.MD2Spi.class.getName()); | |
| put("MessageDigest.MD2 ImplementedIn", "Software"); | |
| put("MessageDigest.MD4", | |
| gnu.java.security.jce.hash.MD4Spi.class.getName()); | |
| put("MessageDigest.MD4 ImplementedIn", "Software"); | |
| put("MessageDigest.MD5", | |
| gnu.java.security.jce.hash.MD5Spi.class.getName()); | |
| put("MessageDigest.MD5 ImplementedIn", "Software"); | |
| put("MessageDigest.RIPEMD128", | |
| gnu.java.security.jce.hash.RipeMD128Spi.class.getName()); | |
| put("MessageDigest.RIPEMD128 ImplementedIn", "Software"); | |
| put("MessageDigest.RIPEMD160", | |
| gnu.java.security.jce.hash.RipeMD160Spi.class.getName()); | |
| put("MessageDigest.RIPEMD160 ImplementedIn", "Software"); | |
| put("MessageDigest.SHA-160", | |
| gnu.java.security.jce.hash.Sha160Spi.class.getName()); | |
| put("MessageDigest.SHA-160 ImplementedIn", "Software"); | |
| put("MessageDigest.SHA-256", | |
| gnu.java.security.jce.hash.Sha256Spi.class.getName()); | |
| put("MessageDigest.SHA-256 ImplementedIn", "Software"); | |
| put("MessageDigest.SHA-384", | |
| gnu.java.security.jce.hash.Sha384Spi.class.getName()); | |
| put("MessageDigest.SHA-384 ImplementedIn", "Software"); | |
| put("MessageDigest.SHA-512", | |
| gnu.java.security.jce.hash.Sha512Spi.class.getName()); | |
| put("MessageDigest.SHA-512 ImplementedIn", "Software"); | |
| put("MessageDigest.TIGER", | |
| gnu.java.security.jce.hash.TigerSpi.class.getName()); | |
| put("MessageDigest.TIGER ImplementedIn", "Software"); | |
| put("MessageDigest.WHIRLPOOL", | |
| gnu.java.security.jce.hash.WhirlpoolSpi.class.getName()); | |
| put("MessageDigest.WHIRLPOOL ImplementedIn", "Software"); | |
| put("Alg.Alias.MessageDigest.SHS", "SHA-160"); | |
| put("Alg.Alias.MessageDigest.SHA", "SHA-160"); | |
| put("Alg.Alias.MessageDigest.SHA1", "SHA-160"); | |
| put("Alg.Alias.MessageDigest.SHA-1", "SHA-160"); | |
| put("Alg.Alias.MessageDigest.SHA2-256", "SHA-256"); | |
| put("Alg.Alias.MessageDigest.SHA2-384", "SHA-384"); | |
| put("Alg.Alias.MessageDigest.SHA2-512", "SHA-512"); | |
| put("Alg.Alias.MessageDigest.SHA256", "SHA-256"); | |
| put("Alg.Alias.MessageDigest.SHA384", "SHA-384"); | |
| put("Alg.Alias.MessageDigest.SHA512", "SHA-512"); | |
| put("Alg.Alias.MessageDigest.RIPEMD-160", "RIPEMD160"); | |
| put("Alg.Alias.MessageDigest.RIPEMD-128", "RIPEMD128"); | |
| put("Alg.Alias.MessageDigest.OID.1.2.840.11359.2.2", "MD2"); | |
| put("Alg.Alias.MessageDigest.1.2.840.11359.2.2", "MD2"); | |
| put("Alg.Alias.MessageDigest.OID.1.2.840.11359.2.5", "MD5"); | |
| put("Alg.Alias.MessageDigest.1.2.840.11359.2.5", "MD5"); | |
| put("Alg.Alias.MessageDigest.OID.1.3.14.3.2.26", "SHA1"); | |
| put("Alg.Alias.MessageDigest.1.3.14.3.2.26", "SHA1"); | |
| // Algorithm Parameters | |
| put("AlgorithmParameters.DSS", | |
| gnu.java.security.jce.sig.DSSParameters.class.getName()); | |
| put("Alg.Alias.AlgorithmParameters.DSA", "DSS"); | |
| put("Alg.Alias.AlgorithmParameters.SHAwithDSA", "DSS"); | |
| put("Alg.Alias.AlgorithmParameters.OID.1.2.840.10040.4.3", "DSS"); | |
| put("Alg.Alias.AlgorithmParameters.1.2.840.10040.4.3", "DSS"); | |
| // Algorithm Parameter Generator | |
| put("AlgorithmParameterGenerator.DSA", | |
| gnu.java.security.jce.sig.DSSParametersGenerator.class.getName()); | |
| put("Alg.Alias.AlgorithmParameterGenerator.DSA", "DSS"); | |
| // SecureRandom | |
| put("SecureRandom.SHA1PRNG", | |
| gnu.java.security.jce.prng.Sha160RandomSpi.class.getName()); | |
| put("SecureRandom.MD2PRNG", | |
| gnu.java.security.jce.prng.MD2RandomSpi.class.getName()); | |
| put("SecureRandom.MD2PRNG ImplementedIn", "Software"); | |
| put("SecureRandom.MD4PRNG", | |
| gnu.java.security.jce.prng.MD4RandomSpi.class.getName()); | |
| put("SecureRandom.MD4PRNG ImplementedIn", "Software"); | |
| put("SecureRandom.MD5PRNG", | |
| gnu.java.security.jce.prng.MD5RandomSpi.class.getName()); | |
| put("SecureRandom.MD5PRNG ImplementedIn", "Software"); | |
| put("SecureRandom.RIPEMD128PRNG", | |
| gnu.java.security.jce.prng.RipeMD128RandomSpi.class.getName()); | |
| put("SecureRandom.RIPEMD128PRNG ImplementedIn", "Software"); | |
| put("SecureRandom.RIPEMD160PRNG", | |
| gnu.java.security.jce.prng.RipeMD160RandomSpi.class.getName()); | |
| put("SecureRandom.RIPEMD160PRNG ImplementedIn", "Software"); | |
| put("SecureRandom.SHA-160PRNG", | |
| gnu.java.security.jce.prng.Sha160RandomSpi.class.getName()); | |
| put("SecureRandom.SHA-160PRNG ImplementedIn", "Software"); | |
| put("SecureRandom.SHA-256PRNG", | |
| gnu.java.security.jce.prng.Sha256RandomSpi.class.getName()); | |
| put("SecureRandom.SHA-256PRNG ImplementedIn", "Software"); | |
| put("SecureRandom.SHA-384PRNG", | |
| gnu.java.security.jce.prng.Sha384RandomSpi.class.getName()); | |
| put("SecureRandom.SHA-384PRNG ImplementedIn", "Software"); | |
| put("SecureRandom.SHA-512PRNG", | |
| gnu.java.security.jce.prng.Sha512RandomSpi.class.getName()); | |
| put("SecureRandom.SHA-512PRNG ImplementedIn", "Software"); | |
| put("SecureRandom.TIGERPRNG", | |
| gnu.java.security.jce.prng.TigerRandomSpi.class.getName()); | |
| put("SecureRandom.TIGERPRNG ImplementedIn", "Software"); | |
| put("SecureRandom.HAVALPRNG", | |
| gnu.java.security.jce.prng.HavalRandomSpi.class.getName()); | |
| put("SecureRandom.HAVALPRNG ImplementedIn", "Software"); | |
| put("SecureRandom.WHIRLPOOLPRNG", | |
| gnu.java.security.jce.prng.WhirlpoolRandomSpi.class.getName()); | |
| put("SecureRandom.WHIRLPOOLPRNG ImplementedIn", "Software"); | |
| put("Alg.Alias.SecureRandom.SHA-1PRNG", "SHA-160PRNG"); | |
| put("Alg.Alias.SecureRandom.SHA1PRNG", "SHA-160PRNG"); | |
| put("Alg.Alias.SecureRandom.SHAPRNG", "SHA-160PRNG"); | |
| put("Alg.Alias.SecureRandom.SHA-256PRNG", "SHA-256PRNG"); | |
| put("Alg.Alias.SecureRandom.SHA-2-1PRNG", "SHA-256PRNG"); | |
| put("Alg.Alias.SecureRandom.SHA-384PRNG", "SHA-384PRNG"); | |
| put("Alg.Alias.SecureRandom.SHA-2-2PRNG", "SHA-384PRNG"); | |
| put("Alg.Alias.SecureRandom.SHA-512PRNG", "SHA-512PRNG"); | |
| put("Alg.Alias.SecureRandom.SHA-2-3PRNG", "SHA-512PRNG"); | |
| // CertificateFactory | |
| put("CertificateFactory.X509", X509CertificateFactory.class.getName()); | |
| put("CertificateFactory.X509 ImplementedIn", "Software"); | |
| put("Alg.Alias.CertificateFactory.X.509", "X509"); | |
| // CertPathValidator | |
| put("CertPathValidator.PKIX", PKIXCertPathValidatorImpl.class.getName()); | |
| put("CertPathValidator.PKIX ImplementedIn", "Software"); | |
| // CertStore | |
| put("CertStore.Collection", CollectionCertStoreImpl.class.getName()); | |
| return null; | |
| } | |
| }); | |
| } | |
| } |