+++ /dev/null
-#! /bin/csh -f
-#
-# Run PKCS8 import/export tests.
-#
-# Run this from SecurityTests/clxutils/importExport. The
-# kcImport and kcExport programs must exist in the location
-# specified by the LOCAL_BUILD_DIR env var.
-#
-
-source setupCommon
-
-set PKCS8SUBTOOL=./importExportPkcs8Tool
-set PKCS8EXPORTTOOL=./exportPkcs8Tool
-
-set P8_PASSWORD=foobar
-
-# RSA private key, PEM, generated by openssl
-set RSA_PRIV_KEY=${BUILD_DIR}/rsapriv.clear.pem
-
-# DSA private key, PEM, generated by openssl
-set DSA_PRIV_KEY=${BUILD_DIR}/dsapriv.clear.pem
-
-# DSA parameters
-set DSA_PARAMS=dsaParamOpenssl.pem
-
-# PKCS8 blob, generated by openssl
-set PKCS8_KEY_OS=${BUILD_DIR}/pkcs8.p8
-
-# PKCS8 blob, generated by kcExport
-set PKCS8_KEY_EXP=${BUILD_DIR}/pkcs8_exp.p8
-
-# raw key, generated by openssl after parsing our p8
-set PKCS8_KEY_PARSE_OS=${BUILD_DIR}/pkcs8_parse
-
-# DSA parameters
-set DSA_PARAMS_512_DER=dsaParams_512.der
-set DSA_PARAMS_512_PEM=dsaParamOpenssl.pem
-
-# user specified variables
-set QUIET=NO
-set QUIET_ARG=
-set KEYSIZE=512
-set NOACL=NO
-set NOACL_ARG=
-set SECURE_PHRASE=NO
-set SECURE_PHRASE_ARG=
-set NOCLEAN=NO
-
-# user options
-
-while ( $#argv > 0 )
- switch ( "$argv[1]" )
- case q:
- set QUIET=YES
- set QUIET_ARG=-q
- shift
- breaksw
- case n:
- set NOACL=YES
- set NOACL_ARG=-n
- shift
- breaksw
- case s:
- set SECURE_PHRASE=YES
- set SECURE_PHRASE_ARG=-Z
- shift
- breaksw
- case N:
- set NOCLEAN=YES
- shift
- breaksw
- default:
- echo Usage: importExportPkcs8 \[q\(uiet\)\] \[n\(oACL\)\] \[s\(ecurePassphrase\)\] \[N\(oClean\)\]
- exit(1)
- endsw
-end
-
-echo === Begin PKCS8 test ===
-if ($QUIET == NO) then
- echo $CLEANKC
-endif
-$CLEANKC || exit(1)
-
-###
-### RSA testing
-###
-
-# Create RSA key pair using openssl
-# private keys are only generated in PEM format
-if ($QUIET == NO) then
- echo ...RSA key testing, openssl generated
- echo Creating RSA private key using openssl...
-endif
-set cmd="$RM -f $RSA_PRIV_KEY"
-if ($QUIET == NO) then
- echo $cmd
-endif
-$cmd || exit(1)
-set cmd="$OPENSSL genrsa -out $RSA_PRIV_KEY $KEYSIZE"
-if ($QUIET == NO) then
- echo $cmd
-endif
-$cmd >& /dev/null|| exit(1)
-
-#############
-#
-# PKCS5 v1.5 algorithms:
-#
-if ($QUIET == NO) then
- echo ...testing PKCS5 v1.5 PBE with RSA keys
-endif
-set cmd="$PKCS8SUBTOOL $RSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v1 PBE-MD5-DES rsa 512 $QUIET $NOACL DER $SECURE_PHRASE"
-$cmd || exit(1)
-set cmd="$PKCS8SUBTOOL $RSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v1 PBE-MD2-DES rsa 512 $QUIET $NOACL PEM $SECURE_PHRASE"
-$cmd || exit(1)
-set cmd="$PKCS8SUBTOOL $RSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v1 PBE-SHA1-RC2-64 rsa 512 $QUIET $NOACL DER $SECURE_PHRASE"
-$cmd || exit(1)
-set cmd="$PKCS8SUBTOOL $RSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v1 PBE-MD2-RC2-64 rsa 512 $QUIET $NOACL PEM $SECURE_PHRASE"
-$cmd || exit(1)
-set cmd="$PKCS8SUBTOOL $RSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v1 PBE-MD5-RC2-64 rsa 512 $QUIET $NOACL DER $SECURE_PHRASE"
-$cmd || exit(1)
-set cmd="$PKCS8SUBTOOL $RSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v1 PBE-SHA1-DES rsa 512 $QUIET $NOACL PEM $SECURE_PHRASE"
-$cmd || exit(1)
-
-#
-# PKCS5 v2.0 PBE algorithms
-#
-if ($QUIET == NO) then
- echo ...testing PKCS5 v2.0 PBE with RSA keys
-endif
-set cmd="$PKCS8SUBTOOL $RSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v2 des3 rsa 512 $QUIET $NOACL DER $SECURE_PHRASE"
-$cmd || exit(1)
-set cmd="$PKCS8SUBTOOL $RSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v2 des rsa 512 $QUIET $NOACL PEM $SECURE_PHRASE"
-$cmd || exit(1)
-set cmd="$PKCS8SUBTOOL $RSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v2 rc2 rsa 512 $QUIET $NOACL DER $SECURE_PHRASE"
-$cmd || exit(1)
-
-#
-# PKCS12 PBE algorithms
-# NOTE we do not support PBE-SHA1-2DES (no double DES in the CSP)
-#
-if ($QUIET == NO) then
- echo ...testing PKCS12 PBE with RSA keys
-endif
-set cmd="$PKCS8SUBTOOL $RSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v1 PBE-SHA1-RC4-128 rsa 512 $QUIET $NOACL DER $SECURE_PHRASE"
-$cmd || exit(1)
-set cmd="$PKCS8SUBTOOL $RSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v1 PBE-SHA1-RC4-40 rsa 512 $QUIET $NOACL PEM $SECURE_PHRASE"
-$cmd || exit(1)
-set cmd="$PKCS8SUBTOOL $RSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v1 PBE-SHA1-3DES rsa 512 $QUIET $NOACL DER $SECURE_PHRASE"
-$cmd || exit(1)
-set cmd="$PKCS8SUBTOOL $RSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v1 PBE-SHA1-RC2-128 rsa 512 $QUIET $NOACL PEM $SECURE_PHRASE"
-$cmd || exit(1)
-set cmd="$PKCS8SUBTOOL $RSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v1 PBE-SHA1-RC2-40 rsa 512 $QUIET $NOACL DER $SECURE_PHRASE"
-$cmd || exit(1)
-
-#
-# PKCS8 import, DSA form.
-# The PKCS8 logic is (mostly) algorithm independent so we'll just do a few of these
-# to make sure the CSP can import and export correctly.
-#
-if ($QUIET == NO) then
- echo ...testing PKCS8 import with DSA keys
-endif
-set cmd="$RM -f $DSA_PRIV_KEY"
-if ($QUIET == NO) then
- echo $cmd
-endif
-$cmd || exit(1)
-set cmd="$OPENSSL gendsa -out $DSA_PRIV_KEY $DSA_PARAMS"
-if ($QUIET == NO) then
- echo $cmd
-endif
-$cmd >& /dev/null || exit(1)
-set cmd="$PKCS8SUBTOOL $DSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v1 PBE-SHA1-RC2-40 dsa 512 $QUIET $NOACL DER $SECURE_PHRASE"
-$cmd || exit(1)
-set cmd="$PKCS8SUBTOOL $DSA_PRIV_KEY $PKCS8_KEY_OS $KEYCHAIN -v2 des3 dsa 512 $QUIET $NOACL PEM $SECURE_PHRASE"
-$cmd || exit(1)
-
-#
-# PKCS8 Export
-#
-if ($QUIET == NO) then
- echo ...testing PKCS8 Export of RSA private key
-endif
-set cmd="$PKCS8EXPORTTOOL $RSA_PRIV_KEY $PKCS8_KEY_EXP $PKCS8_KEY_PARSE_OS $KEYCHAIN PEM rsa 512 $QUIET $NOACL $SECURE_PHRASE"
-$cmd || exit(1)
-set cmd="$PKCS8EXPORTTOOL $RSA_PRIV_KEY $PKCS8_KEY_EXP $PKCS8_KEY_PARSE_OS $KEYCHAIN DER rsa 512 $QUIET $NOACL $SECURE_PHRASE"
-$cmd || exit(1)
-
-if ($QUIET == NO) then
- echo ...testing PKCS8 Export of DSA private key
-endif
-set cmd="$PKCS8EXPORTTOOL $DSA_PRIV_KEY $PKCS8_KEY_EXP $PKCS8_KEY_PARSE_OS $KEYCHAIN PEM dsa 512 $QUIET $NOACL $SECURE_PHRASE"
-$cmd || exit(1)
-set cmd="$PKCS8EXPORTTOOL $DSA_PRIV_KEY $PKCS8_KEY_EXP $PKCS8_KEY_PARSE_OS $KEYCHAIN DER dsa 512 $QUIET $NOACL $SECURE_PHRASE"
-$cmd || exit(1)
-
-# cleanup
-if($NOCLEAN == NO) then
- set cmd="rm -f $RSA_PRIV_KEY $DSA_PRIV_KEY $PKCS8_KEY_OS $PKCS8_KEY_EXP $PKCS8_KEY_PARSE_OS"
- if ($QUIET == NO) then
- echo $cmd
- endif
- $cmd || exit(1)
-endif
-
-if ($QUIET == NO) then
- echo === PKCS8 test complete ===
-endif
-