From ff8d2195228bbd9556e050124ce1ad32337bc772 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Sun, 3 Dec 2017 10:49:12 +0100 Subject: tests: p11-kit-load.sh: verify that all modules are loaded after a private key operation Signed-off-by: Nikos Mavrogiannopoulos --- tests/destructive/p11-kit-load.sh | 16 ++++++++++++++-- tests/pkcs11/list-tokens.c | 10 +++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/tests/destructive/p11-kit-load.sh b/tests/destructive/p11-kit-load.sh index 92e9045c2c..d961aa55be 100755 --- a/tests/destructive/p11-kit-load.sh +++ b/tests/destructive/p11-kit-load.sh @@ -38,7 +38,7 @@ for lib in ${libdir} ${libdir}/pkcs11 /usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/l fi done -for lib in ${libdir} ${libdir}/pkcs11 /usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/lib/x86_64-linux-gnu/pkcs11/;do +for lib in ${libdir} ${libdir}/pkcs11 /usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/lib/x86_64-linux-gnu/pkcs11/ /usr/lib/softhsm/;do if test -f "${lib}/libsofthsm2.so"; then SOFTHSM_MODULE="${lib}/libsofthsm2.so" echo "located ${MODULE}" @@ -66,6 +66,10 @@ fi # Create pkcs11.conf with two modules, a trusted (p11-kit-trust) # and softhsm (not trusted) DIR=$(${PKGCONFIG} --var=p11_system_config_modules p11-kit-1) +if test $? != 0 || test -z ${DIR} || test ${DIR} = '/';then + echo "Cannot determine p11-kit module config directory" + exit 1 +fi mkdir -p ${TMPDIR} cp ${DIR}/* ${TMPDIR} @@ -167,7 +171,15 @@ fi nr=$(${builddir}/pkcs11/list-tokens -v -d|${FILTERTOKEN}|sort -u|wc -l) if test "$nr" != 2;then echo "Error in test 6: did not find all modules" - ${builddir}/pkcs11/list-tokens -v + ${builddir}/pkcs11/list-tokens -v -d + exit 1 +fi + +# Check whether all modules are listed after a private key operation. +nr=$(${builddir}/pkcs11/list-tokens -p|${FILTERTOKEN}|sort -u|wc -l) +if test "$nr" != 2;then + echo "Error in test 7: did not find all modules" + ${builddir}/pkcs11/list-tokens -p exit 1 fi diff --git a/tests/pkcs11/list-tokens.c b/tests/pkcs11/list-tokens.c index 6929b2381b..cc4326d901 100644 --- a/tests/pkcs11/list-tokens.c +++ b/tests/pkcs11/list-tokens.c @@ -58,7 +58,9 @@ int main(int argc, char **argv) char *url; gnutls_x509_trust_list_t tl; gnutls_x509_crt_t crt; + gnutls_pkcs11_privkey_t key; unsigned flag = 1; + unsigned private = 0; unsigned int status; ret = gnutls_global_init(); @@ -70,7 +72,7 @@ int main(int argc, char **argv) gnutls_global_set_log_function(tls_log_func); //gnutls_global_set_log_level(4711); - while((opt = getopt(argc, argv, "mvatd")) != -1) { + while((opt = getopt(argc, argv, "mvatdp")) != -1) { switch(opt) { case 'm': /* initialize manually - i.e., do no module loading */ @@ -85,6 +87,12 @@ int main(int argc, char **argv) * if none done */ flag = 0; break; + case 'p': + /* do private key operations */ + assert(gnutls_pkcs11_privkey_init(&key) >= 0); + gnutls_pkcs11_privkey_import_url(key, "pkcs11:", 0); + gnutls_pkcs11_privkey_deinit(key); + break; case 'a': /* initialize auto - i.e., do module loading */ ret = gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_AUTO, NULL); -- cgit v1.2.1