summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am6
-rw-r--r--tests/set_pkcs12_cred.c39
2 files changed, 44 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index ab21e593e4..e30e91a530 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -30,7 +30,11 @@ EXTRA_DIST = client.p12 noclient.p12 unclient.p12
openssl_LDADD = $(LDADD) ../libextra/libgnutls-openssl.la
-ctests = simple anonself pskself openssl gc dhepskself
+ctests = simple anonself pskself openssl gc dhepskself set_pkcs12_cred
TESTS = pkcs12_neon $(ctests)
check_PROGRAMS = $(ctests)
dist_check_SCRIPTS = pkcs12_neon
+
+TESTS_ENVIRONMENT = \
+ PKCS12FILE=$(srcdir)/client.p12 \
+ PKCS12PASSWORD=foobar
diff --git a/tests/set_pkcs12_cred.c b/tests/set_pkcs12_cred.c
new file mode 100644
index 0000000000..a67e771384
--- /dev/null
+++ b/tests/set_pkcs12_cred.c
@@ -0,0 +1,39 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <gnutls/gnutls.h>
+
+int
+main (int argc, char *argv[])
+{
+ gnutls_certificate_credentials_t x509cred;
+ char *file, *password;
+ int ret;
+
+ ret = gnutls_global_init ();
+ if (ret < 0)
+ return 1;
+
+ ret = gnutls_certificate_allocate_credentials (&x509cred);
+ if (ret < 0)
+ return 1;
+
+ file = getenv ("PKCS12FILE");
+ password = getenv ("PKCS12PASSWORD");
+
+ printf ("Reading PKCS#12 blob from `%s' using password `%s'.\n",
+ file, password);
+ ret = gnutls_certificate_set_x509_simple_pkcs12_file (x509cred,
+ file,
+ GNUTLS_X509_FMT_DER,
+ password);
+ if (ret < 0)
+ {
+ printf ("x509_pkcs12 (%d): %s\n", ret, gnutls_strerror (ret));
+ }
+
+ gnutls_certificate_free_credentials (x509cred);
+
+ gnutls_global_deinit ();
+
+ return 0;
+}