1 #
   2 # Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
   3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4 #
   5 # This code is free software; you can redistribute it and/or modify it
   6 # under the terms of the GNU General Public License version 2 only, as
   7 # published by the Free Software Foundation.
   8 #
   9 # This code is distributed in the hope that it will be useful, but WITHOUT
  10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12 # version 2 for more details (a copy is included in the LICENSE file that
  13 # accompanied this code).
  14 #
  15 # You should have received a copy of the GNU General Public License version
  16 # 2 along with this work; if not, write to the Free Software Foundation,
  17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18 #
  19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20 # or visit www.oracle.com if you need additional information or have any
  21 # questions.
  22 #
  23 
  24 # @test
  25 # @bug 6178366
  26 # @summary confirm that keytool correctly finds (and clones) a private key
  27 #          when the user is prompted for the key's password.
  28 #
  29 # @run shell CloneKeyAskPassword.sh
  30 
  31 # set a few environment variables so that the shell-script can run stand-alone
  32 # in the source directory
  33 if [ "${TESTSRC}" = "" ] ; then
  34    TESTSRC="."
  35 fi
  36 
  37 if [ "${TESTCLASSES}" = "" ] ; then
  38    TESTCLASSES="."
  39 fi
  40 
  41 if [ "${TESTJAVA}" = "" ] ; then
  42    echo "TESTJAVA not set.  Test cannot execute."
  43    echo "FAILED!!!"
  44    exit 1
  45 fi
  46 
  47 # set platform-dependent variables
  48 OS=`uname -s`
  49 case "$OS" in
  50   SunOS )
  51     PATHSEP=":"
  52     FILESEP="/"
  53     ;;
  54   Linux )
  55     PATHSEP=":"
  56     FILESEP="/"
  57     ;;
  58   Darwin )
  59     PATHSEP=":"
  60     FILESEP="/"
  61     ;;
  62   AIX )
  63     PATHSEP=":"
  64     FILESEP="/"
  65     ;;
  66   CYGWIN* )
  67     PATHSEP=";"
  68     FILESEP="/"
  69     ;;
  70   Windows* )
  71     PATHSEP=";"
  72     FILESEP="\\"
  73     ;;
  74   * )
  75     echo "Unrecognized system!"
  76     exit 1;
  77     ;;
  78 esac
  79 
  80 # get a writeable keystore
  81 cp ${TESTSRC}${FILESEP}CloneKeyAskPassword.jks .
  82 chmod 644 CloneKeyAskPassword.jks
  83 
  84 # run the test: attempt to clone the private key
  85 ${TESTJAVA}${FILESEP}bin${FILESEP}keytool \
  86         -keyclone \
  87         -alias mykey \
  88         -dest myclone \
  89         -keystore CloneKeyAskPassword.jks \
  90         -storepass test123 <<EOF
  91 test456
  92 EOF
  93 
  94 exit $?