summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2014-09-19 10:40:14 +0200
committerNikos Mavrogiannopoulos <nmav@redhat.com>2014-09-19 10:51:55 +0200
commit8a35aa03cab2c54e1f9133ff0a3effadc4c6494e (patch)
tree01868d9bf4e0417a89862b6281c89a63258b5a8a /src
parent931349570084744101883dec704cbd6752434d6d (diff)
downloadgnutls-8a35aa03cab2c54e1f9133ff0a3effadc4c6494e.tar.gz
gnutls-serv: added the --provider option
Diffstat (limited to 'src')
-rw-r--r--src/serv-args.def8
-rw-r--r--src/serv.c16
2 files changed, 24 insertions, 0 deletions
diff --git a/src/serv-args.def b/src/serv-args.def
index 141984a52d..44b67f1abe 100644
--- a/src/serv-args.def
+++ b/src/serv-args.def
@@ -264,6 +264,14 @@ flag = {
doc = "Print a list of the supported algorithms and modes. If a priority string is given then only the enabled ciphersuites are shown.";
};
+flag = {
+ name = provider;
+ arg-type = file;
+ file-exists = yes;
+ descrip = "Specify the PKCS #11 provider library";
+ doc = "This will override the default options in /etc/gnutls/pkcs11.conf";
+};
+
doc-section = {
ds-type = 'SEE ALSO'; // or anything else
ds-format = 'texi'; // or texi or mdoc format
diff --git a/src/serv.c b/src/serv.c
index de03c4ee1c..74dd1af2a9 100644
--- a/src/serv.c
+++ b/src/serv.c
@@ -951,6 +951,22 @@ int main(int argc, char **argv)
exit(1);
}
#ifdef ENABLE_PKCS11
+ if (HAVE_OPT(PROVIDER)) {
+ ret = gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_MANUAL, NULL);
+ if (ret < 0)
+ fprintf(stderr, "pkcs11_init: %s",
+ gnutls_strerror(ret));
+ else {
+ ret =
+ gnutls_pkcs11_add_provider(OPT_ARG(PROVIDER),
+ NULL);
+ if (ret < 0) {
+ fprintf(stderr, "pkcs11_add_provider: %s",
+ gnutls_strerror(ret));
+ exit(1);
+ }
+ }
+ }
pkcs11_common(NULL);
#endif