/
githubmirror
/
panama-vector
Обзор
Документация
Войти
/
githubmirror
/
panama-vector
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/jdk/sun/security/rsa/GenKeyStore.java
114 строк
4 KB
Daisuke Yamazaki
8379675: test/jdk/sun/security/pkcs11/rsa/GenKeyStore.java uses removed methods
06 апр 2026, 06:08
06 апр 2026, 06:08
1d29010
Код
Авторство
О чём код?
/* * Copyright (c) 2012, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ // program to generate rsakeys.ks. does not need to run during testing // checked into the workspace so that the keystore file can be recreated // in the future if needed. // // To run: // java --add-exports java.base/sun.security.x509=ALL-UNNAMED GenKeyStore.java // @author Andreas Sterbenz import java.io.*; import java.math.BigInteger; import java.util.*; import java.security.*; import java.security.cert.*; import java.security.interfaces.*; import java.security.spec.*; import sun.security.x509.*; public class GenKeyStore { static final char[] password = "test12".toCharArray(); private static X509Certificate getCertificate(String suffix, PublicKey publicKey, PrivateKey privateKey) throws Exception { X500Name name = new X500Name("CN=Dummy Certificate " + suffix); String algorithm = "SHA1with" + publicKey.getAlgorithm(); Date date = new Date(); X509CertInfo certInfo = new X509CertInfo(); certInfo.setVersion(new CertificateVersion(CertificateVersion.V1)); certInfo.setSerialNumber(new CertificateSerialNumber(1)); certInfo.setSubject(name); certInfo.setIssuer(name); certInfo.setKey(new CertificateX509Key(publicKey)); certInfo.setValidity(new CertificateValidity(date, date)); return X509CertImpl.newSigned(certInfo, privateKey, algorithm); } private static void addToKeyStore(KeyStore ks, KeyPair kp, String name) throws Exception { PublicKey pubKey = kp.getPublic(); PrivateKey privKey = kp.getPrivate(); X509Certificate cert = getCertificate(name, pubKey, privKey); ks.setKeyEntry(name, privKey, password, new X509Certificate[] {cert}); } private static void generateKeyPair(KeyStore ks, int keyLength, String alias) throws Exception { System.out.println("Generating " + keyLength + " keypair " + alias + "..."); KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", System.getProperty("test.provider.name", "SunRsaSign")); kpg.initialize(keyLength); KeyPair kp = kpg.generateKeyPair(); addToKeyStore(ks, kp, alias); } static KeyStore ks; public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); KeyStore ks = KeyStore.getInstance("JKS"); ks.load(null, null); generateKeyPair(ks, 512, "rsa512a"); generateKeyPair(ks, 512, "rsa512b"); generateKeyPair(ks, 1024, "rsa1024a"); generateKeyPair(ks, 1024, "rsa1024b"); generateKeyPair(ks, 2048, "rsa2048a"); generateKeyPair(ks, 2048, "rsa2048b"); generateKeyPair(ks, 4096, "rsa4096a"); // only one 4096 bit keys and none longer than that // that would slow down the other tests too much // on old machines // generateKeyPair(ks, 4096, "rsa4096b"); // generateKeyPair(ks, 8192, "rsa8192a"); // generateKeyPair(ks, 8192, "rsa8192b"); OutputStream out = new FileOutputStream("rsakeys.ks"); ks.store(out, password); out.close(); long stop = System.currentTimeMillis(); System.out.println("Done (" + (stop - start) + " ms)."); } }