1 #!/bin/sh 2 3 # 4 # Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved. 5 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 6 # 7 # This code is free software; you can redistribute it and/or modify it 8 # under the terms of the GNU General Public License version 2 only, as 9 # published by the Free Software Foundation. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 27 # @test 28 # @bug 6415696 6931562 29 # @requires os.family == "windows" 30 # @run shell KeytoolChangeAlias.sh 31 # @summary Test "keytool -changealias" using the Microsoft CryptoAPI provider. 32 33 # set a few environment variables so that the shell-script can run stand-alone 34 # in the source directory 35 if [ "${TESTSRC}" = "" ] ; then 36 TESTSRC="." 37 fi 38 39 if [ "${TESTCLASSES}" = "" ] ; then 40 TESTCLASSES="." 41 fi 42 43 if [ "${TESTJAVA}" = "" ] ; then 44 echo "TESTJAVA not set. Test cannot execute." 45 echo "FAILED!!!" 46 exit 1 47 fi 48 49 OS=`uname -s` 50 case "$OS" in 51 Windows* | CYGWIN* ) 52 53 # 'uname -m' does not give us enough information - 54 # should rely on $PROCESSOR_IDENTIFIER (as is done in Defs-windows.gmk), 55 # but JTREG does not pass this env variable when executing a shell script. 56 # 57 # execute test program - rely on it to exit if platform unsupported 58 59 echo "Creating the alias '246810' in the Windows-My store..." 60 ${TESTJAVA}/bin/keytool \ 61 -import \ 62 -storetype Windows-My \ 63 -file ${TESTSRC}/246810.cer \ 64 -alias 246810 \ 65 -noprompt 66 67 if [ $? -ne 0 ] ; then 68 exit $? 69 fi 70 71 echo "Removing the alias '13579', if it is already present..." 72 ${TESTJAVA}/bin/keytool \ 73 -list \ 74 -storetype Windows-My \ 75 -alias 13579 > /dev/null 2>&1 76 77 if [ $? ] ; then 78 ${TESTJAVA}/bin/keytool \ 79 -delete \ 80 -storetype Windows-My \ 81 -alias 13579 \ 82 -noprompt 83 fi 84 85 echo "Counting the entries in the store..." 86 count=`${TESTJAVA}/bin/keytool -list -storetype Windows-My | wc -l` 87 before=$count 88 89 echo "Changing the alias name from '246810' to '13579'..." 90 91 ${TESTJAVA}/bin/keytool \ 92 -changealias \ 93 -storetype Windows-My \ 94 -alias 246810 \ 95 -destalias 13579 96 97 if [ $? -ne 0 ] ; then 98 exit $? 99 fi 100 101 echo "Re-counting the entries in the store..." 102 count=`${TESTJAVA}/bin/keytool -list -storetype Windows-My | wc -l` 103 after=$count 104 105 if [ ! $before = $after ]; then 106 echo "error: unexpected number of entries in the Windows-MY store" 107 exit 101 108 fi 109 110 echo "Confirming that the new alias is present..." 111 ${TESTJAVA}/bin/keytool \ 112 -list \ 113 -storetype Windows-My \ 114 -alias 13579 > /dev/null 2>&1 115 116 if [ $? -ne 0 ] ; then 117 echo "error: cannot find the new alias name in the Windows-MY store" 118 exit 102 119 fi 120 121 echo "Removing the new alias '13579'..." 122 ${TESTJAVA}/bin/keytool \ 123 -delete \ 124 -storetype Windows-My \ 125 -alias 13579 > /dev/null 2>&1 126 127 echo done. 128 exit 0 129 ;; 130 131 * ) 132 echo "This test is not intended for '$OS' - passing test" 133 exit 0 134 ;; 135 esac 136 137 138