1 /*
2 * Copyright (c) 2003, 2016, 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 */
28 import java.io.InputStream;
29 import java.io.OutputStream;
30 import java.math.BigInteger;
31 import java.net.InetSocketAddress;
32 import java.nio.file.Files;
33 import java.nio.file.Paths;
34 import java.security.KeyStore;
35 import java.security.PrivateKey;
36 import java.security.Signature;
37 import java.security.cert.Certificate;
38 import java.security.cert.X509Certificate;
39 import java.util.ArrayList;
40 import java.util.Arrays;
41 import java.util.Calendar;
42 import java.util.List;
43 import java.util.jar.JarEntry;
44 import java.util.jar.JarFile;
45
46 import jdk.test.lib.SecurityTools;
47 import jdk.testlibrary.*;
48 import jdk.testlibrary.JarUtils;
49 import sun.security.pkcs.ContentInfo;
50 import sun.security.pkcs.PKCS7;
51 import sun.security.pkcs.PKCS9Attribute;
52 import sun.security.pkcs.SignerInfo;
53 import sun.security.timestamp.TimestampToken;
54 import sun.security.util.DerOutputStream;
55 import sun.security.util.DerValue;
56 import sun.security.util.ObjectIdentifier;
57 import sun.security.x509.AlgorithmId;
58 import sun.security.x509.X500Name;
59
60 /*
61 * @test
62 * @bug 6543842 6543440 6939248 8009636 8024302 8163304 8169911
63 * @summary checking response of timestamp
64 * @modules java.base/sun.security.pkcs
65 * java.base/sun.security.timestamp
66 * java.base/sun.security.x509
67 * java.base/sun.security.util
68 * java.base/sun.security.tools.keytool
540 String alias = path.equals("badku") ? "badku" : "old";
541 return signWithAliasAndTsa(path, "old.jar", alias, extra);
542 }
543
544 static OutputAnalyzer signWithAliasAndTsa (String path, String jar,
545 String alias, String...extra) throws Throwable {
546 which++;
547 System.err.println("\n>> Test #" + which + ": " + Arrays.toString(extra));
548 List<String> args = List.of("-J-Djava.security.egd=file:/dev/./urandom",
549 "-debug", "-signedjar", path + ".jar", jar, alias);
550 args = new ArrayList<>(args);
551 if (!path.equals("none") && !path.equals("badku")) {
552 args.add("-tsa");
553 args.add(host + path);
554 }
555 args.addAll(Arrays.asList(extra));
556 return jarsigner(args);
557 }
558
559 static void prepare() throws Exception {
560 jdk.testlibrary.JarUtils.createJar("old.jar", "A");
561 Files.deleteIfExists(Paths.get("tsks"));
562 keytool("-alias ca -genkeypair -ext bc -dname CN=CA");
563 keytool("-alias old -genkeypair -dname CN=old");
564 keytool("-alias dsakey -genkeypair -keyalg DSA -dname CN=dsakey");
565 keytool("-alias weakkeysize -genkeypair -keysize 512 -dname CN=weakkeysize");
566 keytool("-alias badku -genkeypair -dname CN=badku");
567 keytool("-alias ts -genkeypair -dname CN=ts");
568 keytool("-alias tsweak -genkeypair -keysize 512 -dname CN=tsbad1");
569 keytool("-alias tsbad1 -genkeypair -dname CN=tsbad1");
570 keytool("-alias tsbad2 -genkeypair -dname CN=tsbad2");
571 keytool("-alias tsbad3 -genkeypair -dname CN=tsbad3");
572
573 gencert("old");
574 gencert("dsakey");
575 gencert("weakkeysize");
576 gencert("badku", "-ext ku:critical=keyAgreement");
577 gencert("ts", "-ext eku:critical=ts");
578 gencert("tsweak", "-ext eku:critical=ts");
579 gencert("tsbad1");
580 gencert("tsbad2", "-ext eku=ts");
|
1 /*
2 * Copyright (c) 2003, 2017, 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 */
28 import java.io.InputStream;
29 import java.io.OutputStream;
30 import java.math.BigInteger;
31 import java.net.InetSocketAddress;
32 import java.nio.file.Files;
33 import java.nio.file.Paths;
34 import java.security.KeyStore;
35 import java.security.PrivateKey;
36 import java.security.Signature;
37 import java.security.cert.Certificate;
38 import java.security.cert.X509Certificate;
39 import java.util.ArrayList;
40 import java.util.Arrays;
41 import java.util.Calendar;
42 import java.util.List;
43 import java.util.jar.JarEntry;
44 import java.util.jar.JarFile;
45
46 import jdk.test.lib.SecurityTools;
47 import jdk.testlibrary.*;
48 import jdk.test.lib.util.JarUtils;
49 import sun.security.pkcs.ContentInfo;
50 import sun.security.pkcs.PKCS7;
51 import sun.security.pkcs.PKCS9Attribute;
52 import sun.security.pkcs.SignerInfo;
53 import sun.security.timestamp.TimestampToken;
54 import sun.security.util.DerOutputStream;
55 import sun.security.util.DerValue;
56 import sun.security.util.ObjectIdentifier;
57 import sun.security.x509.AlgorithmId;
58 import sun.security.x509.X500Name;
59
60 /*
61 * @test
62 * @bug 6543842 6543440 6939248 8009636 8024302 8163304 8169911
63 * @summary checking response of timestamp
64 * @modules java.base/sun.security.pkcs
65 * java.base/sun.security.timestamp
66 * java.base/sun.security.x509
67 * java.base/sun.security.util
68 * java.base/sun.security.tools.keytool
540 String alias = path.equals("badku") ? "badku" : "old";
541 return signWithAliasAndTsa(path, "old.jar", alias, extra);
542 }
543
544 static OutputAnalyzer signWithAliasAndTsa (String path, String jar,
545 String alias, String...extra) throws Throwable {
546 which++;
547 System.err.println("\n>> Test #" + which + ": " + Arrays.toString(extra));
548 List<String> args = List.of("-J-Djava.security.egd=file:/dev/./urandom",
549 "-debug", "-signedjar", path + ".jar", jar, alias);
550 args = new ArrayList<>(args);
551 if (!path.equals("none") && !path.equals("badku")) {
552 args.add("-tsa");
553 args.add(host + path);
554 }
555 args.addAll(Arrays.asList(extra));
556 return jarsigner(args);
557 }
558
559 static void prepare() throws Exception {
560 JarUtils.createJar("old.jar", "A");
561 Files.deleteIfExists(Paths.get("tsks"));
562 keytool("-alias ca -genkeypair -ext bc -dname CN=CA");
563 keytool("-alias old -genkeypair -dname CN=old");
564 keytool("-alias dsakey -genkeypair -keyalg DSA -dname CN=dsakey");
565 keytool("-alias weakkeysize -genkeypair -keysize 512 -dname CN=weakkeysize");
566 keytool("-alias badku -genkeypair -dname CN=badku");
567 keytool("-alias ts -genkeypair -dname CN=ts");
568 keytool("-alias tsweak -genkeypair -keysize 512 -dname CN=tsbad1");
569 keytool("-alias tsbad1 -genkeypair -dname CN=tsbad1");
570 keytool("-alias tsbad2 -genkeypair -dname CN=tsbad2");
571 keytool("-alias tsbad3 -genkeypair -dname CN=tsbad3");
572
573 gencert("old");
574 gencert("dsakey");
575 gencert("weakkeysize");
576 gencert("badku", "-ext ku:critical=keyAgreement");
577 gencert("ts", "-ext eku:critical=ts");
578 gencert("tsweak", "-ext eku:critical=ts");
579 gencert("tsbad1");
580 gencert("tsbad2", "-ext eku=ts");
|