jdk/test/java/security/KeyStore/PKCS12/ReadP12Test.java
author vinnie
Tue, 23 Dec 2014 16:30:57 +0000
changeset 28243 47080f9ae750
parent 26218 98453f165e21
permissions -rw-r--r--
8044445: JEP 229: Create PKCS12 Keystores by Default Reviewed-by: mullan, weijun
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26218
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
     1
/*
28243
47080f9ae750 8044445: JEP 229: Create PKCS12 Keystores by Default
vinnie
parents: 26218
diff changeset
     2
 * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
26218
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
     4
 *
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
     7
 * published by the Free Software Foundation.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
     8
 *
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    13
 * accompanied this code).
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    14
 *
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    18
 *
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    21
 * questions.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    22
 */
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    23
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    24
import static java.lang.System.out;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    25
import java.io.ByteArrayInputStream;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    26
import java.io.File;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    27
import java.io.FileInputStream;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    28
import java.nio.file.Files;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    29
import java.nio.file.Paths;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    30
import java.security.Key;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    31
import java.security.KeyStore;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    32
import java.security.cert.Certificate;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    33
import java.security.cert.X509Certificate;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    34
import java.util.Base64;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    35
import java.util.Enumeration;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    36
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    37
/*
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    38
 * @test
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    39
 * @bug 8048617
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    40
 * @author  Bill Situ
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    41
 * @summary Read different types p12 key store to Check the read related APIs.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    42
 *  including following test cases:
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    43
 * ReadP12_IE_Chain: Read p12 key store (contains private key and associated
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    44
 *  certificate chain) from IE.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    45
 * ReadP12_IE_Self: Read p12 key store (contains only private key and
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    46
 *  self-signed certificate) from IE.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    47
 * ReadP12_JDK_Chain: Read p12 key store (contains private key and associated
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    48
 *  certificate chain) from JDK
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    49
 * ReadP12_JDK_Self: Read p12 key store (contains only private key and
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    50
 *  self-signed certificate) from JDK.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    51
 * ReadP12_Mozilla_Self: Read p12 key store (contains only private key and
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    52
 *  self-signed certificate) from Mozilla.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    53
 * ReadP12_Mozilla_Chain: Read p12 key store (contains private key and
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    54
 *  associated certificate chain) from Mozilla.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    55
 * ReadP12_Mozilla_TwoEntries: Read p12 key store (contains 2 entries) from
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    56
 *  Mozilla.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    57
 * ReadP12_Netscape_Chain: Read p12 key store (contains private key and
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    58
 *  associated certificate chain) from Netscape.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    59
 * ReadP12_Netscape_Self: Read p12 key store (contains only private key and
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    60
 *  self-signed certificate) from Netscape.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    61
 * ReadP12_Netscape_TwoEntries: Read p12 key store (contains 2 entries) from
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    62
 *  Netscape.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    63
 * ReadP12_OpenSSL: Read p12 key store from OpenSSL.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    64
 */
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    65
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    66
public class ReadP12Test {
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    67
28243
47080f9ae750 8044445: JEP 229: Create PKCS12 Keystores by Default
vinnie
parents: 26218
diff changeset
    68
    private final static String IN_KEYSTORE_TYPE = "pkcs12";
26218
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    69
    private final static String IN_STORE_PASS = "pass";
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    70
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    71
    public static void main(String args[]) throws Exception {
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    72
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    73
        ReadP12Test jstest = new ReadP12Test();
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    74
        String testCase = "";
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    75
        try {
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    76
            testCase = "ReadP12_IE_Chain";
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    77
            jstest.readTest("ie_chain.pfx.data");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    78
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    79
            testCase = "ReadP12_IE_Self";
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    80
            jstest.readTest("ie_self.pfx.data");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    81
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    82
            testCase = "ReadP12_JDK_Chain";
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    83
            jstest.readTest("jdk_chain.p12.data");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    84
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    85
            testCase = "ReadP12_JDK_Self";
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    86
            jstest.readTest("jdk_self.p12.data");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    87
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    88
            testCase = "ReadP12_Mozilla_Chain";
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    89
            jstest.readTest("mozilla_chain.p12.data");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    90
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    91
            testCase = "ReadP12_Mozilla_Self";
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    92
            jstest.readTest("mozilla_self.p12.data");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    93
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    94
            testCase = "ReadP12_Mozilla_TwoEntries";
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    95
            jstest.readTest("mozilla_twoentries.p12.data");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    96
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    97
            testCase = "ReadP12_Netscape_Chain";
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    98
            jstest.readTest("netscape_chain.p12.data");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
    99
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   100
            testCase = "ReadP12_Netscape_Self";
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   101
            jstest.readTest("netscape_self.p12.data");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   102
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   103
            testCase = "ReadP12_Netscape_TwoEntries";
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   104
            jstest.readTest("netscape_twoentries.p12.data");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   105
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   106
            testCase = "ReadP12_openssl";
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   107
            jstest.readTest("openssl.p12.data");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   108
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   109
        } catch (Exception e) {
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   110
            System.err.println(testCase + ": failed with execption: "
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   111
                    + e.getMessage());
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   112
            throw e;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   113
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   114
        }
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   115
        out.println(testCase + ": Pass!!");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   116
    }
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   117
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   118
    private void readTest(String inKeyStore) throws Exception {
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   119
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   120
        KeyStore inputKeyStore;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   121
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   122
        // Initialize KeyStore
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   123
        String dir = System.getProperty("test.src", ".");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   124
        String keystorePath = dir + File.separator + "certs" + File.separator
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   125
                + "readP12";
28243
47080f9ae750 8044445: JEP 229: Create PKCS12 Keystores by Default
vinnie
parents: 26218
diff changeset
   126
        inputKeyStore = KeyStore.getInstance(IN_KEYSTORE_TYPE);
26218
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   127
        // KeyStore have encoded by Base64.getMimeEncoder().encode(),need decode
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   128
        // first.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   129
        byte[] input = Files.readAllBytes(Paths.get(keystorePath, inKeyStore));
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   130
        ByteArrayInputStream arrayIn = new ByteArrayInputStream(Base64
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   131
                .getMimeDecoder().decode(input));
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   132
        inputKeyStore.load(arrayIn, IN_STORE_PASS.toCharArray());
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   133
        out.println("Initialize KeyStore : " + inKeyStore + " success");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   134
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   135
        out.println("getProvider : " + inputKeyStore.getProvider());
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   136
        out.println("getType : " + inputKeyStore.getType());
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   137
        out.println("getDefaultType : " + KeyStore.getDefaultType());
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   138
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   139
        int idx = 0;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   140
        Enumeration<String> e = inputKeyStore.aliases();
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   141
        String alias;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   142
        while (e.hasMoreElements()) {
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   143
            alias = e.nextElement();
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   144
            out.println("Alias " + idx + " : " + alias);
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   145
            if (inputKeyStore.containsAlias(alias) == false) {
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   146
                throw new RuntimeException("Alias not found");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   147
            }
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   148
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   149
            out.println("getCreationDate : "
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   150
                    + inputKeyStore.getCreationDate(alias));
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   151
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   152
            X509Certificate cert = (X509Certificate) inputKeyStore
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   153
                    .getCertificate(alias);
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   154
            out.println("getCertificate : " + cert.getSubjectDN());
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   155
            String retAlias = inputKeyStore.getCertificateAlias(cert);
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   156
            if (!retAlias.equals(alias)) {
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   157
                throw new RuntimeException("Alias mismatch");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   158
            }
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   159
            out.println("getCertificateAlias : " + retAlias);
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   160
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   161
            Certificate[] certs = inputKeyStore.getCertificateChain(alias);
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   162
            for (int i = 0; i < certs.length; i++) {
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   163
                out.println("getCertificateChain " + i + " : "
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   164
                        + ((X509Certificate) certs[i]).getSubjectDN());
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   165
            }
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   166
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   167
            boolean isCertEntry = inputKeyStore.isCertificateEntry(alias);
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   168
            // test KeyStore only contain key pair entries.
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   169
            if (isCertEntry == true) {
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   170
                throw new RuntimeException(
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   171
                        "inputKeystore should not be certEntry because test keystore only contain key pair entries.");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   172
            }
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   173
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   174
            boolean isKeyEntry = inputKeyStore.isKeyEntry(alias);
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   175
            if (isKeyEntry) {
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   176
                Key key = inputKeyStore.getKey(alias,
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   177
                        IN_STORE_PASS.toCharArray());
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   178
                out.println("Key : " + key.toString());
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   179
            } else {
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   180
                throw new RuntimeException("Entry type unknown\n");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   181
            }
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   182
            idx++;
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   183
        }
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   184
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   185
        int size = inputKeyStore.size();
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   186
        if (idx != size) {
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   187
            throw new RuntimeException("Size not match");
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   188
        }
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   189
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   190
    }
98453f165e21 8048617: Tests for PKCS12 read operations
weijun
parents:
diff changeset
   191
}