Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java
32288 views
/*1* Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation. Oracle designates this7* particular file as subject to the "Classpath" exception as provided8* by Oracle in the LICENSE file that accompanied this code.9*10* This code is distributed in the hope that it will be useful, but WITHOUT11* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License13* version 2 for more details (a copy is included in the LICENSE file that14* accompanied this code).15*16* You should have received a copy of the GNU General Public License version17* 2 along with this work; if not, write to the Free Software Foundation,18* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.19*20* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA21* or visit www.oracle.com if you need additional information or have any22* questions.23*/2425package sun.security.mscapi;2627import java.security.AccessController;28import java.security.PrivilegedAction;29import java.security.Provider;30import java.util.HashMap;31import java.util.Map;3233import sun.security.action.PutAllAction;343536/**37* A Cryptographic Service Provider for the Microsoft Crypto API.38*39* @since 1.640*/4142public final class SunMSCAPI extends Provider {4344private static final long serialVersionUID = 8622598936488630849L; //TODO4546private static final String INFO = "Sun's Microsoft Crypto API provider";4748static {49AccessController.doPrivileged(new PrivilegedAction<Void>() {50public Void run() {51System.loadLibrary("sunmscapi");52return null;53}54});55}5657public SunMSCAPI() {58super("SunMSCAPI", 1.8d, INFO);5960// if there is no security manager installed, put directly into61// the provider. Otherwise, create a temporary map and use a62// doPrivileged() call at the end to transfer the contents63final Map<Object, Object> map =64(System.getSecurityManager() == null)65? this : new HashMap<Object, Object>();6667/*68* Secure random69*/70map.put("SecureRandom.Windows-PRNG", "sun.security.mscapi.PRNG");7172/*73* Key store74*/75map.put("KeyStore.Windows-MY", "sun.security.mscapi.CKeyStore$MY");76map.put("KeyStore.Windows-ROOT", "sun.security.mscapi.CKeyStore$ROOT");7778/*79* Signature engines80*/81// NONEwithRSA must be supplied with a pre-computed message digest.82// Only the following digest algorithms are supported: MD5, SHA-1,83// SHA-256, SHA-384, SHA-512 and a special-purpose digest84// algorithm which is a concatenation of SHA-1 and MD5 digests.85map.put("Signature.NONEwithRSA",86"sun.security.mscapi.CSignature$NONEwithRSA");87map.put("Signature.SHA1withRSA",88"sun.security.mscapi.CSignature$SHA1withRSA");89map.put("Signature.SHA256withRSA",90"sun.security.mscapi.CSignature$SHA256withRSA");91map.put("Alg.Alias.Signature.1.2.840.113549.1.1.11", "SHA256withRSA");92map.put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.11", "SHA256withRSA");93map.put("Signature.SHA384withRSA",94"sun.security.mscapi.CSignature$SHA384withRSA");95map.put("Alg.Alias.Signature.1.2.840.113549.1.1.12", "SHA384withRSA");96map.put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.12", "SHA384withRSA");97map.put("Signature.SHA512withRSA",98"sun.security.mscapi.CSignature$SHA512withRSA");99map.put("Alg.Alias.Signature.1.2.840.113549.1.1.13", "SHA512withRSA");100map.put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.13", "SHA512withRSA");101102map.put("Signature.MD5withRSA",103"sun.security.mscapi.CSignature$MD5withRSA");104map.put("Signature.MD2withRSA",105"sun.security.mscapi.CSignature$MD2withRSA");106107map.put("Signature.RSASSA-PSS",108"sun.security.mscapi.CSignature$PSS");109map.put("Alg.Alias.Signature.1.2.840.113549.1.1.10", "RSASSA-PSS");110map.put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.10", "RSASSA-PSS");111112map.put("Signature.SHA1withECDSA",113"sun.security.mscapi.CSignature$SHA1withECDSA");114map.put("Alg.Alias.Signature.1.2.840.10045.4.1", "SHA1withECDSA");115map.put("Alg.Alias.Signature.OID.1.2.840.10045.4.1", "SHA1withECDSA");116map.put("Signature.SHA224withECDSA",117"sun.security.mscapi.CSignature$SHA224withECDSA");118map.put("Alg.Alias.Signature.1.2.840.10045.4.3.1", "SHA224withECDSA");119map.put("Alg.Alias.Signature.OID.1.2.840.10045.4.3.1", "SHA224withECDSA");120map.put("Signature.SHA256withECDSA",121"sun.security.mscapi.CSignature$SHA256withECDSA");122map.put("Alg.Alias.Signature.1.2.840.10045.4.3.2", "SHA256withECDSA");123map.put("Alg.Alias.Signature.OID.1.2.840.10045.4.3.2", "SHA256withECDSA");124map.put("Signature.SHA384withECDSA",125"sun.security.mscapi.CSignature$SHA384withECDSA");126map.put("Alg.Alias.Signature.1.2.840.10045.4.3.3", "SHA384withECDSA");127map.put("Alg.Alias.Signature.OID.1.2.840.10045.4.3.3", "SHA384withECDSA");128map.put("Signature.SHA512withECDSA",129"sun.security.mscapi.CSignature$SHA512withECDSA");130map.put("Alg.Alias.Signature.1.2.840.10045.4.3.4", "SHA512withECDSA");131map.put("Alg.Alias.Signature.OID.1.2.840.10045.4.3.4", "SHA512withECDSA");132133// supported key classes134map.put("Signature.NONEwithRSA SupportedKeyClasses",135"sun.security.mscapi.CKey");136map.put("Signature.SHA1withRSA SupportedKeyClasses",137"sun.security.mscapi.CKey");138map.put("Signature.SHA256withRSA SupportedKeyClasses",139"sun.security.mscapi.CKey");140map.put("Signature.SHA384withRSA SupportedKeyClasses",141"sun.security.mscapi.CKey");142map.put("Signature.SHA512withRSA SupportedKeyClasses",143"sun.security.mscapi.CKey");144map.put("Signature.MD5withRSA SupportedKeyClasses",145"sun.security.mscapi.CKey");146map.put("Signature.MD2withRSA SupportedKeyClasses",147"sun.security.mscapi.CKey");148149map.put("Signature.RSASSA-PSS SupportedKeyClasses",150"sun.security.mscapi.CKey");151152map.put("Signature.SHA1withECDSA SupportedKeyClasses",153"sun.security.mscapi.CKey");154map.put("Signature.SHA224withECDSA SupportedKeyClasses",155"sun.security.mscapi.CKey");156map.put("Signature.SHA256withECDSA SupportedKeyClasses",157"sun.security.mscapi.CKey");158map.put("Signature.SHA384withECDSA SupportedKeyClasses",159"sun.security.mscapi.CKey");160map.put("Signature.SHA512withECDSA SupportedKeyClasses",161"sun.security.mscapi.CKey");162163/*164* Key Pair Generator engines165*/166map.put("KeyPairGenerator.RSA",167"sun.security.mscapi.CKeyPairGenerator$RSA");168map.put("KeyPairGenerator.RSA KeySize", "1024");169170/*171* Cipher engines172*/173map.put("Cipher.RSA", "sun.security.mscapi.CRSACipher");174map.put("Cipher.RSA/ECB/PKCS1Padding",175"sun.security.mscapi.CRSACipher");176map.put("Cipher.RSA SupportedModes", "ECB");177map.put("Cipher.RSA SupportedPaddings", "PKCS1PADDING");178map.put("Cipher.RSA SupportedKeyClasses", "sun.security.mscapi.CKey");179180if (map != this) {181AccessController.doPrivileged(new PutAllAction(this, map));182}183}184}185186187