jdk/test/sun/security/provider/certpath/DisabledAlgorithms/CPValidatorIntermediate.java
author xuelei
Tue, 18 Aug 2009 20:47:13 -0700
changeset 4190 227655c2ff8c
child 5506 202f599c92aa
permissions -rw-r--r--
6861062: Disable MD2 support Reviewed-by: mullan, weijun
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4190
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
     1
/*
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
     2
 * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
     4
 *
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
     7
 * published by the Free Software Foundation.
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
     8
 *
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    13
 * accompanied this code).
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    14
 *
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    18
 *
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    19
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    20
 * CA 95054 USA or visit www.sun.com if you need additional information or
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    21
 * have any questions.
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    22
 */
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    23
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    24
/**
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    25
 * @test
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    26
 *
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    27
 * @bug 6861062
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    28
 * @summary Disable MD2 support
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    29
 *
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    30
 * @author Xuelei Fan
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    31
 */
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    32
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    33
import java.io.*;
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    34
import java.net.SocketException;
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    35
import java.util.*;
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    36
import java.security.Security;
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    37
import java.security.cert.*;
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    38
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    39
public class CPValidatorIntermediate {
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    40
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    41
    // SHA1withRSA 1024
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    42
    static String trustAnchor_SHA1withRSA_1024 =
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    43
        "-----BEGIN CERTIFICATE-----\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    44
        "MIICPjCCAaegAwIBAgIBADANBgkqhkiG9w0BAQUFADAfMQswCQYDVQQGEwJVUzEQ\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    45
        "MA4GA1UEChMHRXhhbXBsZTAeFw0wOTA4MDYwMTExNDRaFw0zMDA3MTcwMTExNDRa\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    46
        "MB8xCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdFeGFtcGxlMIGfMA0GCSqGSIb3DQEB\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    47
        "AQUAA4GNADCBiQKBgQC8UdC863pFk1Rvd7xUYd60+e9KsLhb6SqOfU42ZA715FcH\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    48
        "E1TRvQPmYzAnHcO04TrWZQtO6E+E2RCmeBnetBvIMVka688QkO14wnrIrf2tRodd\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    49
        "rZNZEBzkX+zyXCRo9tKEUDFf9Qze7Ilbb+Zzm9CUfu4M1Oz6iQcXRx7aM0jEAQID\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    50
        "AQABo4GJMIGGMB0GA1UdDgQWBBTn0C+xmZY/BTab4W9gBp3dGa7WgjBHBgNVHSME\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    51
        "QDA+gBTn0C+xmZY/BTab4W9gBp3dGa7WgqEjpCEwHzELMAkGA1UEBhMCVVMxEDAO\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    52
        "BgNVBAoTB0V4YW1wbGWCAQAwDwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAgQw\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    53
        "DQYJKoZIhvcNAQEFBQADgYEAiCXL2Yp4ruyRXAIJ8zBEaPC9oV2agqgbSbly2z8z\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    54
        "Ik5SeSRysP+GHBpb8uNyANJnQKv+T0GrJiTLMBjKCOiJl6xzk3EZ2wbQB6G/SQ9+\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    55
        "UWcsXSC8oGSEPpkj5In/9/UbuUIfT9H8jmdyLNKQvlqgq6kyfnskME7ptGgT95Hc\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    56
        "tas=\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    57
        "-----END CERTIFICATE-----";
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    58
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    59
    // SHA1withRSA 512
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    60
    static String trustAnchor_SHA1withRSA_512 =
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    61
        "-----BEGIN CERTIFICATE-----\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    62
        "MIIBuTCCAWOgAwIBAgIBADANBgkqhkiG9w0BAQUFADAfMQswCQYDVQQGEwJVUzEQ\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    63
        "MA4GA1UEChMHRXhhbXBsZTAeFw0wOTA4MDYwMTExNDRaFw0zMDA3MTcwMTExNDRa\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    64
        "MB8xCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdFeGFtcGxlMFwwDQYJKoZIhvcNAQEB\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    65
        "BQADSwAwSAJBAM0Kn4ieCdCHsrm78ZMMN4jQEEEqACAMKB7O8j9g4gfz2oAfmHwv\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    66
        "7JH/hZ0Xen1zUmBbwe+e2J5D/4Fisp9Bn98CAwEAAaOBiTCBhjAdBgNVHQ4EFgQU\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    67
        "g4Kwd47hdNQBp8grZsRJ5XvhvxAwRwYDVR0jBEAwPoAUg4Kwd47hdNQBp8grZsRJ\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    68
        "5XvhvxChI6QhMB8xCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdFeGFtcGxlggEAMA8G\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    69
        "A1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgIEMA0GCSqGSIb3DQEBBQUAA0EAn77b\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    70
        "FJx+HvyRvjZYCzMjnUct3Ql4iLOkURYDh93J5TXi/l9ajvAMEuwzYj0qZ+Ktm/ia\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    71
        "U5r+8B9nzx+j2Zh3kw==\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    72
        "-----END CERTIFICATE-----";
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    73
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    74
    // SHA1withRSA 1024 signed with RSA 1024
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    75
    static String intermediate_SHA1withRSA_1024_1024 =
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    76
        "-----BEGIN CERTIFICATE-----\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    77
        "MIICUDCCAbmgAwIBAgIBAjANBgkqhkiG9w0BAQUFADAfMQswCQYDVQQGEwJVUzEQ\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    78
        "MA4GA1UEChMHRXhhbXBsZTAeFw0wOTA4MDYwMTExNDhaFw0yOTA0MjMwMTExNDha\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    79
        "MDExCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdFeGFtcGxlMRAwDgYDVQQLEwdDbGFz\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    80
        "cy0xMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVOqnlZspyAEr90ELFaUo8\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    81
        "BF0O2Kn0yTdUeyiLOth4RA3qxWrjxJq45VmEBjZpEzPHfnp3PhnfmLcLfhoPONFg\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    82
        "bcHzlkj75ZaKCgHoyV456fMBmj348fcoUkH2WdSQ82pmxHOiHqquYNUSTimFIq82\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    83
        "AayhbKqDmhfx5lJdYNqd5QIDAQABo4GJMIGGMB0GA1UdDgQWBBTfWD9mRTppcUAl\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    84
        "UqGuu/R5t8CB5jBHBgNVHSMEQDA+gBTn0C+xmZY/BTab4W9gBp3dGa7WgqEjpCEw\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    85
        "HzELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0V4YW1wbGWCAQAwDwYDVR0TAQH/BAUw\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    86
        "AwEB/zALBgNVHQ8EBAMCAgQwDQYJKoZIhvcNAQEFBQADgYEAHze3wAcIe84zNOoN\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    87
        "P8l9EmlVVoU30z3LB3hxq3m/dC/4gE5Z9Z8EG1wJw4qaxlTZ4dif12nbTTdofVhb\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    88
        "Bd4syjo6fcUA4q7sfg9TFpoHQ+Ap7PgjK99moMKdMy50Xy8s6FPvaVkF89s66Z6y\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    89
        "e4q7TSwe6QevGOZaL5N/iy2XGEs=\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    90
        "-----END CERTIFICATE-----";
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    91
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    92
    // SHA1withRSA 1024 signed with RSA 512
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    93
    static String intermediate_SHA1withRSA_1024_512 =
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    94
        "-----BEGIN CERTIFICATE-----\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    95
        "MIICDzCCAbmgAwIBAgIBAzANBgkqhkiG9w0BAQUFADAfMQswCQYDVQQGEwJVUzEQ\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    96
        "MA4GA1UEChMHRXhhbXBsZTAeFw0wOTA4MDYwMTExNDlaFw0yOTA0MjMwMTExNDla\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    97
        "MDExCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdFeGFtcGxlMRAwDgYDVQQLEwdDbGFz\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    98
        "cy0xMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVOqnlZspyAEr90ELFaUo8\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
    99
        "BF0O2Kn0yTdUeyiLOth4RA3qxWrjxJq45VmEBjZpEzPHfnp3PhnfmLcLfhoPONFg\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   100
        "bcHzlkj75ZaKCgHoyV456fMBmj348fcoUkH2WdSQ82pmxHOiHqquYNUSTimFIq82\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   101
        "AayhbKqDmhfx5lJdYNqd5QIDAQABo4GJMIGGMB0GA1UdDgQWBBTfWD9mRTppcUAl\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   102
        "UqGuu/R5t8CB5jBHBgNVHSMEQDA+gBSDgrB3juF01AGnyCtmxEnle+G/EKEjpCEw\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   103
        "HzELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0V4YW1wbGWCAQAwDwYDVR0TAQH/BAUw\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   104
        "AwEB/zALBgNVHQ8EBAMCAgQwDQYJKoZIhvcNAQEFBQADQQCYNmdkONfuk07XjRze\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   105
        "WQyq2cfdae4uIdyUfa2rpgYMtSXuQW3/XrQGiz4G6WBXA2wo7folOOpAKYgvHPrm\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   106
        "w6Dd\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   107
        "-----END CERTIFICATE-----";
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   108
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   109
    // SHA1withRSA 512 signed with RSA 1024
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   110
    static String intermediate_SHA1withRSA_512_1024 =
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   111
        "-----BEGIN CERTIFICATE-----\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   112
        "MIICDDCCAXWgAwIBAgIBBDANBgkqhkiG9w0BAQUFADAfMQswCQYDVQQGEwJVUzEQ\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   113
        "MA4GA1UEChMHRXhhbXBsZTAeFw0wOTA4MDYwMTExNDlaFw0yOTA0MjMwMTExNDla\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   114
        "MDExCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdFeGFtcGxlMRAwDgYDVQQLEwdDbGFz\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   115
        "cy0xMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKubXYoEHZpZkhzA9XX+NrpqJ4SV\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   116
        "lOMBoL3aWExQpJIgrUaZfbGMBBozIHBJMMayokguHbJvq4QigEgLuhfJNqsCAwEA\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   117
        "AaOBiTCBhjAdBgNVHQ4EFgQUN0CHiTYPtjyvpP2a6y6mhsZ6U40wRwYDVR0jBEAw\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   118
        "PoAU59AvsZmWPwU2m+FvYAad3Rmu1oKhI6QhMB8xCzAJBgNVBAYTAlVTMRAwDgYD\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   119
        "VQQKEwdFeGFtcGxlggEAMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgIEMA0G\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   120
        "CSqGSIb3DQEBBQUAA4GBAE2VOlw5ySLT3gUzKCYEga4QPaSrf6lHHPi2g48LscEY\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   121
        "h9qQXh4nuIVugReBIEf6N49RdT+M2cgRJo4sZ3ukYLGQzxNuttL5nPSuuvrAR1oG\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   122
        "LUyzOWcUpKHbVHi6zlTt79RvTKZvLcduLutmtPtLJcM9PdiAI1wEooSgxTwZtB/Z\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   123
        "-----END CERTIFICATE-----";
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   124
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   125
    // SHA1withRSA 512 signed with RSA 512
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   126
    static String intermediate_SHA1withRSA_512_512 =
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   127
        "-----BEGIN CERTIFICATE-----\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   128
        "MIIByzCCAXWgAwIBAgIBBTANBgkqhkiG9w0BAQUFADAfMQswCQYDVQQGEwJVUzEQ\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   129
        "MA4GA1UEChMHRXhhbXBsZTAeFw0wOTA4MDYwMTExNDlaFw0yOTA0MjMwMTExNDla\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   130
        "MDExCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdFeGFtcGxlMRAwDgYDVQQLEwdDbGFz\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   131
        "cy0xMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKubXYoEHZpZkhzA9XX+NrpqJ4SV\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   132
        "lOMBoL3aWExQpJIgrUaZfbGMBBozIHBJMMayokguHbJvq4QigEgLuhfJNqsCAwEA\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   133
        "AaOBiTCBhjAdBgNVHQ4EFgQUN0CHiTYPtjyvpP2a6y6mhsZ6U40wRwYDVR0jBEAw\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   134
        "PoAUg4Kwd47hdNQBp8grZsRJ5XvhvxChI6QhMB8xCzAJBgNVBAYTAlVTMRAwDgYD\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   135
        "VQQKEwdFeGFtcGxlggEAMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgIEMA0G\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   136
        "CSqGSIb3DQEBBQUAA0EAoCf0Zu559qcB4xPpzqkVsYiyW49S4Yc0mmQXb1yoQgLx\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   137
        "O+DCkjG5d14+t1MsnkhB2izoQUMxQ3vDc1YnA/tEpw==\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   138
        "-----END CERTIFICATE-----";
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   139
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   140
    // MD2withRSA 1024 signed with RSA 1024
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   141
    static String intermediate_MD2withRSA_1024_1024 =
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   142
        "-----BEGIN CERTIFICATE-----\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   143
        "MIICUDCCAbmgAwIBAgIBBjANBgkqhkiG9w0BAQIFADAfMQswCQYDVQQGEwJVUzEQ\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   144
        "MA4GA1UEChMHRXhhbXBsZTAeFw0wOTA4MDYwMTExNDlaFw0yOTA0MjMwMTExNDla\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   145
        "MDExCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdFeGFtcGxlMRAwDgYDVQQLEwdDbGFz\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   146
        "cy0xMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVOqnlZspyAEr90ELFaUo8\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   147
        "BF0O2Kn0yTdUeyiLOth4RA3qxWrjxJq45VmEBjZpEzPHfnp3PhnfmLcLfhoPONFg\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   148
        "bcHzlkj75ZaKCgHoyV456fMBmj348fcoUkH2WdSQ82pmxHOiHqquYNUSTimFIq82\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   149
        "AayhbKqDmhfx5lJdYNqd5QIDAQABo4GJMIGGMB0GA1UdDgQWBBTfWD9mRTppcUAl\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   150
        "UqGuu/R5t8CB5jBHBgNVHSMEQDA+gBTn0C+xmZY/BTab4W9gBp3dGa7WgqEjpCEw\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   151
        "HzELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0V4YW1wbGWCAQAwDwYDVR0TAQH/BAUw\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   152
        "AwEB/zALBgNVHQ8EBAMCAgQwDQYJKoZIhvcNAQECBQADgYEAPtEjwbWuC5kc4DPc\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   153
        "Ttf/wdbD8ZCdAWzcc3XF9q1TlvwVMNk6mbfM05y6ZVsztKTkwZ4EcvFu/yIqw1EB\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   154
        "E1zlXQCaWXT3/ZMbqYZV4+mx+RUl8spUCb1tda25jnTg3mTOzB1iztm4gy903EMd\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   155
        "m8omKDKeCgcw5dR4ITQYvyxe1as=\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   156
        "-----END CERTIFICATE-----";
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   157
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   158
    // MD2withRSA 1024 signed with RSA 512
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   159
    static String intermediate_MD2withRSA_1024_512 =
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   160
        "-----BEGIN CERTIFICATE-----\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   161
        "MIICDzCCAbmgAwIBAgIBBzANBgkqhkiG9w0BAQIFADAfMQswCQYDVQQGEwJVUzEQ\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   162
        "MA4GA1UEChMHRXhhbXBsZTAeFw0wOTA4MDYwMTExNDlaFw0yOTA0MjMwMTExNDla\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   163
        "MDExCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdFeGFtcGxlMRAwDgYDVQQLEwdDbGFz\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   164
        "cy0xMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVOqnlZspyAEr90ELFaUo8\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   165
        "BF0O2Kn0yTdUeyiLOth4RA3qxWrjxJq45VmEBjZpEzPHfnp3PhnfmLcLfhoPONFg\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   166
        "bcHzlkj75ZaKCgHoyV456fMBmj348fcoUkH2WdSQ82pmxHOiHqquYNUSTimFIq82\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   167
        "AayhbKqDmhfx5lJdYNqd5QIDAQABo4GJMIGGMB0GA1UdDgQWBBTfWD9mRTppcUAl\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   168
        "UqGuu/R5t8CB5jBHBgNVHSMEQDA+gBSDgrB3juF01AGnyCtmxEnle+G/EKEjpCEw\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   169
        "HzELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0V4YW1wbGWCAQAwDwYDVR0TAQH/BAUw\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   170
        "AwEB/zALBgNVHQ8EBAMCAgQwDQYJKoZIhvcNAQECBQADQQBHok1v6xymtpB7N9xy\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   171
        "0OmDT27uhmzlP0eOzJvXVxj3Oi9TLQJgCUJ9122MzfRAs1E1uJTtvuu+UmI80NQx\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   172
        "KQdp\n" +
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   173
        "-----END CERTIFICATE-----";
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   174
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   175
    private static CertPath generateCertificatePath(String certStr)
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   176
            throws CertificateException {
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   177
        // generate certificate from cert strings
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   178
        CertificateFactory cf = CertificateFactory.getInstance("X.509");
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   179
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   180
        ByteArrayInputStream is;
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   181
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   182
        is = new ByteArrayInputStream(certStr.getBytes());
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   183
        Certificate cert = cf.generateCertificate(is);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   184
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   185
        // generate certification path
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   186
        List<Certificate> list = Arrays.asList(new Certificate[] {cert});
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   187
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   188
        return cf.generateCertPath(list);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   189
    }
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   190
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   191
    private static Set<TrustAnchor> generateTrustAnchors()
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   192
            throws CertificateException {
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   193
        // generate certificate from cert string
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   194
        CertificateFactory cf = CertificateFactory.getInstance("X.509");
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   195
        HashSet<TrustAnchor> anchors = new HashSet<TrustAnchor>();
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   196
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   197
        ByteArrayInputStream is =
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   198
            new ByteArrayInputStream(trustAnchor_SHA1withRSA_1024.getBytes());
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   199
        Certificate cert = cf.generateCertificate(is);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   200
        TrustAnchor anchor = new TrustAnchor((X509Certificate)cert, null);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   201
        anchors.add(anchor);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   202
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   203
        is = new ByteArrayInputStream(trustAnchor_SHA1withRSA_512.getBytes());
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   204
        cert = cf.generateCertificate(is);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   205
        anchor = new TrustAnchor((X509Certificate)cert, null);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   206
        anchors.add(anchor);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   207
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   208
        return anchors;
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   209
    }
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   210
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   211
    public static void main(String args[]) throws Exception {
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   212
        try {
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   213
            validate(intermediate_SHA1withRSA_1024_1024);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   214
            validate(intermediate_SHA1withRSA_1024_512);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   215
            validate(intermediate_SHA1withRSA_512_1024);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   216
            validate(intermediate_SHA1withRSA_512_512);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   217
        } catch (CertPathValidatorException cpve) {
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   218
            throw new Exception(
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   219
                "unexpect exception, it is valid cert", cpve);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   220
        }
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   221
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   222
        try {
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   223
            validate(intermediate_MD2withRSA_1024_1024);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   224
            throw new Exception("expected algorithm disabled exception");
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   225
        } catch (CertPathValidatorException cpve) {
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   226
            System.out.println("Get the expected exception " + cpve);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   227
        }
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   228
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   229
        try {
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   230
            validate(intermediate_MD2withRSA_1024_512);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   231
            throw new Exception("expected algorithm disabled exception");
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   232
        } catch (CertPathValidatorException cpve) {
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   233
            System.out.println("Get the expected exception " + cpve);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   234
        }
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   235
    }
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   236
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   237
    private static void validate(String intermediate)
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   238
            throws CertPathValidatorException, Exception {
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   239
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   240
        CertPath path = generateCertificatePath(intermediate);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   241
        Set<TrustAnchor> anchors = generateTrustAnchors();
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   242
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   243
        PKIXParameters params = new PKIXParameters(anchors);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   244
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   245
        // disable certificate revocation checking
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   246
        params.setRevocationEnabled(false);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   247
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   248
        // set the validation time
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   249
        params.setDate(new Date(109, 9, 1));   // 2009-09-01
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   250
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   251
        CertPathValidator validator = CertPathValidator.getInstance("PKIX");
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   252
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   253
        validator.validate(path, params);
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   254
    }
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   255
227655c2ff8c 6861062: Disable MD2 support
xuelei
parents:
diff changeset
   256
}