1#! /bin/csh -f 2# 3# Run cmstest, handsoff, any user, any environment, ECDSA version. 4# This uses a keychain we have right here for this purpose. It's insecure - we 5# know its passphrase and use it here in the clear to unlock - and its private 6# keys have wide-open ACLs to avoid UI. We use the root used to generate the 7# certs in that keychain in the -A option to newCmsTool. 8# 9# To get identities with no ACLs, create them in the usual way (I do it with 10# the Cert app), export them in p12 form, delete from the keychain, and import 11# like this: 12# 13# % kcImport user3.p12 -z password -f pkcs12 -n -k ecdsaCmsKeychain.keychain 14# 15# We copy the test's keychain to ${BUILD_DIR}/ecdsaCmsKeychain.keychain just to keep the UI spew to 16# a minimum. 17# 18 19# 20# safely look for this required env var 21# 22setenv | /usr/bin/grep LOCAL_BUILD_DIR > /dev/null 23if($status != 0) then 24 echo Please set env var LOCAL_BUILD_DIR. 25 exit(1) 26endif 27set BUILD_DIR=$LOCAL_BUILD_DIR 28 29set TESTDIR=`pwd` 30set CMS_KEYCHAIN_SRC=ecdsaCmsKeychain.keychain 31set CMS_KEYCHAIN_DST=${BUILD_DIR}/ecdsaCmsKeychain.keychain 32set CMS_KEYCHAIN_PASSWORD=password 33set CMS_KEYCHAIN_ROOT=cmsEcdsaRoot.cer 34set USER1=user3@debug.apple.com 35set USER2=user4@debug.apple.com 36set QUIET= 37set OUR_QUIET=NO 38 39while ( $#argv > 0 ) 40 switch ( "$argv[1]" ) 41 case -q: 42 set QUIET="-q" 43 set OUR_QUIET=YES 44 shift 45 breaksw 46 default: 47 echo "Usage: cmstestHandsoff [-q(uiet)]" 48 exit(1) 49 endsw 50end 51 52echo Starting cmsEcdsaHandsoff 53 54set cmd="cp $CMS_KEYCHAIN_SRC $CMS_KEYCHAIN_DST" 55if($OUR_QUIET == NO) then 56 echo $cmd 57endif 58# ignore errors here...we'll soon fail if this does 59$cmd 60 61set cmd="/usr/bin/security unlock -p $CMS_KEYCHAIN_PASSWORD $CMS_KEYCHAIN_DST" 62if($OUR_QUIET == NO) then 63 echo $cmd 64endif 65$cmd || exit(1) 66 67set cmd="./cmstest -s $USER1 -S $USER2 -k $CMS_KEYCHAIN_DST -a $CMS_KEYCHAIN_ROOT $QUIET" 68if($OUR_QUIET == NO) then 69 echo $cmd 70endif 71$cmd || exit(1) 72 73# and try to be nice 74set cmd="rm $CMS_KEYCHAIN_DST" 75if($OUR_QUIET == NO) then 76 echo $cmd 77endif 78$cmd || exit(1) 79 80if($OUR_QUIET == NO) then 81 echo === cmsEcdsaHandsoff Succeeded === 82endif 83 84