< prev index next >

jdk/test/sun/security/tools/jarsigner/TimestampCheck.java

Print this page
rev 17251 : 8180888: move jdk.testlibrary.JarUtils to the top level testlibrary
Reviewed-by: duke
   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");
< prev index next >