jdk/test/java/security/SignedObject/Chain.java
author darcy
Thu, 07 Jul 2016 18:21:21 -0700
changeset 39502 682792016aec
parent 30791 425c19d93347
child 44116 fa73683c2c10
permissions -rw-r--r--
8161022: Mark java/security/SignedObject/Chain.java as failing intermittently Reviewed-by: weijun
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30791
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
     1
/*
39502
682792016aec 8161022: Mark java/security/SignedObject/Chain.java as failing intermittently
darcy
parents: 30791
diff changeset
     2
 * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
30791
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
     4
 *
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
     7
 * published by the Free Software Foundation.
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
     8
 *
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    13
 * accompanied this code).
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    14
 *
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    18
 *
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    21
 * questions.
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    22
 */
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    23
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    24
import java.security.Signature;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    25
import java.security.SignedObject;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    26
import java.security.KeyPairGenerator;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    27
import java.security.KeyPair;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    28
import java.security.NoSuchProviderException;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    29
import java.security.PrivateKey;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    30
import java.security.PublicKey;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    31
import java.util.Arrays;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    32
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    33
/*
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    34
 * @test
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    35
 * @bug 8050374
39502
682792016aec 8161022: Mark java/security/SignedObject/Chain.java as failing intermittently
darcy
parents: 30791
diff changeset
    36
 * @key intermittent
30791
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    37
 * @summary Verify a chain of signed objects
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    38
 */
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    39
public class Chain {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    40
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    41
    static enum KeyAlg {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    42
        RSA("RSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    43
        DSA("DSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    44
        EC("EC");
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    45
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    46
        final String name;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    47
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    48
        KeyAlg(String alg) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    49
            this.name = alg;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    50
        }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    51
    }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    52
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    53
    static enum Provider {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    54
        Default("default"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    55
        SunRsaSign("SunRsaSign"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    56
        Sun("SUN"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    57
        SunEC("SunEC"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    58
        SunJSSE("SunJSSE"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    59
        SunMSCAPI("SunMSCAPI");
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    60
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    61
        final String name;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    62
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    63
        Provider(String name) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    64
            this.name = name;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    65
        }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    66
    }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    67
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    68
    static enum SigAlg {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    69
        MD2withRSA("MD2withRSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    70
        MD5withRSA("md5withRSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    71
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    72
        SHA1withDSA("SHA1withDSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    73
        SHA224withDSA("SHA224withDSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    74
        SHA256withDSA("SHA256withDSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    75
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    76
        SHA1withRSA("Sha1withrSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    77
        SHA224withRSA("SHA224withRSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    78
        SHA256withRSA("SHA256withRSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    79
        SHA384withRSA("SHA384withRSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    80
        SHA512withRSA("SHA512withRSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    81
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    82
        SHA1withECDSA("SHA1withECDSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    83
        SHA256withECDSA("SHA256withECDSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    84
        SHA224withECDSA("SHA224withECDSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    85
        SHA384withECDSA("SHA384withECDSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    86
        SHA512withECDSA("SHA512withECDSA"),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    87
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    88
        MD5andSHA1withRSA("MD5andSHA1withRSA");
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    89
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    90
        final String name;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    91
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    92
        SigAlg(String name) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    93
            this.name = name;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    94
        }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    95
    }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    96
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    97
    static class Test {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    98
        final Provider provider;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
    99
        final KeyAlg keyAlg;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   100
        final SigAlg sigAlg;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   101
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   102
        Test(SigAlg sigAlg, KeyAlg keyAlg, Provider privider) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   103
            this.provider = privider;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   104
            this.keyAlg = keyAlg;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   105
            this.sigAlg = sigAlg;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   106
        }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   107
    }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   108
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   109
    private static final Test[] tests = {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   110
        new Test(SigAlg.SHA1withDSA, KeyAlg.DSA, Provider.Default),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   111
        new Test(SigAlg.MD2withRSA, KeyAlg.RSA, Provider.Default),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   112
        new Test(SigAlg.MD5withRSA, KeyAlg.RSA, Provider.Default),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   113
        new Test(SigAlg.SHA1withRSA, KeyAlg.RSA, Provider.Default),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   114
        new Test(SigAlg.SHA1withDSA, KeyAlg.DSA, Provider.Sun),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   115
        new Test(SigAlg.SHA224withDSA, KeyAlg.DSA, Provider.Sun),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   116
        new Test(SigAlg.SHA256withDSA, KeyAlg.DSA, Provider.Sun),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   117
    };
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   118
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   119
    private static final String str = "to-be-signed";
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   120
    private static final int N = 3;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   121
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   122
    public static void main(String argv[]) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   123
        boolean result = Arrays.stream(tests).allMatch((test) -> runTest(test));
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   124
        if(result) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   125
            System.out.println("All tests passed");
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   126
        } else {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   127
            throw new RuntimeException("Some tests failed");
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   128
        }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   129
    }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   130
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   131
    static boolean runTest(Test test) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   132
        System.out.format("Test: provider = %s, signature algorithm = %s, "
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   133
                + "key algorithm = %s\n",
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   134
                test.provider, test.sigAlg, test.keyAlg);
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   135
        try {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   136
            // Generate all private/public key pairs
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   137
            PrivateKey[] privKeys = new PrivateKey[N];
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   138
            PublicKey[] pubKeys = new PublicKey[N];
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   139
            PublicKey[] anotherPubKeys = new PublicKey[N];
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   140
            KeyPairGenerator kpg = KeyPairGenerator.getInstance(
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   141
                    test.keyAlg.name);
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   142
            for (int j=0; j < N; j++) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   143
                KeyPair kp = kpg.genKeyPair();
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   144
                KeyPair anotherKp = kpg.genKeyPair();
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   145
                privKeys[j] = kp.getPrivate();
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   146
                pubKeys[j] = kp.getPublic();
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   147
                anotherPubKeys[j] = anotherKp.getPublic();
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   148
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   149
                if (Arrays.equals(pubKeys[j].getEncoded(),
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   150
                        anotherPubKeys[j].getEncoded())) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   151
                    System.out.println("Failed: it should not get "
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   152
                            + "the same pair of public key");
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   153
                    return false;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   154
                }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   155
            }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   156
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   157
            Signature signature;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   158
            if (test.provider != Provider.Default) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   159
                signature = Signature.getInstance(test.sigAlg.name,
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   160
                        test.provider.name);
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   161
            } else {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   162
                signature = Signature.getInstance(test.sigAlg.name);
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   163
            }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   164
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   165
            // Create a chain of signed objects
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   166
            SignedObject[] objects = new SignedObject[N];
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   167
            objects[0] = new SignedObject(str, privKeys[0], signature);
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   168
            for (int j = 1; j < N; j++) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   169
                objects[j] = new SignedObject(objects[j - 1], privKeys[j],
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   170
                        signature);
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   171
            }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   172
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   173
            // Verify the chain
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   174
            int n = objects.length - 1;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   175
            SignedObject object = objects[n];
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   176
            do {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   177
                if (!object.verify(pubKeys[n], signature)) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   178
                    System.out.println("Failed: verification failed, n = " + n);
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   179
                    return false;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   180
                }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   181
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   182
                if (object.verify(anotherPubKeys[n], signature)) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   183
                    System.out.println("Failed: verification should not "
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   184
                            + "succeed with wrong public key, n = " + n);
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   185
                    return false;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   186
                }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   187
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   188
                object = (SignedObject) object.getObject();
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   189
                n--;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   190
            } while (n > 0);
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   191
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   192
            System.out.println("signed data: " + object.getObject());
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   193
            if (!str.equals(object.getObject())) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   194
                System.out.println("Failed: signed data is not equal to "
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   195
                        + "original one");
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   196
                return false;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   197
            }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   198
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   199
            System.out.println("Test passed");
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   200
            return true;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   201
        } catch (NoSuchProviderException nspe) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   202
            if (test.provider == Provider.SunMSCAPI
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   203
                    && !System.getProperty("os.name").startsWith("Windows")) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   204
                System.out.println("SunMSCAPI is available only on Windows: "
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   205
                        + nspe);
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   206
                return true;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   207
            }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   208
            System.out.println("Unexpected exception: " + nspe);
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   209
            return false;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   210
        } catch (Exception e) {
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   211
            System.out.println("Unexpected exception: " + e);
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   212
            e.printStackTrace(System.out);
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   213
            return false;
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   214
        }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   215
    }
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   216
}
425c19d93347 8050374: More Signature tests
asmotrak
parents:
diff changeset
   217