diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2017-12-03 10:49:12 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2017-12-03 20:32:15 +0100 |
commit | ff8d2195228bbd9556e050124ce1ad32337bc772 (patch) | |
tree | 0a9db601c755fb93f3ccb6869462b90e62fc8091 | |
parent | 752a21f88e2bea8e4bfaf2690fabf3868c4a6d52 (diff) | |
download | gnutls-ff8d2195228bbd9556e050124ce1ad32337bc772.tar.gz |
tests: p11-kit-load.sh: verify that all modules are loaded after a private key operation
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-rwxr-xr-x | tests/destructive/p11-kit-load.sh | 16 | ||||
-rw-r--r-- | 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); |