1 /*
2 * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
32 * @run main/othervm TestRSAKeyLength sm
33 */
34
35 import java.security.InvalidKeyException;
36 import java.security.KeyPair;
37 import java.security.KeyPairGenerator;
38 import java.security.PrivateKey;
39 import java.security.Provider;
40 import java.security.PublicKey;
41 import java.security.Signature;
42 import java.security.SignedObject;
43
44 public class TestRSAKeyLength extends PKCS11Test {
45
46 public static void main(String[] args) throws Exception {
47 main(new TestRSAKeyLength(), args);
48 }
49
50 @Override
51 public void main(Provider p) throws Exception {
52
53 /*
54 * Use Solaris SPARC 11.2 or later to avoid an intermittent failure
55 * when running SunPKCS11-Solaris (8044554)
56 */
57 if (p.getName().equals("SunPKCS11-Solaris") &&
58 props.getProperty("os.name").equals("SunOS") &&
59 props.getProperty("os.arch").equals("sparcv9") &&
60 props.getProperty("os.version").compareTo("5.11") <= 0 &&
61 getDistro().compareTo("11.2") < 0) {
62
63 System.out.println("SunPKCS11-Solaris provider requires " +
64 "Solaris SPARC 11.2 or later, skipping");
65 return;
66 }
67
68 boolean isValidKeyLength[] = { true, true, true, false, false };
69 String algos[] = { "SHA1withRSA", "SHA224withRSA", "SHA256withRSA",
70 "SHA384withRSA", "SHA512withRSA" };
71 KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", p);
72 kpg.initialize(512);
73 KeyPair kp = kpg.generateKeyPair();
74 PrivateKey privKey = kp.getPrivate();
75 PublicKey pubKey = kp.getPublic();
76
77 if (algos.length != isValidKeyLength.length) {
78 throw new Exception("Internal Error: number of test algos" +
79 " and results length mismatch!");
80 }
81 for (int i = 0; i < algos.length; i++) {
82 Signature sig = Signature.getInstance(algos[i], p);
83 System.out.println("Testing RSA signature " + algos[i]);
84 try {
85 sig.initSign(privKey);
86 if (!isValidKeyLength[i]) {
|
1 /*
2 * Copyright (c) 2010, 2020, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
32 * @run main/othervm TestRSAKeyLength sm
33 */
34
35 import java.security.InvalidKeyException;
36 import java.security.KeyPair;
37 import java.security.KeyPairGenerator;
38 import java.security.PrivateKey;
39 import java.security.Provider;
40 import java.security.PublicKey;
41 import java.security.Signature;
42 import java.security.SignedObject;
43
44 public class TestRSAKeyLength extends PKCS11Test {
45
46 public static void main(String[] args) throws Exception {
47 main(new TestRSAKeyLength(), args);
48 }
49
50 @Override
51 public void main(Provider p) throws Exception {
52
53 boolean isValidKeyLength[] = { true, true, true, false, false };
54 String algos[] = { "SHA1withRSA", "SHA224withRSA", "SHA256withRSA",
55 "SHA384withRSA", "SHA512withRSA" };
56 KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", p);
57 kpg.initialize(512);
58 KeyPair kp = kpg.generateKeyPair();
59 PrivateKey privKey = kp.getPrivate();
60 PublicKey pubKey = kp.getPublic();
61
62 if (algos.length != isValidKeyLength.length) {
63 throw new Exception("Internal Error: number of test algos" +
64 " and results length mismatch!");
65 }
66 for (int i = 0; i < algos.length; i++) {
67 Signature sig = Signature.getInstance(algos[i], p);
68 System.out.println("Testing RSA signature " + algos[i]);
69 try {
70 sig.initSign(privKey);
71 if (!isValidKeyLength[i]) {
|