test/jdk/security/infra/java/security/cert/CertPathValidator/certification/LetsEncryptCA.java
author rhalade
Wed, 09 Oct 2019 12:21:28 -0700
changeset 58524 e84d8379815b
parent 48256 472f74fb6c6b
permissions -rw-r--r--
8231887: ComodoCA.java fails because certificate was revoked Reviewed-by: mullan, clanger
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
48256
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
     1
/*
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
     2
 * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
     4
 *
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
     7
 * published by the Free Software Foundation.
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
     8
 *
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    13
 * accompanied this code).
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    14
 *
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    18
 *
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    21
 * questions.
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    22
 */
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    23
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    24
 /*
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    25
 * @test
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    26
 * @bug 8189131
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    27
 * @summary Interoperability tests with Let's Encrypt CA
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    28
 * @build ValidatePathWithParams
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    29
 * @run main/othervm -Djava.security.debug=certpath LetsEncryptCA OCSP
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    30
 * @run main/othervm -Djava.security.debug=certpath LetsEncryptCA CRL
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    31
 */
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    32
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    33
 /*
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    34
 * "Lets Encrypt Authority X1" intermediate CA is retired.
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    35
 * Test certs should be chained through "Lets Encrypt Authority X3" CA.
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    36
 *
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    37
 * Obtain TLS test artifacts for Let's Encrypt CA from:
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    38
 *
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    39
 * Valid TLS Certificates:
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    40
 * https://valid-isrgrootx1.letsencrypt.org/
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    41
 *
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    42
 * Revoked TLS Certificates:
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    43
 * https://revoked-isrgrootx1.letsencrypt.org/
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    44
 *
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    45
 * Test artifacts don't have CRLs listed.
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    46
 */
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    47
public class LetsEncryptCA {
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    48
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    49
    // Owner: CN=Let's Encrypt Authority X3, O=Let's Encrypt, C=US
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    50
    // Issuer: CN=ISRG Root X1, O=Internet Security Research Group, C=US
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    51
    private static final String INT = "-----BEGIN CERTIFICATE-----\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    52
            + "MIIFjTCCA3WgAwIBAgIRANOxciY0IzLc9AUoUSrsnGowDQYJKoZIhvcNAQELBQAw\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    53
            + "TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    54
            + "cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTYxMDA2MTU0MzU1\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    55
            + "WhcNMjExMDA2MTU0MzU1WjBKMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    56
            + "RW5jcnlwdDEjMCEGA1UEAxMaTGV0J3MgRW5jcnlwdCBBdXRob3JpdHkgWDMwggEi\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    57
            + "MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCc0wzwWuUuR7dyXTeDs2hjMOrX\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    58
            + "NSYZJeG9vjXxcJIvt7hLQQWrqZ41CFjssSrEaIcLo+N15Obzp2JxunmBYB/XkZqf\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    59
            + "89B4Z3HIaQ6Vkc/+5pnpYDxIzH7KTXcSJJ1HG1rrueweNwAcnKx7pwXqzkrrvUHl\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    60
            + "Npi5y/1tPJZo3yMqQpAMhnRnyH+lmrhSYRQTP2XpgofL2/oOVvaGifOFP5eGr7Dc\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    61
            + "Gu9rDZUWfcQroGWymQQ2dYBrrErzG5BJeC+ilk8qICUpBMZ0wNAxzY8xOJUWuqgz\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    62
            + "uEPxsR/DMH+ieTETPS02+OP88jNquTkxxa/EjQ0dZBYzqvqEKbbUC8DYfcOTAgMB\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    63
            + "AAGjggFnMIIBYzAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADBU\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    64
            + "BgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIB\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    65
            + "FiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMB0GA1UdDgQWBBSo\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    66
            + "SmpjBH3duubRObemRWXv86jsoTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    67
            + "LnJvb3QteDEubGV0c2VuY3J5cHQub3JnMHIGCCsGAQUFBwEBBGYwZDAwBggrBgEF\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    68
            + "BQcwAYYkaHR0cDovL29jc3Aucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcvMDAGCCsG\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    69
            + "AQUFBzAChiRodHRwOi8vY2VydC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZy8wHwYD\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    70
            + "VR0jBBgwFoAUebRZ5nu25eQBc4AIiMgaWPbpm24wDQYJKoZIhvcNAQELBQADggIB\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    71
            + "ABnPdSA0LTqmRf/Q1eaM2jLonG4bQdEnqOJQ8nCqxOeTRrToEKtwT++36gTSlBGx\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    72
            + "A/5dut82jJQ2jxN8RI8L9QFXrWi4xXnA2EqA10yjHiR6H9cj6MFiOnb5In1eWsRM\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    73
            + "UM2v3e9tNsCAgBukPHAg1lQh07rvFKm/Bz9BCjaxorALINUfZ9DD64j2igLIxle2\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    74
            + "DPxW8dI/F2loHMjXZjqG8RkqZUdoxtID5+90FgsGIfkMpqgRS05f4zPbCEHqCXl1\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    75
            + "eO5HyELTgcVlLXXQDgAWnRzut1hFJeczY1tjQQno6f6s+nMydLN26WuU4s3UYvOu\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    76
            + "OsUxRlJu7TSRHqDC3lSE5XggVkzdaPkuKGQbGpny+01/47hfXXNB7HntWNZ6N2Vw\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    77
            + "p7G6OfY+YQrZwIaQmhrIqJZuigsrbe3W+gdn5ykE9+Ky0VgVUsfxo52mwFYs1JKY\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    78
            + "2PGDuWx8M6DlS6qQkvHaRUo0FMd8TsSlbF0/v965qGFKhSDeQoMpYnwcmQilRh/0\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    79
            + "ayLThlHLN81gSkJjVrPI0Y8xCVPB4twb1PFUd2fPM3sA1tJ83sZ5v8vgFv2yofKR\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    80
            + "PB0t6JzUA81mSqM3kxl5e+IZwhYAyO0OTg3/fs8HqGTNKd9BqoUwSRBzp06JMg5b\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    81
            + "rUCGwbCUDI0mxadJ3Bz4WxR6fyNpBK2yAinWEsikxqEt\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    82
            + "-----END CERTIFICATE-----";
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    83
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    84
    // Owner: CN=valid-isrgrootx1.letsencrypt.org
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    85
    // Issuer: CN=Let's Encrypt Authority X3, O=Let's Encrypt, C=US
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    86
    // Serial number: 36916d6db9151ad4428d458a32eae518671
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    87
    // Valid from: Wed Nov 08 07:00:24 PST 2017 until: Tue Feb 06 07:00:24 PST 2018
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    88
    private static final String VALID = "-----BEGIN CERTIFICATE-----\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    89
            + "MIIFIzCCBAugAwIBAgISA2kW1tuRUa1EKNRYoy6uUYZxMA0GCSqGSIb3DQEBCwUA\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    90
            + "MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    91
            + "ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzExMDgxNTAwMjRaFw0x\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    92
            + "ODAyMDYxNTAwMjRaMCsxKTAnBgNVBAMTIHZhbGlkLWlzcmdyb290eDEubGV0c2Vu\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    93
            + "Y3J5cHQub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyugIOCxl\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    94
            + "4p0Rrs4aggnzKGYezhMyyvqlBgVBkf3DJV5uHbz/B/CxcoFo2rZzIetJEsb7Qnt1\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    95
            + "U8L2O5BKnBeOsI5eFv6WUAQs96VayQ09+xCV3jSNjVpbmKKp1TNWboF/V+EDFq6f\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    96
            + "fxK9h+b88RhBn4gfe+BorPnVTmZZQHgcZCjMGyzlXt68r45dXmZOuh0855Y7z6Et\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    97
            + "wCHTT8k/7VC0DTIs0+veKv+yblUqwGD0htdOh7POkQGfBeJ432FsCCcLCDjg2Jj2\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    98
            + "oYQNpLao55ZnVJGXfP8dJpHqJvuEQVuNT1TbHTs4x7IMftqGcPuhXKhA5FCVf0Hb\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
    99
            + "osbVmZ/b2b/WswIDAQABo4ICIDCCAhwwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   100
            + "MBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQZ\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   101
            + "Mod3QzNPUL56tDMtELpCiwkQOTAfBgNVHSMEGDAWgBSoSmpjBH3duubRObemRWXv\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   102
            + "86jsoTBvBggrBgEFBQcBAQRjMGEwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwLmlu\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   103
            + "dC14My5sZXRzZW5jcnlwdC5vcmcwLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0Lmlu\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   104
            + "dC14My5sZXRzZW5jcnlwdC5vcmcvMCsGA1UdEQQkMCKCIHZhbGlkLWlzcmdyb290\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   105
            + "eDEubGV0c2VuY3J5cHQub3JnMIH+BgNVHSAEgfYwgfMwCAYGZ4EMAQIBMIHmBgsr\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   106
            + "BgEEAYLfEwEBATCB1jAmBggrBgEFBQcCARYaaHR0cDovL2Nwcy5sZXRzZW5jcnlw\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   107
            + "dC5vcmcwgasGCCsGAQUFBwICMIGeDIGbVGhpcyBDZXJ0aWZpY2F0ZSBtYXkgb25s\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   108
            + "eSBiZSByZWxpZWQgdXBvbiBieSBSZWx5aW5nIFBhcnRpZXMgYW5kIG9ubHkgaW4g\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   109
            + "YWNjb3JkYW5jZSB3aXRoIHRoZSBDZXJ0aWZpY2F0ZSBQb2xpY3kgZm91bmQgYXQg\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   110
            + "aHR0cHM6Ly9sZXRzZW5jcnlwdC5vcmcvcmVwb3NpdG9yeS8wDQYJKoZIhvcNAQEL\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   111
            + "BQADggEBAFBiwKeCZfIh8a7x0Y5QEqGwejil/BY6MOVuIU9FRIJKmhJGdh6lI6ln\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   112
            + "zlBbMZBAjZ+TqDxU0pvM1AsRDyCqt8GbCAC2xQsGyATLdCjedLQ7U7ORm7pBZdbe\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   113
            + "cT7h9Sblj53o5MKa1yFeS89WGjI4UueUemGxp7EQjat0NeAvbnpU+YmuevNYKX2M\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   114
            + "kK33reMC+rgD+wKet1CXcB/ZYl3fDzVH3SwkT/bKW5bsuwxBuD2noScnKCitRgiv\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   115
            + "Ew7YjwqNOm2naki/xr2sfJirR+lJtZ9KC3H8xWeEHrD8Cf7pnmMYqV59uR+hJwMP\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   116
            + "YsjjDbDFCmNN9FBqDwvXs7g86ttkdC8=\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   117
            + "-----END CERTIFICATE-----";
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   118
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   119
    // Owner: CN=revoked-isrgrootx1.letsencrypt.org
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   120
    // Issuer: CN=Let's Encrypt Authority X3, O=Let's Encrypt, C=US
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   121
    // Serial number: 3ddd39c0755648d6687a5d8ded37775657e
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   122
    // Valid from: Wed Nov 08 07:00:32 PST 2017 until: Tue Feb 06 07:00:32 PST 2018
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   123
    private static final String REVOKED = "-----BEGIN CERTIFICATE-----\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   124
            + "MIIFJzCCBA+gAwIBAgISA93TnAdVZI1mh6XY3tN3dWV+MA0GCSqGSIb3DQEBCwUA\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   125
            + "MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   126
            + "ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzExMDgxNTAwMzJaFw0x\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   127
            + "ODAyMDYxNTAwMzJaMC0xKzApBgNVBAMTInJldm9rZWQtaXNyZ3Jvb3R4MS5sZXRz\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   128
            + "ZW5jcnlwdC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5qlZ0\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   129
            + "jslNLn/1uICdZPwflcvsoA2S2Nk+O7cPNew+KQmSIf+LK9AbaWHCkABKx1GdMtfN\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   130
            + "4Q/nKBtzqZ5jX1V1XbPqPd1eeyJo0rNaDFk/gEUHw/zIYi1AtsxVHztMqOXRcsw+\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   131
            + "6QHRKU2XFVsfSctMv+MKnMTEJZARyhr5ur9bQ4/LmxPMhrlHAst97hiSsXKXeyMK\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   132
            + "DWPHmUDn1vz/1mwLMaeYYmuhuRP5HNwYq+LdYvjMV580i6LHY72TwQCfVgOHfqI0\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   133
            + "larISk2p4q6DmTEEiAzJB3yEYaxDn0kEXbKhL9efDC+eirVFa0ta2OnH87s9L8z9\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   134
            + "fm9JIiSFM9ATQ16/AgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   135
            + "BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   136
            + "FP64lxiV8KwkkzoNaM7iuwX8UBG/MB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   137
            + "Ze/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   138
            + "aW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   139
            + "aW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicmV2b2tlZC1pc3Jn\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   140
            + "cm9vdHgxLmxldHNlbmNyeXB0Lm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   141
            + "5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   142
            + "Y3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   143
            + "IG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   144
            + "IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   145
            + "IGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   146
            + "DQEBCwUAA4IBAQCBiokogdgIZxwuPSr43S4GZ9FwrpZNMHADMEZB8ykuotJBGyr1\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   147
            + "QLWDVeoAJ8OIi1AzjcdwKFQks/MKUJwxJ9hYmm9aM14d5lMKGTyoLSI/Z/Vrpx8w\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   148
            + "0GpktSK0WfPeLBHuSpMdrIMWyziSu/bdZtiOIIvMasFwyRhDgII++CIdsnboWXF+\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   149
            + "DZcwy0Yd6XzirXuwENwaWrkrbZPr/JB0xLFmydqXAnA1VFTudwL87q4CTlEo8EiD\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   150
            + "ucKZ/vAhD+ip3/kQFXg90om+9TdHo8D8GxTC1CLZteJt+nqWFRj0e/7eCXIZuUBE\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   151
            + "aSsFCd5RNTHs6tioN9vYJqLojObgF75MgIAC\n"
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   152
            + "-----END CERTIFICATE-----";
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   153
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   154
    public static void main(String[] args) throws Exception {
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   155
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   156
        ValidatePathWithParams pathValidator = new ValidatePathWithParams(null);
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   157
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   158
        if (args.length >= 1 && "CRL".equalsIgnoreCase(args[0])) {
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   159
            pathValidator.enableCRLCheck();
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   160
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   161
            // Validate int, EE certs don't have CRLs
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   162
            pathValidator.validate(new String[]{INT},
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   163
                    ValidatePathWithParams.Status.GOOD, null, System.out);
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   164
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   165
            return;
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   166
        } else {
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   167
            // OCSP check by default
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   168
            pathValidator.enableOCSPCheck();
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   169
        }
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   170
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   171
        // Validate valid
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   172
        pathValidator.validate(new String[]{VALID, INT},
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   173
                ValidatePathWithParams.Status.GOOD, null, System.out);
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   174
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   175
        // Validate Revoked
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   176
        pathValidator.validate(new String[]{REVOKED, INT},
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   177
                ValidatePathWithParams.Status.REVOKED,
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   178
                "Wed Nov 08 08:00:35 PST 2017", System.out);
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   179
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   180
    }
472f74fb6c6b 8189131: Open-source the Oracle JDK Root Certificates
rhalade
parents:
diff changeset
   181
}