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 4906940
  26 # @summary Add -providerPath option for keytool allowing one to specify
  27 #          an additional classpath to search for providers.
  28 # @author Andrew Fan
  29 #
  30 # @run build DummyProvider
  31 # @run shell AltProviderPath.sh
  32 # set a few environment variables so that the shell-script can run stand-alone
  33 # in the source directory
  34 if [ "${TESTSRC}" = "" ] ; then
  35   TESTSRC="."
  36 fi
  37 if [ "${TESTCLASSES}" = "" ] ; then
  38   TESTCLASSES="."
  39 fi
  40 if [ "${TESTJAVA}" = "" ] ; then
  41   echo "TESTJAVA not set.  Test cannot execute."
  42   echo "FAILED!!!"
  43   exit 1
  44 fi
  45 
  46 # set platform-dependent variables
  47 OS=`uname -s`
  48 case "$OS" in
  49   SunOS | Linux | Darwin | AIX )
  50     NULL=/dev/null
  51     PS=":"
  52     FS="/"
  53     ;;
  54   CYGWIN* )
  55     NULL=/dev/null
  56     PS=";"
  57     FS="/"
  58     ;;
  59   Windows_* )
  60     NULL=NUL
  61     PS=";"
  62     FS="\\"
  63     ;;
  64   * )
  65     echo "Unrecognized operating system!"
  66     exit 1;
  67     ;;
  68 esac
  69 
  70 # the test code
  71 #genkey
  72 ${TESTJAVA}${FS}bin${FS}keytool -genkey -v -alias dummyTestCA \
  73     -keyalg "RSA" -keysize 1024 -sigalg "ShA1WithRSA" \
  74     -dname "cn=Dummy Test CA, ou=JSN, o=JavaSoft, c=US" -validity 3650 \
  75     -keypass storepass -keystore keystoreCA.dks -storepass storepass \
  76     -storetype "dummyks" -provider "org.test.dummy.DummyProvider" \
  77     -providerPath ${TESTCLASSES}
  78 
  79 if [ $? -ne 0 ]; then
  80     exit 1
  81 fi
  82 
  83 #Change keystore password
  84 ${TESTJAVA}${FS}bin${FS}keytool -storepasswd -new storepass2 \
  85     -keystore keystoreCA.dks -storetype "dummyks" -storepass storepass \
  86     -provider "org.test.dummy.DummyProvider" -providerPath ${TESTCLASSES}
  87 
  88 if [ $? -ne 0 ]; then
  89     exit 1
  90 fi
  91 
  92 
  93 #Change keystore key password
  94 ${TESTJAVA}${FS}bin${FS}keytool -keypasswd -alias "dummyTestCA" \
  95     -keypass storepass -new keypass -keystore keystoreCA.dks \
  96     -storetype "dummyks" -storepass storepass2 \
  97     -provider "org.test.dummy.DummyProvider" -providerPath ${TESTCLASSES}
  98 
  99 if [ $? -ne 0 ]; then
 100     exit 1
 101 fi
 102 
 103 #Export certificate
 104 ${TESTJAVA}${FS}bin${FS}keytool -v -export -rfc -alias "dummyTestCA" \
 105     -file "dummyTestCA.der" -keystore keystoreCA.dks -storetype "dummyks" \
 106     -storepass storepass2 -provider "org.test.dummy.DummyProvider" \
 107     -providerPath ${TESTCLASSES}
 108 
 109 if [ $? -ne 0 ]; then
 110     exit 1
 111 fi
 112 
 113 #list keystore
 114 ${TESTJAVA}${FS}bin${FS}keytool -v -list -keystore keystoreCA.dks \
 115     -storetype "dummyks" -storepass storepass2 \
 116     -provider "org.test.dummy.DummyProvider" -providerPath ${TESTCLASSES}
 117 
 118 if [ $? -ne 0 ]; then
 119     exit 1
 120 fi
 121 
 122 exit 0