test/jdk/sun/security/tools/jarsigner/AlgOptions.sh
branchJDK-8200758-branch
changeset 57325 e678ef92ef0b
parent 57324 c1d3935fbb79
parent 54527 96d290a7e94f
child 57326 603101a378fe
equal deleted inserted replaced
57324:c1d3935fbb79 57325:e678ef92ef0b
     1 #
       
     2 # Copyright (c) 2005, 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 5094028 6219522
       
    26 # @summary test new jarsigner -sigalg and -digestalg options
       
    27 # @author Sean Mullan
       
    28 #
       
    29 # @run shell AlgOptions.sh
       
    30 #
       
    31 
       
    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     CP="${FS}bin${FS}cp -f"
       
    54     ;;
       
    55   CYGWIN* )
       
    56     NULL=/dev/null
       
    57     PS=";"
       
    58     FS="/"
       
    59     CP="cp -f"
       
    60     ;;
       
    61   Windows_* )
       
    62     NULL=NUL
       
    63     PS=";"
       
    64     FS="\\"
       
    65     CP="cp -f"
       
    66     ;;
       
    67   * )
       
    68     echo "Unrecognized operating system!"
       
    69     exit 1;
       
    70     ;;
       
    71 esac
       
    72 
       
    73 # copy jar file into writeable location
       
    74 ${CP} ${TESTSRC}${FS}AlgOptions.jar ${TESTCLASSES}${FS}AlgOptionsTmp.jar
       
    75 
       
    76 failed=0
       
    77 # test missing signature algorithm arg
       
    78 ${TESTJAVA}${FS}bin${FS}jarsigner ${TESTTOOLVMOPTS} \
       
    79     -keystore ${TESTSRC}${FS}JarSigning.keystore \
       
    80     -storepass bbbbbb \
       
    81     -sigalg \
       
    82     ${TESTCLASSES}${FS}AlgOptionsTmp.jar c
       
    83 RESULT=$?
       
    84 if [ $RESULT -eq 0 ]; then
       
    85     echo "test 1 failed"
       
    86     failed=1
       
    87 else
       
    88     echo "test 1 passed"
       
    89 fi
       
    90 
       
    91 # test missing digest algorithm arg
       
    92 ${TESTJAVA}${FS}bin${FS}jarsigner ${TESTTOOLVMOPTS} \
       
    93     -keystore ${TESTSRC}${FS}JarSigning.keystore \
       
    94     -storepass bbbbbb \
       
    95     -digestalg \
       
    96     ${TESTCLASSES}${FS}AlgOptionsTmp.jar c
       
    97 RESULT=$?
       
    98 if [ $RESULT -eq 0 ]; then
       
    99     echo "test 2 failed"
       
   100     failed=1
       
   101 else
       
   102     echo "test 2 passed"
       
   103 fi
       
   104 
       
   105 # test BOGUS signature algorithm
       
   106 ${TESTJAVA}${FS}bin${FS}jarsigner ${TESTTOOLVMOPTS} \
       
   107     -keystore ${TESTSRC}${FS}JarSigning.keystore \
       
   108     -storepass bbbbbb \
       
   109     -sigalg BOGUS \
       
   110     ${TESTCLASSES}${FS}AlgOptionsTmp.jar c
       
   111 RESULT=$?
       
   112 if [ $RESULT -eq 0 ]; then
       
   113     echo "test 3 failed"
       
   114     failed=1
       
   115 else
       
   116     echo "test 3 passed"
       
   117 fi
       
   118 
       
   119 # test BOGUS digest algorithm
       
   120 ${TESTJAVA}${FS}bin${FS}jarsigner ${TESTTOOLVMOPTS} \
       
   121     -keystore ${TESTSRC}${FS}JarSigning.keystore \
       
   122     -storepass bbbbbb \
       
   123     -digestalg BOGUS \
       
   124     ${TESTCLASSES}${FS}AlgOptionsTmp.jar c
       
   125 RESULT=$?
       
   126 if [ $RESULT -eq 0 ]; then
       
   127     echo "test 4 failed"
       
   128     failed=1
       
   129 else
       
   130     echo "test 4 passed"
       
   131 fi
       
   132 
       
   133 # test incompatible signature algorithm
       
   134 ${TESTJAVA}${FS}bin${FS}jarsigner ${TESTTOOLVMOPTS} \
       
   135     -keystore ${TESTSRC}${FS}JarSigning.keystore \
       
   136     -storepass bbbbbb \
       
   137     -sigalg SHA1withDSA \
       
   138     ${TESTCLASSES}${FS}AlgOptionsTmp.jar c
       
   139 RESULT=$?
       
   140 if [ $RESULT -eq 0 ]; then
       
   141     echo "test 5 failed"
       
   142     failed=1
       
   143 else
       
   144     echo "test 5 passed"
       
   145 fi
       
   146 
       
   147 # test compatible signature algorithm
       
   148 ${TESTJAVA}${FS}bin${FS}jarsigner ${TESTTOOLVMOPTS} \
       
   149     -keystore ${TESTSRC}${FS}JarSigning.keystore \
       
   150     -storepass bbbbbb \
       
   151     -sigalg SHA512withRSA \
       
   152     ${TESTCLASSES}${FS}AlgOptionsTmp.jar c
       
   153 RESULT=$?
       
   154 if [ $RESULT -eq 0 ]; then
       
   155     echo "test 6 passed"
       
   156 else
       
   157     echo "test 6 failed"
       
   158     failed=1
       
   159 fi
       
   160 
       
   161 # verify it
       
   162 ${TESTJAVA}${FS}bin${FS}jarsigner ${TESTTOOLVMOPTS} -verify ${TESTCLASSES}${FS}AlgOptionsTmp.jar
       
   163 RESULT=$?
       
   164 if [ $RESULT -eq 0 ]; then
       
   165     echo "test 7 passed"
       
   166 else
       
   167     echo "test 7 failed"
       
   168     failed=1
       
   169 fi
       
   170 
       
   171 # test non-default digest algorithm
       
   172 ${TESTJAVA}${FS}bin${FS}jarsigner ${TESTTOOLVMOPTS} \
       
   173     -keystore ${TESTSRC}${FS}JarSigning.keystore \
       
   174     -storepass bbbbbb \
       
   175     -digestalg SHA-256 \
       
   176     ${TESTCLASSES}${FS}AlgOptionsTmp.jar c
       
   177 RESULT=$?
       
   178 if [ $RESULT -eq 0 ]; then
       
   179     echo "test 8 passed"
       
   180 else
       
   181     echo "test 8 failed"
       
   182     failed=1
       
   183 fi
       
   184 
       
   185 # verify it
       
   186 ${TESTJAVA}${FS}bin${FS}jarsigner ${TESTTOOLVMOPTS} -verify ${TESTCLASSES}${FS}AlgOptionsTmp.jar
       
   187 RESULT=$?
       
   188 if [ $RESULT -eq 0 ]; then
       
   189     echo "test 9 passed"
       
   190 else
       
   191     echo "test 9 failed"
       
   192     failed=1
       
   193 fi
       
   194 
       
   195 # test SHA-512 digest algorithm (creates long lines)
       
   196 ${TESTJAVA}${FS}bin${FS}jarsigner ${TESTTOOLVMOPTS} \
       
   197     -keystore ${TESTSRC}${FS}JarSigning.keystore \
       
   198     -storepass bbbbbb \
       
   199     -digestalg SHA-512 \
       
   200     -sigalg SHA512withRSA \
       
   201     ${TESTCLASSES}${FS}AlgOptionsTmp.jar c
       
   202 RESULT=$?
       
   203 if [ $RESULT -eq 0 ]; then
       
   204     echo "test 10 passed"
       
   205 else
       
   206     echo "test 10 failed"
       
   207     failed=1
       
   208 fi
       
   209 
       
   210 # verify it
       
   211 ${TESTJAVA}${FS}bin${FS}jarsigner ${TESTTOOLVMOPTS} -verify ${TESTCLASSES}${FS}AlgOptionsTmp.jar
       
   212 RESULT=$?
       
   213 if [ $RESULT -eq 0 ]; then
       
   214     echo "test 11 passed"
       
   215 else
       
   216     echo "test 11 failed"
       
   217     failed=1
       
   218 fi
       
   219 
       
   220 if [ $failed -eq 1 ]; then
       
   221     exit 1
       
   222 else
       
   223     exit 0
       
   224 fi