From 16faa79cf402399225e40f601a1207519a8c788e Mon Sep 17 00:00:00 2001 From: Valerie Peng Date: Wed, 22 Dec 2010 18:30:34 -0800 Subject: [PATCH] 6581254: pkcs11 provider fails to parse configuration file contains windows short path Modified configuration parsing code to support "~". Reviewed-by: weijun --- .../classes/sun/security/pkcs11/Config.java | 1 + .../pkcs11/Provider/ConfigShortPath.java | 49 +++++++++++++++++++ jdk/test/sun/security/pkcs11/Provider/csp.cfg | 4 ++ 3 files changed, 54 insertions(+) create mode 100644 jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.java create mode 100644 jdk/test/sun/security/pkcs11/Provider/csp.cfg diff --git a/jdk/src/share/classes/sun/security/pkcs11/Config.java b/jdk/src/share/classes/sun/security/pkcs11/Config.java index 940a4c5e261..243f49d0182 100644 --- a/jdk/src/share/classes/sun/security/pkcs11/Config.java +++ b/jdk/src/share/classes/sun/security/pkcs11/Config.java @@ -343,6 +343,7 @@ final class Config { st.wordChars('{', '{'); // need {} for property subst st.wordChars('}', '}'); st.wordChars('*', '*'); + st.wordChars('~', '~'); // XXX check ASCII table and add all other characters except special // special: #="(), diff --git a/jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.java b/jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.java new file mode 100644 index 00000000000..daa1ab3c1bf --- /dev/null +++ b/jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/** + * @test + * @bug 6581254 + * @summary Allow "~" in config to support windows short path + * @author Valerie Peng + */ + +import java.security.*; +import java.io.*; + +public class ConfigShortPath { + + public static void main(String[] args) { + String testSrc = System.getProperty("test.src", "."); + String configFile = testSrc + File.separator + "csp.cfg"; + System.out.println("Testing against " + configFile); + try { + Provider p = new sun.security.pkcs11.SunPKCS11(configFile); + } catch (ProviderException pe) { + String cause = pe.getCause().getMessage(); + if (cause.indexOf("Unexpected token") != -1) { + // re-throw to indicate test failure + throw pe; + } + } + } +} diff --git a/jdk/test/sun/security/pkcs11/Provider/csp.cfg b/jdk/test/sun/security/pkcs11/Provider/csp.cfg new file mode 100644 index 00000000000..9cd8962a7b4 --- /dev/null +++ b/jdk/test/sun/security/pkcs11/Provider/csp.cfg @@ -0,0 +1,4 @@ +showInfo = false +name = NSSTrust +nssSecmodDirectory = C:/DOCUME~1/dtftest/LOCALS~1/Temp/Work/exec/jsn_7.0_int-7.0_nightly_sec_win_32_part2-2007-07-16-09-06-04-0209/dtftest.Windows_2003.x86/NSS//db +nssLibraryDirectory = Y:/xml/CC_DTF/knight_ws/suites/jsn_7.0_int/security/tools/lib/nss/WINNT/