# # Copyright (c) 2006, 2014, 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 6418647 8005527 # @summary Doc bug 5035358 shows sun.security.util.Password.readPassword() is buggy. # @author Weijun Wang # @run shell/manual console.sh if [ "$ALT_PASS" = "" ]; then PASSW=äöäöäö else PASSW=$ALT_PASS fi KS=/tmp/kkk.$$ cat <<____ ATTENTION =============================================================== This test is about non-ASCII password input compatibility between JDK 5.0 and later versions. Before running the test, make sure that -- \$J5 points to a JDK 5.0 installation \$JM points to the current installation The password string used in this test is $PASSW. If you find difficulty entering it in in your system, feel free to change it to something else by providing \$ALT_PASS. It should be no less than 6 characters and include some non-ASCII characters. For each test, type into the characters as described in the test header. means the RETURN (or ENTER key). Please wait for a little while after is pressed each time. \$J5 is now $J5 \$JM is now $JM ____ if [ "$J5" = "" -o "$JM" = "" ]; then echo "Define \$J5 and \$JM first" exit 1 fi echo "Press ENTER to start the test, or Ctrl-C to stop it" read x echo echo "==========================================" echo "Test #1: 5->6, non-prompt. Please type " echo "==========================================" echo rm $KS 2> /dev/null $J5/bin/keytool -keystore $KS -genkey -dname CN=olala -storepass $PASSW || exit 1 $JM/bin/keytool -keystore $KS -list -storepass $PASSW || exit 2 echo "==========================================" echo "Test #2: 6->5, non-prompt. Please type " echo "==========================================" echo rm $KS 2> /dev/null $JM/bin/keytool -keystore $KS -genkey -dname CN=olala -storepass $PASSW || exit 3 $J5/bin/keytool -keystore $KS -list -storepass $PASSW || exit 4 echo "============================================================" echo "Test #3: 5->6, prompt. Please type $PASSW $PASSW " echo "============================================================" echo rm $KS 2> /dev/null $J5/bin/keytool -keystore $KS -genkey -dname CN=olala || exit 5 $JM/bin/keytool -keystore $KS -list || exit 6 echo $PASSW| $J5/bin/keytool -keystore $KS -list || exit 7 echo $PASSW| $JM/bin/keytool -keystore $KS -list || exit 8 echo "=======================================================================" echo "Test #4: 6->5, prompt. Please type $PASSW $PASSW $PASSW " echo "=======================================================================" echo rm $KS 2> /dev/null $JM/bin/keytool -keystore $KS -genkey -dname CN=olala || exit 9 $J5/bin/keytool -keystore $KS -list || exit 10 echo $PASSW| $JM/bin/keytool -keystore $KS -list || exit 11 echo $PASSW| $J5/bin/keytool -keystore $KS -list || exit 12 echo "===========================================" echo "Test #5: 5->6, pipe. Please type $PASSW " echo "===========================================" echo rm $KS 2> /dev/null echo $PASSW| $J5/bin/keytool -keystore $KS -genkey -dname CN=olala || exit 13 $JM/bin/keytool -keystore $KS -list || exit 14 echo $PASSW| $J5/bin/keytool -keystore $KS -list || exit 15 echo $PASSW| $JM/bin/keytool -keystore $KS -list || exit 16 rm $KS 2> /dev/null echo echo "Success" exit 0