test/jdk/sun/security/ssl/X509TrustManagerImpl/BasicConstraints.java
author xuelei
Mon, 25 Jun 2018 13:41:39 -0700
changeset 50768 68fa3d4026ea
parent 47216 71c04702a3d5
permissions -rw-r--r--
8196584: TLS 1.3 Implementation Reviewed-by: ascarpino, coffeys, dfuchs, jjiang, jnimeh, mullan, rhalade, ssahoo, valeriep, weijun, wetmore, xuelei Contributed-by: Adam Petcher <adam.petcher@oracle.com>, Amanda Jiang <amanda.jiang@oracle.com>, Anthony Scarpino <anthony.scarpino@oracle.com>, Bradford Wetmore <bradford.wetmore@oracle.com>, Jamil Nimeh <jamil.j.nimeh@oracle.com>, John Jiang <sha.jiang@oracle.com>, Rajan Halade <rajan.halade@oracle.com>, Sibabrata Sahoo <sibabrata.sahoo@oracle.com>, Valerie Peng <valerie.peng@oracle.com>, Weijun Wang <weijun.wang@oracle.com>, Xuelei Fan <xuelei.fan@oracle.com>
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12678
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
     1
/*
50768
68fa3d4026ea 8196584: TLS 1.3 Implementation
xuelei
parents: 47216
diff changeset
     2
 * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
12678
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
     4
 *
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
     7
 * published by the Free Software Foundation.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
     8
 *
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    13
 * accompanied this code).
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    14
 *
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    18
 *
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    21
 * questions.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    22
 */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    23
22268
d72c97c708ae 8030829: Add MD5 to jdk.certpath.disabledAlgorithms security property
xuelei
parents: 16020
diff changeset
    24
//
d72c97c708ae 8030829: Add MD5 to jdk.certpath.disabledAlgorithms security property
xuelei
parents: 16020
diff changeset
    25
// SunJSSE does not support dynamic system properties, no way to re-use
d72c97c708ae 8030829: Add MD5 to jdk.certpath.disabledAlgorithms security property
xuelei
parents: 16020
diff changeset
    26
// system properties in samevm/agentvm mode.
d72c97c708ae 8030829: Add MD5 to jdk.certpath.disabledAlgorithms security property
xuelei
parents: 16020
diff changeset
    27
//
d72c97c708ae 8030829: Add MD5 to jdk.certpath.disabledAlgorithms security property
xuelei
parents: 16020
diff changeset
    28
12678
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    29
/*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    30
 * @test
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    31
 * @bug 7166570
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    32
 * @summary JSSE certificate validation has started to fail for
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    33
 *     certificate chains
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    34
 * @run main/othervm BasicConstraints PKIX
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    35
 * @run main/othervm BasicConstraints SunX509
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    36
 */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    37
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    38
import java.net.*;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    39
import java.util.*;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    40
import java.io.*;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    41
import javax.net.ssl.*;
22268
d72c97c708ae 8030829: Add MD5 to jdk.certpath.disabledAlgorithms security property
xuelei
parents: 16020
diff changeset
    42
import java.security.Security;
12678
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    43
import java.security.KeyStore;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    44
import java.security.KeyFactory;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    45
import java.security.cert.*;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    46
import java.security.spec.*;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    47
import java.security.interfaces.*;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    48
import java.math.BigInteger;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    49
16020
b57c48f16179 8006182: cleanup to use java.util.Base64 in java security component, providers, and regression tests
msheppar
parents: 12678
diff changeset
    50
import java.util.Base64;
12678
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    51
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    52
public class BasicConstraints {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    53
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    54
    /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    55
     * =============================================================
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    56
     * Set the various variables needed for the tests, then
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    57
     * specify what tests to run on each side.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    58
     */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    59
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    60
    /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    61
     * Should we run the client or server in a separate thread?
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    62
     * Both sides can throw exceptions, but do you have a preference
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    63
     * as to which side should be the main thread.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    64
     */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    65
    static boolean separateServerThread = true;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    66
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    67
    /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    68
     * Where do we find the keystores?
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    69
     */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    70
    // Certificate information:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    71
    // Issuer: C=US, O=Java, OU=SunJSSE Test Serivce
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    72
    // Validity
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    73
    //     Not Before: May  5 02:40:50 2012 GMT
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    74
    //     Not After : Apr 15 02:40:50 2033 GMT
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    75
    // Subject: C=US, O=Java, OU=SunJSSE Test Serivce
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    76
    // X509v3 Subject Key Identifier:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    77
    //     DD:4E:8D:2A:11:C0:83:03:F0:AC:EB:A2:BF:F9:F2:7D:C8:69:1F:9B
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    78
    // X509v3 Authority Key Identifier:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    79
    //     keyid:DD:4E:8D:2A:11:C0:83:03:F0:AC:EB:A2:BF:F9:F2:7D:C8:69:1F:9B
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    80
    //     DirName:/C=US/O=Java/OU=SunJSSE Test Serivce
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    81
    //     serial:00
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    82
    static String trusedCertStr =
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    83
        "-----BEGIN CERTIFICATE-----\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    84
        "MIICkjCCAfugAwIBAgIBADANBgkqhkiG9w0BAQIFADA7MQswCQYDVQQGEwJVUzEN\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    85
        "MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UwHhcN\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    86
        "MTIwNTA1MDI0MDUwWhcNMzMwNDE1MDI0MDUwWjA7MQswCQYDVQQGEwJVUzENMAsG\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    87
        "A1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UwgZ8wDQYJ\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    88
        "KoZIhvcNAQEBBQADgY0AMIGJAoGBANtiq0AIJK+iVRwFrqcD7fYXTCbMYC5Qz/k6\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    89
        "AXBy7/1rI8wDhEJLE3m/+NSqiJwZcmdq2dNh/1fJFrwvzuURbc9+paOBWeHbN+Sc\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    90
        "x3huw91oPZme385VpoK3G13rSE114S/rF4DM9mz4EStFhSHXATjtdbskNOAYGLTV\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    91
        "x8uEy9GbAgMBAAGjgaUwgaIwHQYDVR0OBBYEFN1OjSoRwIMD8Kzror/58n3IaR+b\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    92
        "MGMGA1UdIwRcMFqAFN1OjSoRwIMD8Kzror/58n3IaR+boT+kPTA7MQswCQYDVQQG\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    93
        "EwJVUzENMAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    94
        "Y2WCAQAwDwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEC\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    95
        "BQADgYEAjjkJesQrkbr36N40egybaIxw7RcqT6iy5fkAGS1JYlBDk8uSCK1o6bCH\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    96
        "ls5EpYcGeEoabSS73WRdkO1lgeyWDduO4ef8cCCSpmpT6/YdZG0QS1PtcREeVig+\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    97
        "Zr25jNemS4ADHX0aaXP4kiV/G80cR7nX5t5XCUm4bYdbwM07NgI=\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    98
        "-----END CERTIFICATE-----";
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
    99
    static String trustedPrivateKey = // Private key in the format of PKCS#8
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   100
        "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANtiq0AIJK+iVRwF\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   101
        "rqcD7fYXTCbMYC5Qz/k6AXBy7/1rI8wDhEJLE3m/+NSqiJwZcmdq2dNh/1fJFrwv\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   102
        "zuURbc9+paOBWeHbN+Scx3huw91oPZme385VpoK3G13rSE114S/rF4DM9mz4EStF\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   103
        "hSHXATjtdbskNOAYGLTVx8uEy9GbAgMBAAECgYEA2VjHkIiA0ABjkX+PqKeb+VLb\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   104
        "fxS7tSca5C8zfdRhLxAWRui0/3ihst0eCJNrBDuxvAOACovsDWyLuaUjtI2v2ysz\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   105
        "vz6SPyGy82PhQOFzyKQuQ814N6EpothpiZzF0yFchfKIGhUsdY89UrGs9nM7m6NT\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   106
        "rztYvgIu4avg2VPR2AECQQD+pFAqipR2BplQRIuuRSZfHRxvoEyDjT1xnHJsC6WP\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   107
        "I5hCLghL91MhQGWbP4EJMKYQOTRVukWlcp2Kycpf+P5hAkEA3I43gmVUAPEdyZdY\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   108
        "fatW7OaLlbbYJb6qEtpCZ1Rwe/BIvm6H6E3qSi/lpz7Ia7WDulpbF6BawHH3pRFq\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   109
        "CUY5ewJBAP3pUDqrRpBN0jB0uSeDslhjSciQ+dqvSpZv3rSYBHUvlBJhnkpJiy37\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   110
        "7ZUZhIxqYxyIPgRBolLwb+FFh7OdL+ECQCtldDic9WVmC+VheRDpCKZ+SlK/8lGi\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   111
        "7VXeShiIvcU1JysJFoa35fSI7hf1O3wt7+hX5PqGG7Un94EsJwACKEcCQQC1TWt6\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   112
        "ArKH6tRxKjOxFtqfs8fgEVYUaOr3j1jF4KBUuX2mtQtddZe3VfJ2wPsuKMMxmhkB\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   113
        "e7xWWZnJsErt2e+E";
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   114
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   115
    // Certificate information:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   116
    // Issuer: C=US, O=Java, OU=SunJSSE Test Serivce
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   117
    // Validity
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   118
    //     Not Before: May  5 02:40:53 2012 GMT
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   119
    //     Not After : Jan 21 02:40:53 2032 GMT
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   120
    // Subject: C=US, O=Java, OU=SunJSSE Test Serivce, CN=casigner
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   121
    // X509v3 Subject Key Identifier:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   122
    //     13:07:E0:11:07:DB:EB:33:23:87:31:D0:DB:7E:16:56:BE:11:90:0A
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   123
    // X509v3 Authority Key Identifier:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   124
    //     keyid:DD:4E:8D:2A:11:C0:83:03:F0:AC:EB:A2:BF:F9:F2:7D:C8:69:1F:9B
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   125
    //     DirName:/C=US/O=Java/OU=SunJSSE Test Serivce
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   126
    //     serial:00
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   127
    static String caSignerStr =
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   128
        "-----BEGIN CERTIFICATE-----\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   129
        "MIICqDCCAhGgAwIBAgIBAjANBgkqhkiG9w0BAQQFADA7MQswCQYDVQQGEwJVUzEN\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   130
        "MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UwHhcN\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   131
        "MTIwNTA1MDI0MDUzWhcNMzIwMTIxMDI0MDUzWjBOMQswCQYDVQQGEwJVUzENMAsG\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   132
        "A1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UxETAPBgNV\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   133
        "BAMTCGNhc2lnbmVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+x8+o7oM0\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   134
        "ct/LZmZLXBL4CQ8jrULD5P7NtEW0hg/zxBFZfBHf+44Oo2eMPYZj+7xaREOH5BmV\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   135
        "KRYlzRtONAaC5Ng4Mrm5UKNPcMIIUjUOvm7vWM4oSTMSfoEcSX+vp99uUAkw3w7Z\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   136
        "+frYDm1M4At/j0b+lLij71GFN2L8drpgPQIDAQABo4GoMIGlMB0GA1UdDgQWBBQT\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   137
        "B+ARB9vrMyOHMdDbfhZWvhGQCjBjBgNVHSMEXDBagBTdTo0qEcCDA/Cs66K/+fJ9\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   138
        "yGkfm6E/pD0wOzELMAkGA1UEBhMCVVMxDTALBgNVBAoTBEphdmExHTAbBgNVBAsT\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   139
        "FFN1bkpTU0UgVGVzdCBTZXJpdmNlggEAMBIGA1UdEwEB/wQIMAYBAf8CAQEwCwYD\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   140
        "VR0PBAQDAgEGMA0GCSqGSIb3DQEBBAUAA4GBAI+LXA/UCPkTANablUkt80JNPWsl\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   141
        "pS4XLNgPxWaN0bkRDs5oI4ooWAz1rwpeJ/nfetOvWlpmrVjSeovBFja5Hl+dUHTf\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   142
        "VfuyzkxXbhuNiJIpo1mVBpNsjwu9YRxuwX6UA2LTUQpgvtVJEE012x3zRvxBCbu2\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   143
        "Y/v1R5fZ4c+hXDfC\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   144
        "-----END CERTIFICATE-----";
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   145
    static String caSignerPrivateKey = // Private key in the format of PKCS#8
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   146
        "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAL7Hz6jugzRy38tm\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   147
        "ZktcEvgJDyOtQsPk/s20RbSGD/PEEVl8Ed/7jg6jZ4w9hmP7vFpEQ4fkGZUpFiXN\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   148
        "G040BoLk2DgyublQo09wwghSNQ6+bu9YzihJMxJ+gRxJf6+n325QCTDfDtn5+tgO\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   149
        "bUzgC3+PRv6UuKPvUYU3Yvx2umA9AgMBAAECgYBYvu30cW8LONyt62Zua9hPFTe7\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   150
        "qt9B7QYyfkdmoG5PQMepTrOp84SzfoOukvgvDm0huFuJnSvhXQl2cCDhkgXskvFj\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   151
        "Hh7KBCFViVXokGdq5YoS0/KYMyQV0TZfJUvILBl51uc4/siQ2tClC/N4sa+1JhgW\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   152
        "a6dFGfRjiUKSSlmMwQJBAPWpIz3Q/c+DYMvoQr5OD8EaYwYIevlTdXb97RnJJh2b\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   153
        "UnhB9jrqesJiHYVzPmP0ukyPOXOwlp2T5Am4Kw0LFOkCQQDGz150NoHOp28Mvyc4\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   154
        "CTqz/zYzUhy2eCJESl196uyP4N65Y01VYQ3JDww4DlsXiU17tVSbgA9TCcfTYOzy\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   155
        "vyw1AkARUky+1hafZCcWGZljK8PmnMKwsTZikCTvL/Zg5BMA8Wu+OQBwpQnk3OAy\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   156
        "Aa87gw0DyvGFG8Vy9POWT9sRP1/JAkBqP0hrMvYMSs6+MSn0eHo2151PsAJIQcuO\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   157
        "U2/Da1khSzu8N6WMi2GiobgV/RYRbf9KrY2ZzMZjykZQYOxAjopBAkEAghCu38cN\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   158
        "aOsW6ueo24uzsWI1FTdE+qWNVEi3RSP120xXBCyhaBjIq4WVSlJK9K2aBaJpit3j\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   159
        "iQ5tl6zrLlxQhg==";
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   160
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   161
    // Certificate information:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   162
    // Issuer: C=US, O=Java, OU=SunJSSE Test Serivce, CN=casigner
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   163
    // Validity
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   164
    //     Not Before: May  5 02:40:57 2012 GMT
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   165
    //     Not After : Jan 21 02:40:57 2032 GMT
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   166
    // Subject: C=US, O=Java, OU=SunJSSE Test Serivce, CN=certissuer
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   167
    // X509v3 Subject Key Identifier:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   168
    //     39:0E:C6:33:B1:50:BC:73:07:31:E5:D8:04:F7:BB:97:55:CF:9B:C8
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   169
    // X509v3 Authority Key Identifier:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   170
    //     keyid:13:07:E0:11:07:DB:EB:33:23:87:31:D0:DB:7E:16:56:BE:11:90:0A
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   171
    //     DirName:/C=US/O=Java/OU=SunJSSE Test Serivce
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   172
    //     serial:02
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   173
    static String certIssuerStr =
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   174
        "-----BEGIN CERTIFICATE-----\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   175
        "MIICvjCCAiegAwIBAgIBAzANBgkqhkiG9w0BAQQFADBOMQswCQYDVQQGEwJVUzEN\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   176
        "MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UxETAP\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   177
        "BgNVBAMTCGNhc2lnbmVyMB4XDTEyMDUwNTAyNDA1N1oXDTMyMDEyMTAyNDA1N1ow\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   178
        "UDELMAkGA1UEBhMCVVMxDTALBgNVBAoTBEphdmExHTAbBgNVBAsTFFN1bkpTU0Ug\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   179
        "VGVzdCBTZXJpdmNlMRMwEQYDVQQDEwpjZXJ0aXNzdWVyMIGfMA0GCSqGSIb3DQEB\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   180
        "AQUAA4GNADCBiQKBgQCyz55zinU6kNL/LeiTNiBI0QWYmDG0YTotuC4D75liBNqs\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   181
        "7Mmladsh2mTtQUAwmuGaGzaZV25a+cUax0DXZoyBwdbTI09u1bUYsZcaUUKbPoCC\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   182
        "HH26e4jLFL4olW13Sv4ZAd57tIYevMw+Fp5f4fLPFGegCJTFlv2Qjpmic/cuvQID\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   183
        "AQABo4GpMIGmMB0GA1UdDgQWBBQ5DsYzsVC8cwcx5dgE97uXVc+byDBjBgNVHSME\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   184
        "XDBagBQTB+ARB9vrMyOHMdDbfhZWvhGQCqE/pD0wOzELMAkGA1UEBhMCVVMxDTAL\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   185
        "BgNVBAoTBEphdmExHTAbBgNVBAsTFFN1bkpTU0UgVGVzdCBTZXJpdmNlggECMBMG\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   186
        "A1UdEwEB/wQJMAcBAf8CAgQAMAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQQFAAOB\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   187
        "gQCQTagenCdClT98C+oTJGJrw/dUBD9K3tE6ZJKPMc/2bUia8G5ei1C0eXj4mWG2\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   188
        "lu9umR6C90/A6qB050QB2h50qtqxSrkpu+ym1yypauZpg7U3nUY9wZWJNI1vqrQZ\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   189
        "pqUMRcXY3iQIVKx+Qj+4/Za1wwFQzpEoGmqRW31V1SdMEw==\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   190
        "-----END CERTIFICATE-----";
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   191
    static String certIssuerPrivateKey = // Private key in the format of PKCS#8
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   192
        "MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBALLPnnOKdTqQ0v8t\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   193
        "6JM2IEjRBZiYMbRhOi24LgPvmWIE2qzsyaVp2yHaZO1BQDCa4ZobNplXblr5xRrH\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   194
        "QNdmjIHB1tMjT27VtRixlxpRQps+gIIcfbp7iMsUviiVbXdK/hkB3nu0hh68zD4W\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   195
        "nl/h8s8UZ6AIlMWW/ZCOmaJz9y69AgMBAAECgYEAjtew2tgm4gxDojqIauF4VPM1\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   196
        "pzsdqd1p3pAdomNLgrQiBLZ8N7oiph6TNb1EjA+OXc+ThFgF/oM9ZDD8qZZwcvjN\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   197
        "qDZlpTkFs2TaGcyEZfUaMB45NHVs6Nn+pSkagSNwwy3xeyAct7sQEzGNTDlEwVv5\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   198
        "7V9LQutQtBd6xT48KzkCQQDpNRfv2OFNG/6GtzJoO68oJhpnpl2MsYNi4ntRkre/\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   199
        "6uXpiCYaDskcrPMRwOOs0m7mxG+Ev+uKnLnSoEMm1GCbAkEAxEmDtiD0Psb8Z9BL\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   200
        "ZRb83Jqho3xe2MCAh3xUfz9b/Mhae9dZ44o4OCgQZuwvW1mczF0NtpgZl93BmYa2\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   201
        "hTwHhwJBAKHrEj6ep/fA6x0gD2idoATRR94VfbiU+7NpqtO9ecVP0+gsdr/66hn1\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   202
        "3yLBeZLh3MxvMTrLgkAQh1i9m0JXjOcCQQClLXAHHegrw+u3uNMZeKTFR+Lp3sk6\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   203
        "AZSnbvr0Me9I45kxSeG81x3ENALJecvIRbrrRws5MvmmkNhQR8rkh8WVAkEAk6b+\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   204
        "aVtmBgUaTS5+FFlHGHJY9HFrfT1a1C/dwyMuqlmbC3YsBmZaMOlKli5TXNybLff8\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   205
        "5KMeGEpXMzgC7AscGA==";
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   206
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   207
    // Certificate information:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   208
    // Issuer: C=US, O=Java, OU=SunJSSE Test Serivce, CN=certissuer
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   209
    // Validity
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   210
    //     Not Before: May  5 02:41:01 2012 GMT
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   211
    //     Not After : Jan 21 02:41:01 2032 GMT
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   212
    // Subject: C=US, O=Java, OU=SunJSSE Test Serivce, CN=localhost
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   213
    // X509v3 Subject Key Identifier:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   214
    //     AD:C0:2C:4C:E4:C2:2E:A1:BB:5D:92:BE:66:E0:4E:E0:0D:2F:11:EF
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   215
    // X509v3 Authority Key Identifier:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   216
    //     keyid:39:0E:C6:33:B1:50:BC:73:07:31:E5:D8:04:F7:BB:97:55:CF:9B:C8
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   217
    static String serverCertStr =
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   218
        "-----BEGIN CERTIFICATE-----\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   219
        "MIICjTCCAfagAwIBAgIBBDANBgkqhkiG9w0BAQQFADBQMQswCQYDVQQGEwJVUzEN\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   220
        "MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UxEzAR\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   221
        "BgNVBAMTCmNlcnRpc3N1ZXIwHhcNMTIwNTA1MDI0MTAxWhcNMzIwMTIxMDI0MTAx\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   222
        "WjBPMQswCQYDVQQGEwJVUzENMAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNT\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   223
        "RSBUZXN0IFNlcml2Y2UxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0B\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   224
        "AQEFAAOBjQAwgYkCgYEAvwaUd7wmBSKqycEstYLWD26vkU08DM39EtaT8wL9HnQ0\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   225
        "fgPblwBFI4zdLa2cuYXRZcFUb04N8nrkcpR0D6kkE+AlFAoRWrrZF80B7JTbtEK4\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   226
        "1PIeurihXvUT+4MpzGLOojIihMfvM4ufelblD56SInso4WFHm7t4qCln88J1gjkC\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   227
        "AwEAAaN4MHYwCwYDVR0PBAQDAgPoMB0GA1UdDgQWBBStwCxM5MIuobtdkr5m4E7g\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   228
        "DS8R7zAfBgNVHSMEGDAWgBQ5DsYzsVC8cwcx5dgE97uXVc+byDAnBgNVHSUEIDAe\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   229
        "BggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMDMA0GCSqGSIb3DQEBBAUAA4GB\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   230
        "AGfwcfdvEG/nSCiAn2MGbYHp34mgF3OA1SJLWUW0LvWJhwm2cn4AXlSoyvbwrkaB\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   231
        "IDDCwhJvvc0vUyL2kTx7sqVaFTq3mDs+ktlB/FfH0Pb+i8FE+g+7T42Iw/j0qxHL\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   232
        "YmgbrjBQf5WYN1AvBE/rrPt9aOtS3UsqtVGW574b0shW\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   233
        "-----END CERTIFICATE-----";
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   234
    static String serverPrivateKey = // Private key in the format of PKCS#8
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   235
        "MIICdAIBADANBgkqhkiG9w0BAQEFAASCAl4wggJaAgEAAoGBAL8GlHe8JgUiqsnB\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   236
        "LLWC1g9ur5FNPAzN/RLWk/MC/R50NH4D25cARSOM3S2tnLmF0WXBVG9ODfJ65HKU\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   237
        "dA+pJBPgJRQKEVq62RfNAeyU27RCuNTyHrq4oV71E/uDKcxizqIyIoTH7zOLn3pW\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   238
        "5Q+ekiJ7KOFhR5u7eKgpZ/PCdYI5AgMBAAECf3CscOYvFD3zNMnMJ5LomVqA7w3F\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   239
        "gKYM2jlCWAH+wU41PMEXhW6Lujw92jgXL1o+lERwxFzirVdZJWZwKgUSvzP1G0h3\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   240
        "fkucq1/UWnToK+8NSXNM/yS8hXbBgSEoJo5f7LKcIi1Ev6doBVofMxs+njzyWKbM\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   241
        "Nb7rOLHadghoon0CQQDgQzbzzSN8Dc1YmmylhI5v+0sQRHH0DL7D24k4Weh4vInG\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   242
        "EAbt4x8M7ZKEo8/dv0s4hbmNmAnJl93/RRxIyEqLAkEA2g87DiswSQam2pZ8GlrO\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   243
        "+w4Qg9mH8uxx8ou2rl0XlHzH1XiTNbkjfY0EZoL7L31BHFk9n11Fb2P85g6ws+Hy\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   244
        "ywJAM/xgyLNM/nzUlS128geAXUULaYH0SHaL4isJ7B4rXZGW/mrIsGxtzjlkNYsj\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   245
        "rGujrD6TfNc5rZmexIXowJZtcQJBAIww+pCzZ4mrgx5JXWQ8OZHiiu+ZrPOa2+9J\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   246
        "r5sOMpi+WGN/73S8oHqZbNjTINZ5OqEVJq8MchWZPQBTNXuQql0CQHEjUzzkCQa3\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   247
        "j6JTa2KAdqyvLOx0XF9zcc1gA069uNQI2gPUHS8V215z57f/gMGnDNhVfLs/vMKz\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   248
        "sFkVZ3zg7As=";
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   249
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   250
    // Certificate information:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   251
    // Issuer: C=US, O=Java, OU=SunJSSE Test Serivce, CN=certissuer
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   252
    // Validity
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   253
    //     Not Before: May  5 02:41:02 2012 GMT
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   254
    //     Not After : Jan 21 02:41:02 2032 GMT
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   255
    // Subject: C=US, O=Java, OU=SunJSSE Test Serivce, CN=InterOp Tester
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   256
    // X509v3 Subject Key Identifier:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   257
    //     57:7D:E2:33:33:60:DF:DD:5E:ED:81:3F:EB:F2:1B:59:7F:50:9C:99
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   258
    // X509v3 Authority Key Identifier:
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   259
    //     keyid:39:0E:C6:33:B1:50:BC:73:07:31:E5:D8:04:F7:BB:97:55:CF:9B:C8
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   260
    static String clientCertStr =
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   261
        "-----BEGIN CERTIFICATE-----\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   262
        "MIICaTCCAdKgAwIBAgIBBTANBgkqhkiG9w0BAQQFADBQMQswCQYDVQQGEwJVUzEN\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   263
        "MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UxEzAR\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   264
        "BgNVBAMTCmNlcnRpc3N1ZXIwHhcNMTIwNTA1MDI0MTAyWhcNMzIwMTIxMDI0MTAy\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   265
        "WjBUMQswCQYDVQQGEwJVUzENMAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNT\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   266
        "RSBUZXN0IFNlcml2Y2UxFzAVBgNVBAMTDkludGVyT3AgVGVzdGVyMIGfMA0GCSqG\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   267
        "SIb3DQEBAQUAA4GNADCBiQKBgQC1pA71nDg1KhhnHjRdi/eVDUa7uFZAtN8R9huu\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   268
        "pTwFoyqSX8lDMz8jDawOMmaI9dVZLjTh3hnf4KBEqQOearFVz45yBOjlgPLBuI4F\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   269
        "D/ORhgmDaIu2NK+c1yj6YQlyiO0DPwh55GtPLVG3iuEpejU7gQyaMuTaddoXrO7s\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   270
        "xwzanQIDAQABo08wTTALBgNVHQ8EBAMCA+gwHQYDVR0OBBYEFFd94jMzYN/dXu2B\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   271
        "P+vyG1l/UJyZMB8GA1UdIwQYMBaAFDkOxjOxULxzBzHl2AT3u5dVz5vIMA0GCSqG\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   272
        "SIb3DQEBBAUAA4GBAHTgB5W7wnl7Jnb4wNQcb6JdR8FRHIdslcRfnReFfZBHZZux\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   273
        "ChpA1lf62KIzYohKoxQXXMul86vnVSHnXq5xctHEmxCBnALEnoAcCOv6wfWqEA7g\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   274
        "2rX+ydmu+0ArbqKhSOypZ7K3ame0UOJJ6HDxdsgBYJuotmSou4KKq9e8GF+d\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   275
        "-----END CERTIFICATE-----";
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   276
    static String clientPrivateKey = // Private key in the format of PKCS#8
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   277
        "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBALWkDvWcODUqGGce\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   278
        "NF2L95UNRru4VkC03xH2G66lPAWjKpJfyUMzPyMNrA4yZoj11VkuNOHeGd/goESp\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   279
        "A55qsVXPjnIE6OWA8sG4jgUP85GGCYNoi7Y0r5zXKPphCXKI7QM/CHnka08tUbeK\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   280
        "4Sl6NTuBDJoy5Np12hes7uzHDNqdAgMBAAECgYEAjLwygwapXjfhdHQoqpp6F9iT\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   281
        "h3sKCVSaybXgOO75lHyZzZO9wv1/288KEm3mmBOxXEm6245UievnAYvaq/GKt93O\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   282
        "pj2zRefBzZjGbz0v84fmna/MN6zUUYX1PcVRMKWLx9HKKmQihzwoXdBX0o9PPXdi\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   283
        "LfzujNa/q8/mpI5PmEECQQDZwLSaL7OReWZTY4NoQuNzwhx5IKJUOtCFQfmHKZSW\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   284
        "wtXntZf+E5W9tGaDY5wjpq5cilKDAHdEAlFWxDe1PoE1AkEA1YuTBpctOLBfquFn\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   285
        "Y/S3lzGVlnIHDk3dj4bFglkoJ2bCdlwRNUyBSjAjBDcbYhper8S7GlEN5SiEdz9I\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   286
        "3OjIyQJBAKEPMgYhZjYhjxf6sQV7A/VpC9pj0u1uGzGVXNUmYisorUKXRHa/UbBh\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   287
        "MLnaAXE1Jh54iRMwUwbQmA0PUQ0T0EkCQQCcr6/umwhkWw2nHYK2Vf5LoudGn15M\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   288
        "AZg7UsEjVnXfC0hOfllmCT+ohs96rVCbWAv33lsHAUg3x9YChV3aMbf5AkAj1kuV\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   289
        "jUTgFKjediyQC6uof7YdLn+gQGiXK1XE0GBN4WMkzcLiS0jC+MFTgKfFnFdh9K0y\n" +
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   290
        "fswYKdTA/o8RKaa5";
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   291
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   292
    static char passphrase[] = "passphrase".toCharArray();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   293
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   294
    /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   295
     * Is the server ready to serve?
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   296
     */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   297
    volatile static boolean serverReady = false;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   298
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   299
    /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   300
     * Turn on SSL debugging?
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   301
     */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   302
    static boolean debug = false;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   303
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   304
    /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   305
     * Define the server side of the test.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   306
     *
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   307
     * If the server prematurely exits, serverReady will be set to true
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   308
     * to avoid infinite hangs.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   309
     */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   310
    void doServerSide() throws Exception {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   311
        SSLContext context = getSSLContext(true);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   312
        SSLServerSocketFactory sslssf = context.getServerSocketFactory();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   313
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   314
        SSLServerSocket sslServerSocket =
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   315
            (SSLServerSocket)sslssf.createServerSocket(serverPort);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   316
        serverPort = sslServerSocket.getLocalPort();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   317
        SSLSocket sslSocket = null;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   318
        try {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   319
            /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   320
             * Signal Client, we're ready for his connect.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   321
             */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   322
            serverReady = true;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   323
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   324
            sslSocket = (SSLSocket) sslServerSocket.accept();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   325
            sslSocket.setNeedClientAuth(true);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   326
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   327
            InputStream sslIS = sslSocket.getInputStream();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   328
            OutputStream sslOS = sslSocket.getOutputStream();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   329
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   330
            sslIS.read();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   331
            sslOS.write(85);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   332
            sslOS.flush();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   333
        } finally {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   334
            if (sslSocket != null) {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   335
                sslSocket.close();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   336
            }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   337
            sslServerSocket.close();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   338
        }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   339
    }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   340
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   341
    /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   342
     * Define the client side of the test.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   343
     *
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   344
     * If the server prematurely exits, serverReady will be set to true
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   345
     * to avoid infinite hangs.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   346
     */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   347
    void doClientSide() throws Exception {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   348
        /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   349
         * Wait for server to get started.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   350
         */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   351
        while (!serverReady) {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   352
            Thread.sleep(50);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   353
        }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   354
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   355
        SSLContext context = getSSLContext(false);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   356
        SSLSocketFactory sslsf = context.getSocketFactory();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   357
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   358
        SSLSocket sslSocket =
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   359
            (SSLSocket)sslsf.createSocket("localhost", serverPort);
50768
68fa3d4026ea 8196584: TLS 1.3 Implementation
xuelei
parents: 47216
diff changeset
   360
        sslSocket.setEnabledProtocols(new String[] { "TLSv1", "TLSv1.1", "TLSv1.2" });
12678
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   361
        try {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   362
            InputStream sslIS = sslSocket.getInputStream();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   363
            OutputStream sslOS = sslSocket.getOutputStream();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   364
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   365
            sslOS.write(280);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   366
            sslOS.flush();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   367
            sslIS.read();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   368
        } finally {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   369
            sslSocket.close();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   370
        }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   371
    }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   372
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   373
    // get the ssl context
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   374
    private static SSLContext getSSLContext(boolean isServer) throws Exception {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   375
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   376
        // generate certificate from cert string
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   377
        CertificateFactory cf = CertificateFactory.getInstance("X.509");
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   378
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   379
        // create a key store
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   380
        KeyStore ks = KeyStore.getInstance("JKS");
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   381
        ks.load(null, null);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   382
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   383
        // import the trused cert
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   384
        ByteArrayInputStream is =
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   385
            new ByteArrayInputStream(trusedCertStr.getBytes());
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   386
        Certificate trusedCert = cf.generateCertificate(is);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   387
        is.close();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   388
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   389
        ks.setCertificateEntry("SunJSSE Test Serivce", trusedCert);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   390
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   391
        // import the certificate chain and key
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   392
        Certificate[] chain = new Certificate[3];
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   393
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   394
        is = new ByteArrayInputStream(caSignerStr.getBytes());
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   395
        Certificate caSignerCert = cf.generateCertificate(is);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   396
        is.close();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   397
        chain[2] = caSignerCert;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   398
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   399
        is = new ByteArrayInputStream(certIssuerStr.getBytes());
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   400
        Certificate certIssuerCert = cf.generateCertificate(is);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   401
        is.close();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   402
        chain[1] = certIssuerCert;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   403
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   404
        PKCS8EncodedKeySpec priKeySpec = null;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   405
        if (isServer) {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   406
            priKeySpec = new PKCS8EncodedKeySpec(
16020
b57c48f16179 8006182: cleanup to use java.util.Base64 in java security component, providers, and regression tests
msheppar
parents: 12678
diff changeset
   407
                            Base64.getMimeDecoder().decode(serverPrivateKey));
12678
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   408
            is = new ByteArrayInputStream(serverCertStr.getBytes());
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   409
        } else {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   410
            priKeySpec = new PKCS8EncodedKeySpec(
16020
b57c48f16179 8006182: cleanup to use java.util.Base64 in java security component, providers, and regression tests
msheppar
parents: 12678
diff changeset
   411
                            Base64.getMimeDecoder().decode(clientPrivateKey));
12678
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   412
            is = new ByteArrayInputStream(clientCertStr.getBytes());
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   413
        }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   414
        KeyFactory kf = KeyFactory.getInstance("RSA");
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   415
        RSAPrivateKey priKey = (RSAPrivateKey)kf.generatePrivate(priKeySpec);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   416
        Certificate keyCert = cf.generateCertificate(is);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   417
        is.close();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   418
        chain[0] = keyCert;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   419
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   420
        ks.setKeyEntry("End Entity", priKey, passphrase, chain);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   421
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   422
        // check the certification path
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   423
        PKIXParameters paras = new PKIXParameters(ks);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   424
        paras.setRevocationEnabled(false);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   425
        CertPath path = cf.generateCertPath(Arrays.asList(chain));
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   426
        CertPathValidator cv = CertPathValidator.getInstance("PKIX");
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   427
        cv.validate(path, paras);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   428
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   429
        // create SSL context
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   430
        TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmAlgorithm);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   431
        tmf.init(ks);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   432
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   433
        SSLContext ctx = SSLContext.getInstance("TLS");
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   434
        KeyManagerFactory kmf = KeyManagerFactory.getInstance("NewSunX509");
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   435
        kmf.init(ks, passphrase);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   436
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   437
        ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   438
        ks = null;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   439
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   440
        return ctx;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   441
    }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   442
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   443
    private static String tmAlgorithm;        // trust manager
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   444
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   445
    private static void parseArguments(String[] args) {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   446
        tmAlgorithm = args[0];
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   447
    }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   448
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   449
    /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   450
     * =============================================================
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   451
     * The remainder is just support stuff
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   452
     */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   453
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   454
    // use any free port by default
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   455
    volatile int serverPort = 0;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   456
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   457
    volatile Exception serverException = null;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   458
    volatile Exception clientException = null;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   459
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   460
    public static void main(String args[]) throws Exception {
22268
d72c97c708ae 8030829: Add MD5 to jdk.certpath.disabledAlgorithms security property
xuelei
parents: 16020
diff changeset
   461
        // MD5 is used in this test case, don't disable MD5 algorithm.
35298
9f93cbce8c44 8144773: Further reduce use of MD5
xuelei
parents: 23052
diff changeset
   462
        Security.setProperty("jdk.certpath.disabledAlgorithms",
9f93cbce8c44 8144773: Further reduce use of MD5
xuelei
parents: 23052
diff changeset
   463
                "MD2, RSA keySize < 1024");
9f93cbce8c44 8144773: Further reduce use of MD5
xuelei
parents: 23052
diff changeset
   464
        Security.setProperty("jdk.tls.disabledAlgorithms",
9f93cbce8c44 8144773: Further reduce use of MD5
xuelei
parents: 23052
diff changeset
   465
                "SSLv3, RC4, DH keySize < 768");
22268
d72c97c708ae 8030829: Add MD5 to jdk.certpath.disabledAlgorithms security property
xuelei
parents: 16020
diff changeset
   466
12678
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   467
        if (debug)
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   468
            System.setProperty("javax.net.debug", "all");
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   469
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   470
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   471
        /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   472
         * Get the customized arguments.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   473
         */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   474
        parseArguments(args);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   475
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   476
        /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   477
         * Start the tests.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   478
         */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   479
        new BasicConstraints();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   480
    }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   481
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   482
    Thread clientThread = null;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   483
    Thread serverThread = null;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   484
    /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   485
     * Primary constructor, used to drive remainder of the test.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   486
     *
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   487
     * Fork off the other side, then do your work.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   488
     */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   489
    BasicConstraints() throws Exception {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   490
        if (separateServerThread) {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   491
            startServer(true);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   492
            startClient(false);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   493
        } else {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   494
            startClient(true);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   495
            startServer(false);
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   496
        }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   497
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   498
        /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   499
         * Wait for other side to close down.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   500
         */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   501
        if (separateServerThread) {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   502
            serverThread.join();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   503
        } else {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   504
            clientThread.join();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   505
        }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   506
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   507
        /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   508
         * When we get here, the test is pretty much over.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   509
         *
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   510
         * If the main thread excepted, that propagates back
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   511
         * immediately.  If the other thread threw an exception, we
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   512
         * should report back.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   513
         */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   514
        if (serverException != null)
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   515
            throw serverException;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   516
        if (clientException != null)
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   517
            throw clientException;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   518
    }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   519
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   520
    void startServer(boolean newThread) throws Exception {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   521
        if (newThread) {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   522
            serverThread = new Thread() {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   523
                public void run() {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   524
                    try {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   525
                        doServerSide();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   526
                    } catch (Exception e) {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   527
                        /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   528
                         * Our server thread just died.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   529
                         *
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   530
                         * Release the client, if not active already...
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   531
                         */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   532
                        System.err.println("Server died...");
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   533
                        serverReady = true;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   534
                        serverException = e;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   535
                    }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   536
                }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   537
            };
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   538
            serverThread.start();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   539
        } else {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   540
            doServerSide();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   541
        }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   542
    }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   543
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   544
    void startClient(boolean newThread) throws Exception {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   545
        if (newThread) {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   546
            clientThread = new Thread() {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   547
                public void run() {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   548
                    try {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   549
                        doClientSide();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   550
                    } catch (Exception e) {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   551
                        /*
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   552
                         * Our client thread just died.
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   553
                         */
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   554
                        System.err.println("Client died...");
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   555
                        clientException = e;
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   556
                    }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   557
                }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   558
            };
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   559
            clientThread.start();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   560
        } else {
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   561
            doClientSide();
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   562
        }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   563
    }
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   564
e40db477dd56 7166570: JSSE certificate validation has started to fail for certificate chains
xuelei
parents:
diff changeset
   565
}