--- /dev/null
+#! /bin/csh -f
+#
+# Run one iteration of PKCS8 portion of import/export tests.
+# Only used as a subroutine call from importExportPkcs8.
+#
+# Usage
+# importExportPkcs8Tool rawKey p8key keychain pbe_vers pbe_alg keyAlg keySize quiet(YES|NO) noACL(YES|NO) p8Format(PEM|DER) securePhrase(YES|NO)
+#
+if ( $#argv != 11 ) then
+ exit(1)
+endif
+set RAWKEY=$argv[1]
+set P8KEY=$argv[2]
+set KEYCHAIN=$argv[3]
+set PBE_VERS=$argv[4]
+set PBE_ALG=$argv[5]
+set KEY_ALG=$argv[6]
+set KEY_SIZE=$argv[7]
+set QUIET=$argv[8]
+set QUIET_ARG=
+if ($QUIET == YES) then
+ set QUIET_ARG=-q
+endif
+set NOACL_ARG=
+if ($argv[9] == YES) then
+ set NOACL_ARG=-n
+endif
+set FORMAT=$argv[10]
+set SECURE_PHRASE_ARG=
+if ($argv[11] == YES) then
+ set SECURE_PHRASE_ARG=-Z
+endif
+
+source setupCommon
+
+set PASSWORD=foobar
+set OS_PWD_ARG="-passout pass:$PASSWORD"
+
+#
+# convert raw private key to specified P8 form using openssl
+#
+set cmd="$RM -f $P8KEY"
+if ($QUIET == NO) then
+ echo $cmd
+endif
+$cmd || exit(1)
+set cmd="$OPENSSL pkcs8 -topk8 -inform PEM -outform $FORMAT -in $RAWKEY -out $P8KEY $OS_PWD_ARG $PBE_VERS $PBE_ALG"
+if ($QUIET == NO) then
+ echo $cmd
+endif
+$cmd || exit(1)
+
+# empty the keychain
+if ($QUIET == NO) then
+ echo $CLEANKC
+endif
+$CLEANKC || exit(1)
+
+# import the p8
+set cmd="$KCIMPORT $P8KEY -k $KEYCHAIN -z $PASSWORD -f pkcs8 -K 1 $QUIET_ARG $NOACL_ARG $SECURE_PHRASE_ARG"
+if ($QUIET == NO) then
+ echo $cmd
+endif
+$cmd || exit(1)
+
+# verify by examining the keychain
+set cmd="$DBVERIFY $KEYCHAIN_PATH $KEY_ALG priv $KEY_SIZE $QUIET_ARG"
+if ($QUIET == NO) then
+ echo $cmd
+endif
+$cmd || exit(1)