From: Nikos Mavrogiannopoulos Date: Wed, 10 May 2017 14:40:10 +0000 (+0200) Subject: p11tool: added the --provider-opts option X-Git-Tag: gnutls_3_6_0~582 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8692f797eb887ca7d88e9b5bc4e59bc5b10ce358;p=thirdparty%2Fgnutls.git p11tool: added the --provider-opts option This option allows passing parameters to the PKCS#11 module loading process, i.e., passed to gnutls_pkcs11_add_provider(). Signed-off-by: Nikos Mavrogiannopoulos --- diff --git a/src/p11tool-args.def b/src/p11tool-args.def index f6910d8842..66ba2f5151 100644 --- a/src/p11tool-args.def +++ b/src/p11tool-args.def @@ -459,6 +459,14 @@ flag = { doc = "This will override the default options in /etc/gnutls/pkcs11.conf"; }; +flag = { + name = provider-opts; + arg-type = string; + descrip = "Specify parameters for the PKCS #11 provider library"; + doc = "This is a PKCS#11 internal option used by few modules. + Mainly for testing PKCS#11 modules."; +}; + flag = { name = detailed-url; descrip = "Print detailed URLs"; diff --git a/src/p11tool.c b/src/p11tool.c index 7bb7164cba..6b9718e374 100644 --- a/src/p11tool.c +++ b/src/p11tool.c @@ -164,6 +164,11 @@ static void cmd_parser(int argc, char **argv) } if (HAVE_OPT(PROVIDER)) { + const char *params = NULL; + + if (HAVE_OPT(PROVIDER_OPTS)) + params = OPT_ARG(PROVIDER_OPTS); + ret = gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_MANUAL, NULL); if (ret < 0) fprintf(stderr, "pkcs11_init: %s\n", @@ -171,7 +176,7 @@ static void cmd_parser(int argc, char **argv) else { ret = gnutls_pkcs11_add_provider(OPT_ARG(PROVIDER), - NULL); + params); if (ret < 0) { fprintf(stderr, "pkcs11_add_provider: %s\n", gnutls_strerror(ret));