Fabiano Fidêncio 5e1db8f
From 0e53e397599da4b5d86121f6ee3de50c0389783e Mon Sep 17 00:00:00 2001
Fabiano Fidêncio 5e1db8f
From: Sumit Bose <sbose@redhat.com>
Fabiano Fidêncio 5e1db8f
Date: Thu, 14 Feb 2019 18:35:40 +0100
Fabiano Fidêncio 5e1db8f
Subject: [PATCH] TESTS: simple CA to generate certificates for test
Fabiano Fidêncio 5e1db8f
MIME-Version: 1.0
Fabiano Fidêncio 5e1db8f
Content-Type: text/plain; charset=UTF-8
Fabiano Fidêncio 5e1db8f
Content-Transfer-Encoding: 8bit
Fabiano Fidêncio 5e1db8f
Fabiano Fidêncio 5e1db8f
To avoid issue with certificate lifetimes a simple OpenSSL based CA is
Fabiano Fidêncio 5e1db8f
used to generate certificates for tests.
Fabiano Fidêncio 5e1db8f
Fabiano Fidêncio 5e1db8f
To make management easy all related data is kept in
Fabiano Fidêncio 5e1db8f
src/tests/test_CA. Since some header files will be generated the
Fabiano Fidêncio 5e1db8f
generation of the needed files is added to BUILT_SOURCES as other
Fabiano Fidêncio 5e1db8f
generated code.
Fabiano Fidêncio 5e1db8f
Fabiano Fidêncio 5e1db8f
Related to https://pagure.io/SSSD/sssd/issue/3436
Fabiano Fidêncio 5e1db8f
Fabiano Fidêncio 5e1db8f
Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
Fabiano Fidêncio 5e1db8f
(cherry picked from commit 19f5dd0b8dc4eff3373a0ac9ea17c2440628fd4c)
Fabiano Fidêncio 5e1db8f
---
Fabiano Fidêncio 5e1db8f
 Makefile.am                                   | 15 ++-
Fabiano Fidêncio 5e1db8f
 configure.ac                                  |  4 +-
Fabiano Fidêncio 5e1db8f
 contrib/sssd.spec.in                          |  8 ++
Fabiano Fidêncio 5e1db8f
 src/external/test_ca.m4                       | 42 +++++++++
Fabiano Fidêncio 5e1db8f
 src/tests/test_CA/Makefile.am                 | 93 +++++++++++++++++++
Fabiano Fidêncio 5e1db8f
 src/tests/test_CA/README                      | 26 ++++++
Fabiano Fidêncio 5e1db8f
 src/tests/test_CA/SSSD_test_CA.config         | 47 ++++++++++
Fabiano Fidêncio 5e1db8f
 src/tests/test_CA/SSSD_test_CA_key.pem        | 52 +++++++++++
Fabiano Fidêncio 5e1db8f
 src/tests/test_CA/SSSD_test_cert_0001.config  | 20 ++++
Fabiano Fidêncio 5e1db8f
 src/tests/test_CA/SSSD_test_cert_0002.config  | 19 ++++
Fabiano Fidêncio 5e1db8f
 src/tests/test_CA/SSSD_test_cert_key_0001.pem | 28 ++++++
Fabiano Fidêncio 5e1db8f
 src/tests/test_CA/SSSD_test_cert_key_0002.pem | 28 ++++++
Fabiano Fidêncio 5e1db8f
 12 files changed, 380 insertions(+), 2 deletions(-)
Fabiano Fidêncio 5e1db8f
 create mode 100644 src/external/test_ca.m4
Fabiano Fidêncio 5e1db8f
 create mode 100644 src/tests/test_CA/Makefile.am
Fabiano Fidêncio 5e1db8f
 create mode 100644 src/tests/test_CA/README
Fabiano Fidêncio 5e1db8f
 create mode 100644 src/tests/test_CA/SSSD_test_CA.config
Fabiano Fidêncio 5e1db8f
 create mode 100644 src/tests/test_CA/SSSD_test_CA_key.pem
Fabiano Fidêncio 5e1db8f
 create mode 100644 src/tests/test_CA/SSSD_test_cert_0001.config
Fabiano Fidêncio 5e1db8f
 create mode 100644 src/tests/test_CA/SSSD_test_cert_0002.config
Fabiano Fidêncio 5e1db8f
 create mode 100644 src/tests/test_CA/SSSD_test_cert_key_0001.pem
Fabiano Fidêncio 5e1db8f
 create mode 100644 src/tests/test_CA/SSSD_test_cert_key_0002.pem
Fabiano Fidêncio 5e1db8f
Fabiano Fidêncio 5e1db8f
diff --git a/Makefile.am b/Makefile.am
Fabiano Fidêncio 5e1db8f
index d52fe0670..d9477cb64 100644
Fabiano Fidêncio 5e1db8f
--- a/Makefile.am
Fabiano Fidêncio 5e1db8f
+++ b/Makefile.am
Fabiano Fidêncio 5e1db8f
@@ -21,7 +21,7 @@ if HAVE_MANPAGES
Fabiano Fidêncio 5e1db8f
 SUBDIRS += src/man
Fabiano Fidêncio 5e1db8f
 endif
Fabiano Fidêncio 5e1db8f
 
Fabiano Fidêncio 5e1db8f
-SUBDIRS += . src/tests/cwrap src/tests/intg
Fabiano Fidêncio 5e1db8f
+SUBDIRS += . src/tests/cwrap src/tests/intg src/tests/test_CA
Fabiano Fidêncio 5e1db8f
 
Fabiano Fidêncio 5e1db8f
 # Some old versions of automake don't define builddir
Fabiano Fidêncio 5e1db8f
 builddir ?= .
Fabiano Fidêncio 5e1db8f
@@ -2411,6 +2411,7 @@ pam_srv_tests_SOURCES = \
Fabiano Fidêncio 5e1db8f
     $(NULL)
Fabiano Fidêncio 5e1db8f
 pam_srv_tests_CFLAGS = \
Fabiano Fidêncio 5e1db8f
     -U SSSD_LIBEXEC_PATH -DSSSD_LIBEXEC_PATH=\"$(abs_builddir)\" \
Fabiano Fidêncio 5e1db8f
+    -I$(abs_builddir)/src \
Fabiano Fidêncio 5e1db8f
     $(AM_CFLAGS) \
Fabiano Fidêncio 5e1db8f
     $(NULL)
Fabiano Fidêncio 5e1db8f
 pam_srv_tests_LDFLAGS = \
Fabiano Fidêncio 5e1db8f
@@ -3286,6 +3287,7 @@ test_cert_utils_SOURCES = \
Fabiano Fidêncio 5e1db8f
     $(NULL)
Fabiano Fidêncio 5e1db8f
 test_cert_utils_CFLAGS = \
Fabiano Fidêncio 5e1db8f
     $(AM_CFLAGS) \
Fabiano Fidêncio 5e1db8f
+    -I$(abs_builddir)/src \
Fabiano Fidêncio 5e1db8f
     $(CRYPTO_CFLAGS) \
Fabiano Fidêncio 5e1db8f
     $(NULL)
Fabiano Fidêncio 5e1db8f
 test_cert_utils_LDADD = \
Fabiano Fidêncio 5e1db8f
@@ -4975,6 +4977,17 @@ endif
Fabiano Fidêncio 5e1db8f
 
Fabiano Fidêncio 5e1db8f
 CLEANFILES += *.X */*.X */*/*.X
Fabiano Fidêncio 5e1db8f
 
Fabiano Fidêncio 5e1db8f
+test_CA: test_CA.stamp
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+test_CA.stamp: $(srcdir)/src/tests/test_CA/*
Fabiano Fidêncio 5e1db8f
+	$(MAKE) -C src/tests/test_CA ca_all
Fabiano Fidêncio 5e1db8f
+	touch $@
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+if BUILD_TEST_CA
Fabiano Fidêncio 5e1db8f
+BUILT_SOURCES += test_CA
Fabiano Fidêncio 5e1db8f
+endif
Fabiano Fidêncio 5e1db8f
+CLEANFILES += test_CA.stamp
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
 tests: all $(check_PROGRAMS)
Fabiano Fidêncio 5e1db8f
 	(cd src/tests/cwrap && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;
Fabiano Fidêncio 5e1db8f
 
Fabiano Fidêncio 5e1db8f
diff --git a/configure.ac b/configure.ac
Fabiano Fidêncio 5e1db8f
index 69deb811e..725c28f52 100644
Fabiano Fidêncio 5e1db8f
--- a/configure.ac
Fabiano Fidêncio 5e1db8f
+++ b/configure.ac
Fabiano Fidêncio 5e1db8f
@@ -208,6 +208,7 @@ m4_include([src/external/libresolv.m4])
Fabiano Fidêncio 5e1db8f
 m4_include([src/external/intgcheck.m4])
Fabiano Fidêncio 5e1db8f
 m4_include([src/external/systemtap.m4])
Fabiano Fidêncio 5e1db8f
 m4_include([src/external/service.m4])
Fabiano Fidêncio 5e1db8f
+m4_include([src/external/test_ca.m4])
Fabiano Fidêncio 5e1db8f
 
Fabiano Fidêncio 5e1db8f
 if test x$with_secrets = xyes; then
Fabiano Fidêncio 5e1db8f
     m4_include([src/external/libhttp_parser.m4])
Fabiano Fidêncio 5e1db8f
@@ -483,6 +484,7 @@ AM_CONDITIONAL([HAVE_CHECK], [test x$have_check != x])
Fabiano Fidêncio 5e1db8f
 AM_CHECK_CMOCKA
Fabiano Fidêncio 5e1db8f
 AM_CHECK_UID_WRAPPER
Fabiano Fidêncio 5e1db8f
 AM_CHECK_NSS_WRAPPER
Fabiano Fidêncio 5e1db8f
+AM_CHECK_TEST_CA
Fabiano Fidêncio 5e1db8f
 
Fabiano Fidêncio 5e1db8f
 # Check if the user wants SSSD to be compiled with systemtap probes
Fabiano Fidêncio 5e1db8f
 AM_CHECK_SYSTEMTAP
Fabiano Fidêncio 5e1db8f
@@ -506,7 +508,7 @@ AC_CONFIG_FILES([Makefile contrib/sssd.spec src/examples/rwtab src/doxy.config
Fabiano Fidêncio 5e1db8f
                  contrib/sssd-pcsc.rules
Fabiano Fidêncio 5e1db8f
                  src/sysv/sssd src/sysv/gentoo/sssd src/sysv/SUSE/sssd
Fabiano Fidêncio 5e1db8f
                  po/Makefile.in src/man/Makefile src/tests/cwrap/Makefile
Fabiano Fidêncio 5e1db8f
-                 src/tests/intg/Makefile
Fabiano Fidêncio 5e1db8f
+                 src/tests/intg/Makefile src/tests/test_CA/Makefile
Fabiano Fidêncio 5e1db8f
                  src/lib/ipa_hbac/ipa_hbac.pc src/lib/ipa_hbac/ipa_hbac.doxy
Fabiano Fidêncio 5e1db8f
                  src/lib/idmap/sss_idmap.pc src/lib/idmap/sss_idmap.doxy
Fabiano Fidêncio 5e1db8f
                  src/lib/certmap/sss_certmap.pc src/lib/certmap/sss_certmap.doxy
Fabiano Fidêncio 5e1db8f
diff --git a/contrib/sssd.spec.in b/contrib/sssd.spec.in
Fabiano Fidêncio 5e1db8f
index f69f192fe..25314596b 100644
Fabiano Fidêncio 5e1db8f
--- a/contrib/sssd.spec.in
Fabiano Fidêncio 5e1db8f
+++ b/contrib/sssd.spec.in
Fabiano Fidêncio 5e1db8f
@@ -209,6 +209,14 @@ BuildRequires: selinux-policy-targeted
Fabiano Fidêncio 5e1db8f
 BuildRequires: libcmocka-devel >= 1.0.0
Fabiano Fidêncio 5e1db8f
 BuildRequires: uid_wrapper
Fabiano Fidêncio 5e1db8f
 BuildRequires: nss_wrapper
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+# Test CA requires openssl independent if SSSD is build with NSS or openssl,
Fabiano Fidêncio 5e1db8f
+# openssh is needed for ssh-keygen and NSS builds need nss-tools for certutil.
Fabiano Fidêncio 5e1db8f
+# Currently only cmocka based tests use the test CA. If it is used elsewhere
Fabiano Fidêncio 5e1db8f
+# you might want to move the following requires out of the if-block.
Fabiano Fidêncio 5e1db8f
+BuildRequires: openssl
Fabiano Fidêncio 5e1db8f
+BuildRequires: openssh
Fabiano Fidêncio 5e1db8f
+BuildRequires: nss-tools
Fabiano Fidêncio 5e1db8f
 %endif
Fabiano Fidêncio 5e1db8f
 BuildRequires: libnl3-devel
Fabiano Fidêncio 5e1db8f
 %if (0%{?use_systemd} == 1)
Fabiano Fidêncio 5e1db8f
diff --git a/src/external/test_ca.m4 b/src/external/test_ca.m4
Fabiano Fidêncio 5e1db8f
new file mode 100644
Fabiano Fidêncio 5e1db8f
index 000000000..eb624acf3
Fabiano Fidêncio 5e1db8f
--- /dev/null
Fabiano Fidêncio 5e1db8f
+++ b/src/external/test_ca.m4
Fabiano Fidêncio 5e1db8f
@@ -0,0 +1,42 @@
Fabiano Fidêncio 5e1db8f
+dnl Check for tools needed to run the test CA
Fabiano Fidêncio 5e1db8f
+AC_DEFUN([AM_CHECK_TEST_CA],
Fabiano Fidêncio 5e1db8f
+[
Fabiano Fidêncio 5e1db8f
+    AC_PATH_PROG([OPENSSL], [openssl])
Fabiano Fidêncio 5e1db8f
+    if test ! -x "$OPENSSL"; then
Fabiano Fidêncio 5e1db8f
+        AC_MSG_NOTICE([Could not find openssl])
Fabiano Fidêncio 5e1db8f
+    fi
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+    AC_PATH_PROG([SSH_KEYGEN], [ssh-keygen])
Fabiano Fidêncio 5e1db8f
+    if test ! -x "$SSH_KEYGEN"; then
Fabiano Fidêncio 5e1db8f
+        AC_MSG_NOTICE([Could not find ssh-keygen])
Fabiano Fidêncio 5e1db8f
+    else
Fabiano Fidêncio 5e1db8f
+        AC_MSG_CHECKING([for -m option of ssh-keygen])
Fabiano Fidêncio 5e1db8f
+        if AC_RUN_LOG([$SSH_KEYGEN --help 2>&1 |grep -- '-m ' > /dev/null]); then
Fabiano Fidêncio 5e1db8f
+            AC_MSG_RESULT([yes])
Fabiano Fidêncio 5e1db8f
+        else
Fabiano Fidêncio 5e1db8f
+            SSH_KEYGEN=""
Fabiano Fidêncio 5e1db8f
+            AC_MSG_RESULT([no])
Fabiano Fidêncio 5e1db8f
+        fi
Fabiano Fidêncio 5e1db8f
+    fi
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+    if test x$cryptolib = xnss; then
Fabiano Fidêncio 5e1db8f
+        AC_PATH_PROG([CERTUTIL], [certutil])
Fabiano Fidêncio 5e1db8f
+        if test ! -x "$CERTUTIL"; then
Fabiano Fidêncio 5e1db8f
+            AC_MSG_NOTICE([Could not find certutil])
Fabiano Fidêncio 5e1db8f
+        fi
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+        AC_PATH_PROG([PK12UTIL], [pk12util])
Fabiano Fidêncio 5e1db8f
+        if test ! -x "$PK12UTIL"; then
Fabiano Fidêncio 5e1db8f
+            AC_MSG_NOTICE([Could not find pk12util])
Fabiano Fidêncio 5e1db8f
+        fi
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+        AM_CONDITIONAL([BUILD_TEST_CA], [test -x "$OPENSSL" -a -x "$SSH_KEYGEN" -a -x "$CERTUTIL" -a -x "$PK12UTIL"])
Fabiano Fidêncio 5e1db8f
+    else
Fabiano Fidêncio 5e1db8f
+        AM_CONDITIONAL([BUILD_TEST_CA], [test -x "$OPENSSL" -a -x "$SSH_KEYGEN"])
Fabiano Fidêncio 5e1db8f
+    fi
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+    AM_COND_IF([BUILD_TEST_CA],
Fabiano Fidêncio 5e1db8f
+               [AC_DEFINE_UNQUOTED(HAVE_TEST_CA, 1,
Fabiano Fidêncio 5e1db8f
+                                   [Build with certificates from test CA])],
Fabiano Fidêncio 5e1db8f
+               [AC_MSG_WARN([Test CA cannot be build, skiping some tests])])
Fabiano Fidêncio 5e1db8f
+])
Fabiano Fidêncio 5e1db8f
diff --git a/src/tests/test_CA/Makefile.am b/src/tests/test_CA/Makefile.am
Fabiano Fidêncio 5e1db8f
new file mode 100644
Fabiano Fidêncio 5e1db8f
index 000000000..a23a3feef
Fabiano Fidêncio 5e1db8f
--- /dev/null
Fabiano Fidêncio 5e1db8f
+++ b/src/tests/test_CA/Makefile.am
Fabiano Fidêncio 5e1db8f
@@ -0,0 +1,93 @@
Fabiano Fidêncio 5e1db8f
+dist_noinst_DATA = \
Fabiano Fidêncio 5e1db8f
+    SSSD_test_CA.config \
Fabiano Fidêncio 5e1db8f
+    SSSD_test_CA_key.pem \
Fabiano Fidêncio 5e1db8f
+    SSSD_test_cert_0001.config \
Fabiano Fidêncio 5e1db8f
+    SSSD_test_cert_0002.config \
Fabiano Fidêncio 5e1db8f
+    SSSD_test_cert_key_0001.pem \
Fabiano Fidêncio 5e1db8f
+    SSSD_test_cert_key_0002.pem \
Fabiano Fidêncio 5e1db8f
+    $(NULL)
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+openssl_ca_config = $(srcdir)/SSSD_test_CA.config
Fabiano Fidêncio 5e1db8f
+openssl_ca_key = $(srcdir)/SSSD_test_CA_key.pem
Fabiano Fidêncio 5e1db8f
+pwdfile = pwdfile
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+configs := $(notdir $(wildcard $(srcdir)/SSSD_test_cert_*.config))
Fabiano Fidêncio 5e1db8f
+ids := $(subst SSSD_test_cert_,,$(basename $(configs)))
Fabiano Fidêncio 5e1db8f
+certs = $(addprefix SSSD_test_cert_x509_,$(addsuffix .pem,$(ids)))
Fabiano Fidêncio 5e1db8f
+certs_h = $(addprefix SSSD_test_cert_x509_,$(addsuffix .h,$(ids)))
Fabiano Fidêncio 5e1db8f
+pubkeys = $(addprefix SSSD_test_cert_pubsshkey_,$(addsuffix .pub,$(ids)))
Fabiano Fidêncio 5e1db8f
+pubkeys_h = $(addprefix SSSD_test_cert_pubsshkey_,$(addsuffix .h,$(ids)))
Fabiano Fidêncio 5e1db8f
+pkcs12 = $(addprefix SSSD_test_cert_pkcs12_,$(addsuffix .pem,$(ids)))
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+if HAVE_NSS
Fabiano Fidêncio 5e1db8f
+nssdb = p11_nssdb p11_nssdb_2certs
Fabiano Fidêncio 5e1db8f
+endif
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+# If openssl is run in parallel there might be conflicts with the serial
Fabiano Fidêncio 5e1db8f
+.NOTPARALLEL:
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+ca_all: clean serial SSSD_test_CA.pem $(certs) $(certs_h) $(pubkeys) $(pubkeys_h) $(pkcs12) $(nssdb)
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+$(pwdfile):
Fabiano Fidêncio 5e1db8f
+	@echo "12345678" > $@
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+SSSD_test_CA.pem: $(openssl_ca_key) $(openssl_ca_config) serial
Fabiano Fidêncio 5e1db8f
+	$(OPENSSL) req -batch -config ${openssl_ca_config} -x509 -new -nodes -key $< -sha256 -days 1024 -set_serial 0 -extensions v3_ca -out $@
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+SSSD_test_cert_req_%.pem: $(srcdir)/SSSD_test_cert_key_%.pem $(srcdir)/SSSD_test_cert_%.config
Fabiano Fidêncio 5e1db8f
+	$(OPENSSL) req -new -nodes -key $< -reqexts req_exts -config $(srcdir)/SSSD_test_cert_$*.config -out $@
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+SSSD_test_cert_x509_%.pem: SSSD_test_cert_req_%.pem $(openssl_ca_config) SSSD_test_CA.pem
Fabiano Fidêncio 5e1db8f
+	$(OPENSSL) ca -config ${openssl_ca_config} -batch -notext -keyfile $(openssl_ca_key) -in $< -days 200 -extensions usr_cert -out $@
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+SSSD_test_cert_pkcs12_%.pem: SSSD_test_cert_x509_%.pem $(srcdir)/SSSD_test_cert_key_%.pem $(pwdfile)
Fabiano Fidêncio 5e1db8f
+	$(OPENSSL) pkcs12 -export -in SSSD_test_cert_x509_$*.pem -inkey $(srcdir)/SSSD_test_cert_key_$*.pem -nodes -passout file:$(pwdfile) -out $@
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+SSSD_test_cert_pubkey_%.pem: SSSD_test_cert_x509_%.pem
Fabiano Fidêncio 5e1db8f
+	$(OPENSSL) x509 -in $< -pubkey -noout > $@
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+SSSD_test_cert_pubsshkey_%.pub: SSSD_test_cert_pubkey_%.pem
Fabiano Fidêncio 5e1db8f
+	$(SSH_KEYGEN) -i -m PKCS8 -f $< > $@
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+SSSD_test_cert_x509_%.h: SSSD_test_cert_x509_%.pem
Fabiano Fidêncio 5e1db8f
+	@echo "#define SSSD_TEST_CERT_$* \""$(shell cat $< |openssl x509 -outform der | base64 -w 0)"\"" > $@
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+SSSD_test_cert_pubsshkey_%.h: SSSD_test_cert_pubsshkey_%.pub
Fabiano Fidêncio 5e1db8f
+	@echo "#define SSSD_TEST_CERT_SSH_KEY_$* \""$(shell cut -d' ' -f2 $<)"\"" > $@
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+# This nss db is used in
Fabiano Fidêncio 5e1db8f
+# - src/tests/cmocka/test_cert_utils.c (validation only)
Fabiano Fidêncio 5e1db8f
+# - src/tests/cmocka/test_pam_srv.c
Fabiano Fidêncio 5e1db8f
+p11_nssdb: SSSD_test_cert_pkcs12_0001.pem SSSD_test_CA.pem $(pwdfile)
Fabiano Fidêncio 5e1db8f
+	mkdir $@
Fabiano Fidêncio 5e1db8f
+	$(CERTUTIL) -d sql:./$@ -N --empty-password
Fabiano Fidêncio 5e1db8f
+	$(CERTUTIL) -d sql:./$@ -A -n 'SSSD test CA' -t CT,CT,CT -a -i SSSD_test_CA.pem
Fabiano Fidêncio 5e1db8f
+	$(PK12UTIL) -d sql:./$@ -i SSSD_test_cert_pkcs12_0001.pem -w $(pwdfile)
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+# This nss db is used in
Fabiano Fidêncio 5e1db8f
+# - src/tests/cmocka/test_pam_srv.c
Fabiano Fidêncio 5e1db8f
+p11_nssdb_2certs: SSSD_test_cert_pkcs12_0001.pem SSSD_test_cert_pkcs12_0002.pem SSSD_test_CA.pem $(pwdfile)
Fabiano Fidêncio 5e1db8f
+	mkdir $@
Fabiano Fidêncio 5e1db8f
+	$(CERTUTIL) -d sql:./$@ -N --empty-password
Fabiano Fidêncio 5e1db8f
+	$(CERTUTIL) -d sql:./$@ -A -n 'SSSD test CA' -t CT,CT,CT -a -i SSSD_test_CA.pem
Fabiano Fidêncio 5e1db8f
+	$(PK12UTIL) -d sql:./$@ p11_nssdb -i SSSD_test_cert_pkcs12_0001.pem -w $(pwdfile)
Fabiano Fidêncio 5e1db8f
+	$(PK12UTIL) -d sql:./$@ p11_nssdb -i SSSD_test_cert_pkcs12_0002.pem -w $(pwdfile)
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+CLEANFILES = \
Fabiano Fidêncio 5e1db8f
+    index.txt  index.txt.attr \
Fabiano Fidêncio 5e1db8f
+    index.txt.attr.old  index.txt.old \
Fabiano Fidêncio 5e1db8f
+    serial  serial.old  \
Fabiano Fidêncio 5e1db8f
+    SSSD_test_CA.pem $(pwdfile) \
Fabiano Fidêncio 5e1db8f
+    $(certs) $(certs_h) $(pubkeys) $(pubkeys_h) $(pkcs12) \
Fabiano Fidêncio 5e1db8f
+    $(NULL)
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+clean-local:
Fabiano Fidêncio 5e1db8f
+	rm -rf newcerts
Fabiano Fidêncio 5e1db8f
+	rm -rf p11_nssdb
Fabiano Fidêncio 5e1db8f
+	rm -rf p11_nssdb_2certs
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+serial: clean
Fabiano Fidêncio 5e1db8f
+	touch index.txt
Fabiano Fidêncio 5e1db8f
+	mkdir newcerts
Fabiano Fidêncio 5e1db8f
+	echo -n 01 > serial
Fabiano Fidêncio 5e1db8f
diff --git a/src/tests/test_CA/README b/src/tests/test_CA/README
Fabiano Fidêncio 5e1db8f
new file mode 100644
Fabiano Fidêncio 5e1db8f
index 000000000..342fd5890
Fabiano Fidêncio 5e1db8f
--- /dev/null
Fabiano Fidêncio 5e1db8f
+++ b/src/tests/test_CA/README
Fabiano Fidêncio 5e1db8f
@@ -0,0 +1,26 @@
Fabiano Fidêncio 5e1db8f
+Simple CA for SSSD tests
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+To avoid issues with certificate lifetimes during tests certificates can be
Fabiano Fidêncio 5e1db8f
+generated with a simple OpenSSL based CA.
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+To create a new certificate add a suitable and valid OpenSSL config file with a
Fabiano Fidêncio 5e1db8f
+[req] section for a certificate signing request (CSR) which must use the name
Fabiano Fidêncio 5e1db8f
+pattern SSSD_test_cert_*.config. Additionally a matching key file
Fabiano Fidêncio 5e1db8f
+SSSD_test_cert_key_%.pem should be added e.g. with
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+    openssl genpkey -algorithm RSA -out SSSD_test_cert_key_XYZ.pem -pkeyopt rsa_keygen_bits:2048
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+It would be possible to generate the keys automatically as well but
Fabiano Fidêncio 5e1db8f
+pre-created keys will safe some resources on the hosts running the tests,
Fabiano Fidêncio 5e1db8f
+allow more flexibility with algorithms and key lengths and make the tests
Fabiano Fidêncio 5e1db8f
+more reproducible.
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+The Makefile will pick up the config and the keys and generate a X.509
Fabiano Fidêncio 5e1db8f
+certificate. For usage in C-code it will generate a header file
Fabiano Fidêncio 5e1db8f
+SSSD_test_cert_x509_*.h where the base64 encoded binary certificate is made
Fabiano Fidêncio 5e1db8f
+available in a macro called SSSD_TEST_CERT_*. To run test with derived ssh-keys
Fabiano Fidêncio 5e1db8f
+the ssh key is available in SSSD_test_cert_pubsshkey_*.h as
Fabiano Fidêncio 5e1db8f
+SSSD_TEST_CERT_SSH_KEY_*.
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+Other targets for other types of tests can be added to the Makefile and should
Fabiano Fidêncio 5e1db8f
+be documented here.
Fabiano Fidêncio 5e1db8f
diff --git a/src/tests/test_CA/SSSD_test_CA.config b/src/tests/test_CA/SSSD_test_CA.config
Fabiano Fidêncio 5e1db8f
new file mode 100644
Fabiano Fidêncio 5e1db8f
index 000000000..90ae2233c
Fabiano Fidêncio 5e1db8f
--- /dev/null
Fabiano Fidêncio 5e1db8f
+++ b/src/tests/test_CA/SSSD_test_CA.config
Fabiano Fidêncio 5e1db8f
@@ -0,0 +1,47 @@
Fabiano Fidêncio 5e1db8f
+[ ca ]
Fabiano Fidêncio 5e1db8f
+default_ca = CA_default
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+[ CA_default ]
Fabiano Fidêncio 5e1db8f
+dir              = .
Fabiano Fidêncio 5e1db8f
+database         = $dir/index.txt
Fabiano Fidêncio 5e1db8f
+new_certs_dir    = $dir/newcerts
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+certificate      = $dir/SSSD_test_CA.pem
Fabiano Fidêncio 5e1db8f
+serial           = $dir/serial
Fabiano Fidêncio 5e1db8f
+private_key      = $dir/SSSD_test_CA_key.pem
Fabiano Fidêncio 5e1db8f
+RANDFILE         = $dir/rand
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+default_days     = 365
Fabiano Fidêncio 5e1db8f
+default_crl_days = 30
Fabiano Fidêncio 5e1db8f
+default_md       = sha256
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+policy           = policy_any
Fabiano Fidêncio 5e1db8f
+email_in_dn      = no
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+name_opt         = ca_default
Fabiano Fidêncio 5e1db8f
+cert_opt         = ca_default
Fabiano Fidêncio 5e1db8f
+copy_extensions  = copy
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+[ usr_cert ]
Fabiano Fidêncio 5e1db8f
+authorityKeyIdentifier = keyid, issuer
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+[ v3_ca ]
Fabiano Fidêncio 5e1db8f
+subjectKeyIdentifier   = hash
Fabiano Fidêncio 5e1db8f
+authorityKeyIdentifier = keyid:always,issuer:always
Fabiano Fidêncio 5e1db8f
+basicConstraints       = CA:true
Fabiano Fidêncio 5e1db8f
+keyUsage               = critical, digitalSignature, cRLSign, keyCertSign
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+[ policy_any ]
Fabiano Fidêncio 5e1db8f
+organizationName       = supplied
Fabiano Fidêncio 5e1db8f
+organizationalUnitName = supplied
Fabiano Fidêncio 5e1db8f
+commonName             = supplied
Fabiano Fidêncio 5e1db8f
+emailAddress           = optional
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+[ req ]
Fabiano Fidêncio 5e1db8f
+distinguished_name = req_distinguished_name
Fabiano Fidêncio 5e1db8f
+prompt             = no
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+[ req_distinguished_name ]
Fabiano Fidêncio 5e1db8f
+O  = SSSD
Fabiano Fidêncio 5e1db8f
+OU = SSSD test
Fabiano Fidêncio 5e1db8f
+CN = SSSD test CA
Fabiano Fidêncio 5e1db8f
diff --git a/src/tests/test_CA/SSSD_test_CA_key.pem b/src/tests/test_CA/SSSD_test_CA_key.pem
Fabiano Fidêncio 5e1db8f
new file mode 100644
Fabiano Fidêncio 5e1db8f
index 000000000..4838d0379
Fabiano Fidêncio 5e1db8f
--- /dev/null
Fabiano Fidêncio 5e1db8f
+++ b/src/tests/test_CA/SSSD_test_CA_key.pem
Fabiano Fidêncio 5e1db8f
@@ -0,0 +1,52 @@
Fabiano Fidêncio 5e1db8f
+-----BEGIN PRIVATE KEY-----
Fabiano Fidêncio 5e1db8f
+MIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQDkKj9R0/ato8Qq
Fabiano Fidêncio 5e1db8f
+8iww/4BZc14oTk4e94pGssERG2b8wkcnq9gjn7rDaW0j7sqcEnEtR4nbn4dtjZz5
Fabiano Fidêncio 5e1db8f
+pObXDRPebsZKf+jPac+PiIKwGMdEQFcrt/hZGlpxDrJKUt144ZmMH69CkBC1MREx
Fabiano Fidêncio 5e1db8f
+8GHl3oQ9hnLCE82j4D6i+iVRAFhD6dsmL8YWvzMtjklAiyF6yboD1Vjkxwv06wcZ
Fabiano Fidêncio 5e1db8f
+xgJptyFOcIM4RfRu212SQUmOZvfxIl9zmu6h4Vaz4Vm/e9qmRHJZ5cOJPC6wyhLn
Fabiano Fidêncio 5e1db8f
+iPyEiuRg7DAI226GO04Kl/Frus5fFrih/hq/GyqYVLHQHBdOZ0MgY/zcwD+eEVOX
Fabiano Fidêncio 5e1db8f
+KDFYKAbOwN9rDZC6UW3fPLHMnc0f/6q75s4Qvs3MyP0jtJaqjEe+DpW14u9kivUm
Fabiano Fidêncio 5e1db8f
+f6L/nFHgDMoYHavsUOXKHZu0NRAKAxj+IvAnHRlInPQktIzZQ2abYWix//bb7aDx
Fabiano Fidêncio 5e1db8f
+WhtOFN/rUXA1mqPahRxSgEst4QnSMxU0hPVET0TQO0A/XwozpkrM80NXOoq8m4kH
Fabiano Fidêncio 5e1db8f
+83vknwVurg3VaupctX5fsSZvSYunK4bJ/8+Om7c3pyrxqbV0Y/nwGzjMYIU/iQSM
Fabiano Fidêncio 5e1db8f
+XkDzs5MQfdWTmzQMsFUY7huQo0VA4s2mY96LmbABVCFnZTFSf+li3dNMadPpuTO+
Fabiano Fidêncio 5e1db8f
+w5jhoR1tcYiWtIDPBuwIFMCwdN1N6QIDAQABAoICAC7SgKYBMokVp2cMxYbUl/lD
Fabiano Fidêncio 5e1db8f
+VJo+34c5U1YIztf84JiUIdgBStycpc3+L5iFI2z9193r5V19kmQoAIO2lGyjUWV/
Fabiano Fidêncio 5e1db8f
+JBAbyaHu29pfsDoFC7d04K6nFT7ryo2S74GTGcH5wfHgeq3VNKiKRjYSV3S9wjOC
Fabiano Fidêncio 5e1db8f
+CMDNIZE0roXxgYDq6jIdpoxil2sJl64Mmfm104wII7Uvrgtc0ZZUOOPQH6SkISCg
Fabiano Fidêncio 5e1db8f
+tDzzFiM9vykJXtfrR4xjemUV8UylGo7Vev5xo0AlobXTEdpy0D4VaeW71d45Rn6h
Fabiano Fidêncio 5e1db8f
+WYYnybmgJ/bCkZeDAWDAH+mWZNS89XPHRaooaZv8Uuktu7FtfmCou5e0dtPZevPF
Fabiano Fidêncio 5e1db8f
+qSCExRRnEvBHxqR71e7NDZt8mHR5H9S+4Io6OMFEfTwFC13TNBEiNspg9XovAjfX
Fabiano Fidêncio 5e1db8f
+4u6wSYPKKLH88R5LAuLoBiD6dO+3SiimbaTeD/a+URCfIWUNycExS/3SnWCS2oxW
Fabiano Fidêncio 5e1db8f
+h8uS18DwbCbW0b5N8VYldfZ8QK3+GH2B4vV7ZGOFtUW43HUUPlxqL9lpakbAgPba
Fabiano Fidêncio 5e1db8f
+enrO2+YqzAIM5NWCvL1+fnaPVGc9deDi63sgq75VkJwBMoiBqIpwSUMUwOmL3RiC
Fabiano Fidêncio 5e1db8f
+NdixXJR/HgjP85UrZHQRlcCfSFMduNNjof0WgamXu2TLA4K2clbdiz1DwAgCBpLP
Fabiano Fidêncio 5e1db8f
+INKo4fiZZkjiEs3VS9iBAoIBAQD2DjnFAZ0USGpmRqecHhFOL9nZX/we/DCUrkRv
Fabiano Fidêncio 5e1db8f
+noiEP9lIz/ITmAzCvvUuyFQcDp3LBplB+T74nvfyMJ6AzbV1Kuw7CluIje5i3wKs
Fabiano Fidêncio 5e1db8f
+zYSc49EKxG3PvNlkpbrQkY2/FrBuwakZro/ByzrcCf783cey36IXc5s0EdXiqyB8
Fabiano Fidêncio 5e1db8f
+Gn2yQQvyYShAmE1HjBjcURSC8bCn1OKQNR04gbnIIUbe5kn8IIM2SD8cUPIuvBTf
Fabiano Fidêncio 5e1db8f
+PAzAMT//6bKwi2v6Y9QK0qOIYEFLTEzonKeLlnErXxytb0wbwCbDWQLprYdSQR/3
Fabiano Fidêncio 5e1db8f
+ctVykylPYuTXdCW5qLL5TGuxHKzJodOI0RF8A07CYj7dcQf5AoIBAQDtYuuKp+AT
Fabiano Fidêncio 5e1db8f
+ro7Oe4J1bUx/8YlAPDU4UgWbIQjAPUvdiRLZxVRecomNjDMvnz2G/lE8P3CPD0fD
Fabiano Fidêncio 5e1db8f
+DZSPhUqUnqanTYLAoVyQh8Zo8NjKJ1wlE9F5CZECeGz1RGZcQBUwK7tZr3EGNw/K
Fabiano Fidêncio 5e1db8f
+IShV8/6RVs+I3jjTll2oAoquJ4el0V7sitI6O3Bsh1AoVgZYmJV3qMdODcDJQjNj
Fabiano Fidêncio 5e1db8f
+SVetxExhsd2SJztjp5U0uTMf6fXH41CVKo3seRPvaxAhIDpG1He1XEKeeeq3l6Uu
Fabiano Fidêncio 5e1db8f
+vzpKmXvNmmzjCZLLY6APvLYv1o65UTn3N/MLIXjgEs07e2JNzhLhAuz5h6sPH0aM
Fabiano Fidêncio 5e1db8f
+bx+vOhugy1FxAoIBAQCvFcxRvSYzCpx7jocx9ctGoZIYtc5HlhhTk/Wqn1pxEKXi
Fabiano Fidêncio 5e1db8f
+w+Vzv9xEr3D0CySeml/52gYwBdWjQCsasTH4YWhfqV1TXbloX+ZjgGD86XkV0p4r
Fabiano Fidêncio 5e1db8f
+VT72dWET10Ipq4j7kn+VMETNu4Mb2StW693/vSiexbcnjOHBmXdixXZmGMucjeCc
Fabiano Fidêncio 5e1db8f
+ZjooTLeg07XU//TigGy94CQfjUvvq4+xMsylS6UVvWTguWP/GDJcwwTvHGHOWL07
Fabiano Fidêncio 5e1db8f
+suWt7me1UlfOI7iuECAmHnMTinVGRJTe0d0sJGg5zu9GTg5ejVYfV6wRfisYTlM0
Fabiano Fidêncio 5e1db8f
+5CAGl+VISRyhfJmc+9SP3ZESaAJTBl+CvjoRhJ6xAoIBAQC3Blq2mAJzClX+q0mF
Fabiano Fidêncio 5e1db8f
+ghTGXJLG3OTnnI3H8mtN1LTGhKXtE3CeNU8KvHrGj88fYrt9aSg+lLhukezlzw4W
Fabiano Fidêncio 5e1db8f
+kk/JlEBohsDYimaWiIONMVWhHKuX16FfNzxCyk7ld18euckEN/k7on5hCLmRs8Kl
Fabiano Fidêncio 5e1db8f
+ijoOu88yi6+AFx2XctDqLwgx9kJqNWPTuWw6/UB9VH+BN7ca3g2y3oDCX0zjpAKE
Fabiano Fidêncio 5e1db8f
+HF/KDMeEaTPn55acV4VxbTi3GY09MokFQhW4hKGJ9MyrHwwaJcOrc5ce+L9Xvwiu
Fabiano Fidêncio 5e1db8f
+GA816S6t9Az3tTb+oT1/cjnv+so/3bnVgYmM/+9mL6lspRXSuiBQU3vQUOkr7/BX
Fabiano Fidêncio 5e1db8f
+RAtxAoIBAQC2AQjrhdjyIhuzDGpL7A/IUfV9Fr37ytRY1r7pOwIVthGK3SmLbV2t
Fabiano Fidêncio 5e1db8f
+byT4LeS1XMkpuwfiM/w4uAbRz3QhMGfgv9wUjNCpR9fBd4VZqU9HPk6TasQhxxLU
Fabiano Fidêncio 5e1db8f
+q4O+XpvylEqPPzHkvpJUiVEfh7bXSoqbvTP7fUnJ/YzqMyq+NNkJzKccz8+I2BfN
Fabiano Fidêncio 5e1db8f
+/WXp6HmKAKhvF2mkFbo+2IXzJoCzHRorBvj/HzMc349cvHtYErJvHZQ2wgfY5CFC
Fabiano Fidêncio 5e1db8f
+y2/x/t1pQ6BhrJiNyC1s8jYtboY7mc1yAp6cvtWraOYYk6LCTLbRLPLNqEOKPUFH
Fabiano Fidêncio 5e1db8f
+xHflFSh7K6rCRfJGMKKFYtdA09/CAqh+
Fabiano Fidêncio 5e1db8f
+-----END PRIVATE KEY-----
Fabiano Fidêncio 5e1db8f
diff --git a/src/tests/test_CA/SSSD_test_cert_0001.config b/src/tests/test_CA/SSSD_test_cert_0001.config
Fabiano Fidêncio 5e1db8f
new file mode 100644
Fabiano Fidêncio 5e1db8f
index 000000000..b6c52a148
Fabiano Fidêncio 5e1db8f
--- /dev/null
Fabiano Fidêncio 5e1db8f
+++ b/src/tests/test_CA/SSSD_test_cert_0001.config
Fabiano Fidêncio 5e1db8f
@@ -0,0 +1,20 @@
Fabiano Fidêncio 5e1db8f
+# This certificate is used in
Fabiano Fidêncio 5e1db8f
+# - src/tests/cmocka/test_cert_utils.c
Fabiano Fidêncio 5e1db8f
+# - src/tests/cmocka/test_pam_srv.c
Fabiano Fidêncio 5e1db8f
+[ req ]
Fabiano Fidêncio 5e1db8f
+distinguished_name = req_distinguished_name
Fabiano Fidêncio 5e1db8f
+prompt = no
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+[ req_distinguished_name ]
Fabiano Fidêncio 5e1db8f
+O = SSSD
Fabiano Fidêncio 5e1db8f
+OU = SSSD test
Fabiano Fidêncio 5e1db8f
+CN = SSSD test cert 0001
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+[ req_exts ]
Fabiano Fidêncio 5e1db8f
+basicConstraints = CA:FALSE
Fabiano Fidêncio 5e1db8f
+nsCertType = client, email
Fabiano Fidêncio 5e1db8f
+nsComment = "SSSD test Certificate"
Fabiano Fidêncio 5e1db8f
+subjectKeyIdentifier = hash
Fabiano Fidêncio 5e1db8f
+keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment
Fabiano Fidêncio 5e1db8f
+extendedKeyUsage = clientAuth, emailProtection
Fabiano Fidêncio 5e1db8f
+subjectAltName = email:sssd-devel@lists.fedorahosted.org,URI:https://pagure.io/SSSD/sssd//
Fabiano Fidêncio 5e1db8f
diff --git a/src/tests/test_CA/SSSD_test_cert_0002.config b/src/tests/test_CA/SSSD_test_cert_0002.config
Fabiano Fidêncio 5e1db8f
new file mode 100644
Fabiano Fidêncio 5e1db8f
index 000000000..8722ffa7e
Fabiano Fidêncio 5e1db8f
--- /dev/null
Fabiano Fidêncio 5e1db8f
+++ b/src/tests/test_CA/SSSD_test_cert_0002.config
Fabiano Fidêncio 5e1db8f
@@ -0,0 +1,19 @@
Fabiano Fidêncio 5e1db8f
+# This certificate is used in
Fabiano Fidêncio 5e1db8f
+# - src/tests/cmocka/test_pam_srv.c
Fabiano Fidêncio 5e1db8f
+[ req ]
Fabiano Fidêncio 5e1db8f
+distinguished_name = req_distinguished_name
Fabiano Fidêncio 5e1db8f
+prompt = no
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+[ req_distinguished_name ]
Fabiano Fidêncio 5e1db8f
+O = SSSD
Fabiano Fidêncio 5e1db8f
+OU = SSSD test
Fabiano Fidêncio 5e1db8f
+CN = SSSD test cert 0002
Fabiano Fidêncio 5e1db8f
+
Fabiano Fidêncio 5e1db8f
+[ req_exts ]
Fabiano Fidêncio 5e1db8f
+basicConstraints = CA:FALSE
Fabiano Fidêncio 5e1db8f
+nsCertType = client
Fabiano Fidêncio 5e1db8f
+nsComment = "SSSD test Certificate"
Fabiano Fidêncio 5e1db8f
+subjectKeyIdentifier = hash
Fabiano Fidêncio 5e1db8f
+keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment
Fabiano Fidêncio 5e1db8f
+extendedKeyUsage = clientAuth
Fabiano Fidêncio 5e1db8f
+subjectAltName = email:sssd-devel@lists.fedorahosted.org,URI:https://pagure.io/SSSD/sssd//
Fabiano Fidêncio 5e1db8f
diff --git a/src/tests/test_CA/SSSD_test_cert_key_0001.pem b/src/tests/test_CA/SSSD_test_cert_key_0001.pem
Fabiano Fidêncio 5e1db8f
new file mode 100644
Fabiano Fidêncio 5e1db8f
index 000000000..365c9897a
Fabiano Fidêncio 5e1db8f
--- /dev/null
Fabiano Fidêncio 5e1db8f
+++ b/src/tests/test_CA/SSSD_test_cert_key_0001.pem
Fabiano Fidêncio 5e1db8f
@@ -0,0 +1,28 @@
Fabiano Fidêncio 5e1db8f
+-----BEGIN PRIVATE KEY-----
Fabiano Fidêncio 5e1db8f
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDX8xglLP+D54dG
Fabiano Fidêncio 5e1db8f
+V/lndmQ7YRg1GDuaZilzh/jfAva3psSYDnn1f9wmygNx0HUjlpG72pBOaYthdp1D
Fabiano Fidêncio 5e1db8f
+ZGayTlpSUY/3y7+pvokFlY0v9Xhg3yhUyRK95uS/LuY4L8uaoZxMXPW2iP3kzv2v
Fabiano Fidêncio 5e1db8f
+BQQlMuBCjL+ji/tX2Zl8CHUldY7QPtSLZcklXmRvu5jHPK5W/eh8E66UNeb/dueq
Fabiano Fidêncio 5e1db8f
+ZAzLBZb5g8Blv9dMjf/eSlM/R//au40ZBBa3CRpddaf/gOa9sNGVd6RmzwejZ47k
Fabiano Fidêncio 5e1db8f
+hPwkx6t23ZQ7bZkk0NI3H8+/sKkM6aWZaywmLvnyClIgjgZh5zKJgv0ZFAaQ/nST
Fabiano Fidêncio 5e1db8f
+a6ke3OetAgMBAAECggEAIHaO3qfREYcwssZu27rUfoiuFu05qJBLEu8R3pSXeiw7
Fabiano Fidêncio 5e1db8f
+yZADjYBXHA2qTuXDdkIgTlkg8Gi1Z0VphsQFHDDjKxTPy7R5b48REiHVQ6xnGEjz
Fabiano Fidêncio 5e1db8f
+yysfAiU/pe3q9e9ZcDlzQZeH6JTXdhoX0MO0R9NKGzcFaBSXCDHR/O9YjPULLwq8
Fabiano Fidêncio 5e1db8f
+K9wZpHV6DPajoPGmZgw1qQr7Lc35nVi9AeNyTGnSrUf4hdjKiA2WA0aC3fkeKQxp
Fabiano Fidêncio 5e1db8f
+8z6FJWKot84dGbhYK0fyM0uIMb4wS8gvTmvhjE5pltEstOY3bFebxJ5DtBJPqE5K
Fabiano Fidêncio 5e1db8f
+FL6k2tfcctuhiwDsRWar39H5SvXzxHbyaz0nwpI9AQKBgQD2Z+vpncVGZgnV0rwK
Fabiano Fidêncio 5e1db8f
+0dcdEMSCOj7i91OVS8IGAvwfpI6n8Hs6upO1PtqvWtnwt8lOMwF3omA5/25ZF1+K
Fabiano Fidêncio 5e1db8f
+Y6iPxnqcg4nApG1DVDXMrV1cWUa6Sc95afJE224sZA+yKiyTZsWdxfV5y5rc5V3L
Fabiano Fidêncio 5e1db8f
+ZOzXjHOW40W/ZuuNwKR5D9fyUQKBgQDgW5h+9NwyPg+01I9qQgsnlHPA9ndKamcH
Fabiano Fidêncio 5e1db8f
+QgnAhdM75wadPnVZTNsOa46pfg0Uy/yqYSo2NZz5CmN6W3baVanyUMMmhDWHmCuV
Fabiano Fidêncio 5e1db8f
+6nHmzwlJDiJz7S0ieEUi62NConZbU3YE6zjmKkMU0K8pZEisvX/Hb3K8Py4Jxyhy
Fabiano Fidêncio 5e1db8f
+JdX5FRmMnQKBgQCzK2GpX6VgyTWBm1hMbcUDR3v8TaoIk1rdhlaw1F7MC3YHu59/
Fabiano Fidêncio 5e1db8f
+Vses1OVi+KbcmGbyS7hXa2SZB5kPgyVflZOt596kDCmQQH+Ko6LzD2SBkBETyDPq
Fabiano Fidêncio 5e1db8f
+zxTw6LW15ZRcMrpy/BnZ3WXfiCM1WDrZeKuXGHO8VcoToRzK2DdAKDsX4QKBgQCv
Fabiano Fidêncio 5e1db8f
+NHhrNHa8uaB0W8Y/eaHSX+jhWNehgmRA075f3WIvFmQg6cSkXxN2OGJpVCmNAxum
Fabiano Fidêncio 5e1db8f
+Rki7mrSh+w3iYIj5Sgp0U8OCUZ6n7BqlcTdPwoCCz4nyM9aaY4fCFEYopEx/VzcD
Fabiano Fidêncio 5e1db8f
+8lk1zO0j1S/kyA7E7xtZOFxGS6R9OE0KjyeA44xXNQKBgFRbzhYNerXwepfYi0bR
Fabiano Fidêncio 5e1db8f
+plJ8Jg4q4DI+m5QlKGjQLsX4e0sdyOgD8mV3iYofzrull5KZeRQy5qbO9EypFXQ5
Fabiano Fidêncio 5e1db8f
++16FbR7VTYgKcwHNtC+8EcsSVwgk57ox4jDY6A/X1DBKUT+m/XyJYE79ZCsFVvl+
Fabiano Fidêncio 5e1db8f
+O8zzsFaOeoxTVyVxjHmuhZ6U
Fabiano Fidêncio 5e1db8f
+-----END PRIVATE KEY-----
Fabiano Fidêncio 5e1db8f
diff --git a/src/tests/test_CA/SSSD_test_cert_key_0002.pem b/src/tests/test_CA/SSSD_test_cert_key_0002.pem
Fabiano Fidêncio 5e1db8f
new file mode 100644
Fabiano Fidêncio 5e1db8f
index 000000000..d80349f50
Fabiano Fidêncio 5e1db8f
--- /dev/null
Fabiano Fidêncio 5e1db8f
+++ b/src/tests/test_CA/SSSD_test_cert_key_0002.pem
Fabiano Fidêncio 5e1db8f
@@ -0,0 +1,28 @@
Fabiano Fidêncio 5e1db8f
+-----BEGIN PRIVATE KEY-----
Fabiano Fidêncio 5e1db8f
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCvhgVEGejE4Gcr
Fabiano Fidêncio 5e1db8f
+b2lXw2scPpvXa2BaJ2DtFNgofEKhPlBoS7E913YXIG+kSE2i7YezAzHyd0hVEBqR
Fabiano Fidêncio 5e1db8f
+QVlhGg5LCeOrQTRASSNUCgWzEXnRbPrvQbeZc7T6k1QIAmTNlpIc7mrO5bjOkR6Y
Fabiano Fidêncio 5e1db8f
+DVNTDmW90aCo4IyarJAru1xQTjS+TDtJNvIgqI1BtnpH67JXt/2UsQYAD4lQQmAf
Fabiano Fidêncio 5e1db8f
+gEj3a2bD+EuJVVFt4rar+QE3EUZi265cK3IfV6OkzDP/ZuN9sxr5adk0QE/2jC+b
Fabiano Fidêncio 5e1db8f
+1sB0VxLxWhGszuOtdhkO/bxcfjWj/EWGa0nezukDeob3k+b4f6Z5kfW9GJCdCOOQ
Fabiano Fidêncio 5e1db8f
+Rr1Mv6oZAgMBAAECggEAUICdZbCka7eoWemNXS1JsPieLV0YIgExmUsYIOls/dtA
Fabiano Fidêncio 5e1db8f
+sbUVo5FwngbIbYaj5PggZuAuRlCjIjBynvBj9/8lUxFEFEWhm2JwC5lVJ936Cy16
Fabiano Fidêncio 5e1db8f
+ocV4Wa8R8GMmBU5jwU8v0Ikg/6eo7UTtzTs/XjaaP0cn8oyasE45CXWzTzmvQx+d
Fabiano Fidêncio 5e1db8f
+FwfcTkhc6KALf+CHTk7mE8QT3vMgVQMRiisF998fnJDkW9U4pPygcg1BAq8wjix8
Fabiano Fidêncio 5e1db8f
+YwVAlk/Vq6MxmOViqTNEmnBd5dfZ/f9SYGkR7AvZgENEDNtkd7fE37YXdTSYfBWd
Fabiano Fidêncio 5e1db8f
+lhHm4UkTUSsHl+Xx5w5r/e9xcK/z/49WUJnK2mVcAQKBgQDUv+szGloLyy0OT9SK
Fabiano Fidêncio 5e1db8f
+qqqiL7AtUtfCRPH9Gk/UYBGLzktuioac9m1tDo5RsiInFjSmBe4wTGrkhrAJP1Vh
Fabiano Fidêncio 5e1db8f
+DOpXGqMe0cV/QqOL/XnsJi6ySHzGhiR+F+iBQLk13ya1TIiGIG65mxVU7ZceBWzH
Fabiano Fidêncio 5e1db8f
+AoAjkwV9c/lUGX3yhJ8zUPPYQQKBgQDTNL/WNNHx5PD8XV9voupVFh5nLA9CqCYR
Fabiano Fidêncio 5e1db8f
+/07O8pMKve/DjswT40mz/Bwd8xKPFIjTtPMuRd1mORnkF/Q/1WuO5dZG6UUTQT5V
Fabiano Fidêncio 5e1db8f
+KdtI8VwhQlTz7/DjXm4O+mkwY9vfhTQylUsqh2rX6WkIedj1b6rT5Jg6fHMn34N2
Fabiano Fidêncio 5e1db8f
+/9UGEp6b2QKBgQCIJ4MIo3a5UYA2RpTJYcvuHALuHrSCWclcp/gq/Ih+JrpTtkfM
Fabiano Fidêncio 5e1db8f
+MFF7l/MxCYWd6jIrhmQXePB37FLAuE2V3MQklqGKWcnBVg6Ayum6Xf1Ij+d6zeKQ
Fabiano Fidêncio 5e1db8f
+6BAemCNv/K4zHRXKcPsrwbp3Lc6moeYpvsnu+mprDUulrOLT0FhqaQaFgQKBgQDG
Fabiano Fidêncio 5e1db8f
+dqfZUlMBub8VdWwri+wkvh8dldJVMYpsmPrmDh1MF8TIf1OXUJm+TiXhorqKxqH4
Fabiano Fidêncio 5e1db8f
+Re3JSo9L8lY49qVmolZqteCPS73D5Sf8gNN1DJAlFJ6dhpdWIDLNUlMrzHoc5J9y
Fabiano Fidêncio 5e1db8f
+9MToFs24S7WN6GmN4Dum1wSQ2Mag7jArzyTOiwqNqQKBgFh12/YF4tiePqG1aOaB
Fabiano Fidêncio 5e1db8f
++L5GgA/ux+6SNj5TkqeiKqPaptg1tnM/T/ChiWmwZzee1ZeMEBbDWtbEMf15In7/
Fabiano Fidêncio 5e1db8f
+OM5OSMU+SIgWposXDTDKM9ZMQZW6h9IQy/IxwvF8BrroS0vF9vOXKOz4Aw+5Kugq
Fabiano Fidêncio 5e1db8f
+JxM2HRDRdC23CGRuGjv+hO4d
Fabiano Fidêncio 5e1db8f
+-----END PRIVATE KEY-----
Fabiano Fidêncio 5e1db8f
-- 
Fabiano Fidêncio 5e1db8f
2.17.0
Fabiano Fidêncio 5e1db8f