aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/build-data/oids.txt34
-rw-r--r--src/lib/asn1/oids.cpp4
-rw-r--r--src/lib/x509/asn1_alt_name.cpp22
-rw-r--r--src/lib/x509/cert_status.cpp13
-rw-r--r--src/lib/x509/cert_status.h9
-rw-r--r--src/lib/x509/certstor.cpp23
-rw-r--r--src/lib/x509/certstor.h16
-rw-r--r--src/lib/x509/certstor_sql/certstor_sql.cpp37
-rw-r--r--src/lib/x509/certstor_sql/certstor_sql.h7
-rw-r--r--src/lib/x509/x509_crl.cpp30
-rw-r--r--src/lib/x509/x509_crl.h6
-rw-r--r--src/lib/x509/x509_dn.cpp1
-rw-r--r--src/lib/x509/x509_dn_ub.cpp58
-rw-r--r--src/lib/x509/x509_dn_ub.h24
-rw-r--r--src/lib/x509/x509_ext.cpp56
-rw-r--r--src/lib/x509/x509_ext.h38
-rw-r--r--src/lib/x509/x509cert.cpp9
-rw-r--r--src/lib/x509/x509cert.h6
-rw-r--r--src/lib/x509/x509path.cpp358
-rw-r--r--src/lib/x509/x509path.h18
-rwxr-xr-xsrc/scripts/oids.py86
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_01/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_02/crls/cert_path_CRL_02_root_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_02/crls/cert_path_CRL_02_sub_ca_crl.pem.crl12
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_02/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_sub_ca.ca.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_03/crls/cert_path_CRL_03_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_03/crls/cert_path_CRL_03_root_crl.pem.crl12
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_03/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_04/crls/cert_path_CRL_04_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_04/crls/cert_path_CRL_04_root_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_04/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_05/crls/cert_path_CRL_05_crl.pem.crl12
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_05/crls/cert_path_CRL_05_root_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_05/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_06/crls/cert_path_CRL_06_crl.pem.crl12
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_06/crls/cert_path_CRL_06_root_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_06/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_07/crls/cert_path_CRL_07_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_07/crls/cert_path_CRL_07_root_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_07/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_08/crls/cert_path_CRL_08_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_08/crls/cert_path_CRL_08_root_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_08/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_09/crls/cert_path_CRL_09_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_09/crls/cert_path_CRL_09_root_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_09/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_10/crls/cert_path_CRL_10_crl.pem.crl12
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_10/crls/cert_path_CRL_10_root_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_10/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_11/crls/cert_path_CRL_11_crl.pem.crl12
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_11/crls/cert_path_CRL_11_root_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_11/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_12/crls/cert_path_CRL_12_crl.pem.crl12
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_12/crls/cert_path_CRL_12_root_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_12/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_13/crls/cert_path_CRL_13_crl.pem.crl12
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_13/crls/cert_path_CRL_13_root_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_13/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_14/crls/cert_path_CRL_14_crl.pem.crl6
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_14/crls/cert_path_CRL_14_root_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_14/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_15/crls/cert_path_CRL_15_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_15/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_16/crls/cert_path_CRL_16_crl.pem.crl11
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_16/crls/cert_path_CRL_16_root_crl.pem.crl12
-rw-r--r--src/tests/data/x509/bsi/cert_path_CRL_16/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_01/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_02/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_sub_ca.pem14
-rw-r--r--src/tests/data/x509/bsi/cert_path_algo_strength_03/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_01/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_root_ca.ca.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_sub_ca.ca.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_02/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_03/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_ee.TC.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_04/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_05/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_06/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_07/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_08/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_09/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_10/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_11/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_12/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_ee.TC.pem.crt31
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_ee.pem52
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca_key_rollover.ca.pem.crt25
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca_key_rollover.pem52
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_subca_ca_key_rollover.ca.pem.crt30
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_subca_ca_key_rollover.pem52
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_13/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_root_ca.ca.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_sub_ca.ca.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_common_14/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_crypt_01/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_crypt_02/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_ee.TC.pem.crt18
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_01/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_ee.TC.pem.crt18
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_02/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_ee.TC.pem.crt18
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_03/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_ee.TC.pem.crt18
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_04/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_ee.TC.pem.crt18
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_05/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_06/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_sub_ca.ca.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_07/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l1.ca.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l1.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l2.ca.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l2.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_08/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_ee.TC.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_09/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_ee.TC.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_10/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_11/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_12/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_sub_ca.ca.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_13/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_sub_ca.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_14/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_sub_ca.ca.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_15/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_sub_ca.ca.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_16/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_sub_ca.ca.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_17/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_ee.TC.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_sub_ca.ca.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_sub_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_18/description.txt3
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_ee.TC.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_ee.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_root_ca.TA.pem.crt19
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_root_ca.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l1.ca.pem.crt20
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l1.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l2.ca.pem.crt21
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l2.pem28
-rw-r--r--src/tests/data/x509/bsi/cert_path_ext_19/description.txt3
-rw-r--r--src/tests/data/x509/bsi/expected.txt54
-rw-r--r--src/tests/data/x509/bsi/readme.txt14
-rw-r--r--src/tests/data/x509/pss_certs/03/end.crt106
-rw-r--r--src/tests/data/x509/pss_certs/03/root.crt52
-rw-r--r--src/tests/data/x509/pss_certs/04/end.crt107
-rw-r--r--src/tests/data/x509/pss_certs/04/root.crt52
-rw-r--r--src/tests/test_certstor.cpp68
-rw-r--r--src/tests/test_x509_path.cpp178
-rw-r--r--src/tests/unit_x509.cpp9
445 files changed, 9715 insertions, 228 deletions
diff --git a/src/build-data/oids.txt b/src/build-data/oids.txt
index e07800279..6584f7e6d 100644
--- a/src/build-data/oids.txt
+++ b/src/build-data/oids.txt
@@ -1,4 +1,4 @@
-# Regenerate with ./src/scripts/oids.py > src/lib/asn1/oids.cpp
+# Regenerate with ./src/scripts/oids.py oids > src/lib/asn1/oids.cpp AND ./src/scripts/oids.py dn_ub > src/lib/x509/x509_dn_ub.cpp
# Public key types
[pubkey]
@@ -166,22 +166,23 @@
[encryption]
1.2.840.113549.1.1.7 = RSA/OAEP
-# DN
+# DN with upper bounds from RFC 5280, Appendix A
[dn]
-2.5.4.3 = X520.CommonName
-2.5.4.4 = X520.Surname
-2.5.4.5 = X520.SerialNumber
-2.5.4.6 = X520.Country
-2.5.4.7 = X520.Locality
-2.5.4.8 = X520.State
-2.5.4.10 = X520.Organization
-2.5.4.11 = X520.OrganizationalUnit
-2.5.4.12 = X520.Title
-2.5.4.42 = X520.GivenName
-2.5.4.43 = X520.Initials
-2.5.4.44 = X520.GenerationalQualifier
-2.5.4.46 = X520.DNQualifier
-2.5.4.65 = X520.Pseudonym
+2.5.4.3 = X520.CommonName = 64
+2.5.4.4 = X520.Surname = 40
+2.5.4.5 = X520.SerialNumber = 64
+2.5.4.6 = X520.Country = 3
+2.5.4.7 = X520.Locality = 128
+2.5.4.8 = X520.State = 128
+2.5.4.10 = X520.Organization = 64
+2.5.4.11 = X520.OrganizationalUnit = 64
+2.5.4.12 = X520.Title = 64
+# the following three types are naming attributes of type "X520name" and inherit its bound
+2.5.4.42 = X520.GivenName = 32768
+2.5.4.43 = X520.Initials = 32768
+2.5.4.44 = X520.GenerationalQualifier = 32768
+2.5.4.46 = X520.DNQualifier = 64
+2.5.4.65 = X520.Pseudonym = 128
[pbe]
1.2.840.113549.1.5.12 = PKCS5.PBKDF2
@@ -205,6 +206,7 @@
2.5.29.21 = X509v3.ReasonCode
2.5.29.23 = X509v3.HoldInstructionCode
2.5.29.24 = X509v3.InvalidityDate
+2.5.29.28 = X509v3.CRLIssuingDistributionPoint
2.5.29.30 = X509v3.NameConstraints
2.5.29.31 = X509v3.CRLDistributionPoints
2.5.29.32 = X509v3.CertificatePolicies
diff --git a/src/lib/asn1/oids.cpp b/src/lib/asn1/oids.cpp
index 3e5d02a7b..2c97f1d29 100644
--- a/src/lib/asn1/oids.cpp
+++ b/src/lib/asn1/oids.cpp
@@ -1,7 +1,7 @@
/*
* OID maps
*
-* This file was automatically generated by .\src\scripts\oids.py on 2017-10-19
+* This file was automatically generated by ./src/scripts/oids.py on 2017-12-05
*
* All manual edits to this file will be lost. Edit the script
* then regenerate this source file.
@@ -192,6 +192,7 @@ std::string lookup(const OID& oid)
if(oid_str == "2.5.29.21") return "X509v3.ReasonCode";
if(oid_str == "2.5.29.23") return "X509v3.HoldInstructionCode";
if(oid_str == "2.5.29.24") return "X509v3.InvalidityDate";
+ if(oid_str == "2.5.29.28") return "X509v3.CRLIssuingDistributionPoint";
if(oid_str == "2.5.29.30") return "X509v3.NameConstraints";
if(oid_str == "2.5.29.31") return "X509v3.CRLDistributionPoints";
if(oid_str == "2.5.29.32") return "X509v3.CertificatePolicies";
@@ -364,6 +365,7 @@ OID lookup(const std::string& name)
if(name == "X509v3.AuthorityKeyIdentifier") return OID("2.5.29.35");
if(name == "X509v3.BasicConstraints") return OID("2.5.29.19");
if(name == "X509v3.CRLDistributionPoints") return OID("2.5.29.31");
+ if(name == "X509v3.CRLIssuingDistributionPoint") return OID("2.5.29.28");
if(name == "X509v3.CRLNumber") return OID("2.5.29.20");
if(name == "X509v3.CertificatePolicies") return OID("2.5.29.32");
if(name == "X509v3.ExtendedKeyUsage") return OID("2.5.29.37");
diff --git a/src/lib/x509/asn1_alt_name.cpp b/src/lib/x509/asn1_alt_name.cpp
index 6b3eda917..c9f7c780b 100644
--- a/src/lib/x509/asn1_alt_name.cpp
+++ b/src/lib/x509/asn1_alt_name.cpp
@@ -13,6 +13,9 @@
#include <botan/internal/stl_util.h>
#include <botan/parsing.h>
#include <botan/loadstor.h>
+#include <botan/x509_dn.h>
+
+#include <sstream>
namespace Botan {
@@ -131,6 +134,13 @@ void encode_entries(DER_Encoder& encoder,
store_be(ip, ip_buf);
encoder.add_object(tagging, CONTEXT_SPECIFIC, ip_buf, 4);
}
+ else if (type == "DN")
+ {
+ std::stringstream ss(i->second);
+ X509_DN dn;
+ ss >> dn;
+ encoder.encode(dn);
+ }
}
}
@@ -145,6 +155,7 @@ void AlternativeName::encode_into(DER_Encoder& der) const
encode_entries(der, m_alt_info, "RFC822", ASN1_Tag(1));
encode_entries(der, m_alt_info, "DNS", ASN1_Tag(2));
+ encode_entries(der, m_alt_info, "DN", ASN1_Tag(4));
encode_entries(der, m_alt_info, "URI", ASN1_Tag(6));
encode_entries(der, m_alt_info, "IP", ASN1_Tag(7));
@@ -213,6 +224,17 @@ void AlternativeName::decode_from(BER_Decoder& source)
if(tag == 2) add_attribute("DNS", ASN1::to_string(obj));
if(tag == 6) add_attribute("URI", ASN1::to_string(obj));
}
+ else if(tag == 4)
+ {
+ BER_Decoder dec(obj.value);
+ X509_DN dn;
+ std::stringstream ss;
+
+ dec.decode(dn);
+ ss << dn;
+
+ add_attribute("DN", ss.str());
+ }
else if(tag == 7)
{
if(obj.value.size() == 4)
diff --git a/src/lib/x509/cert_status.cpp b/src/lib/x509/cert_status.cpp
index 9561cae57..2c0e74d36 100644
--- a/src/lib/x509/cert_status.cpp
+++ b/src/lib/x509/cert_status.cpp
@@ -22,6 +22,11 @@ const char* to_string(Certificate_Status_Code code)
case Certificate_Status_Code::VALID_CRL_CHECKED:
return "Valid CRL examined";
+ case Certificate_Status_Code::CERT_SERIAL_NEGATIVE:
+ return "Certificate serial number is negative";
+ case Certificate_Status_Code::DN_TOO_LONG:
+ return "Distinguished name too long";
+
case Certificate_Status_Code::NO_REVOCATION_DATA:
return "No revocation data";
case Certificate_Status_Code::SIGNATURE_METHOD_TOO_WEAK:
@@ -55,6 +60,8 @@ const char* to_string(Certificate_Status_Code code)
case Certificate_Status_Code::POLICY_ERROR:
return "Certificate policy error";
+ case Certificate_Status_Code::DUPLICATE_CERT_POLICY:
+ return "Certificate contains duplicate policy";
case Certificate_Status_Code::INVALID_USAGE:
return "Certificate does not allow the requested usage";
case Certificate_Status_Code::CERT_CHAIN_TOO_LONG:
@@ -63,6 +70,8 @@ const char* to_string(Certificate_Status_Code code)
return "CA certificate not allowed to issue certs";
case Certificate_Status_Code::CA_CERT_NOT_FOR_CRL_ISSUER:
return "CA certificate not allowed to issue CRLs";
+ case Certificate_Status_Code::NO_MATCHING_CRLDP:
+ return "No CRL with matching distribution point for certificate";
case Certificate_Status_Code::OCSP_CERT_NOT_LISTED:
return "OCSP cert not listed";
case Certificate_Status_Code::OCSP_BAD_STATUS:
@@ -73,6 +82,10 @@ const char* to_string(Certificate_Status_Code code)
return "Certificate does not pass name constraint";
case Certificate_Status_Code::UNKNOWN_CRITICAL_EXTENSION:
return "Unknown critical extension encountered";
+ case Certificate_Status_Code::DUPLICATE_CERT_EXTENSION:
+ return "Duplicate certificate extension encountered";
+ case Certificate_Status_Code::EXT_IN_V1_V2_CERT:
+ return "Encountered extension in certificate with version < 3";
case Certificate_Status_Code::OCSP_SIGNATURE_ERROR:
return "OCSP signature error";
case Certificate_Status_Code::OCSP_ISSUER_NOT_FOUND:
diff --git a/src/lib/x509/cert_status.h b/src/lib/x509/cert_status.h
index 0dd9f7b84..76dc9252b 100644
--- a/src/lib/x509/cert_status.h
+++ b/src/lib/x509/cert_status.h
@@ -25,12 +25,18 @@ enum class Certificate_Status_Code {
VALID_CRL_CHECKED = 3,
OCSP_NO_HTTP = 4,
+ // Warnings
+ FIRST_WARNING_STATUS = 500,
+ CERT_SERIAL_NEGATIVE = 500,
+ DN_TOO_LONG = 501,
+
// Errors
FIRST_ERROR_STATUS = 1000,
SIGNATURE_METHOD_TOO_WEAK = 1000,
UNTRUSTED_HASH = 1001,
NO_REVOCATION_DATA = 1002,
+ NO_MATCHING_CRLDP = 1003,
// Time problems
CERT_NOT_YET_VALID = 2000,
@@ -62,10 +68,13 @@ enum class Certificate_Status_Code {
// Other problems
CERT_NAME_NOMATCH = 4008,
UNKNOWN_CRITICAL_EXTENSION = 4009,
+ DUPLICATE_CERT_EXTENSION = 4010,
OCSP_SIGNATURE_ERROR = 4501,
OCSP_ISSUER_NOT_FOUND = 4502,
OCSP_RESPONSE_MISSING_KEYUSAGE = 4503,
OCSP_RESPONSE_INVALID = 4504,
+ EXT_IN_V1_V2_CERT = 4505,
+ DUPLICATE_CERT_POLICY = 4506,
// Hard failures
CERT_IS_REVOKED = 5000,
diff --git a/src/lib/x509/certstor.cpp b/src/lib/x509/certstor.cpp
index df4fc3365..23e8185c4 100644
--- a/src/lib/x509/certstor.cpp
+++ b/src/lib/x509/certstor.cpp
@@ -1,6 +1,7 @@
/*
* Certificate Store
* (C) 1999-2010,2013 Jack Lloyd
+* (C) 2017 Fabian Weissberg, Rohde & Schwarz Cybersecurity
*
* Botan is released under the Simplified BSD License (see license.txt)
*/
@@ -64,6 +65,28 @@ Certificate_Store_In_Memory::find_cert(const X509_DN& subject_dn,
return nullptr;
}
+std::vector<std::shared_ptr<const X509_Certificate>> Certificate_Store_In_Memory::find_all_certs(
+ const X509_DN& subject_dn,
+ const std::vector<uint8_t>& key_id) const
+ {
+ std::vector<std::shared_ptr<const X509_Certificate>> matches;
+
+ for(const auto& cert : m_certs)
+ {
+ if(key_id.size())
+ {
+ std::vector<uint8_t> skid = cert->subject_key_id();
+
+ if(skid.size() && skid != key_id) // no match
+ continue;
+ }
+
+ if(cert->subject_dn() == subject_dn)
+ matches.push_back(cert);
+ }
+
+ return matches;
+ }
std::shared_ptr<const X509_Certificate>
Certificate_Store_In_Memory::find_cert_by_pubkey_sha1(const std::vector<uint8_t>& key_hash) const
diff --git a/src/lib/x509/certstor.h b/src/lib/x509/certstor.h
index f08e03bae..36d2e4abd 100644
--- a/src/lib/x509/certstor.h
+++ b/src/lib/x509/certstor.h
@@ -31,6 +31,14 @@ class BOTAN_PUBLIC_API(2,0) Certificate_Store
find_cert(const X509_DN& subject_dn, const std::vector<uint8_t>& key_id) const = 0;
/**
+ * Find all certificates with a given Subject DN.
+ * Subject DN and even the key identifier might not be unique.
+ */
+ virtual std::vector<std::shared_ptr<const X509_Certificate>> find_all_certs(
+ const X509_DN& subject_dn, const std::vector<uint8_t>& key_id) const = 0;
+
+
+ /**
* Find a certificate by searching for one with a matching SHA-1 hash of
* public key. Used for OCSP.
* @param key_hash SHA-1 hash of the subject's public key
@@ -121,11 +129,19 @@ class BOTAN_PUBLIC_API(2,0) Certificate_Store_In_Memory final : public Certifica
/*
* Find a certificate by Subject DN and (optionally) key identifier
+ * @return the first certificate that matches
*/
std::shared_ptr<const X509_Certificate> find_cert(
const X509_DN& subject_dn,
const std::vector<uint8_t>& key_id) const override;
+ /*
+ * Find all certificates with a given Subject DN.
+ * Subject DN and even the key identifier might not be unique.
+ */
+ std::vector<std::shared_ptr<const X509_Certificate>> find_all_certs(
+ const X509_DN& subject_dn, const std::vector<uint8_t>& key_id) const override;
+
std::shared_ptr<const X509_Certificate>
find_cert_by_pubkey_sha1(const std::vector<uint8_t>& key_hash) const override;
diff --git a/src/lib/x509/certstor_sql/certstor_sql.cpp b/src/lib/x509/certstor_sql/certstor_sql.cpp
index 6acfed060..d2991a019 100644
--- a/src/lib/x509/certstor_sql/certstor_sql.cpp
+++ b/src/lib/x509/certstor_sql/certstor_sql.cpp
@@ -76,6 +76,40 @@ Certificate_Store_In_SQL::find_cert(const X509_DN& subject_dn, const std::vector
return cert;
}
+std::vector<std::shared_ptr<const X509_Certificate>>
+Certificate_Store_In_SQL::find_all_certs(const X509_DN& subject_dn, const std::vector<uint8_t>& key_id) const
+ {
+ std::vector<std::shared_ptr<const X509_Certificate>> certs;
+
+ DER_Encoder enc;
+ std::shared_ptr<SQL_Database::Statement> stmt;
+
+ subject_dn.encode_into(enc);
+
+ if(key_id.empty())
+ {
+ stmt = m_database->new_statement("SELECT certificate FROM " + m_prefix + "certificates WHERE subject_dn == ?1");
+ stmt->bind(1,enc.get_contents_unlocked());
+ }
+ else
+ {
+ stmt = m_database->new_statement("SELECT certificate FROM " + m_prefix + "certificates WHERE\
+ subject_dn == ?1 AND (key_id == NULL OR key_id == ?2)");
+ stmt->bind(1,enc.get_contents_unlocked());
+ stmt->bind(2,key_id);
+ }
+
+ std::shared_ptr<const X509_Certificate> cert;
+ while(stmt->step())
+ {
+ auto blob = stmt->get_blob(0);
+ certs.push_back(std::make_shared<X509_Certificate>(
+ std::vector<uint8_t>(blob.first,blob.first + blob.second)));
+ }
+
+ return certs;
+ }
+
std::shared_ptr<const X509_Certificate>
Certificate_Store_In_SQL::find_cert_by_pubkey_sha1(const std::vector<uint8_t>& /*key_hash*/) const
{
@@ -123,9 +157,6 @@ std::vector<X509_DN> Certificate_Store_In_SQL::all_subjects() const
bool Certificate_Store_In_SQL::insert_cert(const X509_Certificate& cert)
{
- if(find_cert(cert.subject_dn(),cert.subject_key_id()))
- return false;
-
DER_Encoder enc;
auto stmt = m_database->new_statement("INSERT OR REPLACE INTO " +
m_prefix + "certificates (\
diff --git a/src/lib/x509/certstor_sql/certstor_sql.h b/src/lib/x509/certstor_sql/certstor_sql.h
index 88e3968bf..fd80eb191 100644
--- a/src/lib/x509/certstor_sql/certstor_sql.h
+++ b/src/lib/x509/certstor_sql/certstor_sql.h
@@ -43,6 +43,13 @@ class BOTAN_PUBLIC_API(2,0) Certificate_Store_In_SQL : public Certificate_Store
std::shared_ptr<const X509_Certificate>
find_cert(const X509_DN& subject_dn, const std::vector<uint8_t>& key_id) const override;
+ /*
+ * Find all certificates with a given Subject DN.
+ * Subject DN and even the key identifier might not be unique.
+ */
+ std::vector<std::shared_ptr<const X509_Certificate>> find_all_certs(
+ const X509_DN& subject_dn, const std::vector<uint8_t>& key_id) const override;
+
std::shared_ptr<const X509_Certificate>
find_cert_by_pubkey_sha1(const std::vector<uint8_t>& key_hash) const override;
diff --git a/src/lib/x509/x509_crl.cpp b/src/lib/x509/x509_crl.cpp
index a739d2f60..c6449baf8 100644
--- a/src/lib/x509/x509_crl.cpp
+++ b/src/lib/x509/x509_crl.cpp
@@ -10,6 +10,8 @@
#include <botan/x509cert.h>
#include <botan/ber_dec.h>
+#include <sstream>
+
namespace Botan {
struct CRL_Data
@@ -23,6 +25,7 @@ struct CRL_Data
// cached values from extensions
size_t m_crl_number = 0;
std::vector<uint8_t> m_auth_key_id;
+ std::string m_issuing_distribution_point;
};
std::string X509_CRL::PEM_label() const
@@ -164,6 +167,26 @@ std::unique_ptr<CRL_Data> decode_crl_body(const std::vector<uint8_t>& body,
tbs_crl.verify_end();
+ // Now cache some fields from the extensions
+ if(auto ext = data->m_extensions.get_extension_object_as<Cert_Extension::CRL_Number>())
+ {
+ data->m_crl_number = ext->get_crl_number();
+ }
+ if(auto ext = data->m_extensions.get_extension_object_as<Cert_Extension::Authority_Key_ID>())
+ {
+ data->m_auth_key_id = ext->get_key_id();
+ }
+ if(auto ext = data->m_extensions.get_extension_object_as<Cert_Extension::CRL_Issuing_Distribution_Point>())
+ {
+ std::stringstream ss;
+
+ for(const auto& pair : ext->get_point().contents())
+ {
+ ss << pair.first << ": " << pair.second << " ";
+ }
+ data->m_issuing_distribution_point = ss.str();
+ }
+
return data;
}
@@ -236,4 +259,11 @@ const X509_Time& X509_CRL::next_update() const
return data().m_next_update;
}
+/*
+* Return the CRL's distribution point
+*/
+std::string X509_CRL::crl_issuing_distribution_point() const
+ {
+ return data().m_issuing_distribution_point;
+ }
}
diff --git a/src/lib/x509/x509_crl.h b/src/lib/x509/x509_crl.h
index fb8307d5a..89925aa04 100644
--- a/src/lib/x509/x509_crl.h
+++ b/src/lib/x509/x509_crl.h
@@ -83,6 +83,12 @@ class BOTAN_PUBLIC_API(2,0) X509_CRL final : public X509_Object
const X509_Time& next_update() const;
/**
+ * Get the CRL's distribution point
+ * @return CRL.IssuingDistributionPoint from the CRL's Data_Store
+ */
+ std::string crl_issuing_distribution_point() const;
+
+ /**
* Create an uninitialized CRL object. Any attempts to access
* this object will throw an exception.
*/
diff --git a/src/lib/x509/x509_dn.cpp b/src/lib/x509/x509_dn.cpp
index d07344aae..1561a10f9 100644
--- a/src/lib/x509/x509_dn.cpp
+++ b/src/lib/x509/x509_dn.cpp
@@ -11,6 +11,7 @@
#include <botan/parsing.h>
#include <botan/internal/stl_util.h>
#include <botan/oids.h>
+#include <botan/x509_dn_ub.h>
#include <ostream>
#include <cctype>
diff --git a/src/lib/x509/x509_dn_ub.cpp b/src/lib/x509/x509_dn_ub.cpp
new file mode 100644
index 000000000..20c88d97e
--- /dev/null
+++ b/src/lib/x509/x509_dn_ub.cpp
@@ -0,0 +1,58 @@
+/*
+* DN_UB maps: Upper bounds on the length of DN strings
+*
+* This file was automatically generated by ./src/scripts/oids.py on 2017-12-20
+*
+* All manual edits to this file will be lost. Edit the script
+* then regenerate this source file.
+*
+* Botan is released under the Simplified BSD License (see license.txt)
+*/
+
+#include <botan/asn1_oid.h>
+#include <botan/x509_dn_ub.h>
+#include <map>
+#include <stdint.h>
+
+namespace {
+/**
+ * Upper bounds for the length of distinguished name fields as given in RFC 5280, Appendix A.
+ * Only OIDS recognized by botan are considered, so far.
+ * Maps OID string representations instead of human readable strings in order
+ * to avoid an additional lookup.
+ */
+static const std::map<Botan::OID, size_t> DN_UB =
+ {
+ { Botan::OID("2.5.4.10"), 64 }, // X520.Organization
+ { Botan::OID("2.5.4.11"), 64 }, // X520.OrganizationalUnit
+ { Botan::OID("2.5.4.12"), 64 }, // X520.Title
+ { Botan::OID("2.5.4.3"), 64 }, // X520.CommonName
+ { Botan::OID("2.5.4.4"), 40 }, // X520.Surname
+ { Botan::OID("2.5.4.42"), 32768 }, // X520.GivenName
+ { Botan::OID("2.5.4.43"), 32768 }, // X520.Initials
+ { Botan::OID("2.5.4.44"), 32768 }, // X520.GenerationalQualifier
+ { Botan::OID("2.5.4.46"), 64 }, // X520.DNQualifier
+ { Botan::OID("2.5.4.5"), 64 }, // X520.SerialNumber
+ { Botan::OID("2.5.4.6"), 3 }, // X520.Country
+ { Botan::OID("2.5.4.65"), 128 }, // X520.Pseudonym
+ { Botan::OID("2.5.4.7"), 128 }, // X520.Locality
+ { Botan::OID("2.5.4.8"), 128 } // X520.State
+ };
+}
+
+namespace Botan {
+
+size_t lookup_ub(const OID& oid)
+ {
+ auto ub_entry = DN_UB.find(oid);
+ if(ub_entry != DN_UB.end())
+ {
+ return ub_entry->second;
+ }
+ else
+ {
+ return SIZE_MAX;
+ }
+ }
+}
+
diff --git a/src/lib/x509/x509_dn_ub.h b/src/lib/x509/x509_dn_ub.h
new file mode 100644
index 000000000..b4433eb53
--- /dev/null
+++ b/src/lib/x509/x509_dn_ub.h
@@ -0,0 +1,24 @@
+/*
+* (C) 2017 Fabian Weissberg, Rohde & Schwarz Cybersecurity
+*
+* Botan is released under the Simplified BSD License (see license.txt)
+*/
+#ifndef BOTAN_X509_DN_UB_H_
+#define BOTAN_X509_DN_UB_H_
+
+#include <botan/asn1_oid.h>
+
+namespace Botan {
+
+/**
+* Lookup upper bounds in characters for the length of distinguished name fields
+* as given in RFC 5280, Appendix A.
+*
+* @param oid the oid of the DN to lookup
+* @return the upper bound, or SIZE_MAX if no ub is known to Botan
+*/
+size_t lookup_ub(const OID& oid);
+
+}
+
+#endif
diff --git a/src/lib/x509/x509_ext.cpp b/src/lib/x509/x509_ext.cpp
index 1b13d36e1..d98818a4c 100644
--- a/src/lib/x509/x509_ext.cpp
+++ b/src/lib/x509/x509_ext.cpp
@@ -2,6 +2,7 @@
* X.509 Certificate Extensions
* (C) 1999-2010,2012 Jack Lloyd
* (C) 2016 René Korthaus, Rohde & Schwarz Cybersecurity
+* (C) 2017 Fabian Weissberg, Rohde & Schwarz Cybersecurity
*
* Botan is released under the Simplified BSD License (see license.txt)
*/
@@ -15,6 +16,7 @@
#include <botan/hash.h>
#include <botan/internal/bit_ops.h>
#include <algorithm>
+#include <set>
#include <sstream>
namespace Botan {
@@ -71,6 +73,10 @@ Extensions::create_extn_obj(const OID& oid,
{
extn.reset(new Cert_Extension::CRL_Distribution_Points);
}
+ else if(oid == Cert_Extension::CRL_Issuing_Distribution_Point::static_oid())
+ {
+ extn.reset(new Cert_Extension::CRL_Issuing_Distribution_Point);
+ }
else if(oid == Cert_Extension::Certificate_Policies::static_oid())
{
extn.reset(new Cert_Extension::Certificate_Policies);
@@ -708,7 +714,6 @@ void Certificate_Policies::decode_inner(const std::vector<uint8_t>& in)
std::vector<Policy_Information> policies;
BER_Decoder(in).decode_list(policies);
-
m_oids.clear();
for(size_t i = 0; i != policies.size(); ++i)
m_oids.push_back(policies[i].oid());
@@ -723,6 +728,18 @@ void Certificate_Policies::contents_to(Data_Store& info, Data_Store&) const
info.add("X509v3.CertificatePolicies", m_oids[i].as_string());
}
+void Certificate_Policies::validate(const X509_Certificate& subject, const X509_Certificate& issuer,
+ const std::vector<std::shared_ptr<const X509_Certificate>>& cert_path,
+ std::vector<std::set<Certificate_Status_Code>>& cert_status,
+ size_t pos)
+ {
+ std::set<OID> oid_set(m_oids.begin(), m_oids.end());
+ if(oid_set.size() != m_oids.size())
+ {
+ cert_status.at(pos).insert(Certificate_Status_Code::DUPLICATE_CERT_POLICY);
+ }
+ }
+
std::vector<uint8_t> Authority_Information_Access::encode_inner() const
{
ASN1_String url(m_ocsp_responder, IA5_STRING);
@@ -801,6 +818,7 @@ std::vector<uint8_t> CRL_Number::encode_inner() const
void CRL_Number::decode_inner(const std::vector<uint8_t>& in)
{
BER_Decoder(in).decode(m_crl_number);
+ m_has_value = true;
}
/*
@@ -850,14 +868,19 @@ void CRL_Distribution_Points::decode_inner(const std::vector<uint8_t>& buf)
.decode_list(m_distribution_points)
.verify_end();
+ std::stringstream ss;
+
for(size_t i = 0; i != m_distribution_points.size(); ++i)
{
- auto point = m_distribution_points[i].point().contents();
+ auto contents = m_distribution_points[i].point().contents();
- auto uris = point.equal_range("URI");
- for(auto uri = uris.first; uri != uris.second; ++uri)
- m_crl_distribution_urls.push_back(uri->second);
+ for(const auto& pair : contents)
+ {
+ ss << pair.first << ": " << pair.second << " ";
+ }
}
+
+ m_crl_distribution_urls.push_back(ss.str());
}
void CRL_Distribution_Points::contents_to(Data_Store& subject, Data_Store&) const
@@ -881,6 +904,29 @@ void CRL_Distribution_Points::Distribution_Point::decode_from(class BER_Decoder&
.end_cons().end_cons();
}
+std::vector<uint8_t> CRL_Issuing_Distribution_Point::encode_inner() const
+ {
+ throw Not_Implemented("CRL_Issuing_Distribution_Point encoding");
+ }
+
+void CRL_Issuing_Distribution_Point::decode_inner(const std::vector<uint8_t>& buf)
+ {
+ BER_Decoder(buf).decode(m_distribution_point).verify_end();
+ }
+
+void CRL_Issuing_Distribution_Point::contents_to(Data_Store& info, Data_Store&) const
+ {
+ auto contents = m_distribution_point.point().contents();
+ std::stringstream ss;
+
+ for(const auto& pair : contents)
+ {
+ ss << pair.first << ": " << pair.second << " ";
+ }
+
+ info.add("X509v3.CRLIssuingDistributionPoint", ss.str());
+ }
+
std::vector<uint8_t> Unknown_Extension::encode_inner() const
{
return m_bytes;
diff --git a/src/lib/x509/x509_ext.h b/src/lib/x509/x509_ext.h
index 1680bd9dd..235496cbd 100644
--- a/src/lib/x509/x509_ext.h
+++ b/src/lib/x509/x509_ext.h
@@ -528,6 +528,10 @@ class BOTAN_PUBLIC_API(2,0) Certificate_Policies final : public Certificate_Exte
static OID static_oid() { return OID("2.5.29.32"); }
OID oid_of() const override { return static_oid(); }
+ void validate(const X509_Certificate& subject, const X509_Certificate& issuer,
+ const std::vector<std::shared_ptr<const X509_Certificate>>& cert_path,
+ std::vector<std::set<Certificate_Status_Code>>& cert_status,
+ size_t pos) override;
private:
std::string oid_name() const override
{ return "X509v3.CertificatePolicies"; }
@@ -627,6 +631,7 @@ class BOTAN_PUBLIC_API(2,0) CRL_ReasonCode final : public Certificate_Extension
/**
* CRL Distribution Points Extension
+* todo enforce restrictions from RFC 5280 4.2.1.13
*/
class BOTAN_PUBLIC_API(2,0) CRL_Distribution_Points final : public Certificate_Extension
{
@@ -675,6 +680,39 @@ class BOTAN_PUBLIC_API(2,0) CRL_Distribution_Points final : public Certificate_E
};
/**
+* CRL Issuing Distribution Point Extension
+* todo enforce restrictions from RFC 5280 5.2.5
+*/
+class CRL_Issuing_Distribution_Point final : public Certificate_Extension
+ {
+ public:
+ CRL_Issuing_Distribution_Point() = default;
+
+ explicit CRL_Issuing_Distribution_Point(const CRL_Distribution_Points::Distribution_Point& distribution_point) :
+ m_distribution_point(distribution_point) {}
+
+ CRL_Issuing_Distribution_Point* copy() const override
+ { return new CRL_Issuing_Distribution_Point(m_distribution_point); }
+
+ const AlternativeName& get_point() const
+ { return m_distribution_point.point(); }
+
+ static OID static_oid() { return OID("2.5.29.28"); }
+ OID oid_of() const override { return static_oid(); }
+
+ private:
+ std::string oid_name() const override
+ { return "X509v3.CRLIssuingDistributionPoint"; }
+
+ bool should_encode() const override { return true; }
+ std::vector<uint8_t> encode_inner() const override;
+ void decode_inner(const std::vector<uint8_t>&) override;
+ void contents_to(Data_Store&, Data_Store&) const override;
+
+ CRL_Distribution_Points::Distribution_Point m_distribution_point;
+ };
+
+/**
* An unknown X.509 extension
* Will add a failure to the path validation result, if critical
*/
diff --git a/src/lib/x509/x509cert.cpp b/src/lib/x509/x509cert.cpp
index b1229679c..5a5521e37 100644
--- a/src/lib/x509/x509cert.cpp
+++ b/src/lib/x509/x509cert.cpp
@@ -25,6 +25,7 @@ struct X509_Certificate_Data
{
size_t m_version = 0;
std::vector<uint8_t> m_serial;
+ bool m_serial_negative;
AlgorithmIdentifier m_sig_algo_inner;
X509_DN m_issuer_dn;
X509_DN m_subject_dn;
@@ -113,6 +114,8 @@ std::unique_ptr<X509_Certificate_Data> parse_x509_cert_body(const X509_Object& o
throw Decoding_Error("Unknown X.509 cert version " + std::to_string(data->m_version));
if(obj.signature_algorithm() != data->m_sig_algo_inner)
throw Decoding_Error("X.509 Certificate had differing algorithm identifers in inner and outer ID fields");
+ // crude method to save the serial's sign; will get lost during decoding, otherwise
+ data->m_serial_negative = serial_bn.is_negative();
// for general sanity convert wire version (0 based) to standards version (v1 .. v3)
data->m_version += 1;
@@ -384,6 +387,12 @@ const std::vector<uint8_t>& X509_Certificate::serial_number() const
return data().m_serial;
}
+bool X509_Certificate::is_serial_negative() const
+ {
+ return data().m_serial_negative;
+ }
+
+
const X509_DN& X509_Certificate::issuer_dn() const
{
return data().m_issuer_dn;
diff --git a/src/lib/x509/x509cert.h b/src/lib/x509/x509cert.h
index dc32e70c1..9ee3d4eb8 100644
--- a/src/lib/x509/x509cert.h
+++ b/src/lib/x509/x509cert.h
@@ -186,6 +186,12 @@ class BOTAN_PUBLIC_API(2,0) X509_Certificate : public X509_Object
const std::vector<uint8_t>& serial_number() const;
/**
+ * Get the serial number's sign
+ * @return 1 iff the serial is negative.
+ */
+ bool is_serial_negative() const;
+
+ /**
* Get the DER encoded AuthorityKeyIdentifier of this certificate.
* @return DER encoded AuthorityKeyIdentifier
*/
diff --git a/src/lib/x509/x509path.cpp b/src/lib/x509/x509path.cpp
index c2a22e7f4..88fd578b2 100644
--- a/src/lib/x509/x509path.cpp
+++ b/src/lib/x509/x509path.cpp
@@ -1,18 +1,23 @@
/*
* X.509 Certificate Path Validation
* (C) 2010,2011,2012,2014,2016 Jack Lloyd
+* (C) 2017 Fabian Weissberg, Rohde & Schwarz Cybersecurity
*
* Botan is released under the Simplified BSD License (see license.txt)
*/
#include <botan/x509path.h>
#include <botan/x509_ext.h>
+#include <botan/x509_dn_ub.h>
#include <botan/pk_keys.h>
#include <botan/ocsp.h>
+#include <botan/oids.h>
#include <algorithm>
#include <chrono>
#include <vector>
#include <set>
+#include <string>
+#include <sstream>
#if defined(BOTAN_HAS_ONLINE_REVOCATION_CHECKS)
#include <future>
@@ -81,6 +86,22 @@ PKIX::check_chain(const std::vector<std::shared_ptr<const X509_Certificate>>& ce
status.insert(Certificate_Status_Code::CHAIN_NAME_MISMATCH);
}
+ // Check the serial number
+ if(subject->is_serial_negative())
+ {
+ status.insert(Certificate_Status_Code::CERT_SERIAL_NEGATIVE);
+ }
+
+ // Check the subject's DN components' length
+ for(const auto& dn_pair : subject->subject_dn().get_attributes())
+ {
+ // dn_pair = <OID,str>
+ if(lookup_ub(dn_pair.first) < dn_pair.second.size())
+ {
+ status.insert(Certificate_Status_Code::DN_TOO_LONG);
+ }
+ }
+
// Check all certs for valid time range
if(validation_time < subject->not_before())
status.insert(Certificate_Status_Code::CERT_NOT_YET_VALID);
@@ -94,34 +115,52 @@ PKIX::check_chain(const std::vector<std::shared_ptr<const X509_Certificate>>& ce
std::unique_ptr<Public_Key> issuer_key(issuer->subject_public_key());
- if(!issuer_key)
+ // Check the signature algorithm
+ if(OIDS::lookup(subject->signature_algorithm().oid).empty())
{
- status.insert(Certificate_Status_Code::CERT_PUBKEY_INVALID);
+ status.insert(Certificate_Status_Code::SIGNATURE_ALGO_UNKNOWN);
}
+ // only perform the following checks if the signature algorithm is known
else
{
- const Certificate_Status_Code sig_status = subject->verify_signature(*issuer_key);
+ if(!issuer_key)
+ {
+ status.insert(Certificate_Status_Code::CERT_PUBKEY_INVALID);
+ }
+ else
+ {
+ const Certificate_Status_Code sig_status = subject->verify_signature(*issuer_key);
- if(sig_status != Certificate_Status_Code::VERIFIED)
- status.insert(sig_status);
+ if(sig_status != Certificate_Status_Code::VERIFIED)
+ status.insert(sig_status);
- if(issuer_key->estimated_strength() < min_signature_algo_strength)
- status.insert(Certificate_Status_Code::SIGNATURE_METHOD_TOO_WEAK);
- }
+ if(issuer_key->estimated_strength() < min_signature_algo_strength)
+ status.insert(Certificate_Status_Code::SIGNATURE_METHOD_TOO_WEAK);
+ }
- // Ignore untrusted hashes on self-signed roots
- if(trusted_hashes.size() > 0 && !at_self_signed_root)
- {
- if(trusted_hashes.count(subject->hash_used_for_signature()) == 0)
- status.insert(Certificate_Status_Code::UNTRUSTED_HASH);
+ // Ignore untrusted hashes on self-signed roots
+ if(trusted_hashes.size() > 0 && !at_self_signed_root)
+ {
+ if(trusted_hashes.count(subject->hash_used_for_signature()) == 0)
+ status.insert(Certificate_Status_Code::UNTRUSTED_HASH);
+ }
}
// Check cert extensions
Extensions extensions = subject->v3_extensions();
- for(auto& extension : extensions.extensions())
+ const auto& extensions_vec = extensions.extensions();
+ if(subject->x509_version() < 3 && !extensions_vec.empty())
+ {
+ status.insert(Certificate_Status_Code::EXT_IN_V1_V2_CERT);
+ }
+ for(auto& extension : extensions_vec)
{
extension.first->validate(*subject, *issuer, cert_path, cert_status, i);
}
+ if(extensions.extensions().size() != extensions.get_extension_oids().size())
+ {
+ status.insert(Certificate_Status_Code::DUPLICATE_CERT_EXTENSION);
+ }
}
// path len check
@@ -245,6 +284,28 @@ PKIX::check_crl(const std::vector<std::shared_ptr<const X509_Certificate>>& cert
if(crls[i]->is_revoked(*subject))
status.insert(Certificate_Status_Code::CERT_IS_REVOKED);
+
+ std::string dp = subject->crl_distribution_point();
+ if(!dp.empty())
+ {
+ if(dp != crls[i]->crl_issuing_distribution_point())
+ {
+ status.insert(Certificate_Status_Code::NO_MATCHING_CRLDP);
+ }
+ }
+
+ for(const auto& extension : crls[i]->extensions().extensions())
+ {
+ // is the extension critical and unknown?
+ if(extension.second && OIDS::lookup(extension.first->oid_of()) == "")
+ {
+ /* NIST Certificate Path Valiadation Testing document: "When an implementation does not recognize a critical extension in the
+ * crlExtensions field, it shall assume that identified certificates have been revoked and are no longer valid"
+ */
+ status.insert(Certificate_Status_Code::CERT_IS_REVOKED);
+ }
+ }
+
}
}
@@ -514,6 +575,176 @@ PKIX::build_certificate_path(std::vector<std::shared_ptr<const X509_Certificate>
}
}
+/**
+ * utilities for PKIX::build_all_certificate_paths
+ */
+namespace
+{
+// <certificate, trusted?>
+using cert_maybe_trusted = std::pair<std::shared_ptr<const X509_Certificate>,bool>;
+}
+
+/**
+ * Build all possible certificate paths from the end certificate to self-signed trusted roots.
+ *
+ * All potentially valid paths are put into the cert_paths vector. If no potentially valid paths are found,
+ * one of the encountered errors is returned arbitrarily.
+ *
+ * todo add a path building function that returns detailed information on errors encountered while building
+ * the potentially numerous path candidates.
+ *
+ * Basically, a DFS is performed starting from the end certificate. A stack (vector) serves to control the DFS.
+ * At the beginning of each iteration, a pair is popped from the stack that contains (1) the next certificate
+ * to add to the path (2) a bool that indicates if the certificate is part of a trusted certstore. Ideally, we
+ * follow the unique issuer of the current certificate until a trusted root is reached. However, the issuer DN +
+ * authority key id need not be unique among the certificates used for building the path. In such a case,
+ * we consider all the matching issuers by pushing <IssuerCert, trusted?> on the stack for each of them.
+ *
+ */
+Certificate_Status_Code
+PKIX::build_all_certificate_paths(std::vector<std::vector<std::shared_ptr<const X509_Certificate>>>& cert_paths_out,
+ const std::vector<Certificate_Store*>& trusted_certstores,
+ const std::shared_ptr<const X509_Certificate>& end_entity,
+ const std::vector<std::shared_ptr<const X509_Certificate>>& end_entity_extra)
+ {
+ if(!cert_paths_out.empty())
+ {
+ throw Invalid_Argument("PKIX::build_all_certificate_paths: cert_paths_out must be empty");
+ }
+
+ if(end_entity->is_self_signed())
+ {
+ return Certificate_Status_Code::CANNOT_ESTABLISH_TRUST;
+ }
+
+ /*
+ * Pile up error messages
+ */
+ std::vector<Certificate_Status_Code> stats;
+
+ Certificate_Store_In_Memory ee_extras;
+ for(size_t i = 0; i != end_entity_extra.size(); ++i)
+ {
+ ee_extras.add_certificate(end_entity_extra[i]);
+ }
+
+ /*
+ * This is an inelegant but functional way of preventing path loops
+ * (where C1 -> C2 -> C3 -> C1). We store a set of all the certificate
+ * fingerprints in the path. If there is a duplicate, we error out.
+ * TODO: save fingerprints in result struct? Maybe useful for blacklists, etc.
+ */
+ std::set<std::string> certs_seen;
+
+ // new certs are added and removed from the path during the DFS
+ // it is copied into cert_paths_out when we encounter a trusted root
+ std::vector<std::shared_ptr<const X509_Certificate>> path_so_far;
+
+ // todo can we assume that the end certificate is not trusted?
+ std::vector<cert_maybe_trusted> stack = { {end_entity, false} };
+
+ while(!stack.empty())
+ {
+ // found a deletion marker that guides the DFS, backtracing
+ if(stack.back().first == nullptr)
+ {
+ stack.pop_back();
+ std::string fprint = path_so_far.back()->fingerprint("SHA-256");
+ certs_seen.erase(fprint);
+ path_so_far.pop_back();
+ }
+ // process next cert on the path
+ else
+ {
+ std::shared_ptr<const X509_Certificate> last = stack.back().first;
+ bool trusted = stack.back().second;
+ stack.pop_back();
+
+ // certificate already seen?
+ const std::string fprint = last->fingerprint("SHA-256");
+ if(certs_seen.count(fprint) == 1)
+ {
+ stats.push_back(Certificate_Status_Code::CERT_CHAIN_LOOP);
+ // the current path ended in a loop
+ continue;
+ }
+
+ // the current path ends here
+ if(last->is_self_signed())
+ {
+ // found a trust anchor
+ if(trusted)
+ {
+ cert_paths_out.push_back(path_so_far);
+ cert_paths_out.back().push_back(last);
+
+ continue;
+ }
+ // found an untrustworthy root
+ else
+ {
+ stats.push_back(Certificate_Status_Code::CANNOT_ESTABLISH_TRUST);
+ continue;
+ }
+ }
+
+ const X509_DN issuer_dn = last->issuer_dn();
+ const std::vector<uint8_t> auth_key_id = last->authority_key_id();
+
+ // search for trusted issuers
+ std::vector<std::shared_ptr<const X509_Certificate>> trusted_issuers;
+ for(Certificate_Store* store : trusted_certstores)
+ {
+ auto new_issuers = store->find_all_certs(issuer_dn, auth_key_id);
+ trusted_issuers.insert(trusted_issuers.end(), new_issuers.begin(), new_issuers.end());
+ }
+
+ // search the supplemental certs
+ std::vector<std::shared_ptr<const X509_Certificate>> misc_issuers =
+ ee_extras.find_all_certs(issuer_dn, auth_key_id);
+
+ // if we could not find any issuers, the current path ends here
+ if(trusted_issuers.size() + misc_issuers.size() == 0)
+ {
+ stats.push_back(Certificate_Status_Code::CERT_ISSUER_NOT_FOUND);
+ continue;
+ }
+
+ // push the latest certificate onto the path_so_far
+ path_so_far.push_back(last);
+ certs_seen.emplace(fprint);
+
+ // push a deletion marker on the stack for backtracing later
+ stack.push_back({std::shared_ptr<const X509_Certificate>(nullptr),false});
+
+ for(const auto trusted : trusted_issuers)
+ {
+ stack.push_back({trusted,true});
+ }
+
+ for(const auto misc : misc_issuers)
+ {
+ stack.push_back({misc,false});
+ }
+ }
+ }
+
+ // could not construct any potentially valid path
+ if(cert_paths_out.empty())
+ {
+ if(stats.empty())
+ throw Exception("X509 path building failed for unknown reasons");
+ else
+ // arbitrarily return the first error
+ return stats[0];
+ }
+ else
+ {
+ return Certificate_Status_Code::OK;
+ }
+ }
+
+
void PKIX::merge_revocation_status(CertificatePathStatusCodes& chain_status,
const CertificatePathStatusCodes& crl,
const CertificatePathStatusCodes& ocsp,
@@ -597,7 +828,9 @@ Path_Validation_Result x509_path_validate(
const std::vector<std::shared_ptr<const OCSP::Response>>& ocsp_resp)
{
if(end_certs.empty())
+ {
throw Invalid_Argument("x509_path_validate called with no subjects");
+ }
std::shared_ptr<const X509_Certificate> end_entity(std::make_shared<const X509_Certificate>(end_certs[0]));
std::vector<std::shared_ptr<const X509_Certificate>> end_entity_extra;
@@ -606,9 +839,8 @@ Path_Validation_Result x509_path_validate(
end_entity_extra.push_back(std::make_shared<const X509_Certificate>(end_certs[i]));
}
- std::vector<std::shared_ptr<const X509_Certificate>> cert_path;
- Certificate_Status_Code path_building_result =
- PKIX::build_certificate_path(cert_path, trusted_roots, end_entity, end_entity_extra);
+ std::vector<std::vector<std::shared_ptr<const X509_Certificate>>> cert_paths;
+ Certificate_Status_Code path_building_result = PKIX::build_all_certificate_paths(cert_paths, trusted_roots, end_entity, end_entity_extra);
// If we cannot successfully build a chain to a trusted self-signed root, stop now
if(path_building_result != Certificate_Status_Code::OK)
@@ -616,38 +848,52 @@ Path_Validation_Result x509_path_validate(
return Path_Validation_Result(path_building_result);
}
- CertificatePathStatusCodes status =
- PKIX::check_chain(cert_path, ref_time,
- hostname, usage,
- restrictions.minimum_key_strength(),
- restrictions.trusted_hashes());
+ std::vector<Path_Validation_Result> error_results;
+ // Try validating all the potentially valid paths and return the first one to validate properly
+ for(auto cert_path : cert_paths)
+ {
+ CertificatePathStatusCodes status =
+ PKIX::check_chain(cert_path, ref_time,
+ hostname, usage,
+ restrictions.minimum_key_strength(),
+ restrictions.trusted_hashes());
- CertificatePathStatusCodes crl_status =
- PKIX::check_crl(cert_path, trusted_roots, ref_time);
+ CertificatePathStatusCodes crl_status =
+ PKIX::check_crl(cert_path, trusted_roots, ref_time);
- CertificatePathStatusCodes ocsp_status;
+ CertificatePathStatusCodes ocsp_status;
- if(ocsp_resp.size() > 0)
- {
- ocsp_status = PKIX::check_ocsp(cert_path, ocsp_resp, trusted_roots, ref_time);
- }
+ if(ocsp_resp.size() > 0)
+ {
+ ocsp_status = PKIX::check_ocsp(cert_path, ocsp_resp, trusted_roots, ref_time);
+ }
- if(ocsp_status.empty() && ocsp_timeout != std::chrono::milliseconds(0))
- {
+ if(ocsp_status.empty() && ocsp_timeout != std::chrono::milliseconds(0))
+ {
#if defined(BOTAN_TARGET_OS_HAS_THREADS) && defined(BOTAN_HAS_HTTP_UTIL)
- ocsp_status = PKIX::check_ocsp_online(cert_path, trusted_roots, ref_time,
- ocsp_timeout, restrictions.ocsp_all_intermediates());
+ ocsp_status = PKIX::check_ocsp_online(cert_path, trusted_roots, ref_time,
+ ocsp_timeout, restrictions.ocsp_all_intermediates());
#else
- ocsp_status.resize(1);
- ocsp_status[0].insert(Certificate_Status_Code::OCSP_NO_HTTP);
+ ocsp_status.resize(1);
+ ocsp_status[0].insert(Certificate_Status_Code::OCSP_NO_HTTP);
#endif
- }
+ }
- PKIX::merge_revocation_status(status, crl_status, ocsp_status,
- restrictions.require_revocation_information(),
- restrictions.ocsp_all_intermediates());
+ PKIX::merge_revocation_status(status, crl_status, ocsp_status,
+ restrictions.require_revocation_information(),
+ restrictions.ocsp_all_intermediates());
- return Path_Validation_Result(status, std::move(cert_path));
+ Path_Validation_Result pvd(status, std::move(cert_path));
+ if(pvd.successful_validation())
+ {
+ return pvd;
+ }
+ else
+ {
+ error_results.push_back(std::move(pvd));
+ }
+ }
+ return error_results[0];
}
Path_Validation_Result x509_path_validate(
@@ -716,9 +962,31 @@ Path_Validation_Restrictions::Path_Validation_Restrictions(bool require_rev,
m_trusted_hashes.insert("SHA-512");
}
+namespace {
+CertificatePathStatusCodes find_warnings(const CertificatePathStatusCodes& all_statuses)
+ {
+ CertificatePathStatusCodes warnings;
+ for(const auto& status_set_i : all_statuses)
+ {
+ std::set<Certificate_Status_Code> warning_set_i;
+ for(const auto& code : status_set_i)
+ {
+ if(code >= Certificate_Status_Code::FIRST_WARNING_STATUS &&
+ code < Certificate_Status_Code::FIRST_ERROR_STATUS)
+ {
+ warning_set_i.insert(code);
+ }
+ }
+ warnings.push_back(warning_set_i);
+ }
+ return warnings;
+ }
+}
+
Path_Validation_Result::Path_Validation_Result(CertificatePathStatusCodes status,
std::vector<std::shared_ptr<const X509_Certificate>>&& cert_chain) :
m_all_status(status),
+ m_warnings(find_warnings(m_all_status)),
m_cert_path(cert_chain),
m_overall(PKIX::overall_status(m_all_status))
{
@@ -749,6 +1017,16 @@ bool Path_Validation_Result::successful_validation() const
result() == Certificate_Status_Code::VALID_CRL_CHECKED);
}
+bool Path_Validation_Result::no_warnings() const
+ {
+ return m_warnings.empty();
+ }
+
+CertificatePathStatusCodes Path_Validation_Result::warnings() const
+ {
+ return m_warnings;
+ }
+
std::string Path_Validation_Result::result_string() const
{
return status_string(result());
diff --git a/src/lib/x509/x509path.h b/src/lib/x509/x509path.h
index 6898d0679..12a924873 100644
--- a/src/lib/x509/x509path.h
+++ b/src/lib/x509/x509path.h
@@ -136,6 +136,11 @@ class BOTAN_PUBLIC_API(2,0) Path_Validation_Result final
bool successful_validation() const;
/**
+ * @return true iff no warnings occured during validation
+ */
+ bool no_warnings() const;
+
+ /**
* @return overall validation result code
*/
Certificate_Status_Code result() const { return m_overall; }
@@ -147,6 +152,11 @@ class BOTAN_PUBLIC_API(2,0) Path_Validation_Result final
{ return m_all_status; }
/**
+ * @return the subset of status codes that are warnings
+ */
+ CertificatePathStatusCodes warnings() const;
+
+ /**
* @return string representation of the validation result
*/
std::string result_string() const;
@@ -173,6 +183,7 @@ class BOTAN_PUBLIC_API(2,0) Path_Validation_Result final
private:
CertificatePathStatusCodes m_all_status;
+ CertificatePathStatusCodes m_warnings;
std::vector<std::shared_ptr<const X509_Certificate>> m_cert_path;
Certificate_Status_Code m_overall;
};
@@ -274,6 +285,13 @@ Path_Validation_Result BOTAN_PUBLIC_API(2,0) x509_path_validate(
*/
namespace PKIX {
+Certificate_Status_Code
+build_all_certificate_paths(std::vector<std::vector<std::shared_ptr<const X509_Certificate>>>& cert_paths,
+ const std::vector<Certificate_Store*>& trusted_certstores,
+ const std::shared_ptr<const X509_Certificate>& end_entity,
+ const std::vector<std::shared_ptr<const X509_Certificate>>& end_entity_extra);
+
+
/**
* Build certificate path
* @param cert_path_out output parameter, cert_path will be appended to this vector
diff --git a/src/scripts/oids.py b/src/scripts/oids.py
index 5e53decf7..7a6caa368 100755
--- a/src/scripts/oids.py
+++ b/src/scripts/oids.py
@@ -2,6 +2,7 @@
"""
(C) 2016 Jack Lloyd
+(C) 2017 Fabian Weissberg, Rohde & Schwarz Cybersecurity
Botan is released under the Simplified BSD License (see license.txt)
"""
@@ -125,17 +126,89 @@ OID lookup(const std::string& name)
""" % (sys.argv[0], datetime.date.today().strftime("%Y-%m-%d"),
format_if(oid2str,"oid_str"), format_if(str2oid, "name", True))
+
+def format_dn_ub_map(dn_ub, oid2str):
+ s = ''
+ for k in sorted(dn_ub.keys()):
+ v = dn_ub[k]
+
+ s += ' { Botan::OID("%s"), %s }, // %s\n' % (k,v,oid2str[k])
+
+ # delete last ',' and \n
+ idx = s.rfind(',')
+ if idx != -1:
+ s = s[:idx] + s[idx+1:-1]
+
+ return s
+
+
+def format_dn_ub_as_map(dn_ub, oid2str):
+ return """/*
+* DN_UB maps: Upper bounds on the length of DN strings
+*
+* This file was automatically generated by %s on %s
+*
+* All manual edits to this file will be lost. Edit the script
+* then regenerate this source file.
+*
+* Botan is released under the Simplified BSD License (see license.txt)
+*/
+
+#include <botan/asn1_oid.h>
+#include <botan/x509_dn_ub.h>
+#include <map>
+#include <stdint.h>
+
+namespace {
+/**
+ * Upper bounds for the length of distinguished name fields as given in RFC 5280, Appendix A.
+ * Only OIDS recognized by botan are considered, so far.
+ * Maps OID string representations instead of human readable strings in order
+ * to avoid an additional lookup.
+ */
+static const std::map<Botan::OID, size_t> DN_UB =
+ {
+%s
+ };
+}
+
+namespace Botan {
+
+size_t lookup_ub(const OID& oid)
+ {
+ auto ub_entry = DN_UB.find(oid);
+ if(ub_entry != DN_UB.end())
+ {
+ return ub_entry->second;
+ }
+ else
+ {
+ return SIZE_MAX;
+ }
+ }
+}
+""" % (sys.argv[0], datetime.date.today().strftime("%Y-%m-%d"),
+ format_dn_ub_map(dn_ub,oid2str))
+
def main(args = None):
+ """ Print header files (oids.cpp, dn_ub.cpp) depending on the first argument and on srs/build-data/oids.txt
+
+ Choose 'oids' to print oids.cpp, needs to be written to src/lib/asn1/oids.cpp
+ Choose 'dn_ub' to print dn_ub.cpp, needs to be written to src/lib/x509/X509_dn_ub.cpp
+ """
if args is None:
args = sys.argv
+ if len(args) < 2:
+ raise Exception("Use either 'oids' or 'dn_ub' as first argument")
oid_lines = open('src/build-data/oids.txt').readlines()
- oid_re = re.compile("^([1-9][0-9.]+) = ([A-Za-z0-9_\./\(\), -]+)$")
+ oid_re = re.compile("^([1-9][0-9.]+) = ([A-Za-z0-9_\./\(\), -]+)(?: = )?([0-9]+)?$")
hdr_re = re.compile("^\[([a-z0-9_]+)\]$")
oid2str = {}
str2oid = {}
+ dn_ub = {}
cur_hdr = None
for line in oid_lines:
@@ -164,6 +237,12 @@ def main(args = None):
else:
oid2str[oid] = nam
+ # parse upper bounds for DNs
+ if cur_hdr == "dn":
+ if match.lastindex < 3:
+ raise Exception("Could not find an upper bound for DN " + match.group(1))
+ dn_ub[oid] = match.group(3)
+
if nam in str2oid:
#print "Duplicated name", nam, oid, str2oid[nam]
#str2oid[nam] = oid
@@ -171,7 +250,10 @@ def main(args = None):
else:
str2oid[nam] = oid
- print format_as_ifs(oid2str, str2oid)
+ if args[1] == "oids":
+ print format_as_ifs(oid2str, str2oid)
+ elif args[1] == "dn_ub":
+ print format_dn_ub_as_map(dn_ub,oid2str)
if __name__ == '__main__':
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_ee.TC.pem.crt
new file mode 100644
index 000000000..cfab5b056
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDQ2WhcNMTgwNzI3MTMy
+NDQ2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKBrtCby2r83lOiu2iEru4u2nQnopHEbzLWM
+M8sOIyBSqM2N2lJWRiOFZ3sX/RN3Az0ipLa0cqWvp6pMvvsXojCGRwsurueY2gBB
+seBF5xxe19Swr2lHGM67XwNLupTrSUDZGMR2KoJTg4n6Cs4cGgOlhZjz33wBTMaY
+8IDrOgxuGVyXCUqLE3ESYHoUTpZfw53UspMG/vDY8f0Sk3FJl3aRWm1vrqiF78sQ
+sIMrf8flz03CTYUHtZ4nPQKRmmOCruNAd3JJfU6AYN4cDSi3noACjrYxj6c/6acM
+kKx61suCGD9SRluRwUEx2KMXEAN0I7UYETj0nJ5sCQ8RIgJd23cCAwEAAaOBsjCB
+rzA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vbG9jYWxob3N0L2RvZXNub3RleGlz
+dC9jcmwuY3JsMB8GA1UdIwQYMBaAFOCMGappJZoaJQD2syi6G/cN+c/AMB0GA1Ud
+DgQWBBSF+9xb3zooHvfVBEaeNGG+jIKIRjAOBgNVHQ8BAf8EBAMCB4AwDwYDVR0T
+AQH/BAUwAwEBADAUBgNVHREEDTALgglkdW1teWhvc3QwDQYJKoZIhvcNAQELBQAD
+ggEBAHP69ifAUrCLzBuDZmLX589Oz0makmtkNl9P+sEdtpIcO+px6AO4SMSPA37p
+p0C465HaQDP9Z+IqzDD0fILiR7mLh12imm552m1G5ACmLLG8Fc9H7655rG0tIOSd
+NgLo0YyE/BswQJNukA1DHBpUYx/P4qqy+zca3LEZd/mc5MKxVcw+PsP0WsNDUUC9
+HbDUSm4TEpPsysY5v/LKF/m9TFCNuPXF3Z/xTNzRTkOKnH3vA+cWPruRC9sP7gYD
+UiRIl/L2buxEkVTX97zMOQd9o/bmv2k6KqNWIBIrtVj25OASeD/15vviaix6Vczz
+tlennFASeG9IAdNc0mPLvio5p94=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_ee.pem
new file mode 100644
index 000000000..0cdb43324
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCga7Qm8tq/N5To
+rtohK7uLtp0J6KRxG8y1jDPLDiMgUqjNjdpSVkYjhWd7F/0TdwM9IqS2tHKlr6eq
+TL77F6IwhkcLLq7nmNoAQbHgReccXtfUsK9pRxjOu18DS7qU60lA2RjEdiqCU4OJ
++grOHBoDpYWY8998AUzGmPCA6zoMbhlclwlKixNxEmB6FE6WX8Od1LKTBv7w2PH9
+EpNxSZd2kVptb66ohe/LELCDK3/H5c9Nwk2FB7WeJz0CkZpjgq7jQHdySX1OgGDe
+HA0ot56AAo62MY+nP+mnDJCsetbLghg/UkZbkcFBMdijFxADdCO1GBE49JyebAkP
+ESICXdt3AgMBAAECggEAR3vm8aorPqUSZmMwETLvJhFQRg+UY1CbdlTM6ZFZprge
+v0YUQLdwFrkGBSyJ2eghGdd7pWygX+N3p6P+QF5mKBBVzQ5W4x3SGuYrUMBlfVdn
+/r9i0ttbGxgUfR/8OwrjgBGdf0IWrC9xwISa1wBfuTtDXoZhklzz7NVO6munWMzr
+4CPLcAyhqTPI+PEVd4m+6kohcj2rma1P2pM8ae6bzQrCwMKEWM+Yrqvq5cyjjvK1
+uzcH/LIL3XQUIGmrLucyY7MZTbx9+aHxNI4OlaF59yBdKs427mVdp6JmYM3mXmW2
+ZopGDGxTq1KSHfO+2pXvqW9FzT24qgix8e/GMAKX+QKBgQDYis937dcHn3NTHtfR
+KVGZ47Mr9dit/C7EuZf+lwVFgwjDKXRdPxBnjJnZDPrYlVPFGOS5ZUJ2A536Kfut
++gmLqvMAlwfdqV860ObeEAtm6foxRhrS7Fhlq22zMeQ7dQL1gH+Y9CDSWhLLKpuu
+MG9iDQBsRlAHtqx9VyfFKXZX7wKBgQC9pvSvpVjeT6xrPTHIceoMFHTHkB0zraoq
+80k4RKx0YzMbHsjvH7XsZx2y577Uz6Ad2hhOHcNFa4G2e9emkVRGD8S0auvA8j2w
+IWKME5MgtugtgyJXaA7YFscCX5u4Y/KMFucmVa6jBJu3KODi3MOPnvnpgLXF05Qn
+ZfgCe+7s+QKBgQDA5d7tef0cuEkWmZotpD4h9XotxgKw8r6C1sX0sHmss47BtBMJ
+4dzuMYz3kp1/BH8sTAGsueybjptTN8UQ9XU9axqvwtrp9jB0B5Yx6V8O3Y3YCRhq
+HsqcPzso71/eK11ob4C7M3ZtjHnDbIBkipceZHClA3nVdUBxI4u1EjtvFwKBgQCY
+ktx/AlLAZvCbRZvrWlmkZkCc2//iN3CTJS5eqkDjUXsn8lhMqAI/saVe7LnFk1OJ
+MJAlKCSUkKzGFlOjmX9m7gCd9Pa9PyUJsZIKhyTySLP5CWpzTy/CAHESI8CvUxkq
+QrKrUHsygt6TN7vURy69OHRtujKCeHjUSWCA/xt0YQKBgQDSlf9hZIRDnt7ZzLlL
+xx2LTTaHL2sgblF3ijpTTo3H5W7lMdzA8rjjqrweYFctIFlRfO2lEeZ+5LCiu4bd
+R6TFKMxXREUhcD7SAK45tA50ThuSI7HM+2S6KYQ5FltHxDOByJW4AZKcNdEUXSCi
+zSzyeuKCY2FT7bXuusya4bIMIQ==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_01/cert_path_CRL_01_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_01/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_01/description.txt
new file mode 100644
index 000000000..7b4732288
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_01/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_01
+
+Purpose: Checks the behaviour of the application when it cannot locate revocation information about the certificate. This path is invalid because revocation information for a certificate is not available.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_ee.TC.pem.crt
new file mode 100644
index 000000000..bc4cf6ff4
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDbzCCAlegAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDQ2WhcNMTgwNzI3MTMy
+NDQ2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJWomlxlqcdd/t7IQjIGy2M0nEP8Bah1ooLr
+Iq73gzeVFM4qIjKL2OyQYbJDLkMXWUmzmX5P5cGG3pjAJ+Van0ch+OL6Utj8RijJ
+Ufc10Oo/TIVzIXbMxIa1oLZ8gQ73nhFkNxQZxzgsKop8wPPTdo41p3DSw/+a9cD0
+bmqgjSMDYydfuo/42bLeSmlLYhF18T5C1gUn+JXMvQJSI6kLPczsi+mQ0N0GtV0C
+1whWBo1atAUK3OeYGRDzIXnE591vXICYg1JBjjEYe6VNK/B3vCEu/QFRLtF3IYHc
+loU4uurI8HfgeEbJ/H3/uDrUwgahuoIqRXtxNIQv1qGXwbAnPBcCAwEAAaOBsTCB
+rjA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vbG9jYWxob3N0L3N1YmNhL2NybGRw
+L2NybC5jcmwwHwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0O
+BBYEFITwNLOf7HFKC/d5A2X3c8Qdd3sQMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMB
+Af8EBTADAQEAMBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOC
+AQEABaLToWh/aCEOlWbi810W1FeAvkwJYSqyYK6hyFYiQ6dn0x4OnqytfVxYKaj6
+wp1OOy/aAG9sSak2/Yp18J7U9Nnl/fz66TNBwjsipAo2auHsqfvrxQl4xEyovdzp
+OhJY4gLUPrmbecsmI4UTU6Xl9IGMDh9LPAn1ErYUvvolJp9Y6XlSb/jHT/7BDMmq
+JwToSRDikiaCKtrjQvtgw5vFUfcBqKlQmy70ZxIHW92E4cq1twugzc1RpO/c0mxj
+zjd8FaHJYT9q6z5fRhloqN6w46mS9nbt8xa4As9ULoMcpeVglDXXLh+A8HLLudWD
+ZB6LDkS9rU3WAqYfPzNZ5AR06A==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_ee.pem
new file mode 100644
index 000000000..c2f12a5a5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCVqJpcZanHXf7e
+yEIyBstjNJxD/AWodaKC6yKu94M3lRTOKiIyi9jskGGyQy5DF1lJs5l+T+XBht6Y
+wCflWp9HIfji+lLY/EYoyVH3NdDqP0yFcyF2zMSGtaC2fIEO954RZDcUGcc4LCqK
+fMDz03aONadw0sP/mvXA9G5qoI0jA2MnX7qP+Nmy3kppS2IRdfE+QtYFJ/iVzL0C
+UiOpCz3M7IvpkNDdBrVdAtcIVgaNWrQFCtznmBkQ8yF5xOfdb1yAmINSQY4xGHul
+TSvwd7whLv0BUS7RdyGB3JaFOLrqyPB34HhGyfx9/7g61MIGobqCKkV7cTSEL9ah
+l8GwJzwXAgMBAAECggEAQYSdh0POjwRcdwWuzR3iXp0CqFSl2XkeWzg7Z+Pd4zB1
++kfBzuUgY3hV/OeiUibfpP9mfEDYMeAshSziimsg/dAmmJ/EM1BGGscABjzeKB7s
+DiQ4Cz1b8CmFoT5idb37yltYLYmXiMT1Hsm840G5Tkq48hCjU7xwSDf6Ot3sy92d
+X9Qc3ws2QVv7hhkuQJvyGl052OI4oU/U6HgnD/zxd5BetAa9zG5BkT2n3J81dDS8
+YPpnA+5sO7GEL7M++QEZ+bJhhvXAga61jQflSNu1notf66U2HXn7X2R2Qk15V5JZ
+ySzRTBynbCLgfAXS35SavFenuuq0oINvV4dMbjiGoQKBgQDFtggOFPIVm77ZPXXQ
++LNs7fNGM4aDQrvHri+j5xzuOTZ6kftJBCXUVNq5OuKbaxlhcaMJxr/z7xngXs8Z
+A+1NYNdiRNzJqU+uwNcY0QtvBpsSr5DEO6fiqb3WxAKyLJETeD9qIbTK36GShliz
+sqx5vpb64lg5coMfbiyouWnw0QKBgQDBx+EF3cpkgXYAd+lWFYl3yt6XEm9zfZZn
+VK2yW0+03xUVLyte1APdYxFTuD22W2cxq+1OyNGBT6jplL3f8Xb36LmmYWy7QYHx
+hbLYF7bD84zV4uLsItTQh7FXrtUw10+8s+fzUu/P4bacIuiebyiwdVH1g/AlUyYJ
+zqGWq6fYZwKBgE8wBm/lccS32avXEv487lh9wcdnUcP3EZD7sjcalRrRLYHQQG5R
+S/mMdwJjlGmdbs/5nMyIn09Lf/i+4IHrcbthQ0Mnw6q9tp2OvVhCOisg4TGNwhTm
+s+p0BAYmAdJtSTocGoIet/PduDAgwRxQPwaQEJax25Y+yEfpb9ewU79RAoGAF5Vj
+5Xrgruqymcv+MePdHx8ph+lOdxfJvjmoChTi1nhv8GwVMy1Kax8rdKzvlcn5/SmX
+cAcwuDQhsovPr/mLKRDBx2YD/aYzUlmbMoFwVNjHQyChzWtPyzE4fBtjBtatdaHP
+kOV/GiW2O7pj5SRSJ2ef2el8yI4eCwOC1vt9KfECgYBW51G7ijf+dyLWQc+1IFWn
+QakMYPxzVO0LwiQwTALTDsNQv3QR2wBJslVgDMbR0oNkoyy4eJ/3A0z92bwMTyVq
+F610JDh+LyYcpCEHBQlRq8GCqilKHQYqdYQp5/luOQt+nWb/rllYm1x9Zlbakdf7
+QIN5IZdQJkLNcMQ49t3Drw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_02/cert_path_CRL_02_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_02/crls/cert_path_CRL_02_root_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_02/crls/cert_path_CRL_02_root_crl.pem.crl
new file mode 100644
index 000000000..abc729c18
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_02/crls/cert_path_CRL_02_root_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBmzCBhAIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0IFJvb3Qx
+CzAJBgNVBAYTAkRFFw0xNzA3MjYxMzI0NDdaFw0xNzEwMjUxMzI0NDdaoC8wLTAK
+BgNVHRQEAwIBAjAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDANBgkq
+hkiG9w0BAQsFAAOCAQEABCvPRcHcaXOnwWsLhNbAnK06e/QHBX+aFal2tzjmmPpJ
+x6Wjl7gJ5NxN8Y9uzdAOBmftN5LgnLm8m5jQhzgqUoxtMEX4FEyKgD16za2Kzc6+
+Mg7WGbnjIHCLt9T303K22YaArJX4fhjCZZmwRglP4392m88f+ynAUq3yD0VzOshm
+PivA6NVvM+tkVGvM3qOEJHhkyw2WZR5AYHcnB2IMtB9Xc1FD9h1YKU2r9fVHX/QD
+mbt6ZzNwPYWX/aaBqsDklF7LMkKKN1ApZ4ocoOBcVR2XYjGCWINOiVFJUR13mIdT
+5F8DEKNd/l/erzp5FYowUKyNKZDgklQAvZZ1nLtg/Q==
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_02/crls/cert_path_CRL_02_sub_ca_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_02/crls/cert_path_CRL_02_sub_ca_crl.pem.crl
new file mode 100644
index 000000000..774047bbd
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_02/crls/cert_path_CRL_02_sub_ca_crl.pem.crl
@@ -0,0 +1,12 @@
+-----BEGIN X509 CRL-----
+MIIBszCBnAIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0IFN1YiBD
+QTELMAkGA1UEBhMCREUXDTE3MDcyNjEzMjQ0N1oXDTE3MTAyNTEzMjQ0N1owFDAS
+AgEBFw0xNzA3MjYwNzI0NDdaoC8wLTAKBgNVHRQEAwIBAjAfBgNVHSMEGDAWgBTg
+jBmqaSWaGiUA9rMouhv3DfnPwDANBgkqhkiG9w0BAQsFAAOCAQEASVKeNF4ozBHs
+jKss2P4Wor9/yvCi6PH+f3fr774nbpW4hK7BqMDfLt1lyPMMRil/Z0FGsTF4wy9f
+CSnI/NNIqDLdPfL/Wq40swJvuR3p7CjGwEZjfYJ3Zbz+JZJBws7Eg6JtBLHAc9JQ
+uw9odU3oBt9w9DP0Oh3idfXAQp1Ho/nK+ssXOEo1ADETFjaVooXSpeJ7Khi/6Asq
+L8A/gDTbuT6K3bEusSXhMo1juAN3oDj7Ruev+CWx0EkxtM9AUBzw707kL7ELxm3g
+8FsPC0ejfaQIPluaEBgTuaHtGCUCKnUeUYc2MHPJZZWSaNpqv9OLoAn/25tvsyvI
+pIKYuraHXw==
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_02/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_02/description.txt
new file mode 100644
index 000000000..dc48317f3
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_02/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_02
+
+Purpose: Checks the behaviour of the application when the target certificate is contained in a CRL. This path is invalid because the target certificate is revoked.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_ee.TC.pem.crt
new file mode 100644
index 000000000..87212efba
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAh6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDQ4WhcNMTgwNzI3MTMy
+NDQ4WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBALduL9byjU+U/h7qafFgTBAnew60mhJenH/Z
+thGZMyPAWGH4tImhud5EZmBRZyd3PD38fO7B4FD7rwN0yf6OC0BZO4wrlbx7ZZ2F
+uBN74pm0Hmd2WBMaqt0l26xBVE5bXAMpV9KFF8qapNop9J7rLEYJ0VTV30mMeeB5
+5gX2ureHqZ4UPH/ypcGVgAQs0klN1GPsV5gCegVJcI8h6kSFyXsy3SPPORGo1sqL
+VK/tiLS6UpnzsRAbOlz8PulqwcjL04wX2QHFR5Vo5xnZwZ/gQnLURfpWTDSH3AIA
+q6QvMZoIhsOI2UYbv0I81nynlDWCzm3dQO81zxDKNpODjGHDf3sCAwEAAaN5MHcw
+HwYDVR0jBBgwFoAU7+kybPy0OP1cbl+JnXRW196Iv+EwHQYDVR0OBBYEFNaDawpq
+cxm1hCAkKC7HHzR0KdngMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAcRxuJzzh
+vGt1btEKhLlHSTuY4BKArQ1+lCA2WDKrh3bvHr2VoOjJvop5Ag1NqEXfqm3k1oue
+lXWtx8NI9GBEXLmjYlK6YF/6qPeCHEBwpBLBoQiK4uNbnUHSVVw3ICcjsOYymHZY
+zJxl2/KvAg7WA7MSEK10y/jh7M5Q3oGIJBCZ51sSD3l+nkuBKWGF7vVcQI05Xxzh
+/4UsEXHDgcRU2hS5TEgOCafmCLlnDJuIxRkKRYRbMEURI+Lc53DUMH4XNpj7d6ro
+NIcOoHCbbHdzsRHrT+LaOXYKXWHAZyM6O8xSCqziurIHzK88KnFxKCaaOQuWiWqX
+TuymWaetwJxMoQ==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_ee.pem
new file mode 100644
index 000000000..0f0052e8c
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3bi/W8o1PlP4e
+6mnxYEwQJ3sOtJoSXpx/2bYRmTMjwFhh+LSJobneRGZgUWcndzw9/HzuweBQ+68D
+dMn+jgtAWTuMK5W8e2WdhbgTe+KZtB5ndlgTGqrdJdusQVROW1wDKVfShRfKmqTa
+KfSe6yxGCdFU1d9JjHngeeYF9rq3h6meFDx/8qXBlYAELNJJTdRj7FeYAnoFSXCP
+IepEhcl7Mt0jzzkRqNbKi1Sv7Yi0ulKZ87EQGzpc/D7pasHIy9OMF9kBxUeVaOcZ
+2cGf4EJy1EX6Vkw0h9wCAKukLzGaCIbDiNlGG79CPNZ8p5Q1gs5t3UDvNc8QyjaT
+g4xhw397AgMBAAECggEAIZ/XsinNQJjZynYDDKWv28g49RWjJpnkS0Vv7CLurm+M
+ZA0wnwgf58AXGjHh3GitiNlXV3b/tSilyNboTjrgkh+pXEUDEkV2d50zBJNRkwZj
+Cmk1tO7PAnH1pkpld2Wk5Ml32VXfahrV/E3zkwweFgqnrkr0Pum6z6zYvyAe0xSC
+Rx1YSAnJJ82QRlQTNlRS7KA3zEngJFrmZyT3l9UPK+6LNPKZ2GUySI1q85NuSGUv
+IBp2xPudQ9lL41LnxarPwN/R/uQHfYUD2fvlJ/XiyEEUOvZHueAWCrGOhkd7+IV8
+eO/lQqdbxtMrntiBjE2csG8JAAYfs8MMwpCz20vb1QKBgQDe+8XKERx4Iz4Ie1IP
+JkDMoPlYZBQAlKYFl8W4q+jnV/VSvP0vo/9BTTRFPEj8nBHSvIsWc7d+1zdbV0Hr
+wG6g5RJebdKUyXnNNO/BSeNLv9oHsxFTLGg9Yr3X2DH4waxz+8Jy7s1874trTAFZ
+e3rExiVXBtd+lSUWccYdA2NDPwKBgQDSlyX7lR4SZNgnCnChT3K8B3StNwdCNj05
+KlMBHGhw4OvLgzgiZyw/xy7yBg0dg93FvigSPibC2o7HiTFTZ5139QiM1eZlEdbX
+20Qt9lnQZH+DKPegXu5i1+jt3JbFoBUidzfALiTmKrJN4PBgqVJKU/05S2E1J/qm
+cTbLIy9AxQKBgGt+Ac40S34atyfNkzRcY3aBz1HuBLp27kXZ8WXh8Ye8njXBh2g0
+7bMkLaOGuUSVU/48B+zN4dJSm4v713p3rJ0BcMZ2uMIjEgV7lGygWuNEXC3EBAEN
+cj7NX+kyfnyFmMXcwtM3DXZB3/rci/YAEaHUR2HZmX6bFWLpe/C2ll5vAoGAZvRO
+NXjpgsSaiDuqZLKavSJIAIbunYg21kPC4MAqr0THAm/cebVHBMc0RE6BCvT07z/Q
+B1srSAfh1dtUqhn1+jdpPrE0OiVGi7E+29mcfy0iydS1e0nt8ZTs45z8eRGSQ49V
+SjdFAuHM2hYmbptZB82X9vLLS1mISOcAir9g0qECgYEAlhh3kd7Gycovds86aNdR
+MBEXHDUlupuJ72psITqPMEDnRgEdo4r2GmaWYrB23LYRNSwS/Cj4hoqrwhBvj0zt
+B20NiyOQJokabzQJ23rapSt8j1a/0hNBulfkK4zHIPVDGPay8DU8o0Ej/owLR0nd
+NJEuHh6JAJPqzFayiiJUKck=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..5c147743f
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_sub_ca.ca.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDXzCCAkegAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0N1oXDTIwMDcyNzEzMjQ0
+N1owIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl/5kwEMgB4olQhOEO/Ynp+FNlfNJ5IWa
+4paxKoBQ4B6t5F433iL65Jjuxu7oIy+MldmhPapJ0Dy7d3qUE35SvAhGoGsJxWUa
+Q9T7Yl0FRSyj89ZH3NGf7BMOSAkUUZ1Kpd6v2nL1g2bwjm7L5sHA0WI+n0PmTUMh
+6X9vD/dN53+XJ2MT4qqLNpUIUHNgcF3h+IM3DQ6hmTYXdYCOCdeJcOlh90VPVm07
+raEI2BKttSh83ukiJq5G6KW9E3AWtNTIRSlLV/MZ3D/vTc+1EWYo53apPZkNMdpW
+FkxhWaPXzaUnwWoRiT5ZEh5tjm+rjtgeexogCIrcTcJe4Hhv63wWrwIDAQABo4Gf
+MIGcMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9sb2NhbGhvc3Qvcm9vdGNhL2Ny
+bGRwL2NybC5jcmwwHwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYD
+VR0OBBYEFO/pMmz8tDj9XG5fiZ10VtfeiL/hMA4GA1UdDwEB/wQEAwIBBjASBgNV
+HRMBAf8ECDAGAQH/AgEAMA0GCSqGSIb3DQEBCwUAA4IBAQBYLRroRr02zCEjVBu7
+Jt9PRLGo2dlFDJLdOG9CFTsaXIdf1FPetF4cmOcjEef1yH+rSQsRgU8SwUvvraQc
+OxVYtL1DKFQ+CErbuHHL4iiP0R3IQpwY8J8POfqHqK2aLsB0mm4jsMAiNQbrXjSv
+R1fp7OMZSeS84tEsvOjg1JdbDQTCwVstTddWGqha+VuizaX/5OKqwJ2EFfwAX7uz
+NYqQsmSc5A/llIDJq3lmGhdlgCh1asDnUDht8IXQSpYSZs+XaQ44iFiEFpxYXA4K
+9PKm5YUpRfhRXFQypE0p4EO6Uwog6ZjZiqof/iWGoZmxFcGPNSZP9AXZmQtnIvEF
+nKjZ
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_sub_ca.pem
new file mode 100644
index 000000000..3ac0a81c3
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_03/cert_path_CRL_03_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCX/mTAQyAHiiVC
+E4Q79ien4U2V80nkhZrilrEqgFDgHq3kXjfeIvrkmO7G7ugjL4yV2aE9qknQPLt3
+epQTflK8CEagawnFZRpD1PtiXQVFLKPz1kfc0Z/sEw5ICRRRnUql3q/acvWDZvCO
+bsvmwcDRYj6fQ+ZNQyHpf28P903nf5cnYxPiqos2lQhQc2BwXeH4gzcNDqGZNhd1
+gI4J14lw6WH3RU9WbTutoQjYEq21KHze6SImrkbopb0TcBa01MhFKUtX8xncP+9N
+z7URZijndqk9mQ0x2lYWTGFZo9fNpSfBahGJPlkSHm2Ob6uO2B57GiAIitxNwl7g
+eG/rfBavAgMBAAECggEAS7A7hMCIhSimeBqW6XMheUjJZYgi/mEH6Zkn/WWroIe2
+iXffs0dRECAWG8thnw/xHrgiwr33hvKPWiaY8YIg+hDW9tCGq502sJuxWWDAHJvn
+wyesXoqm7BzrKjUXQLMmtqXHhW1k1DwhQ5RqBm3qsnoNfCsIVuY8z3WNnXJGAaaz
+3FLI07W/3vhc2b8TtBEQ3wm8GIWFVvD+gqEEqGb+kYDDVEY/TuwkfvyCCFFasnSF
+24ut7wCOlwUYJYUaKFKSlgTLRRskoDdG/QZEf5UBI+PzzVh5yb0INl6b/5fk5yss
+V2nbMUARe9kWW5dOJbl2fkWWdzscdVUUR9i6kwyMUQKBgQDKf2CFxBxJlWA5Y5ko
+MqQxZSidjYjS/feUkFwaYNrlwOm9/9u7paRxQfvpelmQu1dYEs5ewLpWII1UW811
+DvSYAiJnYyv16Axq/Z+eiQ0JMGDrJyscJ0BXjBlHKa/Tqkt89sMAko0jGlJd/4TQ
+6tbQ+UIIkGgXAliGbibwfiNB0QKBgQDAJwO8ChnuDUAvDyXdpai9JyplVQKRB5P8
+eL8wQ2Eny8G2MjVJZYn/lWtbiFp3+WVEgMm5jWXKc0M5tL4jxLiohlXOEVHcFhbK
+KuT4usxXihT457gIeG0KGl2xijisNzYS7UaCzVHczKlEIPq5l7xhuk5gcAg6cMp2
+O80LecNwfwKBgFgM9RqVQLuaUWIC9ejtxEmaNAP2NCWSuyIFd5ccwHIg5UJxy8kX
+aJ6602AdjG6Ll5o7azL2WM/0jZ+932PkIeUrIGyWSdo+kY/AQrT74Qg62hnGSU+P
+ncGzsJYqAUNnjDWFUxufnfFCk8g9wDHbu5bYm6b/q9M9eOLTaOkv4ALRAoGBAJ2m
+JMk9HGMT2goCCpYcGSH/pSf4JB/rML4eLvYhAfANmwOpk9CBD0RzSd6SM29lXXFj
+nJ2w5cfA43HP2YQtHTee530m9pt0QARkRvHPCGH19xjzvCiu7P8x/JbyCWc58RJ8
+O7KLU9Os0l8EE9D7LeKcYTt8DzQrX+C7VZJJt1BvAoGAbu7y/AN8TpZQNwq6xeov
+6+VjVi/+jSA6HC4nw5d2gmE2vJcDpGwOcMnx9smJB166GfaLocE7A63TI9aYu0jC
+14BqWydeF9/43SsD4bLJl+ycvx4rjJU7xLE/N43dd/OV2vA6quBbtnW0Ev4XMigf
+DB8isvi6KpfogdoXwUQ65+4=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_03/crls/cert_path_CRL_03_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_03/crls/cert_path_CRL_03_crl.pem.crl
new file mode 100644
index 000000000..4464b3045
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_03/crls/cert_path_CRL_03_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBnTCBhgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0IFN1YiBD
+QTELMAkGA1UEBhMCREUXDTE3MDcyNjEzMjQ0OFoXDTE3MTAyNTEzMjQ0OFqgLzAt
+MAoGA1UdFAQDAgEDMB8GA1UdIwQYMBaAFO/pMmz8tDj9XG5fiZ10VtfeiL/hMA0G
+CSqGSIb3DQEBCwUAA4IBAQAMK8tpWc9KUUsoixQaaUjlKnKuF+lfiFVpesfhEgxn
+091Nm4PjPBz0wO3qLuqVmdjJkc5yVfiOziCjwR68fPU6K1faaACBVX9imwZKxFbG
+93N++IosVv3hB6bH0LcLsnXwNwXPnhLBoU7xPtcKQQtCxYMZDQzB+EfFiWJXTB9e
+ygjqRLRgml7UxzIetoYOXYLjsBI8AHMg5+Io+cCs8XiyFqw79VeFTJJNmWOSrl9+
+uWKCj7s5lDRPxBUd9yG7DgQWzmj+DIW19b+umHrJSeguQWYJa1DRRkFzrzwuWv/E
+JTOHb6HeQdfEX+oi4PmUMnF8mJE4hEZeoB17d2Lp8PRG
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_03/crls/cert_path_CRL_03_root_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_03/crls/cert_path_CRL_03_root_crl.pem.crl
new file mode 100644
index 000000000..4bc52895d
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_03/crls/cert_path_CRL_03_root_crl.pem.crl
@@ -0,0 +1,12 @@
+-----BEGIN X509 CRL-----
+MIIBsTCBmgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0IFJvb3Qx
+CzAJBgNVBAYTAkRFFw0xNzA3MjYxMzI0NDhaFw0xNzEwMjUxMzI0NDhaMBQwEgIB
+AhcNMTcwNzI2MDcyNDQ4WqAvMC0wCgYDVR0UBAMCAQMwHwYDVR0jBBgwFoAUx08Y
+hC18r4z8hj9PCEIT2SVAanAwDQYJKoZIhvcNAQELBQADggEBAFU+mEDmoZptI5PV
++aQ8MCnW8Kpk2oj7m1+ZDBnMEIgu4NDtABu4mL8qhrjLskyjLASebH+7di+Y+Mz8
+P/mWNlBZUH8+9tYu7uOd0YvsZnNQLTPPfi+HgHCgMssNTm5HCmqJ7ryTXwatIuMh
+Q2WpJ8rMbi4wLwIS5t3J7xcGR8hzxQFBBXvD6WqNITUSAyFJOVwXoAgZCqrxvz7x
+7Sd/ojZitgGmKeuhzUiLpuTFkQTkV3WEe60Ti5TqvCGMKC+2H3MREQtFnA4P1Vbd
+FBCV19OMiFizc+tncVD4mzFN69QxuS0dqLEC7UZb396Rx8dAyCjYQW/OYaO/TohP
+Weiedu8=
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_03/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_03/description.txt
new file mode 100644
index 000000000..d776d45e3
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_03/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_03
+
+Purpose: Checks the behaviour of the application when an intermediate certificate is contained in a CRL. This path is invalid because a CA certificate is revoked.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_ee.TC.pem.crt
new file mode 100644
index 000000000..bc4cf6ff4
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDbzCCAlegAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDQ2WhcNMTgwNzI3MTMy
+NDQ2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJWomlxlqcdd/t7IQjIGy2M0nEP8Bah1ooLr
+Iq73gzeVFM4qIjKL2OyQYbJDLkMXWUmzmX5P5cGG3pjAJ+Van0ch+OL6Utj8RijJ
+Ufc10Oo/TIVzIXbMxIa1oLZ8gQ73nhFkNxQZxzgsKop8wPPTdo41p3DSw/+a9cD0
+bmqgjSMDYydfuo/42bLeSmlLYhF18T5C1gUn+JXMvQJSI6kLPczsi+mQ0N0GtV0C
+1whWBo1atAUK3OeYGRDzIXnE591vXICYg1JBjjEYe6VNK/B3vCEu/QFRLtF3IYHc
+loU4uurI8HfgeEbJ/H3/uDrUwgahuoIqRXtxNIQv1qGXwbAnPBcCAwEAAaOBsTCB
+rjA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vbG9jYWxob3N0L3N1YmNhL2NybGRw
+L2NybC5jcmwwHwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0O
+BBYEFITwNLOf7HFKC/d5A2X3c8Qdd3sQMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMB
+Af8EBTADAQEAMBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOC
+AQEABaLToWh/aCEOlWbi810W1FeAvkwJYSqyYK6hyFYiQ6dn0x4OnqytfVxYKaj6
+wp1OOy/aAG9sSak2/Yp18J7U9Nnl/fz66TNBwjsipAo2auHsqfvrxQl4xEyovdzp
+OhJY4gLUPrmbecsmI4UTU6Xl9IGMDh9LPAn1ErYUvvolJp9Y6XlSb/jHT/7BDMmq
+JwToSRDikiaCKtrjQvtgw5vFUfcBqKlQmy70ZxIHW92E4cq1twugzc1RpO/c0mxj
+zjd8FaHJYT9q6z5fRhloqN6w46mS9nbt8xa4As9ULoMcpeVglDXXLh+A8HLLudWD
+ZB6LDkS9rU3WAqYfPzNZ5AR06A==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_ee.pem
new file mode 100644
index 000000000..c2f12a5a5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCVqJpcZanHXf7e
+yEIyBstjNJxD/AWodaKC6yKu94M3lRTOKiIyi9jskGGyQy5DF1lJs5l+T+XBht6Y
+wCflWp9HIfji+lLY/EYoyVH3NdDqP0yFcyF2zMSGtaC2fIEO954RZDcUGcc4LCqK
+fMDz03aONadw0sP/mvXA9G5qoI0jA2MnX7qP+Nmy3kppS2IRdfE+QtYFJ/iVzL0C
+UiOpCz3M7IvpkNDdBrVdAtcIVgaNWrQFCtznmBkQ8yF5xOfdb1yAmINSQY4xGHul
+TSvwd7whLv0BUS7RdyGB3JaFOLrqyPB34HhGyfx9/7g61MIGobqCKkV7cTSEL9ah
+l8GwJzwXAgMBAAECggEAQYSdh0POjwRcdwWuzR3iXp0CqFSl2XkeWzg7Z+Pd4zB1
++kfBzuUgY3hV/OeiUibfpP9mfEDYMeAshSziimsg/dAmmJ/EM1BGGscABjzeKB7s
+DiQ4Cz1b8CmFoT5idb37yltYLYmXiMT1Hsm840G5Tkq48hCjU7xwSDf6Ot3sy92d
+X9Qc3ws2QVv7hhkuQJvyGl052OI4oU/U6HgnD/zxd5BetAa9zG5BkT2n3J81dDS8
+YPpnA+5sO7GEL7M++QEZ+bJhhvXAga61jQflSNu1notf66U2HXn7X2R2Qk15V5JZ
+ySzRTBynbCLgfAXS35SavFenuuq0oINvV4dMbjiGoQKBgQDFtggOFPIVm77ZPXXQ
++LNs7fNGM4aDQrvHri+j5xzuOTZ6kftJBCXUVNq5OuKbaxlhcaMJxr/z7xngXs8Z
+A+1NYNdiRNzJqU+uwNcY0QtvBpsSr5DEO6fiqb3WxAKyLJETeD9qIbTK36GShliz
+sqx5vpb64lg5coMfbiyouWnw0QKBgQDBx+EF3cpkgXYAd+lWFYl3yt6XEm9zfZZn
+VK2yW0+03xUVLyte1APdYxFTuD22W2cxq+1OyNGBT6jplL3f8Xb36LmmYWy7QYHx
+hbLYF7bD84zV4uLsItTQh7FXrtUw10+8s+fzUu/P4bacIuiebyiwdVH1g/AlUyYJ
+zqGWq6fYZwKBgE8wBm/lccS32avXEv487lh9wcdnUcP3EZD7sjcalRrRLYHQQG5R
+S/mMdwJjlGmdbs/5nMyIn09Lf/i+4IHrcbthQ0Mnw6q9tp2OvVhCOisg4TGNwhTm
+s+p0BAYmAdJtSTocGoIet/PduDAgwRxQPwaQEJax25Y+yEfpb9ewU79RAoGAF5Vj
+5Xrgruqymcv+MePdHx8ph+lOdxfJvjmoChTi1nhv8GwVMy1Kax8rdKzvlcn5/SmX
+cAcwuDQhsovPr/mLKRDBx2YD/aYzUlmbMoFwVNjHQyChzWtPyzE4fBtjBtatdaHP
+kOV/GiW2O7pj5SRSJ2ef2el8yI4eCwOC1vt9KfECgYBW51G7ijf+dyLWQc+1IFWn
+QakMYPxzVO0LwiQwTALTDsNQv3QR2wBJslVgDMbR0oNkoyy4eJ/3A0z92bwMTyVq
+F610JDh+LyYcpCEHBQlRq8GCqilKHQYqdYQp5/luOQt+nWb/rllYm1x9Zlbakdf7
+QIN5IZdQJkLNcMQ49t3Drw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_04/cert_path_CRL_04_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_04/crls/cert_path_CRL_04_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_04/crls/cert_path_CRL_04_crl.pem.crl
new file mode 100644
index 000000000..14789579f
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_04/crls/cert_path_CRL_04_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBnTCBhgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0IFN1YiBD
+QTELMAkGA1UEBhMCREUXDTE3MDcyNjEzMjQ0OFoXDTE3MTAyNTEzMjQ0OFqgLzAt
+MAoGA1UdFAQDAgEEMB8GA1UdIwQYMBaAFOCMGappJZoaJQD2syi6G/cN+c/AMA0G
+CSqGSIb3DQEBCwUAA4IBAQCSvCbHdtfsVh5LW3fTShKjM6na7tboq3GhJXMG4SwN
+rtX5lBDsj5K4ht1WpBNxh/b2pSZxWgTfKM9ej87gqNCzEejPAy/TI9PgLqPqZ/o2
+fhDSavz9WScqFq1dVBkooT6+V1TNFS270OOpm4sr2Bxfe0h73eG7VNfP0Tg2nn2P
+MGwIf0MzBVqRp6TFaVvAuU4u13GzeOjnp03SoUKjIJfRWMVdqifRIsjm6F0fWbIo
+HPzpa5UxcO4er3yAuaDhOg79WdOqcPoVMrAVpEdKZTS+CG2vZmJuFtI2AptiArLn
+9D6yWQ+JxoCraHqVnLraSsWnBPgQHsU48GCPuG6tQnaq
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_04/crls/cert_path_CRL_04_root_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_04/crls/cert_path_CRL_04_root_crl.pem.crl
new file mode 100644
index 000000000..e8e99deab
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_04/crls/cert_path_CRL_04_root_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBmzCBhAIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0IFJvb3Qx
+CzAJBgNVBAYTAkRFFw0xNzA3MjYxMzI0NDhaFw0xNzEwMjUxMzI0NDhaoC8wLTAK
+BgNVHRQEAwIBBDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDANBgkq
+hkiG9w0BAQsFAAOCAQEABIEMoE7G+s8/1uwAoZLvvu9qnUHK0UmIj4rqWl7MkCQj
+ScPObNNP7Bm6UxVfKG+qW7cCppX5t29coUn70bnjqfFFj4iAjddUSZLg8eI65/PS
+u7LPXaXRHAXuOm8yp9Nu7QgTyjKkzz6E1ChTLYU+7EmLevJr+uWTRqVFA4zMSlPJ
+5CA/6TSL2PEp3wFXkB0mCMgASQ30PMqx2ok6uSRGKOZyeiXwW40nzpqAkYZeKy3/
+6fBr9TabsmYk2j8Cu369tZ15QCVUpdkcnMrpkwLwGpKAQFLIOJHRfz4EKvffSzuO
+B0RZm0C1E4TSyzjesqHqnE4vUPjAL3NpUOO1v43A9Q==
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_04/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_04/description.txt
new file mode 100644
index 000000000..cb1818432
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_04/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_04
+
+Purpose: Checks the behaviour of the application when the signature of the CRL is wrong. The target certificate is not contained in the CRL. This path is invalid because the signature of a CRL is wrong.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_ee.TC.pem.crt
new file mode 100644
index 000000000..bc4cf6ff4
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDbzCCAlegAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDQ2WhcNMTgwNzI3MTMy
+NDQ2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJWomlxlqcdd/t7IQjIGy2M0nEP8Bah1ooLr
+Iq73gzeVFM4qIjKL2OyQYbJDLkMXWUmzmX5P5cGG3pjAJ+Van0ch+OL6Utj8RijJ
+Ufc10Oo/TIVzIXbMxIa1oLZ8gQ73nhFkNxQZxzgsKop8wPPTdo41p3DSw/+a9cD0
+bmqgjSMDYydfuo/42bLeSmlLYhF18T5C1gUn+JXMvQJSI6kLPczsi+mQ0N0GtV0C
+1whWBo1atAUK3OeYGRDzIXnE591vXICYg1JBjjEYe6VNK/B3vCEu/QFRLtF3IYHc
+loU4uurI8HfgeEbJ/H3/uDrUwgahuoIqRXtxNIQv1qGXwbAnPBcCAwEAAaOBsTCB
+rjA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vbG9jYWxob3N0L3N1YmNhL2NybGRw
+L2NybC5jcmwwHwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0O
+BBYEFITwNLOf7HFKC/d5A2X3c8Qdd3sQMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMB
+Af8EBTADAQEAMBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOC
+AQEABaLToWh/aCEOlWbi810W1FeAvkwJYSqyYK6hyFYiQ6dn0x4OnqytfVxYKaj6
+wp1OOy/aAG9sSak2/Yp18J7U9Nnl/fz66TNBwjsipAo2auHsqfvrxQl4xEyovdzp
+OhJY4gLUPrmbecsmI4UTU6Xl9IGMDh9LPAn1ErYUvvolJp9Y6XlSb/jHT/7BDMmq
+JwToSRDikiaCKtrjQvtgw5vFUfcBqKlQmy70ZxIHW92E4cq1twugzc1RpO/c0mxj
+zjd8FaHJYT9q6z5fRhloqN6w46mS9nbt8xa4As9ULoMcpeVglDXXLh+A8HLLudWD
+ZB6LDkS9rU3WAqYfPzNZ5AR06A==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_ee.pem
new file mode 100644
index 000000000..c2f12a5a5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCVqJpcZanHXf7e
+yEIyBstjNJxD/AWodaKC6yKu94M3lRTOKiIyi9jskGGyQy5DF1lJs5l+T+XBht6Y
+wCflWp9HIfji+lLY/EYoyVH3NdDqP0yFcyF2zMSGtaC2fIEO954RZDcUGcc4LCqK
+fMDz03aONadw0sP/mvXA9G5qoI0jA2MnX7qP+Nmy3kppS2IRdfE+QtYFJ/iVzL0C
+UiOpCz3M7IvpkNDdBrVdAtcIVgaNWrQFCtznmBkQ8yF5xOfdb1yAmINSQY4xGHul
+TSvwd7whLv0BUS7RdyGB3JaFOLrqyPB34HhGyfx9/7g61MIGobqCKkV7cTSEL9ah
+l8GwJzwXAgMBAAECggEAQYSdh0POjwRcdwWuzR3iXp0CqFSl2XkeWzg7Z+Pd4zB1
++kfBzuUgY3hV/OeiUibfpP9mfEDYMeAshSziimsg/dAmmJ/EM1BGGscABjzeKB7s
+DiQ4Cz1b8CmFoT5idb37yltYLYmXiMT1Hsm840G5Tkq48hCjU7xwSDf6Ot3sy92d
+X9Qc3ws2QVv7hhkuQJvyGl052OI4oU/U6HgnD/zxd5BetAa9zG5BkT2n3J81dDS8
+YPpnA+5sO7GEL7M++QEZ+bJhhvXAga61jQflSNu1notf66U2HXn7X2R2Qk15V5JZ
+ySzRTBynbCLgfAXS35SavFenuuq0oINvV4dMbjiGoQKBgQDFtggOFPIVm77ZPXXQ
++LNs7fNGM4aDQrvHri+j5xzuOTZ6kftJBCXUVNq5OuKbaxlhcaMJxr/z7xngXs8Z
+A+1NYNdiRNzJqU+uwNcY0QtvBpsSr5DEO6fiqb3WxAKyLJETeD9qIbTK36GShliz
+sqx5vpb64lg5coMfbiyouWnw0QKBgQDBx+EF3cpkgXYAd+lWFYl3yt6XEm9zfZZn
+VK2yW0+03xUVLyte1APdYxFTuD22W2cxq+1OyNGBT6jplL3f8Xb36LmmYWy7QYHx
+hbLYF7bD84zV4uLsItTQh7FXrtUw10+8s+fzUu/P4bacIuiebyiwdVH1g/AlUyYJ
+zqGWq6fYZwKBgE8wBm/lccS32avXEv487lh9wcdnUcP3EZD7sjcalRrRLYHQQG5R
+S/mMdwJjlGmdbs/5nMyIn09Lf/i+4IHrcbthQ0Mnw6q9tp2OvVhCOisg4TGNwhTm
+s+p0BAYmAdJtSTocGoIet/PduDAgwRxQPwaQEJax25Y+yEfpb9ewU79RAoGAF5Vj
+5Xrgruqymcv+MePdHx8ph+lOdxfJvjmoChTi1nhv8GwVMy1Kax8rdKzvlcn5/SmX
+cAcwuDQhsovPr/mLKRDBx2YD/aYzUlmbMoFwVNjHQyChzWtPyzE4fBtjBtatdaHP
+kOV/GiW2O7pj5SRSJ2ef2el8yI4eCwOC1vt9KfECgYBW51G7ijf+dyLWQc+1IFWn
+QakMYPxzVO0LwiQwTALTDsNQv3QR2wBJslVgDMbR0oNkoyy4eJ/3A0z92bwMTyVq
+F610JDh+LyYcpCEHBQlRq8GCqilKHQYqdYQp5/luOQt+nWb/rllYm1x9Zlbakdf7
+QIN5IZdQJkLNcMQ49t3Drw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_05/cert_path_CRL_05_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_05/crls/cert_path_CRL_05_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_05/crls/cert_path_CRL_05_crl.pem.crl
new file mode 100644
index 000000000..e995b5ed3
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_05/crls/cert_path_CRL_05_crl.pem.crl
@@ -0,0 +1,12 @@
+-----BEGIN X509 CRL-----
+MIIBwjCBqwIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0IFN1YiBD
+QTELMAkGA1UEBhMCREUXDTE3MDcyNjEzMjQ0OFoXDTE3MTAyNTEzMjQ0OFowFDAS
+AgEBFw0xNzA3MjYwNzI0NDhaoD4wPDAKBgNVHRQEAwIBBTAfBgNVHSMEGDAWgBTg
+jBmqaSWaGiUA9rMouhv3DfnPwDANBgUqAwQFBgQEAwIFoDANBgkqhkiG9w0BAQsF
+AAOCAQEANKuVzO3jmPdNuCvpB805d9qFmD3Zr/+zLreLev9+3zmqRFJPq4tLjSaT
+3rOYlW0GlkHHMCcZK0GR/7LCIGtCx5IS6fBhkQxozlgTUaQVflOG1eTSZzSm1u0q
+2QvdCU0tHNJ6dfWgOLwcquBejy3uToqIa64rVK09wiYI8ywB6q7Pl0s2DA/vuRNr
+jO2sK0xsOgcehA0ABbQyfIMdXP+N8bhamdCDFX4sieoOhywH527TqDBqByMYpXAJ
+bG9FVYi/3cBsdI3aOV421VC754q60gs2W44ThHuLklfSjI2xAFQLwWTMv0+YJoyE
+BYo8B1NOvGUze+qC5XB+IzwVMpBZXA==
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_05/crls/cert_path_CRL_05_root_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_05/crls/cert_path_CRL_05_root_crl.pem.crl
new file mode 100644
index 000000000..692a69f0a
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_05/crls/cert_path_CRL_05_root_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBmzCBhAIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0IFJvb3Qx
+CzAJBgNVBAYTAkRFFw0xNzA3MjYxMzI0NDhaFw0xNzEwMjUxMzI0NDhaoC8wLTAK
+BgNVHRQEAwIBBTAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDANBgkq
+hkiG9w0BAQsFAAOCAQEAWltSnpmUp2mIbyqAFXo8DFYe/JZ0hQv67Rh6bBQqXkg5
+s3OWn5IVNTi9QcEOiMO7fU+OR1oqjaiDkgid09uRXt0EHh0JuFmOCxhUGsqJu+H1
+7wgFDZH78V925qDnJIWwT5aXSMEElGxDX55wrIyZRYZXuEfSt3NADVJHfFbahJoh
+CKAauvWROkHF55MlRKJG9prt2o0ZYy0D+vcEF4oFJN8ElsSW2Og7FtUsQKcqz7Nf
+8TwSFdwyKyNphMfHz43WVswn683yH6hIdCWQ6O8regEhdMDO3xBFUYkXQnBX2oQv
+bb8C628rGFVa3LmhMfuHE3s3S4m/vPe3b8KZcGp3Dg==
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_05/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_05/description.txt
new file mode 100644
index 000000000..94a79449e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_05/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_05
+
+Purpose: Checks the behaviour of the application when a CRL contains an unknown non-critical extension. The target certificate is contained in this CRL. This path is invalid because it is allowed for an application to ignore unknown non-critical extensions.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_ee.TC.pem.crt
new file mode 100644
index 000000000..bc4cf6ff4
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDbzCCAlegAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDQ2WhcNMTgwNzI3MTMy
+NDQ2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJWomlxlqcdd/t7IQjIGy2M0nEP8Bah1ooLr
+Iq73gzeVFM4qIjKL2OyQYbJDLkMXWUmzmX5P5cGG3pjAJ+Van0ch+OL6Utj8RijJ
+Ufc10Oo/TIVzIXbMxIa1oLZ8gQ73nhFkNxQZxzgsKop8wPPTdo41p3DSw/+a9cD0
+bmqgjSMDYydfuo/42bLeSmlLYhF18T5C1gUn+JXMvQJSI6kLPczsi+mQ0N0GtV0C
+1whWBo1atAUK3OeYGRDzIXnE591vXICYg1JBjjEYe6VNK/B3vCEu/QFRLtF3IYHc
+loU4uurI8HfgeEbJ/H3/uDrUwgahuoIqRXtxNIQv1qGXwbAnPBcCAwEAAaOBsTCB
+rjA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vbG9jYWxob3N0L3N1YmNhL2NybGRw
+L2NybC5jcmwwHwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0O
+BBYEFITwNLOf7HFKC/d5A2X3c8Qdd3sQMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMB
+Af8EBTADAQEAMBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOC
+AQEABaLToWh/aCEOlWbi810W1FeAvkwJYSqyYK6hyFYiQ6dn0x4OnqytfVxYKaj6
+wp1OOy/aAG9sSak2/Yp18J7U9Nnl/fz66TNBwjsipAo2auHsqfvrxQl4xEyovdzp
+OhJY4gLUPrmbecsmI4UTU6Xl9IGMDh9LPAn1ErYUvvolJp9Y6XlSb/jHT/7BDMmq
+JwToSRDikiaCKtrjQvtgw5vFUfcBqKlQmy70ZxIHW92E4cq1twugzc1RpO/c0mxj
+zjd8FaHJYT9q6z5fRhloqN6w46mS9nbt8xa4As9ULoMcpeVglDXXLh+A8HLLudWD
+ZB6LDkS9rU3WAqYfPzNZ5AR06A==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_ee.pem
new file mode 100644
index 000000000..c2f12a5a5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCVqJpcZanHXf7e
+yEIyBstjNJxD/AWodaKC6yKu94M3lRTOKiIyi9jskGGyQy5DF1lJs5l+T+XBht6Y
+wCflWp9HIfji+lLY/EYoyVH3NdDqP0yFcyF2zMSGtaC2fIEO954RZDcUGcc4LCqK
+fMDz03aONadw0sP/mvXA9G5qoI0jA2MnX7qP+Nmy3kppS2IRdfE+QtYFJ/iVzL0C
+UiOpCz3M7IvpkNDdBrVdAtcIVgaNWrQFCtznmBkQ8yF5xOfdb1yAmINSQY4xGHul
+TSvwd7whLv0BUS7RdyGB3JaFOLrqyPB34HhGyfx9/7g61MIGobqCKkV7cTSEL9ah
+l8GwJzwXAgMBAAECggEAQYSdh0POjwRcdwWuzR3iXp0CqFSl2XkeWzg7Z+Pd4zB1
++kfBzuUgY3hV/OeiUibfpP9mfEDYMeAshSziimsg/dAmmJ/EM1BGGscABjzeKB7s
+DiQ4Cz1b8CmFoT5idb37yltYLYmXiMT1Hsm840G5Tkq48hCjU7xwSDf6Ot3sy92d
+X9Qc3ws2QVv7hhkuQJvyGl052OI4oU/U6HgnD/zxd5BetAa9zG5BkT2n3J81dDS8
+YPpnA+5sO7GEL7M++QEZ+bJhhvXAga61jQflSNu1notf66U2HXn7X2R2Qk15V5JZ
+ySzRTBynbCLgfAXS35SavFenuuq0oINvV4dMbjiGoQKBgQDFtggOFPIVm77ZPXXQ
++LNs7fNGM4aDQrvHri+j5xzuOTZ6kftJBCXUVNq5OuKbaxlhcaMJxr/z7xngXs8Z
+A+1NYNdiRNzJqU+uwNcY0QtvBpsSr5DEO6fiqb3WxAKyLJETeD9qIbTK36GShliz
+sqx5vpb64lg5coMfbiyouWnw0QKBgQDBx+EF3cpkgXYAd+lWFYl3yt6XEm9zfZZn
+VK2yW0+03xUVLyte1APdYxFTuD22W2cxq+1OyNGBT6jplL3f8Xb36LmmYWy7QYHx
+hbLYF7bD84zV4uLsItTQh7FXrtUw10+8s+fzUu/P4bacIuiebyiwdVH1g/AlUyYJ
+zqGWq6fYZwKBgE8wBm/lccS32avXEv487lh9wcdnUcP3EZD7sjcalRrRLYHQQG5R
+S/mMdwJjlGmdbs/5nMyIn09Lf/i+4IHrcbthQ0Mnw6q9tp2OvVhCOisg4TGNwhTm
+s+p0BAYmAdJtSTocGoIet/PduDAgwRxQPwaQEJax25Y+yEfpb9ewU79RAoGAF5Vj
+5Xrgruqymcv+MePdHx8ph+lOdxfJvjmoChTi1nhv8GwVMy1Kax8rdKzvlcn5/SmX
+cAcwuDQhsovPr/mLKRDBx2YD/aYzUlmbMoFwVNjHQyChzWtPyzE4fBtjBtatdaHP
+kOV/GiW2O7pj5SRSJ2ef2el8yI4eCwOC1vt9KfECgYBW51G7ijf+dyLWQc+1IFWn
+QakMYPxzVO0LwiQwTALTDsNQv3QR2wBJslVgDMbR0oNkoyy4eJ/3A0z92bwMTyVq
+F610JDh+LyYcpCEHBQlRq8GCqilKHQYqdYQp5/luOQt+nWb/rllYm1x9Zlbakdf7
+QIN5IZdQJkLNcMQ49t3Drw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_06/cert_path_CRL_06_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_06/crls/cert_path_CRL_06_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_06/crls/cert_path_CRL_06_crl.pem.crl
new file mode 100644
index 000000000..0a97efdc7
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_06/crls/cert_path_CRL_06_crl.pem.crl
@@ -0,0 +1,12 @@
+-----BEGIN X509 CRL-----
+MIIBrzCBmAIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0IFN1YiBD
+QTELMAkGA1UEBhMCREUXDTE3MDcyNjEzMjQ0OFoXDTE3MTAyNTEzMjQ0OFqgQTA/
+MAoGA1UdFAQDAgEGMB8GA1UdIwQYMBaAFOCMGappJZoaJQD2syi6G/cN+c/AMBAG
+BSoDBAUGAQH/BAQDAgWgMA0GCSqGSIb3DQEBCwUAA4IBAQBo4kTGBHMIYQOHbDeb
+YvCt6+W85V95LyxIx5PoDuVYQ3IhDnvwVmTFYin0tYx294rM4evQJL9haaryVBrJ
+HrCDvnYTqFWpXNvjICMvhWn1cuiFgWksK9Kz5aiVylABKNvpZcrM2awC+BUy+Q34
+UY6HmG0495HMtN5mobu9F1ByPQavMee9vJyzA+QQBg0/b3IENnbvjJ3IK3wFY49y
+qkSYe5eZ7c2khCxkwS+ogFzAxksy/lu6a5eGGarZe154WCnGGR4cisMGKxMwf6S7
+VtFXyctgLKhIyK6VtFn7AoTuBa4L09KuFgZ/Zc3srUXbnsO5ahTnYd3IAK2IBZn1
+uWRU
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_06/crls/cert_path_CRL_06_root_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_06/crls/cert_path_CRL_06_root_crl.pem.crl
new file mode 100644
index 000000000..85ff7ad83
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_06/crls/cert_path_CRL_06_root_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBmzCBhAIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0IFJvb3Qx
+CzAJBgNVBAYTAkRFFw0xNzA3MjYxMzI0NDhaFw0xNzEwMjUxMzI0NDhaoC8wLTAK
+BgNVHRQEAwIBBjAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDANBgkq
+hkiG9w0BAQsFAAOCAQEAXwSx2NtqRbBbXT/9A4SSDanhmiXJHwcevJHidPtzTyYu
+OkQC9QN63NucMczU9ukYxdhVEEIy5CLT94fzg44CwUFLMDJKTpM3qxuACbBLH2/j
+nmdyghy9/uGkSM/md7/8nlAYcxr9EgWQPgD7AYnaURKTT10CYl+hj4RC6BUsL9/P
+xfD+qGBsvHhnkhjBL2g4wkvjR/8P9/e2LqHUst1z8ioq7LmwigFtqsqreowRt7ie
+FEA8jGoUSmINKTqI3t3eg7axi6F7FP39CnRZqGQkYrdHtYWhZCVwfEcd0WbfYtpd
+zsJqB32IwS5IQHUl/hauIAfNUEjBCzxu6ifh2mLnYQ==
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_06/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_06/description.txt
new file mode 100644
index 000000000..afcd3c548
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_06/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_06
+
+Purpose: Checks the behaviour of the application when a CRL contains an unknown critical extension. The target certificate is not contained in this CRL. This path is invalid because it is not allowed for an application to ignore unknown critical extensions.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_ee.TC.pem.crt
new file mode 100644
index 000000000..bc4cf6ff4
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDbzCCAlegAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDQ2WhcNMTgwNzI3MTMy
+NDQ2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJWomlxlqcdd/t7IQjIGy2M0nEP8Bah1ooLr
+Iq73gzeVFM4qIjKL2OyQYbJDLkMXWUmzmX5P5cGG3pjAJ+Van0ch+OL6Utj8RijJ
+Ufc10Oo/TIVzIXbMxIa1oLZ8gQ73nhFkNxQZxzgsKop8wPPTdo41p3DSw/+a9cD0
+bmqgjSMDYydfuo/42bLeSmlLYhF18T5C1gUn+JXMvQJSI6kLPczsi+mQ0N0GtV0C
+1whWBo1atAUK3OeYGRDzIXnE591vXICYg1JBjjEYe6VNK/B3vCEu/QFRLtF3IYHc
+loU4uurI8HfgeEbJ/H3/uDrUwgahuoIqRXtxNIQv1qGXwbAnPBcCAwEAAaOBsTCB
+rjA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vbG9jYWxob3N0L3N1YmNhL2NybGRw
+L2NybC5jcmwwHwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0O
+BBYEFITwNLOf7HFKC/d5A2X3c8Qdd3sQMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMB
+Af8EBTADAQEAMBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOC
+AQEABaLToWh/aCEOlWbi810W1FeAvkwJYSqyYK6hyFYiQ6dn0x4OnqytfVxYKaj6
+wp1OOy/aAG9sSak2/Yp18J7U9Nnl/fz66TNBwjsipAo2auHsqfvrxQl4xEyovdzp
+OhJY4gLUPrmbecsmI4UTU6Xl9IGMDh9LPAn1ErYUvvolJp9Y6XlSb/jHT/7BDMmq
+JwToSRDikiaCKtrjQvtgw5vFUfcBqKlQmy70ZxIHW92E4cq1twugzc1RpO/c0mxj
+zjd8FaHJYT9q6z5fRhloqN6w46mS9nbt8xa4As9ULoMcpeVglDXXLh+A8HLLudWD
+ZB6LDkS9rU3WAqYfPzNZ5AR06A==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_ee.pem
new file mode 100644
index 000000000..c2f12a5a5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCVqJpcZanHXf7e
+yEIyBstjNJxD/AWodaKC6yKu94M3lRTOKiIyi9jskGGyQy5DF1lJs5l+T+XBht6Y
+wCflWp9HIfji+lLY/EYoyVH3NdDqP0yFcyF2zMSGtaC2fIEO954RZDcUGcc4LCqK
+fMDz03aONadw0sP/mvXA9G5qoI0jA2MnX7qP+Nmy3kppS2IRdfE+QtYFJ/iVzL0C
+UiOpCz3M7IvpkNDdBrVdAtcIVgaNWrQFCtznmBkQ8yF5xOfdb1yAmINSQY4xGHul
+TSvwd7whLv0BUS7RdyGB3JaFOLrqyPB34HhGyfx9/7g61MIGobqCKkV7cTSEL9ah
+l8GwJzwXAgMBAAECggEAQYSdh0POjwRcdwWuzR3iXp0CqFSl2XkeWzg7Z+Pd4zB1
++kfBzuUgY3hV/OeiUibfpP9mfEDYMeAshSziimsg/dAmmJ/EM1BGGscABjzeKB7s
+DiQ4Cz1b8CmFoT5idb37yltYLYmXiMT1Hsm840G5Tkq48hCjU7xwSDf6Ot3sy92d
+X9Qc3ws2QVv7hhkuQJvyGl052OI4oU/U6HgnD/zxd5BetAa9zG5BkT2n3J81dDS8
+YPpnA+5sO7GEL7M++QEZ+bJhhvXAga61jQflSNu1notf66U2HXn7X2R2Qk15V5JZ
+ySzRTBynbCLgfAXS35SavFenuuq0oINvV4dMbjiGoQKBgQDFtggOFPIVm77ZPXXQ
++LNs7fNGM4aDQrvHri+j5xzuOTZ6kftJBCXUVNq5OuKbaxlhcaMJxr/z7xngXs8Z
+A+1NYNdiRNzJqU+uwNcY0QtvBpsSr5DEO6fiqb3WxAKyLJETeD9qIbTK36GShliz
+sqx5vpb64lg5coMfbiyouWnw0QKBgQDBx+EF3cpkgXYAd+lWFYl3yt6XEm9zfZZn
+VK2yW0+03xUVLyte1APdYxFTuD22W2cxq+1OyNGBT6jplL3f8Xb36LmmYWy7QYHx
+hbLYF7bD84zV4uLsItTQh7FXrtUw10+8s+fzUu/P4bacIuiebyiwdVH1g/AlUyYJ
+zqGWq6fYZwKBgE8wBm/lccS32avXEv487lh9wcdnUcP3EZD7sjcalRrRLYHQQG5R
+S/mMdwJjlGmdbs/5nMyIn09Lf/i+4IHrcbthQ0Mnw6q9tp2OvVhCOisg4TGNwhTm
+s+p0BAYmAdJtSTocGoIet/PduDAgwRxQPwaQEJax25Y+yEfpb9ewU79RAoGAF5Vj
+5Xrgruqymcv+MePdHx8ph+lOdxfJvjmoChTi1nhv8GwVMy1Kax8rdKzvlcn5/SmX
+cAcwuDQhsovPr/mLKRDBx2YD/aYzUlmbMoFwVNjHQyChzWtPyzE4fBtjBtatdaHP
+kOV/GiW2O7pj5SRSJ2ef2el8yI4eCwOC1vt9KfECgYBW51G7ijf+dyLWQc+1IFWn
+QakMYPxzVO0LwiQwTALTDsNQv3QR2wBJslVgDMbR0oNkoyy4eJ/3A0z92bwMTyVq
+F610JDh+LyYcpCEHBQlRq8GCqilKHQYqdYQp5/luOQt+nWb/rllYm1x9Zlbakdf7
+QIN5IZdQJkLNcMQ49t3Drw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_07/cert_path_CRL_07_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_07/crls/cert_path_CRL_07_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_07/crls/cert_path_CRL_07_crl.pem.crl
new file mode 100644
index 000000000..a99a51ceb
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_07/crls/cert_path_CRL_07_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBkTB7AgEBMA0GCSqGSIb3DQEBCwUAMCMxFDASBgNVBAMMC1Rlc3QgU3ViIENB
+MQswCQYDVQQGEwJERRcNMTcwNzI2MTMyNTQwWhcNMTcxMDI1MTMyNTQwWjAUMBIC
+AQEXDTE3MDcyNjA3MjU0MFqgDjAMMAoGA1UdFAQDAgEHMA0GCSqGSIb3DQEBCwUA
+A4IBAQCqAxDrh0FjK4MByyedu+QZR+9ik/jPAFznR+9barO6nJtq6XifN3/X0jg1
+6mV2zRU4/8P2UjTWblPqaBHAYA9iRYB7AoQB4FlUevvbET34HwgJ1MCoVtiK2FwX
+BfOLl0e/loRRQv4J8RSMk/zEu2Kg9NVsGw3mJxBYmkbsdVP98RY28AetMFc9e1sq
+hgdhWEDPbQkwoim8aSxQ66CSRVCsO0drrTMaJSGQlfGhU7DDHjgk87qJ7A8e4EpB
+pnot3uXVzIlqsbWbE/0GUxUY1Br0vEXmEbX3YNkwnXfzki/6s7Qz2wscfXSxs4cV
+m9YyKTWnnN0CYib4Q9hPG5Jiy7QO
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_07/crls/cert_path_CRL_07_root_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_07/crls/cert_path_CRL_07_root_crl.pem.crl
new file mode 100644
index 000000000..85819e7af
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_07/crls/cert_path_CRL_07_root_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBmzCBhAIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0IFJvb3Qx
+CzAJBgNVBAYTAkRFFw0xNzA3MjYxMzI1NDBaFw0xNzEwMjUxMzI1NDBaoC8wLTAK
+BgNVHRQEAwIBBzAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDANBgkq
+hkiG9w0BAQsFAAOCAQEASTn0oRz+84G6BOWfz7KWE6nTHA1ZUpxCbm4N3SS0C/5S
+3OZn2G0y6FyzGm/dxA2HdChfdcYJaaNisNfDgZm+Lf0LoIRsOlMWTvtvh4FucUSW
+Y4d3g9abjXkxV3zLCUW4uOTxYzEMC8f2hRmpX7zU6bsLRxRi+wXG2VUQOA7i71RO
+Ltq5PLPGnA5+Vhv02+n1HFGyi12n5tKPuWPa4RmTpFw+FyOziDHAcEZ7OI7I7wA1
+u50sc1LlBctugY12vbmjZjUGIMCeJhhThdojY8BPj6UX/wCBLPlaRWN4SKVoG8Nu
+bW2m0IyeXXGDDsjXcg3WEmjiJLVxVc7fkMvCapuq+A==
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_07/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_07/description.txt
new file mode 100644
index 000000000..388114675
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_07/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_07
+
+Purpose: Checks the behaviour of the application when the target certificate is contained in a CRL that does not contain the Authority Key Identifier extension. This path is invalid because even if this mandatory extension is missing the CRL is still a valid source for revocation information.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_ee.TC.pem.crt
new file mode 100644
index 000000000..bc4cf6ff4
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDbzCCAlegAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDQ2WhcNMTgwNzI3MTMy
+NDQ2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJWomlxlqcdd/t7IQjIGy2M0nEP8Bah1ooLr
+Iq73gzeVFM4qIjKL2OyQYbJDLkMXWUmzmX5P5cGG3pjAJ+Van0ch+OL6Utj8RijJ
+Ufc10Oo/TIVzIXbMxIa1oLZ8gQ73nhFkNxQZxzgsKop8wPPTdo41p3DSw/+a9cD0
+bmqgjSMDYydfuo/42bLeSmlLYhF18T5C1gUn+JXMvQJSI6kLPczsi+mQ0N0GtV0C
+1whWBo1atAUK3OeYGRDzIXnE591vXICYg1JBjjEYe6VNK/B3vCEu/QFRLtF3IYHc
+loU4uurI8HfgeEbJ/H3/uDrUwgahuoIqRXtxNIQv1qGXwbAnPBcCAwEAAaOBsTCB
+rjA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vbG9jYWxob3N0L3N1YmNhL2NybGRw
+L2NybC5jcmwwHwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0O
+BBYEFITwNLOf7HFKC/d5A2X3c8Qdd3sQMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMB
+Af8EBTADAQEAMBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOC
+AQEABaLToWh/aCEOlWbi810W1FeAvkwJYSqyYK6hyFYiQ6dn0x4OnqytfVxYKaj6
+wp1OOy/aAG9sSak2/Yp18J7U9Nnl/fz66TNBwjsipAo2auHsqfvrxQl4xEyovdzp
+OhJY4gLUPrmbecsmI4UTU6Xl9IGMDh9LPAn1ErYUvvolJp9Y6XlSb/jHT/7BDMmq
+JwToSRDikiaCKtrjQvtgw5vFUfcBqKlQmy70ZxIHW92E4cq1twugzc1RpO/c0mxj
+zjd8FaHJYT9q6z5fRhloqN6w46mS9nbt8xa4As9ULoMcpeVglDXXLh+A8HLLudWD
+ZB6LDkS9rU3WAqYfPzNZ5AR06A==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_ee.pem
new file mode 100644
index 000000000..c2f12a5a5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCVqJpcZanHXf7e
+yEIyBstjNJxD/AWodaKC6yKu94M3lRTOKiIyi9jskGGyQy5DF1lJs5l+T+XBht6Y
+wCflWp9HIfji+lLY/EYoyVH3NdDqP0yFcyF2zMSGtaC2fIEO954RZDcUGcc4LCqK
+fMDz03aONadw0sP/mvXA9G5qoI0jA2MnX7qP+Nmy3kppS2IRdfE+QtYFJ/iVzL0C
+UiOpCz3M7IvpkNDdBrVdAtcIVgaNWrQFCtznmBkQ8yF5xOfdb1yAmINSQY4xGHul
+TSvwd7whLv0BUS7RdyGB3JaFOLrqyPB34HhGyfx9/7g61MIGobqCKkV7cTSEL9ah
+l8GwJzwXAgMBAAECggEAQYSdh0POjwRcdwWuzR3iXp0CqFSl2XkeWzg7Z+Pd4zB1
++kfBzuUgY3hV/OeiUibfpP9mfEDYMeAshSziimsg/dAmmJ/EM1BGGscABjzeKB7s
+DiQ4Cz1b8CmFoT5idb37yltYLYmXiMT1Hsm840G5Tkq48hCjU7xwSDf6Ot3sy92d
+X9Qc3ws2QVv7hhkuQJvyGl052OI4oU/U6HgnD/zxd5BetAa9zG5BkT2n3J81dDS8
+YPpnA+5sO7GEL7M++QEZ+bJhhvXAga61jQflSNu1notf66U2HXn7X2R2Qk15V5JZ
+ySzRTBynbCLgfAXS35SavFenuuq0oINvV4dMbjiGoQKBgQDFtggOFPIVm77ZPXXQ
++LNs7fNGM4aDQrvHri+j5xzuOTZ6kftJBCXUVNq5OuKbaxlhcaMJxr/z7xngXs8Z
+A+1NYNdiRNzJqU+uwNcY0QtvBpsSr5DEO6fiqb3WxAKyLJETeD9qIbTK36GShliz
+sqx5vpb64lg5coMfbiyouWnw0QKBgQDBx+EF3cpkgXYAd+lWFYl3yt6XEm9zfZZn
+VK2yW0+03xUVLyte1APdYxFTuD22W2cxq+1OyNGBT6jplL3f8Xb36LmmYWy7QYHx
+hbLYF7bD84zV4uLsItTQh7FXrtUw10+8s+fzUu/P4bacIuiebyiwdVH1g/AlUyYJ
+zqGWq6fYZwKBgE8wBm/lccS32avXEv487lh9wcdnUcP3EZD7sjcalRrRLYHQQG5R
+S/mMdwJjlGmdbs/5nMyIn09Lf/i+4IHrcbthQ0Mnw6q9tp2OvVhCOisg4TGNwhTm
+s+p0BAYmAdJtSTocGoIet/PduDAgwRxQPwaQEJax25Y+yEfpb9ewU79RAoGAF5Vj
+5Xrgruqymcv+MePdHx8ph+lOdxfJvjmoChTi1nhv8GwVMy1Kax8rdKzvlcn5/SmX
+cAcwuDQhsovPr/mLKRDBx2YD/aYzUlmbMoFwVNjHQyChzWtPyzE4fBtjBtatdaHP
+kOV/GiW2O7pj5SRSJ2ef2el8yI4eCwOC1vt9KfECgYBW51G7ijf+dyLWQc+1IFWn
+QakMYPxzVO0LwiQwTALTDsNQv3QR2wBJslVgDMbR0oNkoyy4eJ/3A0z92bwMTyVq
+F610JDh+LyYcpCEHBQlRq8GCqilKHQYqdYQp5/luOQt+nWb/rllYm1x9Zlbakdf7
+QIN5IZdQJkLNcMQ49t3Drw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_08/cert_path_CRL_08_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_08/crls/cert_path_CRL_08_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_08/crls/cert_path_CRL_08_crl.pem.crl
new file mode 100644
index 000000000..a0e35e19c
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_08/crls/cert_path_CRL_08_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBnTCBhgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0IFN1YiBD
+QTELMAkGA1UEBhMCREUXDTE3MTAyNjEzMjU0MFoXDTE3MTEwMjE0MjU0MFqgLzAt
+MB8GA1UdIwQYMBaAFOCMGappJZoaJQD2syi6G/cN+c/AMAoGA1UdFAQDAgEIMA0G
+CSqGSIb3DQEBCwUAA4IBAQBV8ePdQ4Z7fo71zUhzJld+00QED0vsjMjFMgg9SOoB
+CQji7VGNpU7+438ohnOP9gscri1ZRpHdHqGpVTUepzgx48ZC8F3cUwE5ee24dyLu
+BT7Oez4DgcFclyLyjxSRp4jn5GxaCYHYMefm5JAh03IwI7DEr1X2uf1f7Ynnr0Q3
+pLIlNwQbVrmenfEdNw1jq+iXh43fDTuDBtAMQZ3oSrY/vuWkVx092Gen1mT8e4oA
+nRaViNMjLm/fBIxhyUQ1nBR/nw4nQlYlEELJly7AJm78hSr3TWOXJ1Pq2tLYpE87
+XFNYHmgJy+8Lp0IjD+FkO8L9Ur9FsPIqW9KXJQnBbRwG
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_08/crls/cert_path_CRL_08_root_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_08/crls/cert_path_CRL_08_root_crl.pem.crl
new file mode 100644
index 000000000..9eb820d7e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_08/crls/cert_path_CRL_08_root_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBmzCBhAIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0IFJvb3Qx
+CzAJBgNVBAYTAkRFFw0xNzA3MjYxMzI1NDBaFw0xNzEwMjUxMzI1NDBaoC8wLTAK
+BgNVHRQEAwIBCDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDANBgkq
+hkiG9w0BAQsFAAOCAQEAeWGlW8kiFICDuUFCa7F0VjKcFttYd5aUbJ0LX2A1VyQs
+rMSrdGuyyYXAgvPSoGfBcanTmft9JLtfq3UIZxKrbI0jY8uZY002DIgOp3rrZX8D
+OkcOZT2C80OjhuhIbmWIppY3YmNqoh67fv2rFWxYioK9oA1puHEKftrGLNd9QUJy
+hU3wvwlxj+VQEd1KaR2KTJdL9huVPiDWohqe2ZigOWuf3N4Af28iHHMeLX/MWoTZ
+n7d2ht5VmMarevzneISFdiboH6hOsLinVE1ESqyDPN7rFhlZNdagXiPU7QxR3SQq
+UO0MBY4Okp06qCrdug7VjcHXFrTFJh657uzVbJGHZg==
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_08/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_08/description.txt
new file mode 100644
index 000000000..18d4efe75
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_08/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_08
+
+Purpose: Checks the behaviour of the application when a CRL is not valid yet (now < thisUpdate). The target certificate is not contained in the CRL. This path is invalid because the CRL is not valid yet.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_ee.TC.pem.crt
new file mode 100644
index 000000000..bc4cf6ff4
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDbzCCAlegAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDQ2WhcNMTgwNzI3MTMy
+NDQ2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJWomlxlqcdd/t7IQjIGy2M0nEP8Bah1ooLr
+Iq73gzeVFM4qIjKL2OyQYbJDLkMXWUmzmX5P5cGG3pjAJ+Van0ch+OL6Utj8RijJ
+Ufc10Oo/TIVzIXbMxIa1oLZ8gQ73nhFkNxQZxzgsKop8wPPTdo41p3DSw/+a9cD0
+bmqgjSMDYydfuo/42bLeSmlLYhF18T5C1gUn+JXMvQJSI6kLPczsi+mQ0N0GtV0C
+1whWBo1atAUK3OeYGRDzIXnE591vXICYg1JBjjEYe6VNK/B3vCEu/QFRLtF3IYHc
+loU4uurI8HfgeEbJ/H3/uDrUwgahuoIqRXtxNIQv1qGXwbAnPBcCAwEAAaOBsTCB
+rjA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vbG9jYWxob3N0L3N1YmNhL2NybGRw
+L2NybC5jcmwwHwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0O
+BBYEFITwNLOf7HFKC/d5A2X3c8Qdd3sQMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMB
+Af8EBTADAQEAMBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOC
+AQEABaLToWh/aCEOlWbi810W1FeAvkwJYSqyYK6hyFYiQ6dn0x4OnqytfVxYKaj6
+wp1OOy/aAG9sSak2/Yp18J7U9Nnl/fz66TNBwjsipAo2auHsqfvrxQl4xEyovdzp
+OhJY4gLUPrmbecsmI4UTU6Xl9IGMDh9LPAn1ErYUvvolJp9Y6XlSb/jHT/7BDMmq
+JwToSRDikiaCKtrjQvtgw5vFUfcBqKlQmy70ZxIHW92E4cq1twugzc1RpO/c0mxj
+zjd8FaHJYT9q6z5fRhloqN6w46mS9nbt8xa4As9ULoMcpeVglDXXLh+A8HLLudWD
+ZB6LDkS9rU3WAqYfPzNZ5AR06A==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_ee.pem
new file mode 100644
index 000000000..c2f12a5a5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCVqJpcZanHXf7e
+yEIyBstjNJxD/AWodaKC6yKu94M3lRTOKiIyi9jskGGyQy5DF1lJs5l+T+XBht6Y
+wCflWp9HIfji+lLY/EYoyVH3NdDqP0yFcyF2zMSGtaC2fIEO954RZDcUGcc4LCqK
+fMDz03aONadw0sP/mvXA9G5qoI0jA2MnX7qP+Nmy3kppS2IRdfE+QtYFJ/iVzL0C
+UiOpCz3M7IvpkNDdBrVdAtcIVgaNWrQFCtznmBkQ8yF5xOfdb1yAmINSQY4xGHul
+TSvwd7whLv0BUS7RdyGB3JaFOLrqyPB34HhGyfx9/7g61MIGobqCKkV7cTSEL9ah
+l8GwJzwXAgMBAAECggEAQYSdh0POjwRcdwWuzR3iXp0CqFSl2XkeWzg7Z+Pd4zB1
++kfBzuUgY3hV/OeiUibfpP9mfEDYMeAshSziimsg/dAmmJ/EM1BGGscABjzeKB7s
+DiQ4Cz1b8CmFoT5idb37yltYLYmXiMT1Hsm840G5Tkq48hCjU7xwSDf6Ot3sy92d
+X9Qc3ws2QVv7hhkuQJvyGl052OI4oU/U6HgnD/zxd5BetAa9zG5BkT2n3J81dDS8
+YPpnA+5sO7GEL7M++QEZ+bJhhvXAga61jQflSNu1notf66U2HXn7X2R2Qk15V5JZ
+ySzRTBynbCLgfAXS35SavFenuuq0oINvV4dMbjiGoQKBgQDFtggOFPIVm77ZPXXQ
++LNs7fNGM4aDQrvHri+j5xzuOTZ6kftJBCXUVNq5OuKbaxlhcaMJxr/z7xngXs8Z
+A+1NYNdiRNzJqU+uwNcY0QtvBpsSr5DEO6fiqb3WxAKyLJETeD9qIbTK36GShliz
+sqx5vpb64lg5coMfbiyouWnw0QKBgQDBx+EF3cpkgXYAd+lWFYl3yt6XEm9zfZZn
+VK2yW0+03xUVLyte1APdYxFTuD22W2cxq+1OyNGBT6jplL3f8Xb36LmmYWy7QYHx
+hbLYF7bD84zV4uLsItTQh7FXrtUw10+8s+fzUu/P4bacIuiebyiwdVH1g/AlUyYJ
+zqGWq6fYZwKBgE8wBm/lccS32avXEv487lh9wcdnUcP3EZD7sjcalRrRLYHQQG5R
+S/mMdwJjlGmdbs/5nMyIn09Lf/i+4IHrcbthQ0Mnw6q9tp2OvVhCOisg4TGNwhTm
+s+p0BAYmAdJtSTocGoIet/PduDAgwRxQPwaQEJax25Y+yEfpb9ewU79RAoGAF5Vj
+5Xrgruqymcv+MePdHx8ph+lOdxfJvjmoChTi1nhv8GwVMy1Kax8rdKzvlcn5/SmX
+cAcwuDQhsovPr/mLKRDBx2YD/aYzUlmbMoFwVNjHQyChzWtPyzE4fBtjBtatdaHP
+kOV/GiW2O7pj5SRSJ2ef2el8yI4eCwOC1vt9KfECgYBW51G7ijf+dyLWQc+1IFWn
+QakMYPxzVO0LwiQwTALTDsNQv3QR2wBJslVgDMbR0oNkoyy4eJ/3A0z92bwMTyVq
+F610JDh+LyYcpCEHBQlRq8GCqilKHQYqdYQp5/luOQt+nWb/rllYm1x9Zlbakdf7
+QIN5IZdQJkLNcMQ49t3Drw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_09/cert_path_CRL_09_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_09/crls/cert_path_CRL_09_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_09/crls/cert_path_CRL_09_crl.pem.crl
new file mode 100644
index 000000000..154f2541f
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_09/crls/cert_path_CRL_09_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBnTCBhgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0IFN1YiBD
+QTELMAkGA1UEBhMCREUXDTE3MDcxOTEzMjU0MFoXDTE3MDcyNjEzMjU0MFqgLzAt
+MB8GA1UdIwQYMBaAFOCMGappJZoaJQD2syi6G/cN+c/AMAoGA1UdFAQDAgEJMA0G
+CSqGSIb3DQEBCwUAA4IBAQC8GIH8U26/QarHuHL058tGPnBPLTiNK/zHr5SLJOkz
+LTwcK+djJEUiZu5DSHA4txLkfpjLq4XrzPvkaU/x+zct9DTu/qMp3rlB3CJi65UD
+Zk/gQyxtfrApx8HGGuSMc2185Cc2oknY5+ms0BUf9U/hStEnHVke3pS0celxB3wq
+IduPVH4z4cniKibJRmvBBooaCpsLmZozIFNoNcMgFA5um0/eE4QVXaDpuQBx4vgZ
+PZcJwwiVwrTKb1q66In3NltPgtvdvG6EBAMYBX80c2cSkxNNP6hZrpXUzICp8A7u
+6h3+FWO00yAud38/zWpC2i10ne0bEE91wfxdUK2endE0
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_09/crls/cert_path_CRL_09_root_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_09/crls/cert_path_CRL_09_root_crl.pem.crl
new file mode 100644
index 000000000..9610f9ffb
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_09/crls/cert_path_CRL_09_root_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBmzCBhAIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0IFJvb3Qx
+CzAJBgNVBAYTAkRFFw0xNzA3MjYxMzI1NDBaFw0xNzEwMjUxMzI1NDBaoC8wLTAK
+BgNVHRQEAwIBCTAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDANBgkq
+hkiG9w0BAQsFAAOCAQEAAGqI66MHfNv9xrUNDYfL6CEOZV4ef/NMss45u0dKo5tV
+Jq8pDromMR8kxqm0SOdI6Jrhrn+FppQI2TAkMbEzGxNKZmavpOBKOUscJ50ReI9S
+VfM/yBZDnt0hQzhNab+wTWMTfIadH3Ld1aVJYLAAbBpJzf74Av1mdfClVEQ+hv5e
+p+0JaPsLCkTWGrAzibxUY2Vb3UjSK/VxJC5Tgt8lgMptdz8/KfUgbvMklEllw05v
+PhZ+dlW1Gy65Wi45WpW6gwg+H+lFKYKCAsAB+AXp970+52DEmocm7KXMeiKs+JP4
+60Kf6S9KY4O2gG3TWqT9rvqJC7jkwfTBbuuLEi4qLQ==
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_09/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_09/description.txt
new file mode 100644
index 000000000..b5b92546f
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_09/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_09
+
+Purpose: Checks the behaviour of the application when a CRL has expired (now > nextUpdate). The target certificate is not contained in the CRL. This path is invalid because the CRL has expired.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_ee.TC.pem.crt
new file mode 100644
index 000000000..18774130d
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDajCCAlKgAwIBAgIC/u8wDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjQ1M1oXDTE4MDcyNzEz
+MjQ1M1owHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMnKBQr4thZFuPu4Faq7EINw3b8lmwWnRl
+hCMGgYrlH9ZzBEXF5e4OyC0yeZMGU2p1NFxXWYbXda5AKaz7UjfiTjxGMoGRWDAz
+pV2Pub6APad0yndST3SgDHTguBnD7ByVdONI99fzCP9MSFSLXT0p/KWxU3K/SPBY
+TKTm04dbEkZ1qY/E9yfhitiKwgQz2cyZb3vGVlyhZ1Um3nF/8d4I00wm9fMCCLzi
+fgLxIZiQDmmKtp+7pEdyoUdmPGTNCR/0fJURo3ueXR0ISDDaEpZmW7dq8r76uKhR
+7G5/gLJuSC3ZHFrtpzP8vtJiioN09O6IzZOJ9eEZhQCNDuc9vAWnAgMBAAGjgasw
+gagwLwYDVR0fBCgwJjAkoCKgIIYeaHR0cDovL2xvY2FsaG9zdC9jcmxkcC9jcmwu
+Y3JsMB8GA1UdIwQYMBaAFOCMGappJZoaJQD2syi6G/cN+c/AMB0GA1UdDgQWBBSU
+aRmCp9NenGzH62G4/W51q3qSaDAOBgNVHQ8BAf8EBAMCB4AwDwYDVR0TAQH/BAUw
+AwEBADAUBgNVHREEDTALgglkdW1teWhvc3QwDQYJKoZIhvcNAQELBQADggEBAHNE
+pqC3muoivzfMnNFfjZOKhqnZofyjZf8na9g0/WXdmSXnAB52vKcJ3AUzq7MCMeBG
+zhUa2DNC7TKXCfUQEnB+NQ145NWEZ0TSuRI86TlWPL4tfKnA2y5kMUgOqcZTsGTw
+rxRUfo2mkORArJUVsT2Jy4YfGhbqjQtX3pK+xgjJpVJvnxJ3dc9fbWlaXmPD2uyh
+okTzlflWJUWvF6xDrguoId8vcM9bmcT18fnFWoyZE0TQQOPzLaiL3jaMAMq67blI
++M1rduMN/eXDd9p21BmKhrw+SQY6Ami1gLRebg3TGybmtuEXhEQmNJ5CMUIw22kd
+Z5DisB60dg8Kch7B5oo=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_ee.pem
new file mode 100644
index 000000000..801a334e5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDMnKBQr4thZFuP
+u4Faq7EINw3b8lmwWnRlhCMGgYrlH9ZzBEXF5e4OyC0yeZMGU2p1NFxXWYbXda5A
+Kaz7UjfiTjxGMoGRWDAzpV2Pub6APad0yndST3SgDHTguBnD7ByVdONI99fzCP9M
+SFSLXT0p/KWxU3K/SPBYTKTm04dbEkZ1qY/E9yfhitiKwgQz2cyZb3vGVlyhZ1Um
+3nF/8d4I00wm9fMCCLzifgLxIZiQDmmKtp+7pEdyoUdmPGTNCR/0fJURo3ueXR0I
+SDDaEpZmW7dq8r76uKhR7G5/gLJuSC3ZHFrtpzP8vtJiioN09O6IzZOJ9eEZhQCN
+Duc9vAWnAgMBAAECggEALQIHAbiboEDDI0rLmXZK6tOxaMBWmkRLdkkqqzOzqdLn
+CUXXU0DQrM+7oW68uJeAw2dRKKW404w/WD3SnzXmtREgkRBrD92mPLYTbpodHXhy
+bW5b8O8paEtVKllU0ZQOdZHQrSxXhE5mWhFPB5jq62F30RnaE9mnhMTXQS8mhxGJ
+XdqHvldeKg14SKYno2X3s4mW4hy3jPzrRDY59aSUSk2FKMFxPhLRtSTmJ8tby8uf
+lVlQs2KymQRVT1650BNo7D0JUveCOhSZ6MPze5E3QnIEv4WXx0RcLgcdfMYdTrZU
+m8+j6yr65oQCN1dKpySVHQw1ZAuo1apgGSUBsvYUAQKBgQDle4F9+Gvi9DrcYVTW
+CkvqL4OSbwfJMFUK28MiWoXSCeM1bMQRPXS2eOKGWUtdnBn2Cb243Ozytr4VT9DF
+JLlyegO4/y9oqUCmJ8OvYlb7hvxkUHtWZ3XbAr3o19I8ZHsxSoF+fjgwyesa2i48
+MAiUjrkqvfKELRsGTT7g3McNYQKBgQDkQWdUsiLFnLKJQ+DQzGcLuk6abfkqbQOn
+LvOQSPbPNk+Qyo6dTSwJrj/L7Hr2ERag8nc7UJdm/ojfVyFNkMci1G9idwUr7r01
+27m0VdaMCGgBPzgzyHYrB4XUSiOgkmbs5FYbUedgFQNLpXT2UgG6RH97i39Ma6WK
+zuw+x2OoBwKBgET+tRgisI0z0N6hhNg1kE2Aq5ZDO5wJpAf3utuBS+qyflV5thlY
+2NZj0feCsV4bqNKIazpBchwnRU8zCBm9yOPaO3RLhP16pa1PF06LyoslMo0WhX6c
+7JpEYMS43sS5kTBorjZRzKMekkkof+4oouvHXXS0V03WIeHrJ5SDzHUBAoGAB9/t
+xbFDm9e1HSE3X1y97VynG5LRttH9/0WSZ5bs1OdFxXQHiYvBCjB1yP5Gm7ipNDJJ
+RMWaA5aieDoUTw3AoQX9NcNvbT2WT4ZeGMehWEFt/SUGNlsjIIbo6hMIuaBzZpbW
+Fak0t07iRzjVGS5pGtkEIOoGIUfRdUGASwYr/P8CgYEAm4D3nknbs98dht5Zf75P
+KBfk/Q9Nk0YWAgMHdil0QRey4n63CkoxTGhIFUDeuYR1rgBgu9O9sTskMlP49w7a
+TydrzDTcvxqPr0zpnQE1i/994OB6k9i+9rLEzC2d5+EJhH1NB5GMK8BGsuNmBvNP
+Rt1w8yP4i+N8HA7+4woAE7s=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_10/cert_path_CRL_10_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_10/crls/cert_path_CRL_10_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_10/crls/cert_path_CRL_10_crl.pem.crl
new file mode 100644
index 000000000..ca4b02c2f
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_10/crls/cert_path_CRL_10_crl.pem.crl
@@ -0,0 +1,12 @@
+-----BEGIN X509 CRL-----
+MIIBtDCBnQIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0IFN1YiBD
+QTELMAkGA1UEBhMCREUXDTE3MDcyNjEzMjQ1M1oXDTE3MTAyNTEzMjQ1M1owFTAT
+AgL+7xcNMTcwNzI2MDcyNDUzWqAvMC0wHwYDVR0jBBgwFoAU4IwZqmklmholAPaz
+KLob9w35z8AwCgYDVR0UBAMCAQowDQYJKoZIhvcNAQELBQADggEBABcBwk1WvZDd
+ablyHmeu57sBz+XNn6r436UqgiGXZfyfT8nIBnkhjdLn1daOkCsNgL1/i5BOPSZy
+Qqpte3n53Q2BxN+ON3RpLfxbCwnbo4Y3mShCzKpKnsGg3Rq0758wj8HhVP7Kw+/g
+gfvYU+hw9HKlGCgkouAn5xt2lLC4KLYhGCHwVlxzLr43ur7gUTBYyJXfe6Fc0lvx
+lIDbIqrD6Kh9M+llhXpHOGIRqyT5d7wcOaR+IZkL/sDDAJ2ZZeRRCPjkDRHJvoJJ
+bVUacNXcCA6dX2Pg2QbqtZXNNrCd1+sOvjBsHYJYiwF3vwQZaN28yJwHCKimu3Xl
+bVcjLlfHYBA=
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_10/crls/cert_path_CRL_10_root_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_10/crls/cert_path_CRL_10_root_crl.pem.crl
new file mode 100644
index 000000000..bf3f5537c
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_10/crls/cert_path_CRL_10_root_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBmzCBhAIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0IFJvb3Qx
+CzAJBgNVBAYTAkRFFw0xNzA3MjYxMzI0NTNaFw0xNzEwMjUxMzI0NTNaoC8wLTAK
+BgNVHRQEAwIBCjAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDANBgkq
+hkiG9w0BAQsFAAOCAQEAZd6IcgdotTqtJV8kG6P857c5AJMG5KO4O68NV8x1EBxO
+hPoqWL2KY9KjASKA+ISTwyyFtygdQhi6vn2FvB+g9z+RV/OyTH4oPNWNNT18Swhi
+CnjELf5FZIdP2y95V5XgWGL3EEB+1VOqt1l2NkD5S3LT0MEgkRkTpRBMb/R2RHdD
+6mrrZA6efOFg0G3Ywp334uqPVZnOvFH78Ohzx5T18WV+f/4EPiH0PhvQELkvSB/d
+++9VWADdsUd52nTAo2MlJBolj+XSfTdLuW0PC+WQ27B/qRT0wQmFJ+GsHis9MM2+
+P5NFB3DqaZ1YumD+dzrPxLb4DtN2mraLUaBql/c89Q==
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_10/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_10/description.txt
new file mode 100644
index 000000000..445040a18
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_10/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_10
+
+Purpose: Checks the behaviour of the application when the target certificate is contained in a CRL and this certificate has a negative serial number. This path is invalid because the certificate, even if malformed, is revoked.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_ee.TC.pem.crt
new file mode 100644
index 000000000..bc4cf6ff4
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDbzCCAlegAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDQ2WhcNMTgwNzI3MTMy
+NDQ2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJWomlxlqcdd/t7IQjIGy2M0nEP8Bah1ooLr
+Iq73gzeVFM4qIjKL2OyQYbJDLkMXWUmzmX5P5cGG3pjAJ+Van0ch+OL6Utj8RijJ
+Ufc10Oo/TIVzIXbMxIa1oLZ8gQ73nhFkNxQZxzgsKop8wPPTdo41p3DSw/+a9cD0
+bmqgjSMDYydfuo/42bLeSmlLYhF18T5C1gUn+JXMvQJSI6kLPczsi+mQ0N0GtV0C
+1whWBo1atAUK3OeYGRDzIXnE591vXICYg1JBjjEYe6VNK/B3vCEu/QFRLtF3IYHc
+loU4uurI8HfgeEbJ/H3/uDrUwgahuoIqRXtxNIQv1qGXwbAnPBcCAwEAAaOBsTCB
+rjA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vbG9jYWxob3N0L3N1YmNhL2NybGRw
+L2NybC5jcmwwHwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0O
+BBYEFITwNLOf7HFKC/d5A2X3c8Qdd3sQMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMB
+Af8EBTADAQEAMBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOC
+AQEABaLToWh/aCEOlWbi810W1FeAvkwJYSqyYK6hyFYiQ6dn0x4OnqytfVxYKaj6
+wp1OOy/aAG9sSak2/Yp18J7U9Nnl/fz66TNBwjsipAo2auHsqfvrxQl4xEyovdzp
+OhJY4gLUPrmbecsmI4UTU6Xl9IGMDh9LPAn1ErYUvvolJp9Y6XlSb/jHT/7BDMmq
+JwToSRDikiaCKtrjQvtgw5vFUfcBqKlQmy70ZxIHW92E4cq1twugzc1RpO/c0mxj
+zjd8FaHJYT9q6z5fRhloqN6w46mS9nbt8xa4As9ULoMcpeVglDXXLh+A8HLLudWD
+ZB6LDkS9rU3WAqYfPzNZ5AR06A==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_ee.pem
new file mode 100644
index 000000000..c2f12a5a5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCVqJpcZanHXf7e
+yEIyBstjNJxD/AWodaKC6yKu94M3lRTOKiIyi9jskGGyQy5DF1lJs5l+T+XBht6Y
+wCflWp9HIfji+lLY/EYoyVH3NdDqP0yFcyF2zMSGtaC2fIEO954RZDcUGcc4LCqK
+fMDz03aONadw0sP/mvXA9G5qoI0jA2MnX7qP+Nmy3kppS2IRdfE+QtYFJ/iVzL0C
+UiOpCz3M7IvpkNDdBrVdAtcIVgaNWrQFCtznmBkQ8yF5xOfdb1yAmINSQY4xGHul
+TSvwd7whLv0BUS7RdyGB3JaFOLrqyPB34HhGyfx9/7g61MIGobqCKkV7cTSEL9ah
+l8GwJzwXAgMBAAECggEAQYSdh0POjwRcdwWuzR3iXp0CqFSl2XkeWzg7Z+Pd4zB1
++kfBzuUgY3hV/OeiUibfpP9mfEDYMeAshSziimsg/dAmmJ/EM1BGGscABjzeKB7s
+DiQ4Cz1b8CmFoT5idb37yltYLYmXiMT1Hsm840G5Tkq48hCjU7xwSDf6Ot3sy92d
+X9Qc3ws2QVv7hhkuQJvyGl052OI4oU/U6HgnD/zxd5BetAa9zG5BkT2n3J81dDS8
+YPpnA+5sO7GEL7M++QEZ+bJhhvXAga61jQflSNu1notf66U2HXn7X2R2Qk15V5JZ
+ySzRTBynbCLgfAXS35SavFenuuq0oINvV4dMbjiGoQKBgQDFtggOFPIVm77ZPXXQ
++LNs7fNGM4aDQrvHri+j5xzuOTZ6kftJBCXUVNq5OuKbaxlhcaMJxr/z7xngXs8Z
+A+1NYNdiRNzJqU+uwNcY0QtvBpsSr5DEO6fiqb3WxAKyLJETeD9qIbTK36GShliz
+sqx5vpb64lg5coMfbiyouWnw0QKBgQDBx+EF3cpkgXYAd+lWFYl3yt6XEm9zfZZn
+VK2yW0+03xUVLyte1APdYxFTuD22W2cxq+1OyNGBT6jplL3f8Xb36LmmYWy7QYHx
+hbLYF7bD84zV4uLsItTQh7FXrtUw10+8s+fzUu/P4bacIuiebyiwdVH1g/AlUyYJ
+zqGWq6fYZwKBgE8wBm/lccS32avXEv487lh9wcdnUcP3EZD7sjcalRrRLYHQQG5R
+S/mMdwJjlGmdbs/5nMyIn09Lf/i+4IHrcbthQ0Mnw6q9tp2OvVhCOisg4TGNwhTm
+s+p0BAYmAdJtSTocGoIet/PduDAgwRxQPwaQEJax25Y+yEfpb9ewU79RAoGAF5Vj
+5Xrgruqymcv+MePdHx8ph+lOdxfJvjmoChTi1nhv8GwVMy1Kax8rdKzvlcn5/SmX
+cAcwuDQhsovPr/mLKRDBx2YD/aYzUlmbMoFwVNjHQyChzWtPyzE4fBtjBtatdaHP
+kOV/GiW2O7pj5SRSJ2ef2el8yI4eCwOC1vt9KfECgYBW51G7ijf+dyLWQc+1IFWn
+QakMYPxzVO0LwiQwTALTDsNQv3QR2wBJslVgDMbR0oNkoyy4eJ/3A0z92bwMTyVq
+F610JDh+LyYcpCEHBQlRq8GCqilKHQYqdYQp5/luOQt+nWb/rllYm1x9Zlbakdf7
+QIN5IZdQJkLNcMQ49t3Drw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_11/cert_path_CRL_11_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_11/crls/cert_path_CRL_11_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_11/crls/cert_path_CRL_11_crl.pem.crl
new file mode 100644
index 000000000..e34ef966d
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_11/crls/cert_path_CRL_11_crl.pem.crl
@@ -0,0 +1,12 @@
+-----BEGIN X509 CRL-----
+MIIBxzCBsAIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0IFN1YiBD
+QTELMAkGA1UEBhMCREUXDTE3MDcyNjEzMjQ1M1oXDTE3MTAyNTEzMjQ1M1owKDAm
+AgEBFw0xNzA3MjYwNzI0NTNaMBIwEAYFKgMEBQYBAf8EBAMCBaCgLzAtMB8GA1Ud
+IwQYMBaAFOCMGappJZoaJQD2syi6G/cN+c/AMAoGA1UdFAQDAgELMA0GCSqGSIb3
+DQEBCwUAA4IBAQBGpPVtx/Dk8c+d5W7DZAICtVfE95ge/FMi4BJbcVaILCf33A9J
+5BTploBvF/4SKGwq7v3PYzlTQAomOpx2kwPo738sA8ofFshbVCuCeMf0O8x7fKsE
+/eqk86njrpMebEV0fdkrkx2r5k7kiqWSo0Hwo3NxGl9sk+y9eVR/4FYDghLD+VJK
+5OkPOuvMIveUQQPRh7+ucHvT1BpW4G8YnC6dl/w9hludrUGDNTDYvKAFvcUvWwdQ
+eTXV/6dbkPt/BVC7KMiex4ky3lOeiiAmwrRJLlUvvTHdORQO04CbThK0AtM0bRSN
+jlVnoEIEi1c62+qYZNsMi8PrUopEF93XFmYw
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_11/crls/cert_path_CRL_11_root_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_11/crls/cert_path_CRL_11_root_crl.pem.crl
new file mode 100644
index 000000000..8b179cc81
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_11/crls/cert_path_CRL_11_root_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBmzCBhAIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0IFJvb3Qx
+CzAJBgNVBAYTAkRFFw0xNzA3MjYxMzI0NTNaFw0xNzEwMjUxMzI0NTNaoC8wLTAK
+BgNVHRQEAwIBCzAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDANBgkq
+hkiG9w0BAQsFAAOCAQEAOf6d2ItpAAWMVOrgfxSc8OvzlFtlJXEZydF1YxGbv2Vp
+oSt1DRaBhrzY4ADQx/EnZkYIO2MgtrJ8PJyISkTW92938FZtff6QwJ6S/GYhpbBG
+5naaJ2cHDoMS1HsKCo6/rA5837W0ZIcztomNxnYZd3EtGLcHRl7Np2TlCLzlPg8u
+Lm0zOKgY0W5TCp7WggK9wAaZiKeaCxe74aJYJ1Z+zOKnvR27U+RQ4gbt5bbYEVE3
+2HvMBfRc3M3a7W8YzahspMnw90qW5NzLnsEgy8Z6sM/tONddCKXoMowDeP0YjXnM
+7gRC6b8myWo7C9LyfSjeKvJqIW2Kf7ndgDA40LKRlA==
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_11/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_11/description.txt
new file mode 100644
index 000000000..b8d168608
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_11/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_11
+
+Purpose: Checks the behaviour of the application when a CRL contains a CRL Entry with an unknown critical extension. This path is invalid because the application cannot process the critical extension.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_ee.TC.pem.crt
new file mode 100644
index 000000000..eaea21716
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDbzCCAlegAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDUzWhcNMTgwNzI3MTMy
+NDUzWjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJmoYDdznQ+RwFtQO+bqi3mFmsZXGbDeYF+2
+wJ8R85/dZTfTOENl4HA6iEPhiqWqk+GdqdM0hWCS3grpSiD30sX4svj2xBD/QwUf
+RcCjOL6LzoHElliKTZLG2zdpP2Is5K/XroJlnkJMR1nboxnFBs7wwqxkfhq0VifP
+uU/v6RkPhBJAemTC/O7ddpVJfjRT9kGQRTzLvfGluP3AqGZLg5aknoq1ZC4e1UML
+ShsGKpLktEmxpJ8k696a9ZaB4nGBKkzCjKtMpMhPJ5+ewO7a+/VBEuNT3vl0/Tyr
+ARaS9E7BNfjyi/ISM7QDyBAObR47xrmpAUZAnMQ3oKV6UewKlBkCAwEAAaOBsTCB
+rjA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vbG9jYWxob3N0L3N1YmNhL2NybGRw
+L2NybC5jcmwwHwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0O
+BBYEFDM6cLUxGHJ8VZXvq+QohhdcmUbcMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMB
+Af8EBTADAQEAMBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOC
+AQEAgot0zpayEur6dOzJULj8VwBZM7BRZymIJtIW0ZNc/4KnBy/bbLzbDvClIEWR
+OgmGY7wER14w/nVRiRlCipMXHz3WUViqLyRii1IJION3T2vhmndE1Xc1/5Kymz1B
+2vUnnrN3pzfFpvXTJ1iE6PwtWL8VQNQxPLvEXzkKII3ESsCoEY/nCHGUnUWyTmDs
+Vz9SDjy9VDlyAx6CUrxWKCP54kIowKyKr9wLdh/+TpJ83O7tN1OItLHlws1Gqt8G
+X7X78d7px+sAm94kMnlZG0WNHDn3tnYbDvCAZ5UGCGX+AoD9axHxBZlWC/GDcdKl
+sVNDR9LC85Y28WLkjZWWbx13hA==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_ee.pem
new file mode 100644
index 000000000..3b4f7a17a
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCZqGA3c50PkcBb
+UDvm6ot5hZrGVxmw3mBftsCfEfOf3WU30zhDZeBwOohD4YqlqpPhnanTNIVgkt4K
+6Uog99LF+LL49sQQ/0MFH0XAozi+i86BxJZYik2Sxts3aT9iLOSv166CZZ5CTEdZ
+26MZxQbO8MKsZH4atFYnz7lP7+kZD4QSQHpkwvzu3XaVSX40U/ZBkEU8y73xpbj9
+wKhmS4OWpJ6KtWQuHtVDC0obBiqS5LRJsaSfJOvemvWWgeJxgSpMwoyrTKTITyef
+nsDu2vv1QRLjU975dP08qwEWkvROwTX48ovyEjO0A8gQDm0eO8a5qQFGQJzEN6Cl
+elHsCpQZAgMBAAECggEAK9hYUCpcxD8OOOAdn6gIkW32uqbK7WWe8WDX+Ovp7RGD
+GtlaAh1VXCDPljMK2Xfhh6zx8xLXBjYSRuHHpb2hdp0fEJx1WPZFnPYN9Mh+XhzN
+mcjLL8uTFBFLJzYQgIaX4Lc2E/5EGN3kNDdQhH9skGsx2Xg5ZYxU0zpaQf2OsXgC
+80rrVEzz0kJ2886WOP1Qm+xj7IjoCzZD135LM2g/ef4AJ2C43YhwiT18ueNTwhgM
+q5GPm3Icz9/MqwTOAW1PJWoLzga0VDqgX2qzSIEgD3LLkfBkFfgvS3Cy8X8YrixU
+qNVH5DqYSzVc9E3BFBwmH9LjqIDnFScHwAmmPiOOywKBgQDVmgCZ7NPfJBcAjilI
+cnQjff82Wfew9PMt7nie4M/Rp0So/VzHoIuoluyG+uDfjVqWojBtViSOl5OZ5Ee6
+MQdvat57BS3t7dHsgbgrFWZbu36qOSPnCco1/tFG90J/mYeIN0Pwoj9YQOlIQouK
+do+VQp7Zcf1PnE94TD6bRVs9lwKBgQC4KF+LtsWPcG86k9wjgFlgrC9dhPgBS29g
+BDYrdjMYMvCGXi5GBLQQAQ5iGmb3X4loPyPPbgyJoawMf4yTCk8NVL4xqueBsPn5
+kG0FJF2Za8Me1ZHh0qDGRlhLbvPGlnqFbpZ4FPIHIOqm/JKkwMaomtgkLrAY6MT7
+3Rr25FFRzwKBgQDUE4SXT3GJMn74GS3Z9XFkL9wt7aOkeX/c0dHHBTSxVx8vneb5
+eWhQahDLb9nHe8Q+nSfx1r6TKOHuwJ2KutVEBVqB0EGq4x4zcRQXCrdHSuBXSEZi
+RPEVLTxB9ot6v0e2shBtodm82S4FhbSgNFkY/D1VbfzwhyTMLv9WEMWnXwKBgQCC
+jqzeIh+Bh5ZzkuvYh1/V93xE8sXYNSCqk5HL0ip7F3IJ8K8hmKgHSJhn2IvzCFoj
++89peX2N/X46BhslC4Pr0Y5dK+qguVUfJtMDeDqbUBiuvX6E+IxexPRH1kshGQGX
+o0UtsLu9bgqthBZ6kujEE7L0Q904a51rad959XfpZQKBgCD2keOIQi4ChFLAMxFu
+n9O6TU82d/0bdgJGp5s/X5q3EB7cGiGMGf5pr1NdCJYGXqf7kdmQeN7PBNu5qYPX
+bZ2GKaRjbbX7QR+T3jfgPhE7i/3lm+/d9w3lsZ5Gwlc20YTu2Uyj3hgXacb61+d2
+Tx72Khaq6Njvbm1u7sfGXDtG
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_12/cert_path_CRL_12_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_12/crls/cert_path_CRL_12_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_12/crls/cert_path_CRL_12_crl.pem.crl
new file mode 100644
index 000000000..53b2aedca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_12/crls/cert_path_CRL_12_crl.pem.crl
@@ -0,0 +1,12 @@
+-----BEGIN X509 CRL-----
+MIIB2zCBxAIBATANBgkqhkiG9w0BAQsFADApMRowGAYDVQQDDBFUZXN0IFN1YiBD
+QSBObyBUQTELMAkGA1UEBhMCREUXDTE3MDcyNjEzMjQ1NFoXDTE3MTAyNTEzMjQ1
+NFqgZzBlMB8GA1UdIwQYMBaAFCN/JVKvl3epiBIA4wDB5toErmdkMAoGA1UdFAQD
+AgEMMDYGA1UdHAEB/wQsMCqgKKAmhiRodHRwOi8vbG9jYWxob3N0L3N1YmNhL2Ny
+bGRwL2NybC5jcmwwDQYJKoZIhvcNAQELBQADggEBABP6PnvPgQw7nksO74MscSxq
+C5/lnosoTRaqxb+V/gp70SW/DwQRSPBG8tVPfKri37/nuWxupRCWtHMZQV/BRLr/
+2q3XLqOQgRuqWOy4nUjXKk5eWURIamyRH52GC0AY+br1FfyM3KtTkOXB/HKbhRR/
+K0Mbz8TjB12gpcBAiHDlfUQZYghROHKzNe2JVFc7HbEww2ah6syeeaavNfoS9286
++2RymlzlxWRhEAd1rDtx33W0aKTTV0ukG5y696TEM6+nJjtIhUGAbNX2/gXEMUB8
+HWWFn3QAOkks8bqblcRRt8y+OQr0g05yrt7uvE98Fy7LP0Xd6Z7qRaKUizv8r+Y=
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_12/crls/cert_path_CRL_12_root_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_12/crls/cert_path_CRL_12_root_crl.pem.crl
new file mode 100644
index 000000000..78c27962a
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_12/crls/cert_path_CRL_12_root_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBmzCBhAIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0IFJvb3Qx
+CzAJBgNVBAYTAkRFFw0xNzA3MjYxMzI0NTRaFw0xNzEwMjUxMzI0NTRaoC8wLTAK
+BgNVHRQEAwIBDDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDANBgkq
+hkiG9w0BAQsFAAOCAQEAZyBUN/PktkNRUSdu7wTZU/QtHVNDLCWs1m+tnMMaRIJ5
+Qm6lkpPpGKk9LMUhZt0BMRiLkQC/420iKlCrkysjyOOu1S1Dfg41xFYP/gACqLBP
+cYCqsuy8y6s4kd6KvanXYOn8z5lYlDfNma4VIyWyZSMfzI9PXyBbfVmk8JHrjjgl
+Xm0TJkoHEi1kJgHz4FhunXYOHw7g4ef/4fV5BA+NiqprpCA2fDuApzW8qVUzzbhZ
+QmtWM4qHTN88PkFt4tWyPfZESUk+fcdF5WepFLrP/gsXlT+u5/O2RtFS3IOeIenF
+TOlx5dIp0dyVtRQkZPFmWTqr8eT+Fl19AGR2MG2IXg==
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_12/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_12/description.txt
new file mode 100644
index 000000000..0e8c4da0c
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_12/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_12
+
+Purpose: Checks the behaviour of the application when the CRL's signature can be verified by a certificate whose certification path is invalid. This path is invalid because revocation information for a certificate is not available.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_ee.TC.pem.crt
new file mode 100644
index 000000000..d754908b3
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDczCCAlugAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDU0WhcNMTgwNzI3MTMy
+NDU0WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKunhcakAtYifStzf2KMdg76EtHYy/kYoI80
+4qBJC2ZKhiOEJa06MDAZr3t0Zhv2ND24S8tyjs0Ed2iSsyMXFRWv+3SgcWr4wJXS
+1765HPNbjDGsu12ciuitf8G/OaiQg5RfnY/yJB+4CdSvmO1KyKptVkS3bSbzSxR7
+ZHMSY7vy6C7eNxbMbzsL32Ty+Fs8yv60YtahkrmfHTRzgs5g8tmUHcZLZHvTeUTM
+AdYY3V8bVRkzfLE3oYpEBQNABHAgs3o/Z1whrV1y50eN19C1PH+ISEu4Iqti0dBJ
+QI/71yqE/pe+kBYxGUHNrXbsF6gD32ilEAEuW+63o1EK+EBufWcCAwEAAaOBtTCB
+sjA5BgNVHR8EMjAwMC6gLKAqpCgwJjEXMBUGA1UEAwwORGlmZmVyZW50IFRlc3Qx
+CzAJBgNVBAYTAkRFMB8GA1UdIwQYMBaAFOCMGappJZoaJQD2syi6G/cN+c/AMB0G
+A1UdDgQWBBTDBeNZY9qPnPXnjnWWJeq8ja2izjAOBgNVHQ8BAf8EBAMCB4AwDwYD
+VR0TAQH/BAUwAwEBADAUBgNVHREEDTALgglkdW1teWhvc3QwDQYJKoZIhvcNAQEL
+BQADggEBADqmJXusKHOx8UavL8SgubAbaAW4XMWrQirEIzzobjORA5TA7In8Nq1P
+F2BxlhV6V/yeQdUAZyDWYbCXRnPxdOwtOEVMinOCVkA9ez0IjKhFRS26IEOQXOKn
+XB5cdylee/A8tJ0Q0RrrPrNSklKr2BgI/IE3SG3Ny2KEBdTUEN0NFHhO8aeikB2f
+c9Ec9WDcMF/yHQGUFMhPw7tyZbMwEcDpUMdI9E4DzmSI3NRvaBzn6LA+9TDzRRN1
+N2+2zZbE8IKnFYnDKPcDdcZ2+FyPY0px3Glv1FVLBVbOxp+90ZWeAjI6Dmfs6vBe
+IwhDXEXvU4sNahHJVIdT7gCbfHSLlFU=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_ee.pem
new file mode 100644
index 000000000..f3f3ba0d5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCrp4XGpALWIn0r
+c39ijHYO+hLR2Mv5GKCPNOKgSQtmSoYjhCWtOjAwGa97dGYb9jQ9uEvLco7NBHdo
+krMjFxUVr/t0oHFq+MCV0te+uRzzW4wxrLtdnIrorX/BvzmokIOUX52P8iQfuAnU
+r5jtSsiqbVZEt20m80sUe2RzEmO78ugu3jcWzG87C99k8vhbPMr+tGLWoZK5nx00
+c4LOYPLZlB3GS2R703lEzAHWGN1fG1UZM3yxN6GKRAUDQARwILN6P2dcIa1dcudH
+jdfQtTx/iEhLuCKrYtHQSUCP+9cqhP6XvpAWMRlBza127BeoA99opRABLlvut6NR
+CvhAbn1nAgMBAAECggEASGtlf7Bbd/9WArp4MFolRt1PilQmfiHbP3/m6wvWMOJZ
+JGvQv3xQr0Ju7C1oFPzy/mUeKSfcQnfTbv2RcUkAPsWf140HPMPU8IDjP9Z2dd+W
+TrDa3bw5SMBGKbYlO844jSUn4v6cKfupvh8VbGuELI7zegtPFENJ1krWzsuf4z9/
+uQtpodVlQxunCIXltY6746fK+R0c20idUFPPv2A97nXSmHveYV34aPhQHXRsMKTu
+uPMmBRgvpEbtXQBZvSv8vF3/h5apaq4YuC7BJWeD06Aw8sQNd/FiKIkB1G8KFF3b
+kr/d9JHNzI+ye88yYJQGhqRkUS0lrpreSi36FLavgQKBgQDU+SuALHUSSVH3xFSN
+C4RS6Ax07ospHLnD/7rvv9ys0MpGtyJGiux97GDKeVKT0DQbh0tZQ76YJ45XtCTd
+Pb3lubhPm7UoDXFVq+T8LQh4vgpUPZ8Dv4YRR8ah7wne53++ZnxvdKU+bnT4p9ua
+TR2AmPi1idHtYN87zaO3haC7gQKBgQDOVV3OMbsL7OrEPlLpcHI5MK4/SrvzPGpQ
+BGTM7nQmtvdpQbylsgN37CnSJKgpoiaqyFErhaxcQtTFbvC4/oe6fsUUw9DCuQJz
+BOd1P/rN+efLTGVKWE6PTiCq+c19ekgv/3ONrmeBkVmhufsFgdanFDK1JCmGHYNT
+nHR+vjtM5wKBgQC3+6mAyOc6LO0Kxijk0BY4KQ7Z1VmS4qX4lGvBwlW5VYXpITwT
+BODYx+O2Bqk32J2rSm3lZ4i3mTR2v8E4/6WVV6PJ4hHV0Acgo6bl02GGLWZu7+z3
+J/WB6CfIrOAyGHta2N6WyoYWMQYL6bbkzcm21m/FJJKeJxmyaCwO1vnMAQKBgCws
+rKOrk/8unuia60ddMqc52+RjDLA7vAsblbUmTCnJvFiFoWzcGs/++Mkr3fDj7WFc
+97vYp5ktGb6XTOReYhK0d19FuRknYPXdE+zPYNPecBjfZ0QuectGj8nrJ2p41qGo
+EEZCE5jy1HzCg5KfRKSKt3x+nIFBKk+pTGuiMLH7AoGBAJ7VZFGObG8bXatDnPdM
+Q9g87Ja6iti7JFPp47O0FgUWwNHmPMY3xgzR/vUZGzezZ972wjsOteiIU1W6smc5
+HNfPjj5jWNj6FPBWsQBXvZzjgZX7ps5NU8HYaMqsUzfvo31WpjnMeSgDLh7CjOYY
+Zfj/jtwh/dFOYiJ0nrYHmjsi
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_13/cert_path_CRL_13_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_13/crls/cert_path_CRL_13_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_13/crls/cert_path_CRL_13_crl.pem.crl
new file mode 100644
index 000000000..ae18b381e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_13/crls/cert_path_CRL_13_crl.pem.crl
@@ -0,0 +1,12 @@
+-----BEGIN X509 CRL-----
+MIIB1jCBvwIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0IFN1YiBD
+QTELMAkGA1UEBhMCREUXDTE3MDcyNjEzMjQ1NFoXDTE3MTAyNTEzMjQ1NFqgaDBm
+MB8GA1UdIwQYMBaAFOCMGappJZoaJQD2syi6G/cN+c/AMAoGA1UdFAQDAgENMDcG
+A1UdHAEB/wQtMCugKaAnpCUwIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNV
+BAYTAkRFMA0GCSqGSIb3DQEBCwUAA4IBAQC2/Df+7pIVjhYPwm5CcPdo17fKqFEX
+T87rRxyh3fy7T9TrHUiAoEVZsNAfn/nEPxiKEDi4NCcQobrvZTgY8/bl+Xb8f8lB
+XKKYJAv7ShYNzWuF40ANRT+on+p3DfH086B/waK8TZISULwTsyAnkNF3eLbBnuDQ
+ShP0uJoFta0P44WgSTIMIN4NlwJg92DG0Ywv4sUAUWG7jrRDb9Ydn0J09zb+zVUa
+m1ZnFpVPwnEZKmQ02xMVmijKFqCHFBFc2dUXDilDN23UAuxKHo6YpkkUlu/DWsDH
+ZuKcjAIWfiMaCDBsuDuSrWXDX7uzsj5XXh07tEp2ePCGIZOaMSWakSMX
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_13/crls/cert_path_CRL_13_root_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_13/crls/cert_path_CRL_13_root_crl.pem.crl
new file mode 100644
index 000000000..cc2025844
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_13/crls/cert_path_CRL_13_root_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBmzCBhAIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0IFJvb3Qx
+CzAJBgNVBAYTAkRFFw0xNzA3MjYxMzI0NTRaFw0xNzEwMjUxMzI0NTRaoC8wLTAK
+BgNVHRQEAwIBDTAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDANBgkq
+hkiG9w0BAQsFAAOCAQEAb4U0Ah0R63kL0XfznmvsmwZjsgEI4fdFf2QMUV1TCjCt
+uTCiK7NvsvWW1kTxRJQJtsboEFQiDnFLmx7gg1Gztm/CZSrTIXdOjHJQ97MX+AvC
+i5iCRFNKvbjQFryfuWI9/JRys7WqZWHp5biCS8T5YttzPxxlL+I1ZCbrzuuhLxTC
+jOTylugwgkVJ7D5SLRR7qjQsnMLVretJZuGWKlupsH2fhTu53z/DsC4UMsmOPks5
+Vk5UC8n4zszrM7G+G+CPh3ju82E6cuFLV0BDgRfezosfH0/kcJ3++x2vaBkzXpdn
+zcMxKTgpb92TWtEzTFrVXXduBDFXKt0kt8zvfoUPYg==
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_13/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_13/description.txt
new file mode 100644
index 000000000..154c67b2d
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_13/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_13
+
+Purpose: Checks the behaviour of the application when the certificate's CRL distribution point and the issuing distribution point of a CRL issued by the issuer of the certificate do not match. The target certificate is not contained in the CRL. This path is invalid because the CRL located at the CRLDP of the certificate has a different distribution point and no other CRLs for determining the status of the certificate are available.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_ee.TC.pem.crt
new file mode 100644
index 000000000..bc4cf6ff4
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDbzCCAlegAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDQ2WhcNMTgwNzI3MTMy
+NDQ2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJWomlxlqcdd/t7IQjIGy2M0nEP8Bah1ooLr
+Iq73gzeVFM4qIjKL2OyQYbJDLkMXWUmzmX5P5cGG3pjAJ+Van0ch+OL6Utj8RijJ
+Ufc10Oo/TIVzIXbMxIa1oLZ8gQ73nhFkNxQZxzgsKop8wPPTdo41p3DSw/+a9cD0
+bmqgjSMDYydfuo/42bLeSmlLYhF18T5C1gUn+JXMvQJSI6kLPczsi+mQ0N0GtV0C
+1whWBo1atAUK3OeYGRDzIXnE591vXICYg1JBjjEYe6VNK/B3vCEu/QFRLtF3IYHc
+loU4uurI8HfgeEbJ/H3/uDrUwgahuoIqRXtxNIQv1qGXwbAnPBcCAwEAAaOBsTCB
+rjA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vbG9jYWxob3N0L3N1YmNhL2NybGRw
+L2NybC5jcmwwHwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0O
+BBYEFITwNLOf7HFKC/d5A2X3c8Qdd3sQMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMB
+Af8EBTADAQEAMBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOC
+AQEABaLToWh/aCEOlWbi810W1FeAvkwJYSqyYK6hyFYiQ6dn0x4OnqytfVxYKaj6
+wp1OOy/aAG9sSak2/Yp18J7U9Nnl/fz66TNBwjsipAo2auHsqfvrxQl4xEyovdzp
+OhJY4gLUPrmbecsmI4UTU6Xl9IGMDh9LPAn1ErYUvvolJp9Y6XlSb/jHT/7BDMmq
+JwToSRDikiaCKtrjQvtgw5vFUfcBqKlQmy70ZxIHW92E4cq1twugzc1RpO/c0mxj
+zjd8FaHJYT9q6z5fRhloqN6w46mS9nbt8xa4As9ULoMcpeVglDXXLh+A8HLLudWD
+ZB6LDkS9rU3WAqYfPzNZ5AR06A==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_ee.pem
new file mode 100644
index 000000000..c2f12a5a5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCVqJpcZanHXf7e
+yEIyBstjNJxD/AWodaKC6yKu94M3lRTOKiIyi9jskGGyQy5DF1lJs5l+T+XBht6Y
+wCflWp9HIfji+lLY/EYoyVH3NdDqP0yFcyF2zMSGtaC2fIEO954RZDcUGcc4LCqK
+fMDz03aONadw0sP/mvXA9G5qoI0jA2MnX7qP+Nmy3kppS2IRdfE+QtYFJ/iVzL0C
+UiOpCz3M7IvpkNDdBrVdAtcIVgaNWrQFCtznmBkQ8yF5xOfdb1yAmINSQY4xGHul
+TSvwd7whLv0BUS7RdyGB3JaFOLrqyPB34HhGyfx9/7g61MIGobqCKkV7cTSEL9ah
+l8GwJzwXAgMBAAECggEAQYSdh0POjwRcdwWuzR3iXp0CqFSl2XkeWzg7Z+Pd4zB1
++kfBzuUgY3hV/OeiUibfpP9mfEDYMeAshSziimsg/dAmmJ/EM1BGGscABjzeKB7s
+DiQ4Cz1b8CmFoT5idb37yltYLYmXiMT1Hsm840G5Tkq48hCjU7xwSDf6Ot3sy92d
+X9Qc3ws2QVv7hhkuQJvyGl052OI4oU/U6HgnD/zxd5BetAa9zG5BkT2n3J81dDS8
+YPpnA+5sO7GEL7M++QEZ+bJhhvXAga61jQflSNu1notf66U2HXn7X2R2Qk15V5JZ
+ySzRTBynbCLgfAXS35SavFenuuq0oINvV4dMbjiGoQKBgQDFtggOFPIVm77ZPXXQ
++LNs7fNGM4aDQrvHri+j5xzuOTZ6kftJBCXUVNq5OuKbaxlhcaMJxr/z7xngXs8Z
+A+1NYNdiRNzJqU+uwNcY0QtvBpsSr5DEO6fiqb3WxAKyLJETeD9qIbTK36GShliz
+sqx5vpb64lg5coMfbiyouWnw0QKBgQDBx+EF3cpkgXYAd+lWFYl3yt6XEm9zfZZn
+VK2yW0+03xUVLyte1APdYxFTuD22W2cxq+1OyNGBT6jplL3f8Xb36LmmYWy7QYHx
+hbLYF7bD84zV4uLsItTQh7FXrtUw10+8s+fzUu/P4bacIuiebyiwdVH1g/AlUyYJ
+zqGWq6fYZwKBgE8wBm/lccS32avXEv487lh9wcdnUcP3EZD7sjcalRrRLYHQQG5R
+S/mMdwJjlGmdbs/5nMyIn09Lf/i+4IHrcbthQ0Mnw6q9tp2OvVhCOisg4TGNwhTm
+s+p0BAYmAdJtSTocGoIet/PduDAgwRxQPwaQEJax25Y+yEfpb9ewU79RAoGAF5Vj
+5Xrgruqymcv+MePdHx8ph+lOdxfJvjmoChTi1nhv8GwVMy1Kax8rdKzvlcn5/SmX
+cAcwuDQhsovPr/mLKRDBx2YD/aYzUlmbMoFwVNjHQyChzWtPyzE4fBtjBtatdaHP
+kOV/GiW2O7pj5SRSJ2ef2el8yI4eCwOC1vt9KfECgYBW51G7ijf+dyLWQc+1IFWn
+QakMYPxzVO0LwiQwTALTDsNQv3QR2wBJslVgDMbR0oNkoyy4eJ/3A0z92bwMTyVq
+F610JDh+LyYcpCEHBQlRq8GCqilKHQYqdYQp5/luOQt+nWb/rllYm1x9Zlbakdf7
+QIN5IZdQJkLNcMQ49t3Drw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_14/cert_path_CRL_14_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_14/crls/cert_path_CRL_14_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_14/crls/cert_path_CRL_14_crl.pem.crl
new file mode 100644
index 000000000..09360427c
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_14/crls/cert_path_CRL_14_crl.pem.crl
@@ -0,0 +1,6 @@
+-----BEGIN X509 CRL-----
+MIGYMIGGAgEBMA0GCSqGSIb3DQEBCwUAMCMxFDASBgNVBAMMC1Rlc3QgU3ViIENB
+MQswCQYDVQQGEwJERRcNMTcwNzI2MTMyNDU0WhcNMTcxMDI1MTMyNDU0WqAvMC0w
+HwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwCgYDVR0UBAMCAQ4wDQYJ
+KoZIhvcNAQELBQA=
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_14/crls/cert_path_CRL_14_root_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_14/crls/cert_path_CRL_14_root_crl.pem.crl
new file mode 100644
index 000000000..80e979953
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_14/crls/cert_path_CRL_14_root_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBmzCBhAIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0IFJvb3Qx
+CzAJBgNVBAYTAkRFFw0xNzA3MjYxMzI0NTRaFw0xNzEwMjUxMzI0NTRaoC8wLTAK
+BgNVHRQEAwIBDjAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDANBgkq
+hkiG9w0BAQsFAAOCAQEAO2aU2IabdYF3cJfJXKUrVOPxnJ94U1W/EpKuFbCWWO8d
+AvKDtmx57q+vGEK2Tg/wuj7wbOky/K9REDD+Q8iyJec7sTcwf6/C+Y4165r8rY4r
+31ojldPFohrmE728fpLXJqSyjJaNVIvg1Efz5TNCZc90Yu2AXVBG82bA5lhOMD99
+ol5Z2yERMPDMLwNDV2oRu5EMxp2Sfvk2oeoqwhEYQ6TBaOoN7QturEdDiQta+ZyY
+6rGDWGepgZi+AKnS0yyK/sqSDsU0fwYscQXapE6qpshs051px11iplpjeBoifBCb
+7+a6gdlHmsEq2/E/Ihp6P3p27jHldCAu0A3s8ETwSw==
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_14/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_14/description.txt
new file mode 100644
index 000000000..31e9d8f01
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_14/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_14
+
+Purpose: Checks the behaviour of the application when the CRL does not have a signature. This path is invalid because the integrity and authenticity of the source of revocation information cannot be verified.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_ee.TC.pem.crt
new file mode 100644
index 000000000..bc4cf6ff4
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDbzCCAlegAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDQ2WhcNMTgwNzI3MTMy
+NDQ2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJWomlxlqcdd/t7IQjIGy2M0nEP8Bah1ooLr
+Iq73gzeVFM4qIjKL2OyQYbJDLkMXWUmzmX5P5cGG3pjAJ+Van0ch+OL6Utj8RijJ
+Ufc10Oo/TIVzIXbMxIa1oLZ8gQ73nhFkNxQZxzgsKop8wPPTdo41p3DSw/+a9cD0
+bmqgjSMDYydfuo/42bLeSmlLYhF18T5C1gUn+JXMvQJSI6kLPczsi+mQ0N0GtV0C
+1whWBo1atAUK3OeYGRDzIXnE591vXICYg1JBjjEYe6VNK/B3vCEu/QFRLtF3IYHc
+loU4uurI8HfgeEbJ/H3/uDrUwgahuoIqRXtxNIQv1qGXwbAnPBcCAwEAAaOBsTCB
+rjA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vbG9jYWxob3N0L3N1YmNhL2NybGRw
+L2NybC5jcmwwHwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0O
+BBYEFITwNLOf7HFKC/d5A2X3c8Qdd3sQMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMB
+Af8EBTADAQEAMBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOC
+AQEABaLToWh/aCEOlWbi810W1FeAvkwJYSqyYK6hyFYiQ6dn0x4OnqytfVxYKaj6
+wp1OOy/aAG9sSak2/Yp18J7U9Nnl/fz66TNBwjsipAo2auHsqfvrxQl4xEyovdzp
+OhJY4gLUPrmbecsmI4UTU6Xl9IGMDh9LPAn1ErYUvvolJp9Y6XlSb/jHT/7BDMmq
+JwToSRDikiaCKtrjQvtgw5vFUfcBqKlQmy70ZxIHW92E4cq1twugzc1RpO/c0mxj
+zjd8FaHJYT9q6z5fRhloqN6w46mS9nbt8xa4As9ULoMcpeVglDXXLh+A8HLLudWD
+ZB6LDkS9rU3WAqYfPzNZ5AR06A==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_ee.pem
new file mode 100644
index 000000000..c2f12a5a5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCVqJpcZanHXf7e
+yEIyBstjNJxD/AWodaKC6yKu94M3lRTOKiIyi9jskGGyQy5DF1lJs5l+T+XBht6Y
+wCflWp9HIfji+lLY/EYoyVH3NdDqP0yFcyF2zMSGtaC2fIEO954RZDcUGcc4LCqK
+fMDz03aONadw0sP/mvXA9G5qoI0jA2MnX7qP+Nmy3kppS2IRdfE+QtYFJ/iVzL0C
+UiOpCz3M7IvpkNDdBrVdAtcIVgaNWrQFCtznmBkQ8yF5xOfdb1yAmINSQY4xGHul
+TSvwd7whLv0BUS7RdyGB3JaFOLrqyPB34HhGyfx9/7g61MIGobqCKkV7cTSEL9ah
+l8GwJzwXAgMBAAECggEAQYSdh0POjwRcdwWuzR3iXp0CqFSl2XkeWzg7Z+Pd4zB1
++kfBzuUgY3hV/OeiUibfpP9mfEDYMeAshSziimsg/dAmmJ/EM1BGGscABjzeKB7s
+DiQ4Cz1b8CmFoT5idb37yltYLYmXiMT1Hsm840G5Tkq48hCjU7xwSDf6Ot3sy92d
+X9Qc3ws2QVv7hhkuQJvyGl052OI4oU/U6HgnD/zxd5BetAa9zG5BkT2n3J81dDS8
+YPpnA+5sO7GEL7M++QEZ+bJhhvXAga61jQflSNu1notf66U2HXn7X2R2Qk15V5JZ
+ySzRTBynbCLgfAXS35SavFenuuq0oINvV4dMbjiGoQKBgQDFtggOFPIVm77ZPXXQ
++LNs7fNGM4aDQrvHri+j5xzuOTZ6kftJBCXUVNq5OuKbaxlhcaMJxr/z7xngXs8Z
+A+1NYNdiRNzJqU+uwNcY0QtvBpsSr5DEO6fiqb3WxAKyLJETeD9qIbTK36GShliz
+sqx5vpb64lg5coMfbiyouWnw0QKBgQDBx+EF3cpkgXYAd+lWFYl3yt6XEm9zfZZn
+VK2yW0+03xUVLyte1APdYxFTuD22W2cxq+1OyNGBT6jplL3f8Xb36LmmYWy7QYHx
+hbLYF7bD84zV4uLsItTQh7FXrtUw10+8s+fzUu/P4bacIuiebyiwdVH1g/AlUyYJ
+zqGWq6fYZwKBgE8wBm/lccS32avXEv487lh9wcdnUcP3EZD7sjcalRrRLYHQQG5R
+S/mMdwJjlGmdbs/5nMyIn09Lf/i+4IHrcbthQ0Mnw6q9tp2OvVhCOisg4TGNwhTm
+s+p0BAYmAdJtSTocGoIet/PduDAgwRxQPwaQEJax25Y+yEfpb9ewU79RAoGAF5Vj
+5Xrgruqymcv+MePdHx8ph+lOdxfJvjmoChTi1nhv8GwVMy1Kax8rdKzvlcn5/SmX
+cAcwuDQhsovPr/mLKRDBx2YD/aYzUlmbMoFwVNjHQyChzWtPyzE4fBtjBtatdaHP
+kOV/GiW2O7pj5SRSJ2ef2el8yI4eCwOC1vt9KfECgYBW51G7ijf+dyLWQc+1IFWn
+QakMYPxzVO0LwiQwTALTDsNQv3QR2wBJslVgDMbR0oNkoyy4eJ/3A0z92bwMTyVq
+F610JDh+LyYcpCEHBQlRq8GCqilKHQYqdYQp5/luOQt+nWb/rllYm1x9Zlbakdf7
+QIN5IZdQJkLNcMQ49t3Drw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_15/cert_path_CRL_15_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_15/crls/cert_path_CRL_15_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_15/crls/cert_path_CRL_15_crl.pem.crl
new file mode 100644
index 000000000..3bbe4d53a
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_15/crls/cert_path_CRL_15_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBnTCBhgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0IFN1YiBD
+QTELMAkGA1UEBhMCREUXDTE3MDcyNjEzMjQ1NFoXDTE3MTAyNTEzMjQ1NFqgLzAt
+MB8GA1UdIwQYMBaAFOCMGappJZoaJQD2syi6G/cN+c/AMAoGA1UdFAQDAgEPMA0G
+CSqGSIb3DQEBCwUAA4IBAQBBqsPMC7wZMLXas8fEtyuDNEc5YAGt5GbhSD5rPIRx
+3MjMivzBTehHJGjltw11361jyxnUiGgncV3nXGeiYNsHUB3SCpamNOzw/2JkQH3n
+uF4JU3EqCq4hfSWA1+ZwQvSdhfyOQLqtOrns7dTCdbHXnYpdTWDxb0Mt231WOOME
+Ho/Rm1fQHrximADU1A3EQUSRjc6fJFT2bcujMRgO/mpNSRAgfrO/fDVCfm7NmTpr
+whfoUTHs1yNZ9LnFplHZnhAE1eRFVA93Y08Zjjtnw7eHg80E89cua1tcqkJ6LUnz
+upS2MmGA1dJ6Ek3LWFWHyJQ8dZghorJycxvOAElHSTPv
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_15/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_15/description.txt
new file mode 100644
index 000000000..8fa3bfa9b
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_15/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_15
+
+Purpose: Checks the behaviour of the application when the CRL for an intermediate certificate is missing. This path is invalid because revocation information for a CA certificate in the path is not available. Furthermore, no CRL with matching distribution point can be found.
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_ee.TC.pem.crt
new file mode 100644
index 000000000..bc4cf6ff4
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDbzCCAlegAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDQ2WhcNMTgwNzI3MTMy
+NDQ2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJWomlxlqcdd/t7IQjIGy2M0nEP8Bah1ooLr
+Iq73gzeVFM4qIjKL2OyQYbJDLkMXWUmzmX5P5cGG3pjAJ+Van0ch+OL6Utj8RijJ
+Ufc10Oo/TIVzIXbMxIa1oLZ8gQ73nhFkNxQZxzgsKop8wPPTdo41p3DSw/+a9cD0
+bmqgjSMDYydfuo/42bLeSmlLYhF18T5C1gUn+JXMvQJSI6kLPczsi+mQ0N0GtV0C
+1whWBo1atAUK3OeYGRDzIXnE591vXICYg1JBjjEYe6VNK/B3vCEu/QFRLtF3IYHc
+loU4uurI8HfgeEbJ/H3/uDrUwgahuoIqRXtxNIQv1qGXwbAnPBcCAwEAAaOBsTCB
+rjA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vbG9jYWxob3N0L3N1YmNhL2NybGRw
+L2NybC5jcmwwHwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0O
+BBYEFITwNLOf7HFKC/d5A2X3c8Qdd3sQMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMB
+Af8EBTADAQEAMBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOC
+AQEABaLToWh/aCEOlWbi810W1FeAvkwJYSqyYK6hyFYiQ6dn0x4OnqytfVxYKaj6
+wp1OOy/aAG9sSak2/Yp18J7U9Nnl/fz66TNBwjsipAo2auHsqfvrxQl4xEyovdzp
+OhJY4gLUPrmbecsmI4UTU6Xl9IGMDh9LPAn1ErYUvvolJp9Y6XlSb/jHT/7BDMmq
+JwToSRDikiaCKtrjQvtgw5vFUfcBqKlQmy70ZxIHW92E4cq1twugzc1RpO/c0mxj
+zjd8FaHJYT9q6z5fRhloqN6w46mS9nbt8xa4As9ULoMcpeVglDXXLh+A8HLLudWD
+ZB6LDkS9rU3WAqYfPzNZ5AR06A==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_ee.pem b/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_ee.pem
new file mode 100644
index 000000000..c2f12a5a5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCVqJpcZanHXf7e
+yEIyBstjNJxD/AWodaKC6yKu94M3lRTOKiIyi9jskGGyQy5DF1lJs5l+T+XBht6Y
+wCflWp9HIfji+lLY/EYoyVH3NdDqP0yFcyF2zMSGtaC2fIEO954RZDcUGcc4LCqK
+fMDz03aONadw0sP/mvXA9G5qoI0jA2MnX7qP+Nmy3kppS2IRdfE+QtYFJ/iVzL0C
+UiOpCz3M7IvpkNDdBrVdAtcIVgaNWrQFCtznmBkQ8yF5xOfdb1yAmINSQY4xGHul
+TSvwd7whLv0BUS7RdyGB3JaFOLrqyPB34HhGyfx9/7g61MIGobqCKkV7cTSEL9ah
+l8GwJzwXAgMBAAECggEAQYSdh0POjwRcdwWuzR3iXp0CqFSl2XkeWzg7Z+Pd4zB1
++kfBzuUgY3hV/OeiUibfpP9mfEDYMeAshSziimsg/dAmmJ/EM1BGGscABjzeKB7s
+DiQ4Cz1b8CmFoT5idb37yltYLYmXiMT1Hsm840G5Tkq48hCjU7xwSDf6Ot3sy92d
+X9Qc3ws2QVv7hhkuQJvyGl052OI4oU/U6HgnD/zxd5BetAa9zG5BkT2n3J81dDS8
+YPpnA+5sO7GEL7M++QEZ+bJhhvXAga61jQflSNu1notf66U2HXn7X2R2Qk15V5JZ
+ySzRTBynbCLgfAXS35SavFenuuq0oINvV4dMbjiGoQKBgQDFtggOFPIVm77ZPXXQ
++LNs7fNGM4aDQrvHri+j5xzuOTZ6kftJBCXUVNq5OuKbaxlhcaMJxr/z7xngXs8Z
+A+1NYNdiRNzJqU+uwNcY0QtvBpsSr5DEO6fiqb3WxAKyLJETeD9qIbTK36GShliz
+sqx5vpb64lg5coMfbiyouWnw0QKBgQDBx+EF3cpkgXYAd+lWFYl3yt6XEm9zfZZn
+VK2yW0+03xUVLyte1APdYxFTuD22W2cxq+1OyNGBT6jplL3f8Xb36LmmYWy7QYHx
+hbLYF7bD84zV4uLsItTQh7FXrtUw10+8s+fzUu/P4bacIuiebyiwdVH1g/AlUyYJ
+zqGWq6fYZwKBgE8wBm/lccS32avXEv487lh9wcdnUcP3EZD7sjcalRrRLYHQQG5R
+S/mMdwJjlGmdbs/5nMyIn09Lf/i+4IHrcbthQ0Mnw6q9tp2OvVhCOisg4TGNwhTm
+s+p0BAYmAdJtSTocGoIet/PduDAgwRxQPwaQEJax25Y+yEfpb9ewU79RAoGAF5Vj
+5Xrgruqymcv+MePdHx8ph+lOdxfJvjmoChTi1nhv8GwVMy1Kax8rdKzvlcn5/SmX
+cAcwuDQhsovPr/mLKRDBx2YD/aYzUlmbMoFwVNjHQyChzWtPyzE4fBtjBtatdaHP
+kOV/GiW2O7pj5SRSJ2ef2el8yI4eCwOC1vt9KfECgYBW51G7ijf+dyLWQc+1IFWn
+QakMYPxzVO0LwiQwTALTDsNQv3QR2wBJslVgDMbR0oNkoyy4eJ/3A0z92bwMTyVq
+F610JDh+LyYcpCEHBQlRq8GCqilKHQYqdYQp5/luOQt+nWb/rllYm1x9Zlbakdf7
+QIN5IZdQJkLNcMQ49t3Drw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_root_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_16/cert_path_CRL_16_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_16/crls/cert_path_CRL_16_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_16/crls/cert_path_CRL_16_crl.pem.crl
new file mode 100644
index 000000000..ab4551ee3
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_16/crls/cert_path_CRL_16_crl.pem.crl
@@ -0,0 +1,11 @@
+-----BEGIN X509 CRL-----
+MIIBnTCBhgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0IFN1YiBD
+QTELMAkGA1UEBhMCREUXDTE3MDcyNjEzMjQ1NFoXDTE3MTAyNTEzMjQ1NFqgLzAt
+MB8GA1UdIwQYMBaAFOCMGappJZoaJQD2syi6G/cN+c/AMAoGA1UdFAQDAgEQMA0G
+CSqGSIb3DQEBCwUAA4IBAQBDaqIpNdY1OThvWbvtlGbUWX/DRz9CZYcNae1RXk14
+6IXNhqtRMcvlVEeMqoxG5Q0kza9sAWUIPitUVKMgxpZpcjhwLTqn5W13w+cmnWBQ
+iP+mU0y9vSBdkipsmMTeFFw7UmWsN5wB8M4MropIrbSpeQfhEoCUXYfJl83vb/xA
+CLNSmP/f/6HxCom9kb026ZK9KPu1kDj98nBo5054AynHjX/O/rboroihNj5thgEI
+1a0LoONEMVIjfH1krwVF5Sy1ZztV5tachny3rfl2E8SzDpLYPDhGuMj4GHOswYA7
+fW/qjOe4hAy4BGfcNSkKQc7vIvevFoDIJIMVjY1WXDh0
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_16/crls/cert_path_CRL_16_root_crl.pem.crl b/src/tests/data/x509/bsi/cert_path_CRL_16/crls/cert_path_CRL_16_root_crl.pem.crl
new file mode 100644
index 000000000..99867bf44
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_16/crls/cert_path_CRL_16_root_crl.pem.crl
@@ -0,0 +1,12 @@
+-----BEGIN X509 CRL-----
+MIIBsTCBmgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0IFJvb3Qx
+CzAJBgNVBAYTAkRFFw0xNzA3MjYxMzI0NTRaFw0xNzEwMjUxMzI0NTRaMBQwEgIB
+AhcNMTcwNzI2MDcyNDU0WqAvMC0wCgYDVR0UBAMCARAwHwYDVR0jBBgwFoAUx08Y
+hC18r4z8hj9PCEIT2SVAanAwDQYJKoZIhvcNAQELBQADggEBAFKIhW6Ym8+ob64o
+cRD7FrkGK29uITpPvjMqBTf3JigYOMFbwXwZYFUL2rNpqV20mJ3Ekfnax6+LkLwx
+MgiqyA+ryOy/lM/5LBcRaFpUeSaDbaF/mS7m4+RutUTwCsz9ga+PLOCd5+SlK1iC
+LVjLpl1sE/Y7eHlKhy2+QuCx/AcIMTk3Kh0i6eNMX1ztO/almHlkso3vJVw2HxvA
+/0l40S1+xphc2d0100ApsQ8RiK9BA2nttFUzsuLxmQ0bP0YBb+Ov+XY5uG3pJPch
+PN1ent2K4+8+Ia9lLKu85LsZyMyTS6Wh+KBeVf+yoTK+t4sdH/gi2wgRWHE8diXU
+bdjiRHA=
+-----END X509 CRL----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_CRL_16/description.txt b/src/tests/data/x509/bsi/cert_path_CRL_16/description.txt
new file mode 100644
index 000000000..2678a6fc3
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_CRL_16/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRL_16
+
+Purpose: Checks the behaviour of the application when the intermediate certificate is revoked. This path is invalid because a CA certificate in the path is revoked.
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_ee.TC.pem.crt
new file mode 100644
index 000000000..dcf4f694e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAh6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNTMyWhcNMTgwNzI3MTMy
+NTMyWjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBANkAj2exG1hp1EwMp+GefEeSNb4cVGX3VjnM
+B49BM+pCiQrL9KvDThtfI+dbdefCgLMFwWkCOWQgNA0QBxQc+gDO46Xgbgg8Exno
+s6wdF5HHuNCbYT8qIjMIcfQ5ufn4gxLQk+/wN0Bz3XzlJKY8aV5qNTQZf+lNQL3S
+xMpDzLwGeTYvCIcDzbRCrRAbJ+ssogIkkktLYEKAN/fsoen1KYZPY4i9w8b003Yv
+tkKJalPip+/ISr8O9F6Yio0aRYaguSwRtTGfH0sHYkWbNyGGR8zd+00GkggVSIxs
+XGS2IJWL0SD3ZBw3Nc8yPADMlgriXF6oqp0A5NePq6RSxfiYWZUCAwEAAaN5MHcw
+HwYDVR0jBBgwFoAUDGEFpkgt32d8kbj8Nd9GGj8sdHUwHQYDVR0OBBYEFBzuHo5F
+uBuNj+7Jnfh/ZHWsk4L+MA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAM4vb+vXR
+4rbm8eJnOx1Nnn0kCWLKtyy4E2Pw02utJBsm3LyLISjlsF5ep+sEB1H+QmwKfFHJ
+vb7YKvN7XHE6H47EX8Nf1IplyNU5rS2bcKCZvuXjKge+qRgF8xi9NGK6SZY6hgEh
+yMHJDU7/gs50E4PS1YSL5LN9lMf34mJfzG3nwtz2IY7asQaodCJUV3JZfeVG9et+
+tXfZErNvXxTuHpZYeBMWtb04rnkKjEfOI60JAVnF80O+rmxVVOefzyKAUhOp6aEv
+/4cNI72JBdlfU1PCVsfRStrROxGnGjTPAMtLmrTIZN6poRfNOVRDg3w1jpIyIKcg
+GBUQ7J9V86h7wg==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_ee.pem b/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_ee.pem
new file mode 100644
index 000000000..9e324e649
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDZAI9nsRtYadRM
+DKfhnnxHkjW+HFRl91Y5zAePQTPqQokKy/Srw04bXyPnW3XnwoCzBcFpAjlkIDQN
+EAcUHPoAzuOl4G4IPBMZ6LOsHReRx7jQm2E/KiIzCHH0Obn5+IMS0JPv8DdAc918
+5SSmPGleajU0GX/pTUC90sTKQ8y8Bnk2LwiHA820Qq0QGyfrLKICJJJLS2BCgDf3
+7KHp9SmGT2OIvcPG9NN2L7ZCiWpT4qfvyEq/DvRemIqNGkWGoLksEbUxnx9LB2JF
+mzchhkfM3ftNBpIIFUiMbFxktiCVi9Eg92QcNzXPMjwAzJYK4lxeqKqdAOTXj6uk
+UsX4mFmVAgMBAAECggEAQ+c4eJaDe42WKHv3VpLsycqXNZeQ011rpmdRYELjd2T9
+lBrRQ6Q4Pzlstzs38F89PYfKB01yXwHyt7mxtVoB4xnaQ3AwjjQaOAvImU17MBti
+mihc7FKHZBe67NTZfL6GaW9KM5Uj/O+kua3MY5ZY1HoAjv6Bt6P8Y8nd2XsQyC7c
+wAfNoAwhIAeOwmXXqNNbAroXJGUxajjbgMmSZRyadWTTBswXrB/4sjF8RAaeC4P8
+YXw/Y5YjrA61L1vHdSK+kkJlRPGxq3JosaMeviyjyY+yYKpVbp5R8QBywTHU3cEp
+uYGKxj+81k0GQoCAtyHAbto7hYOGJ1JWMz/zW+XMmwKBgQD17JG3NuiLg4NmRSL+
+lyecj9B7Csh8gjC21lyzlxLgu0cEzVhmork+ohmp9JPIzi5E0SX1vQtzQJIxoIqj
+9pIdCkaF9hAFU8r4i/fK0JHSNwPBBgsNg6wuVNsRsYVB5SdAMJx4d3n6rW2jCcWl
+e+f6YiVlP48ZxltkYiYA4SGwTwKBgQDh5KMO128gAmNtcQbA7cTsATXaEMo4o2b4
+WB6JhPKuIc5vs5LfMgf6VxBxj+qIT4u0orSFjqfeMJnyNg57WKqapX4E3dXWFh5Y
+aQrsUmkiZpqFLBQW9Wylm2weqEXycuzNX9bxtoV60ibPAsOqMFY4nAC3cj2y1tOT
+oT7Oixma2wKBgQDOw3j8HslDy23lxYkXnoSqaGvzl2xa6qcEgpRsVj+D/VFHo1KI
+8JVpKKcFMuIx+dADAgm1Y51F6GtCGGWYV44fpm0G4owzvnCvqhbLSbLgmGqqlmci
+lKtmROfvJ18PuRfYK0bTLji7X6cHZgbsDJJM/MnOJ7MsC475hl/Ha4GElwKBgGml
+4Ckh0uQ6mbvmv8zdp1rlmgUaEyn4KkF+HRIeLs4IG5+ccdWXdam8rIEgWQVVhrZ9
+3kYUmShOvMFOTOmdZ3Uab1zhT5BoGdspjaVHScqACEa+fcrbD+xIS4HvG3+wBlZr
+O4Ei5zyxKttopJBlOP4S4Dbr5DVPSfbi1BgPcHM/AoGAJ5kFdhl0kvRohpVn76ob
+79tcsrFA0yni5MW/BPj0T2FQTEKFByzA01Qsrj3g6rsXKTYFQgsFkMaRmH9okeuM
+XGSvlB7u+TCOl2gzGLA7XCa2bo2hEway/qNrSuD8pXAXgVgUHfBrz6ccE1T6eCG1
+24oOASeMXZZAF6eBd45l8wQ=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_root_ca.pem b/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..926bac1df
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQQFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjUzMVoXDTIwMDcyNzEzMjUz
+MVowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmWKRQ9e3y3NyyNHJoZGHZS7k0tzsgIAl
+jblMuxOru96CGNYxX+fABGJXrEtiZdo+ZkA3rFQ/iscDfuByfsx9h2ai3xFi+Sj5
+Kdu4AX9GCk8ry7vcA7lBo+uMnbGeOkDYzFt2Y+b5YEi64VbAjzamoWNiwgvetZOZ
+Ejy3jauT26qF5Ei43Qs3AQvoK5hlLqUSB8LXMgPFuZLp6qMaAjCJ4lukrv+aegJ0
+DCiwzez0podmTDe9FIpHoieqErT0P+vaFdziO2aqwINhzHW/vdFVn4G2UnnZgSVP
+0gt3NbQxTvGjmS8Q+kTcJoXQyKwPO8PlcsjwxohwuKGRmNwb06c58wIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQUDGEF
+pkgt32d8kbj8Nd9GGj8sdHUwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQEEBQADggEBAHhBDj70/EwW3ZkhlAjfMd+b8Efzr0H7
+nJh9U2qnyUyunBaMy7sndk8MAh/sNoyKmJim/ZcQ9s2oV6uT0aOybywLaDE558TL
+NZ06yHQs19VaJNCKJOrcAPPzAAXxBc2tgeMrNEqoZVoYrLUMHoklOGyqewwMH2jG
+f8gOCN0oL9IpVdyNMidEPQKr2k9U6JNgbQ2EF3jqA+5SgbrPTdrXgcY4BUtRTcTU
+brbGqTMPZPrH+QCj2ucoATw3+omoHWqN4EdJ+52xVPcQJRqWesZZ7x5mDSZc3h9h
+A2fwrXHA8lBwj7tlo6A+Xs8AV8eGs8CG3JILF2X+As98oEyBMbkhtT4=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_sub_ca.pem
new file mode 100644
index 000000000..17a0efe57
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_01/cert_path_algo_strength_01_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCZYpFD17fLc3LI
+0cmhkYdlLuTS3OyAgCWNuUy7E6u73oIY1jFf58AEYlesS2Jl2j5mQDesVD+KxwN+
+4HJ+zH2HZqLfEWL5KPkp27gBf0YKTyvLu9wDuUGj64ydsZ46QNjMW3Zj5vlgSLrh
+VsCPNqahY2LCC961k5kSPLeNq5PbqoXkSLjdCzcBC+grmGUupRIHwtcyA8W5kunq
+oxoCMIniW6Su/5p6AnQMKLDN7PSmh2ZMN70UikeiJ6oStPQ/69oV3OI7ZqrAg2HM
+db+90VWfgbZSedmBJU/SC3c1tDFO8aOZLxD6RNwmhdDIrA87w+VyyPDGiHC4oZGY
+3BvTpznzAgMBAAECggEAOPEMH4TyMN+zgZTMByR5AJmnjhZA4DVye4oKT7ruOqjQ
+YDsICmQE9zuw83/q0Af0uU3mvR1rl2/pPs1BBAyTH1R9a1VPilLpKN5uEXQ3wrUA
+e7pKY8F++kUEJziclmCjez4LFexVsKZfZi8n/iKaOnikXYg9jef03/3VYI0NL3Mr
+7KWdZHYXlv827E5sYHuQOSklL4aazaI0+14QXRChc7pgI+VbY6/7XLnvTOw/+tZt
+kvdNIlIEJ8FuColqNPqlSBbN2Xfl99gQvUelCA2yVl820iXHF1w2mXdbaqKX4IEL
+ypdSSG+CM+hrO8kPmKRAD9cFEb3dpDq8rw0cdXD6zQKBgQDIvMbXSPcvr8C57d2T
+0gXMbhQosFZHlAjZYAAOX0WWhO20zvVwIJpQlpmqGVwjtPSFqsepA42/pTAk4ew+
+tfF9PWtimLLQpk0YxDLLUv70aMA/YBGIA6Lsn/Srq6w8/+790UiuLKyK7tIC1NZb
+7XMBX2X50/tBG/lj3upDbppeXQKBgQDDnJJdIR44A20YM8BFizGuUfmTOH4iVSb1
+wwJWXnczcQCnnx98VSGAnuGsLdVlS5jxxxUSHlO37KltNfd3ne38XsN/r2/jw7Vp
+57/IGy6dABZJkOsQknNYrp1SnOGp9Sws9Uv8A6T9Y1eIpq12+YeX/nUBg6dFkh7H
+04a+su5UjwKBgGQbWKJGXhdm85sFl8m/JGslvmHoRq7dkWguavi/5GlDE3Rm/ZmU
+eMCVyj489WlNNeBvIbEU95zKWW8bSACiJbNKbQI3mn1ZYftm5NnnIwRqNO2mEDgf
+cCHHR3JRY8zr6ZikxTUvTEDhBtSopdokWYUmuSlU4OlAdSesJHHKd6t1AoGAbYW+
+1XHzj30rmf9vygBTgrzXNjzNMr/mnnffWShvKVg9+5w2btDjfzZ2OIc5EgwvyD+l
+Zo2gZjyV6FXtBwZf94u/fkBmL2qmqnNdh9bgVHt1/x6q3o6BEshBwb2hBB4H6+wz
+7RjFSjJTEmnwecrgxpNsQ7rI70UPAudGbIOWubUCgYADvzuijPhbwSvlhi4qBwWB
+QiVHRbhEkiljEpG3BfWAjt017C7iL7wD/qU1q4Ryq1L596Rt9X7RKrZvF8OUdWXZ
+t5Fk/0NfITBHRHPG8oZBOBNNbL0ap53m01gL1C8kWcKt2g4bKiQxCEj5Y4sEsb4u
+U5O7lxpwyepVKmEaP3KWIg==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_01/description.txt b/src/tests/data/x509/bsi/cert_path_algo_strength_01/description.txt
new file mode 100644
index 000000000..53fb35689
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_01/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_ALGO_STRENGTH_01
+
+Purpose: Checks the behaviour of the application when an insecure hash algorithm has been used in the production of the intermediate certificate's signature. This path is not valid, because the hash algorithm is insecure.
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_ee.TC.pem.crt
new file mode 100644
index 000000000..b0d5c02fb
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAh6gAwIBAgIBATANBgkqhkiG9w0BAQQFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNTMwWhcNMTgwNzI3MTMy
+NTMwWjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI49+vItPtsSX6rm2HzC1LoNgf2ScYt6YaHu
+yApzK9glqqGrbv+ISZ1n0l+Xi/H7bSTukHBbZS/gnXwKhRH8w+8lDM0X66YmsQ8B
+iVhHBE5WSvtBzmDELhiF12v++icoM8Xoe6UANdH/F3NyY7Xm3eaKkxdpI46eBRZt
+JuMsLD4Rh7w97tPV7lKfDfX73Z2TgjlbGbxwFNps8vQZlcfQCJmsNWNlAtIRRGQf
+zq6mDY6CvbXjhrZcpMhDk8QvN/OFIyGtbNmi8GKtMjMO8kCOaetZTa7bs38g0LwJ
+myrWGem1g6uLz2jYqXUAZnuwx/q2fXTAAQzQU8IDviaEpdDzPFECAwEAAaN5MHcw
+HwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0OBBYEFNyleISc
+4onS39HiiwfwVUasmGe/MA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQQFAAOCAQEAOgAzfkQD
+NW+qZDlJyOAVT26K6eLy1gQvT2tcLCAlQG4kg30tnA6onTcffdYZJ2QTYOLKGnXc
+dpljjZQsah99dngXyHTkzesOJKg3S+FLU5PppdgD/D+GxLh1+n17JKM8ZmNvQB/y
+CmpQZ+8dcuivoCp8iB1Hi0cbkvzOe8RpzIUsjLZ6rI+knzfoL6TT3vg3hk0nkpwn
+wZgzdtYOOOSTax5J3UBTtv6nkzihCyHbC6aH5GRMzHwA5+0oCf7nd+d8ZK2kb4Lz
+JofykPfTzX611NTk+r5Yc/4zThPg++gofHFRMmMewM8a0A+ORy4Evi4sU88Ea3ZR
+hn253wqotWl80Q==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_ee.pem b/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_ee.pem
new file mode 100644
index 000000000..0bd8271eb
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCOPfryLT7bEl+q
+5th8wtS6DYH9knGLemGh7sgKcyvYJaqhq27/iEmdZ9Jfl4vx+20k7pBwW2Uv4J18
+CoUR/MPvJQzNF+umJrEPAYlYRwROVkr7Qc5gxC4Yhddr/vonKDPF6HulADXR/xdz
+cmO15t3mipMXaSOOngUWbSbjLCw+EYe8Pe7T1e5Snw31+92dk4I5Wxm8cBTabPL0
+GZXH0AiZrDVjZQLSEURkH86upg2Ogr2144a2XKTIQ5PELzfzhSMhrWzZovBirTIz
+DvJAjmnrWU2u27N/INC8CZsq1hnptYOri89o2Kl1AGZ7sMf6tn10wAEM0FPCA74m
+hKXQ8zxRAgMBAAECggEAHlh3uIHRlpARa9bq2ZcBJh4qnMvIwH5f5NmZwKz4bhj/
+EZWOzSIovlV/aphcqUe/7bCdjPLan/+16VgfMoqvzE2lsP2I7v3zKSXlRLmF4CaF
+wZu06S0BPocTQb14ZbEsdmzWMAne8YmP2bfOMOjrbzsiDU0HYm4w3Kt1r+JlH+px
+DfTuak3D9XCpUwimtiL7V1SDk8v7cNkgEBCDfcGAo7yAbGoNW2j8LMHGDFBGFLdV
+P27thRNadLZfYD8Z2i6uq/iS5XI1xz2C1S7klzgDuJFGPw3W8ZLecwqU9ZHgcQ7u
+0NTbQy3a8vAc4raVAY/4chlCDR0/I3J2P7zBV3+OaQKBgQDDo5nCXWfbH1tfgQNx
+aRp9SybqEnucMWzt1dgswudHA6GM/1m7EyHnkKYwBMwoRrerianspB9vl8seHsRS
+jykbJNJYx3O+bp5UXcq+iB/r2kk5IxoSQIgb4afXV+UnEWMLE6CKisS/oeYW4RSZ
+8yiiJvBhfORETX2VPJbS3+BRnQKBgQC6INzatrZ3sxfCo9gel9iiTr7ZTKyOB+rd
+UXCAlpeUxKpMiBG6wp5B3pS7Lfg1qT/TJSnPdn9Qq9riAtzT4e/4Am+QprsPd7Ee
+U3/872ViZhzIFj3mNdthrpMqQYk7XyrzkS2FjkWaqAcPska221hkPhQ+/4GjeAwA
+bUsaNVghRQKBgBa2D0t4/G17nmff2j54LRMOfl3990uSkUqq4IWRureLvF1Z51jI
+R89SA3jflbO3Qesv+AH4q42Q2YuNlszewa7c/24++TjKLqcsnDSyKMKAfK+dW5Fy
+3FogQBPHqFp4sj6+8Iwkv+JfMQ7G4lVc3QK18oHetcEYHdQNTJT+WFQhAoGAQOmF
+HKHsMQK8np0VmlXKr5BW7uHWrBIGzvjAC5h5dODBo78wr7mAB+jgZgc6MTy9jZ3A
+XyIsdK36wCfPa/W4Av6WehQr2NEdbD4ivMugyBhkoUNggxD1WbPQj0Qb4CDokdln
+ztQ3YiCHlenOz6bfxNYBqZbiV2hehyeWsaU4/yECgYBY0d9yd7ebJOveOYWA2Lu2
+Xcw/AIzsazOaGCcM5BkIWpcZSqcXvZ7FQCqBoEL+HIAnyiGOPonTIC2nnRtcJLpg
+YyNq2X0t5fAc4F7ff8pxjKm/u2cV7h7L3PbmmHBUaKYRgWX3fzj9Z5QBCGF8dI+L
+4KslPXPdFi7Ydx6ddeOeUw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_root_ca.pem b/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_02/cert_path_algo_strength_02_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_02/description.txt b/src/tests/data/x509/bsi/cert_path_algo_strength_02/description.txt
new file mode 100644
index 000000000..5356ea228
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_02/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_ALGO_STRENGTH_02
+
+Purpose: Checks the behaviour of the application when an insecure hash algorithm has been used in the production of the target certificate's signature. This path is not valid, because the hash algorithm is insecure.
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_ee.TC.pem.crt
new file mode 100644
index 000000000..a5300caeb
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAh6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNTI5WhcNMTgwNzI3MTMy
+NTI5WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAMh+3tSIlj1ZbmP72KE+PT1yXxlu4lqOCsaN
+blYdRJjzJ5iPeu1Ax9FwJ28lO1seoPkDqfZH6CSbKNS6GnLYcyfc6Gj+e58OeJFV
+nJY2lC9fFbSwIZ9LHx6AN+lm5UCsQR3Uz0MOBRGfOeKlYxlaILQ33k9U7wLybag4
+B5THktRQheudUwMWKjcR0X9Ylr1gndxms2ZMr1OplqKY06TZT22TEJwGOMuQjeKO
+B3WrEMEXLQjiHdvS4cGWQbnztIjL5gnIuzuKcq0yGGwZ+zjc2R9fnp0opTdSh12q
+EYNJHY/vnyf1HGD5ykjM9AVnwzKx0ZJZaNK6u/vuUNuJWAznWaECAwEAAaN5MHcw
+HwYDVR0jBBgwFoAULa5+XRvIsP9Shzl2HSl+gqv/Ys8wHQYDVR0OBBYEFKXmlXPO
+m1QPQCX/UG64UewAqQ44MA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAM58DmpZD
+s2Sm9iDSU84sxNsHX01u8sKU/5fxslFwMufhuA2SjwoMIhGAxh3GTdDKCx/xT0Iu
+l2svdI7ZvdMTrpgJYgLqQaugevDYPr/Ou5CWvtjyufFxoLiWV99KAiGkMujnjm9j
+Lc/Oi3x5waqy1J83Dgmm0XO1LAdvv+PLbj2gLNomwwvKp7ZfKkhBPpZ6kelND3rB
+EAWxpMHwHpGjiQiH0RWUZfcuI2DSeZRXnNK+yAOOVgt79Lpk8ctDYelXdWk/wJ9m
++n5gmN1HnYzsZgUMWe3pzesKpnkX9q4/o5cVSZMZv3IxYwIOrq2JY04wRsb5S2Ev
+412s4zjbtcihXg==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_ee.pem b/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_ee.pem
new file mode 100644
index 000000000..7e602e593
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEuwIBADANBgkqhkiG9w0BAQEFAASCBKUwggShAgEAAoIBAQDIft7UiJY9WW5j
++9ihPj09cl8ZbuJajgrGjW5WHUSY8yeYj3rtQMfRcCdvJTtbHqD5A6n2R+gkmyjU
+uhpy2HMn3Oho/nufDniRVZyWNpQvXxW0sCGfSx8egDfpZuVArEEd1M9DDgURnzni
+pWMZWiC0N95PVO8C8m2oOAeUx5LUUIXrnVMDFio3EdF/WJa9YJ3cZrNmTK9TqZai
+mNOk2U9tkxCcBjjLkI3ijgd1qxDBFy0I4h3b0uHBlkG587SIy+YJyLs7inKtMhhs
+Gfs43NkfX56dKKU3UoddqhGDSR2P758n9Rxg+cpIzPQFZ8MysdGSWWjSurv77lDb
+iVgM51mhAgMBAAECgf9Wmo5TuF+dAv/rTcIDEHbq15J6Wb8i/VtmiP15zhkBDNr3
+nOURAGp10PrB95Jp0/AD8n4VaaevNvJZCKNeLURBQchCmtxA8U09nTd6c0IZaThf
+enGHGwHwpPkpfsi9CtzycTZ3ArBRIsQjXs6u35wvJ9VfS9x5f3kw2bld5H7ER/WC
+YQ9UGMF6G+D8XHPl8eqKAj4+90fb8BLBL8znLvbY16K3qEZrEtg8Ov0GUajzDBab
+Q5R/RAsWKYWUP1fHDYe3mjqxWWFSxctLlg7abKn9x1YXo59BBmMkntc27l7MQs8Q
+pYKS3gegTw6ScvAGxyLq54UtXa+a9wNssS29V+kCgYEA/So6JxyLjv7pbLUuX25q
+vGzDvvax04HzHB46ngtw2HIOuCDjTG2BFHTZHEUOysuJN49vbXHQgIQlDVWT6aHk
+NXPJ8339ahstssOB5JtkGdIbPLk1Iyo74DOSCfQYVj7cSSJHAKQqMp5phpDQSDwR
+wXol2E4gk/rUltGjZgx85D0CgYEAyr2mnRjbfc33FjfCwMKGOsnzgFiiszfoXm/x
+GfF/Vk0w+iujz+tjw6xipGcMO4TSPt4iu9Lt9NBl9sOPRbBAFJzLBz1qfBVlPOGo
+GeihvV40NBnQKn/Shibek53Ez+1N1IQIqSokWD4kATrEp55JjLwhTsn/f0+mQgSe
+lAOZDTUCgYBvnZRx9fXZn62OTfsZ+/Z3CITsxpr0I1DpzrINSAICi5bNu0I7SfQk
+7rdh7VhuNHpU0ppP6GQCpUAottg1oziYEGqzPZLimwT00ZmNDq19bNKxXP5+eHpZ
+iKMUXFf2flRksgYX1Ej+dDUWLPaHQmSZpp7U1O0sEOR1cgvWTB8sCQKBgEaUNU+V
+Wrv2GuGKMetnDNGkgneY47MecG+H6thMQTcrEjTVQmbcnFN/TKvND+4cdBDcxhy6
+9on2jriUJeltzTEf0HJJyCtAS4khSaMTYFMLW4MTxWs2KnT3TR74mo6EH0cvW9CA
+UjzCDUi8S7/Kk/JBgBrsqVyJvuhWsVn30q1NAoGBAKxb0zVEZTZS2D7H7fBkan2/
+MwVc5172gZBC5Dkm+oerjrXcF5EgmXzzhymBQXL9Y4jpJC67YqNsHJo1c9HdKRi8
+b3n0fVd02DZay1U6pfag2LUyMy3+HQGgL6VdTQYKZ7HBIsk3w/lnt1Nx6XYgrpYX
+y5XH9DUu6+QhZlv4XdyQ
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_root_ca.pem b/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..b75a9a4cf
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjUyNloXDTIwMDcyNzEzMjUy
+NlowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIDANBgkq
+hkiG9w0BAQEFAAOCAQ0AMIIBCAKCAQEAiAiItGRU0P++AlTFnR5qyB8CLp+2XkFO
+7zzzthc7Nnxef3oFXb+2zWuBkEI8FhvVm+bNwzwxHnWeqApwvhHqOVyWoJseN1og
+jJ1UIX94LE4scTdL0FxgJs632Enl4MsnpbhilOi9qLZwyQmAItrR5uopmYZ7PRee
+NhNnxnj60CYrMdWzOOEJf8DReElLWNPa6gk1cXiU3TPNAzVxH2KX/3MgHylznKni
+X+r9xadOxWC+ffaXmrjdz87NxKFI0t+OnTqrwBuTggqo1TGGmpEuksRTrCXejVeS
+RbfdsFYHMPDrliGasOWb/2tUWOaIZFHPDwIxZ4xSX4IsK20owdCcUwIBA6NmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFC2ufl0b
+yLD/Uoc5dh0pfoKr/2LPMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEAMA0GCSqGSIb3DQEBCwUAA4IBAQBB0FiTUy0BJcxDua6grGz4/PFd62FB1Eda
+7ozlR31JM7oNmJHjNQjNu9BiO1LbkYveDGoj5L1EobA4ZqWQ5Tw9quC02WPRxeUQ
+EbSMIjvcIlSdGASESFN1wsCrYUp19hOpvRdbaqW/Pl2VLGQD+YFW4xP+6br5hAkd
+nI89hszoiQXbxpKoWGWnDd21Ufsu/MUmDj8XpOZJAcT8k6wnev0ad/1HaA1LnzoB
+1J32I+Ni5OqVlkFeXTl8MwfOM5wgUcjQBJiqwc3/0rSDx8fZbhoo1r1CfM9n4hMy
+3nzXbPOgtKRneIWCnQ3HEpDj9D2KaovdDYfHCLcNwjylB7E+yS4R
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_sub_ca.pem
new file mode 100644
index 000000000..ed136187c
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_03/cert_path_algo_strength_03_sub_ca.pem
@@ -0,0 +1,14 @@
+-----BEGIN PRIVATE KEY-----
+MIICOAIBADANBgkqhkiG9w0BAQEFAASCAiIwggIeAgEAAoIBAQCICIi0ZFTQ/74C
+VMWdHmrIHwIun7ZeQU7vPPO2Fzs2fF5/egVdv7bNa4GQQjwWG9Wb5s3DPDEedZ6o
+CnC+Eeo5XJagmx43WiCMnVQhf3gsTixxN0vQXGAmzrfYSeXgyyeluGKU6L2otnDJ
+CYAi2tHm6imZhns9F542E2fGePrQJisx1bM44Ql/wNF4SUtY09rqCTVxeJTdM80D
+NXEfYpf/cyAfKXOcqeJf6v3Fp07FYL599peauN3Pzs3EoUjS346dOqvAG5OCCqjV
+MYaakS6SxFOsJd6NV5JFt92wVgcw8OuWIZqw5Zv/a1RY5ohkUc8PAjFnjFJfgiwr
+bSjB0JxTAgEAAoIBAFqwWyLtjeCqfqw4g74URzAUrB8VJD7WNJ999866J3moPv+m
+rj5/zzOdAQrW0rln471EiSzSy2mjvxqxoH62nCY9ucBnaXo8FbMTjWuqUB2JcvYk
+3TWS6sSJz+WGmUCHb8PQQbibKRskSzCxABc8i+9GxmZZp34Pvs63moRQpzVtxBtn
+MYKfP+B5GhgUXNO9iIzvPMo79vypHWfNuzRNiXziOGFpKLKNSoF2DzanJoIRFQGF
+o3UZn3DTWiHvfEunMXVNdI0QgfatmH3N22tPMhb0uwVT10RVJNQgyC5tfRMGKdIv
+9+J837XjGjxYj+47jMgbudGSKNqILvX8gsHDlisCAQACAQACAQACAQACAQA=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_algo_strength_03/description.txt b/src/tests/data/x509/bsi/cert_path_algo_strength_03/description.txt
new file mode 100644
index 000000000..95c7616f7
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_algo_strength_03/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_ALGO_STRENGTH_03
+
+Purpose: Checks the behaviour of the application when the last intermediate certificate contains an RSA public key with exponent e=3 and the target certificate features a malformed signature the acceptance of which indicates an implementation flaw that allows the Bleichenbacher's Low Exponent Attack. This path is invalid because the certificate's signature is invalid.
diff --git a/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_ee.TC.pem.crt
new file mode 100644
index 000000000..54c9719e2
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAh6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDQwWhcNMTgwNzI3MTMy
+NDQwWjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJnf+SomZg2kmj9WC0/yQSxgvyuf833lwr/l
+/lzmQ5B+I7+k0SPr8iz26XwWHmjNPMwjb34fO6TQSE7qNdmjr+fplodoArAqzm1X
+m1qLGUDUKBNvq+YJDhONWQmFUSDYVAK07mILO+ocd7WweR1XBc0BL68WXBrQOQuk
+O/ebf+1FR/ojokEK6Z+WyB6LhvhZR/0Aub8TeVDaIh42w0azIXeS3GLrj4SUxmn6
+3b5UK5sPXpuu14IkQd3TzWwbEDpJaycuTOeUFFh5t1JpqkNX7+l64fwKvw0Cs7Zz
+sPMPz147BYbnRaKYL77wTr+/bFCM5i4IjugosoSbtHIgnmjzLl0CAwEAAaN5MHcw
+HwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0OBBYEFLRG1KI9
+qCALStFaBW4O2PWgqVyxMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAEDMSJg+Q
+09E/y/0jJTmc3ce7v1KY6dBMi/pfm8KbY62faXDm0ad7PQ7THWa840YrVnz+lCEC
+vzLL1locq2UDXuYS4dbgR1WcD16XyPBHJCQ4ctSEsMP3B0UjAhyEWGZxr+2ftBtZ
+y+o3Ch+i+nJwvJUbrznqdEI4PKZaftjK3CeYurS15VQxJOIisgP2tY101tsPcnlT
+Dzh9/1nmvXD0B34sRAeckxsXFNNz0vcuhxA/HLjRXCWy7+IFdKhqWoFscPHF8Ehe
+2WjdionD8pTNYc+04DOVP47QoKkBkhosVeXYZfNlDh6TE5LVBve5oGD75ponkVfx
+2AqDWMoYjl7GXg==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_ee.pem b/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_ee.pem
new file mode 100644
index 000000000..0f71e04bc
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCZ3/kqJmYNpJo/
+VgtP8kEsYL8rn/N95cK/5f5c5kOQfiO/pNEj6/Is9ul8Fh5ozTzMI29+Hzuk0EhO
+6jXZo6/n6ZaHaAKwKs5tV5taixlA1CgTb6vmCQ4TjVkJhVEg2FQCtO5iCzvqHHe1
+sHkdVwXNAS+vFlwa0DkLpDv3m3/tRUf6I6JBCumflsgei4b4WUf9ALm/E3lQ2iIe
+NsNGsyF3ktxi64+ElMZp+t2+VCubD16brteCJEHd081sGxA6SWsnLkznlBRYebdS
+aapDV+/peuH8Cr8NArO2c7DzD89eOwWG50WimC++8E6/v2xQjOYuCI7oKLKEm7Ry
+IJ5o8y5dAgMBAAECggEABRVOEONl2auHYPJBu2lgV8v2ZMWK8KzHazl41q7QqpRQ
+MAOM2SfxPyUE/5FnfcTR7lh5VWxItyAeU2UPVFpA9GNWErEP7avsV9ZeDnar5eVc
+UZAN2LKR4Xl46ISb8n7S/6fkfB6s4wX/umPTDHIUgfo5DgqqDkS0rbrGNF7Rsg/b
+vGZbK59n05YOsm+NDa6dbvlSNfRIqq2OGVcEdEwaJyqjTdKeC1UNl4y0jj+u5lT0
+kKHOYBSDSMl7DseBH4g+S6cpMMC909g9/XPqM3maug/+xKAH/1hQdoI8FbaYVe9G
+9Q/7SMIE+FrjaF1XH/e9UcTA/+Vx4f0Ua3IXYxd4YQKBgQDJwQMxo/WliYhEs5Xl
+nk+KOi7xJ55PRizIGq5UyKuKEh/oktwOPmKWtJUGgbG4x8aUVrlQflYWft4FTbS8
+tSCVNGFsWiCv55pw5tv0eQNWjn6YX4gNCmVHX4b1fFso/zWPFqk+ITS76+uspupj
+UJFtzJoZ4Ur9nZeZSzYldpbnOQKBgQDDP2H/kvbS7Ualafv1KOMuBiE45EIgli4H
+QT4yvdDot4kgdG4d1hak76hIKoPOOg5jroIAWPRwCSRjdjBrC+pN+qsyJtKCwrB4
+PL1nWRMvkNHbkgKuTNX3iNwbmlXPz/2r2E4R0tLAweOrw174DfODjcO9MpBmkrZA
+sRVqQ0G8RQKBgDiPkNqo0aQf44EHK73c3QWufByFc99bmBBdUoRYYabqn+Fu0px3
+puIDLEhPschQ0X4itf83++CAnrOz7jh9Ou45ahqbRdCqyGRghEeMaYApoJoNJjIp
+uO0Cfe5yd4gNzDEaNEZDvun0IPUdMla3bp3un0EkJQbm2GpUaJCmJ3YZAoGAO2Ss
+ivJJ4yAKvYbf/lPRx85VjNjixMbqeYp/QTA8vI4YSKciWDEn8kR1DH7iWXmPpwMO
+yMxGj044o4jwcZ/ORqpaKYdlwiE3TVwswaN3EqEbNY/VAPCepg4b5smsEOtUX1IN
+bZ6UPc69UyK7YPndecdGI+edxZYbmtJDkW+kL4ECgYEAmy1Uy+SOcEoGE+0TdR31
+4T5EjKQZaky9XiNtD4cCu90wJREsJN0hrWVZEiLXzbUrbvSszIVGp+RRcKCOeIm6
+lJGOIRZtPe2VEfDs2oo2JDc6V+ED3gEk7zjPGcOJDjoWbjM4Fh1TgUhqtqx3Usxp
+5SH5UAf8N+n1d+MD1vCNiaw=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_01/cert_path_common_01_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_01/description.txt b/src/tests/data/x509/bsi/cert_path_common_01/description.txt
new file mode 100644
index 000000000..049a0b589
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_01/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_COMMON_01
+
+Purpose: Positive test checking whether the application can verify certificates. This path conforms to RFC 5280 specification and is valid.
diff --git a/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_ee.TC.pem.crt
new file mode 100644
index 000000000..995be5077
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDWTCCAkGgAwIBAgIBATANBgkqhkiG9w0BAQsFADApMRowGAYDVQQDDBFUZXN0
+IFN1YiBDQSBObyBUQTELMAkGA1UEBhMCREUwHhcNMTcwNjI3MTMyNDQyWhcNMTgw
+NzI3MTMyNDQyWjAlMRYwFAYDVQQDDA1UZXN0IEVFIE5vIFRBMQswCQYDVQQGEwJE
+RTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMZ0Ps0lpySvuiuCm2jm
+6idbJbRbBCRhabvapP2zm8rkh6AmOvJjvTaKsIA3U0HaYMcMyXYBa+KE/efTIIpA
+mlxNkMjYrT9r2SZY+ilatGaUV9g6bxugcqgrMCNbUCP6eXi+or5pU+u9qOv1TPfc
+tUiym1HFdxy4pbf/tMjAzJFEDyQpu75bkELofDbkmfV8R4y7n+HvqMgZL8TmfYud
+yW2W1V1gsbFaTIuCryT5fU4ao8mCeVSXw0sVQ41RTsCesmoqT8KBqf4B32CtvbBd
+eQmD+Ol1aYB77k9tbBFFuG8V8LY72u36ri7BMRh35s/K9e31q+5JjwEcj3v0UuPE
+aMECAwEAAaOBjzCBjDAfBgNVHSMEGDAWgBQjfyVSr5d3qYgSAOMAwebaBK5nZDAd
+BgNVHQ4EFgQUpfin/bltIvaoUCw/vqMNgaHsEDswDgYDVR0PAQH/BAQDAgeAMBMG
+A1UdIAEB/wQJMAcwBQYDKgMEMA8GA1UdEwEB/wQFMAMBAQAwFAYDVR0RBA0wC4IJ
+ZHVtbXlob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQCb+S7DkPuhQ2VC1BnP7LR+JuFf
+osSqQJBwnM/iP6HEgTcRf6Twkz7Xb7samVd9eA7TVUKvLBa7wIW8jgYIub3nAwUZ
+Y4Hum0vRy2pBvNzqfW3dhD7ljbE98YQsAOnGCYwPO6I/5VYnnHH+7qAYvlyvG4nc
+3YH9fKcrUjgSaoiQ+k/5jWSRoNdQJsQm8OFCGIUsSb0f2wThO+bcdOmnMATL8Vmh
+2iGVmtZV7ijfxXpDy0/KWrkO6jXvVvdoynaY5nc0Sko8zEbyukO4WPKKRzri666l
+fK+XzunmiQ7Yr2TkNW160xviQkKbsRH8z6UZwkZhYELd7mc63NljT+bsjuH9
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_ee.pem b/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_ee.pem
new file mode 100644
index 000000000..b08cb8e14
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDGdD7NJackr7or
+gpto5uonWyW0WwQkYWm72qT9s5vK5IegJjryY702irCAN1NB2mDHDMl2AWvihP3n
+0yCKQJpcTZDI2K0/a9kmWPopWrRmlFfYOm8boHKoKzAjW1Aj+nl4vqK+aVPrvajr
+9Uz33LVIsptRxXccuKW3/7TIwMyRRA8kKbu+W5BC6Hw25Jn1fEeMu5/h76jIGS/E
+5n2LncltltVdYLGxWkyLgq8k+X1OGqPJgnlUl8NLFUONUU7AnrJqKk/Cgan+Ad9g
+rb2wXXkJg/jpdWmAe+5PbWwRRbhvFfC2O9rt+q4uwTEYd+bPyvXt9avuSY8BHI97
+9FLjxGjBAgMBAAECggEAT6nyW9+1jOCN11GCmUW40TuhkxjGPORt0V8fxEgJThUW
+7I7sMske93oNCCstXM4Q81aKuLgxWqkQU7NI6LauQEdSy41PXpoofWBSa69ho5wA
+92fdmjV6UU+k70yEiyzM/k9ofQ9DBOsJmE7MKuOKUjiAaP7fpcPpokcfh0b914HI
+rFak9dlJx0bQYVAfnRw+OAUZUErADAKr7BxlrI4ZepzE265L4Ms4qQARbjbgec6M
+ldHjSyJRqIFKIOWUIx2yaFDz6uJ3PSALSewyZQ6QNT04WhSHecAeONrctzYkE7fD
+EtHAVGxTrUC4/vB6WT5gtttqIvuv0k+eZbc3z9UBEQKBgQD6WVlcjY5PX6nH0yyz
+Xj26OWxrOlNCzm//M5ujTC4CyQAgQtIPLCmR8+wcp71SRnoZafG0H+iAqsK+j0ck
+osSY6llXQfHlCDOH7bGYUUTBO+wPvEsp8GVfcla3TzTxIREe4JkZOGOrNXoecnb+
+9DUdCa+faCzVzi4sZp5JRuac/wKBgQDK7wT72l6i7jcyHHvBQEpkLkLGrqfMtNtI
+8g2bxCsEaFolyG/PzBQvDJXPHB4ruUiWyUvxVcr3UhinTTaG+zso+KQg6Ak6oUVn
+lVIMDxlx+enUUfplacqUYZzcNNK9yhHU9lLQ6EMNd7x7tNGtzlgiZ/1UglGh000y
+pkWE5I46PwKBgQDySPqlChKKWujzjTqbtT9ENULqW54s76GQeJ/N4HI/G8xVbJXj
+PThWGp2N9gDR2YddhRz42FCqBZlH115g5G4kF9mzCw1SPSeyC6Zu5WgHIzkI2ZBc
+3F0fjIbEDZINM5VgLrm8oMhE8BJp2Rm1ER8+JRukyKtrmIkzS3UxMb8KfQKBgQCo
+LDJeINaCgZV+UrqAKS49HVU7X6wxacO8DNQYPRZFHdFvNE7szrv/TZesvimGpJKy
+Wvkzc5yzHvbNVqCUdgjN6Ffj6UcUrmdc8xK+aZj1ql0MFi/C8UvvcYFTv/bRT289
+pDB3bbN7qrmpbuzA85p4UONQsHrD998m1UIRYnM3cwKBgEkNHkuG6Cfr8kB6JdRa
+CmIfcIKcvs2vtJn7EXZtlSMPQ+BZn/o15NFNgUop0nT2HTnZyxLEzm5g9ezPLH7p
+YYQrfGMmCbHQ3x+M0RoHMcmHvEnSJzTiTIOyL8CetQGedqqN9+aJxB+3JRUlFAcY
+fuX95LzezT31iwlz2FhPUJWC
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_root_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_root_ca.ca.pem.crt
new file mode 100644
index 000000000..48517efd5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_root_ca.ca.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDRDCCAiygAwIBAgIBATANBgkqhkiG9w0BAQsFADAnMRgwFgYDVQQDDA9UZXN0
+IFJvb3QgTm8gVEExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNTEzMjQ0MFoXDTIyMDcy
+NzEzMjQ0MFowJzEYMBYGA1UEAwwPVGVzdCBSb290IE5vIFRBMQswCQYDVQQGEwJE
+RTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALeLheGyl5cQ+FBHHL1H
+gkjkwGmBobJby18OwdUuOY+SRU3bj1ywhpLMhHZh+e/ZLZtPFrGL4vIrUsbYBTKk
+fZNyNG2SlGmIoKW6S4tqbb19vu8P9BR0PFOuBU1Lxq6TNSpKLqVXRUWAmwW4xdt3
+0TSSXrhN3O7ErYk+dZncUTOn4bwodsiso8W2avPhkmWZcpHF3ar4mvPWnRCBriJJ
+0bD7S+kaccRlXO2lkfRNUMxPxyD8B8jK9RtWfBeF2JXak6XLOuiis6gysIAOTaOP
+FaWI6EshiWZVvmmKDTVW7QUyhxVs/iBWfZUeq8uIJcBBMLsXASHvrtwAL6LvIGZU
+kokCAwEAAaN7MHkwHwYDVR0jBBgwFoAUKpX2VIK2562i+XDczYDvy3hTY9IwHQYD
+VR0OBBYEFCqV9lSCtuetovlw3M2A78t4U2PSMA4GA1UdDwEB/wQEAwIBBjATBgNV
+HSABAf8ECTAHMAUGAyoDBDASBgNVHRMBAf8ECDAGAQH/AgEBMA0GCSqGSIb3DQEB
+CwUAA4IBAQAqe1L/K6J0/qJRGCs6XGK78w4PfBbOr1b4xTRJ92LrlWirxKcYNUu/
+TQLITdlhWK9QAnQoLd35QKOmFXMaZWSf9v+Lt7cwFyzfFwmhI00tfGV1bHtdjkM0
+zcsLIKmlfZU4ay7Dr/AonY1yss0yXa/0eklsJyhv5zKN0ggmSvmoB10Yx7QsO8Cs
+hraVRFsA6x55Klu2L+/F5RKmiZS+Ue+cSwdyR4M777h8LITH463r1ceERH9k+ngw
+n4RpiR33kRN6nXuQumRrdH59WWjDQBE7CbNzRT4SErfS8B8USVOOgHrgxUdAsjiY
+3Bjr91WeoNPLj2LOD3lnpoXUEWTGmv/a
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_root_ca.pem
new file mode 100644
index 000000000..784ec82b0
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3i4XhspeXEPhQ
+Rxy9R4JI5MBpgaGyW8tfDsHVLjmPkkVN249csIaSzIR2Yfnv2S2bTxaxi+LyK1LG
+2AUypH2TcjRtkpRpiKClukuLam29fb7vD/QUdDxTrgVNS8aukzUqSi6lV0VFgJsF
+uMXbd9E0kl64TdzuxK2JPnWZ3FEzp+G8KHbIrKPFtmrz4ZJlmXKRxd2q+Jrz1p0Q
+ga4iSdGw+0vpGnHEZVztpZH0TVDMT8cg/AfIyvUbVnwXhdiV2pOlyzroorOoMrCA
+Dk2jjxWliOhLIYlmVb5pig01Vu0FMocVbP4gVn2VHqvLiCXAQTC7FwEh767cAC+i
+7yBmVJKJAgMBAAECggEACKdpbpTPFO5V5uMTddEzUWCHufHEv/YYBqlZdkWxrRVG
+cz9Q6RvhnHZMIJDKCgcBYXs/JKvlzWlBg+KXjCW5TgRqeGga20b33BiGi1I/Tlnp
+cLgd2AEK/x8LXPOfsId8UDwjKuSMfZRsur5Vhd2GXaYxFRuGuTNIw1nQjaqXoYnK
+Mciq51667BZ1UPOtTv2QNWbVyenCxxOXF9qKhcQOfp/HgKldgqnycjI62QcQozTB
+k/BniadZNrG3qVPIkqGfpOKFQVeMRVddEr/AMi/pdVQH3hCVT+NV6J6azAOe/9OV
+1yXLQyB/A3D9z+eCVHBC7KJ42eoNpEJVMejmDbdjAQKBgQD6TqTONN+1MeE0qmyz
+VuzCdlec0j838ffiYp6qn/rGWMlb7HsJfdCGmZKX4/quqlZ7i9sv25gCtsLmSCWd
+byUg14dFO8ZM+bbjQWoZsZJY30H81963Ncdtgo8Q9idEtYSXPkVb18oMo4SoBtTN
+Fx3mlBHAdO0lX8IMpYtWljpv0QKBgQC7uCvyzlJK98x6xKbjzqTNBiKY70vN+jex
+nK9JE2kJdyhRDEq495bmOSznkT3IjTquHSp/RkUZ/Zou/ft/DVdPeGvheMQTbboR
+qvAt0dVUx8+FCtXYSAf0Hch/GGDzas4cBT+gN//A+uFTZNGmNe4ncqC3x3JAuA+f
+E2tp0vcdOQKBgBroO1UjX+z1eLUVoOvCa18YI6DrBPq5myEN4uqKmgWaY8Lq7+r8
+SF8/wP9s9XSzQOq1BRHm9DdOeDMTDGAZI4+dO6BYpZ9+tIdHb+VlLks5bLmGZx2g
+vVhrUX/MRjpfnOo5OnF+B+1F4qvBWDzXwFIaFrJun1OGMLD1Vr4vFgcRAoGBAKbN
+HfAguSr4SXAFca4XHoU3oGJ4r8kVP4vJCFBMuRa6FM7/tx3okuN7hpU1j8q3A59X
+Nz3kuN5BZFHBSUo6Foz9Gg89ei0xYRb153kvbPpqmdFEMYR/bOHT3SZiCTQCgaaQ
+W1sIp29Y/gNWIJwqa7YNuxXSWYl8hBT78oQT+5SxAoGAfskQ2rwoTUBHHijZyKU8
+/Ock9T+iAuxoNOioWHcGzhlCW/lCkmEMjxHWVDUKGDOTOMAlSezcRsdxzeYhrPmA
+UlLboTu4qL3DZSRYxf0EfHxzN1hXprQIrH5rN5kWioNeQjyqFfxkehNRI173FJ1Z
+ehk3glfGhwtj5u0RleNL2b4=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..3a4eeae35
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_sub_ca.ca.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDRjCCAi6gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAnMRgwFgYDVQQDDA9UZXN0
+IFJvb3QgTm8gVEExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MVoXDTIwMDcy
+NzEzMjQ0MVowKTEaMBgGA1UEAwwRVGVzdCBTdWIgQ0EgTm8gVEExCzAJBgNVBAYT
+AkRFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5X0jkDJ0Ah8sNZzR
+dQTs+jXNhMDrUWR61UVAuayiA6ksRgyinpG52t9iUcPXzlQ1EZGJlLVW7zaPO1R1
+87h0lUg1nrR2ytjwV/ZqHWJOYi7Gx7oVkYw28f7Vw6Qgjq/rrMOqQC6arjpGz/ZA
+ByjU4WCIQclInOhY812NTwhcpvzd5Qws/66iN5HAoYkTAR2HFdzxl0wt6ks+H4dr
+ILJJsFYb6rykd0jVY6/L0pVrkcxKgy4ZtxVOJM4FHj7bWsxOsOtT5RVUUh5KNv81
+xDEQTwQf8dTmeq6FNv58a2FwFRGGOHBN++E2v9DxKxwAa5t1y2iM2FkenhYo4kxY
++8180QIDAQABo3sweTAfBgNVHSMEGDAWgBQqlfZUgrbnraL5cNzNgO/LeFNj0jAd
+BgNVHQ4EFgQUI38lUq+Xd6mIEgDjAMHm2gSuZ2QwDgYDVR0PAQH/BAQDAgEGMBMG
+A1UdIAEB/wQJMAcwBQYDKgMEMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcN
+AQELBQADggEBAFqSctaHT2fmAv5RzCdliMp5VbGH0whbjw5Vk5z3NMtu/jWT2zoY
+n7hM84PEBi7Yx51Vle3QOVrArCi5tCSJ+SxsZg9re/hGMjnVo27ufX4BKTM3+S7K
+6pMMyPoFPEN0JsXao/cbMIrfXEKq4bgNSiwThpXTTgmegL9KBjJyhsMYAMN9/K31
+Fzh5gFMLzhNt6+uJ6GlHrOjrVgDHxXI7TlZ+wviJ56+70JuGugL0N/BZlQf2jfVa
+xur+Cfy6Uwpeb45RrjvVPYnt6zP2ApuM3N0c4GjzaQLXd2nQ81/GDn+0NoANmwZH
+xDqzfl8Rs4qOOJYrAQ/DDsUcifr62q1uODU=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_sub_ca.pem
new file mode 100644
index 000000000..aefcd49c1
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_02/cert_path_common_02_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDlfSOQMnQCHyw1
+nNF1BOz6Nc2EwOtRZHrVRUC5rKIDqSxGDKKekbna32JRw9fOVDURkYmUtVbvNo87
+VHXzuHSVSDWetHbK2PBX9modYk5iLsbHuhWRjDbx/tXDpCCOr+usw6pALpquOkbP
+9kAHKNThYIhByUic6FjzXY1PCFym/N3lDCz/rqI3kcChiRMBHYcV3PGXTC3qSz4f
+h2sgskmwVhvqvKR3SNVjr8vSlWuRzEqDLhm3FU4kzgUePttazE6w61PlFVRSHko2
+/zXEMRBPBB/x1OZ6roU2/nxrYXAVEYY4cE374Ta/0PErHABrm3XLaIzYWR6eFiji
+TFj7zXzRAgMBAAECggEAAYRghA9FU49Dsk4JV3HzJBtPcsF4vMbChh7pVODmiEop
+xAPI3m39scv4wSwfhNprKGTTKUPCoZ21eDGwfu44/RSnYBd20pP5EMfM/0k7VexT
+vZXGFzp7UYG7BYpT+cWBdBiuCzMTrDOv7KeG2FVFhQDnnbG4NGtXzTIQ4VUfka4G
+j9fo+d+8aZupvnl1lQBPWeqCWbHmotHw+CemNEpiV3I3bCGPGQFXc5nj4QMYmgFj
+DCGKUHbbMeaGbUGLDCCZE0TTjWWY90G4RLJfgiDcRiJUmFJKEoHXmoQdoSIIa/1y
+gPsr7B/q0HvlVQiklehi95C+mw8IgpyhY+JOHeNJAQKBgQD4f6Rgplcag4TUKwJK
+9fsznmTAZVHYfxP2xc+iplHGWYFTJbFDjXQdGGfUw0bdTDnv6kxWThcDD+0TqoXI
+L2jwi6I1HVVrGsoMVqTyBLfQyNSQjMotAsF9619lyCNLAs9FN79iOnNXatrQmacM
+F4VJrpuabPyiF3pgDoIAf4JfQQKBgQDsapeeY0L5sCpCgL8tZzpYD2ir+m8iB3Vy
+IfUF0VUPeouXqzRPS/QP7SD6g9+M4d30qMiu387H5s66VXU9UR5pAgnajJKkURIM
+SqDBA6aCJkDbFe6SlyU+oG5m/564x0tEvO5uBJbTuGamvX4K5li4eb1Vzc8TtMMT
+tpLzLsxJkQKBgQDCvz3ypMoEtGfH40DzwF0y8gJhqcX/1m+t6Q61mITj3sd0g0it
++VCzcKoG21dRHWkWddeHl8F/G98fl3crEMS8J6Ji3+9Odfs8ujagmUP5czrrYfsc
+VVmQtoLYAIZwRe5sf6kUcVxteQetjY2V82T4/sdhueIvohi86QHHJCbnQQKBgQDL
+kynF4HF+shxhsZ1tylLqGzKlzHs/0S5nvifP/6aAMqTbUDg2BBBAWo+oSEAKfz/x
++hj8xIm5ht0ChK30w9Is1+2GPL/VMF4bKXPtYGhT7/6u6N7Lac1PdTQ8Cucw86Oz
+qACjyd3aqBH0iH1tg1ZoW6QWq6chr+i/I9q7/tM4kQKBgQC5UFctCkvd7EeE8Wah
+iJrMu9PQ7oO0JYArZT6PrGTS6wu3zN3Ow9LZl9vaRuKb/54mro/wSkxiNkOBM+JO
+nWYqhEhidZLzjkSrW2FD/MgVau7xaiX0BDfzKI0Owa9WbHaxUnYASkSE58qeQJit
+YEmVB4NI25BIcE2B4bVuoDGsPA==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_02/description.txt b/src/tests/data/x509/bsi/cert_path_common_02/description.txt
new file mode 100644
index 000000000..f416417f9
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_02/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_COMMON_02
+
+Purpose: Checks the behaviour of the application when no certificate is on the application's set of trust anchors. This path is not valid, because the application cannot build a path to one trust anchor.
diff --git a/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_ee.TC.pem.crt
new file mode 100644
index 000000000..8084d0503
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNDCCAh6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDUyWhcNMTgwNzI3MTMy
+NDUyWjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBANWWb/WM6qRf7s6hmQD7tjE6KEZFquKOEiyu
+fem4aXHJYQKErypN3KTVO5bXcsEKI+vtRms9aLc+XpS6BLPppH0ctKlmjNA75bJl
+V00wkt3ov9bBIDkEXRI/Sp1yAAQvl53eYVdO5HMuRJ7McHesVRoKDEwEucX/nIWX
+Q2m50kP08UIuOhMAHq2RxJ6ARsXsDLLBeVJg514FuLPm6HcadjeQnGYmM27F/U7u
+nagI8EQKagmNHDIL3P96lJEFrCUSU+wnKXGEMePx8Bl1isZsGSClktCOm/g9aQRN
+hk7e/D9/KYs8D53v2pjLNS7bQutbA0o+kmll+PM8sgt1+IdEvFkCAwEAAaN5MHcw
+HwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0OBBYEFErNMu0b
+A/uDQAPWCtBFunse+Ay8MA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDALBgkqhkiG9w0BAQ0DggEBABmhaAVENfoV
+fMtu//eyvlIxGF0yTTZZCyKHe7qQZZy2fTj9D7mwR1FiZzZ5qpmkDcJpqySTZJ45
+amUnb7onEKJADhC8/+ggjfH7WimMhHon7shvgQSbv2VDeiifymMTLQioiBMxFFIE
+fw+kWPVetCGpoKkq+xxGr8NybZBaKF5zxiHyfCDvcdaqvJt7LFu4HQvn4SDIO6/d
+kb+OQdzJBfzl9xduOtTpgEPRK1wust9qwKOeyrSPhe/Uuq8FG3w9VQfEZrskMWn9
+2JK+JM1Wkol2EDRe0djdue7Go9tkauAtre1D2/a1VhoywRqWjxsRMFypG9L+XeZw
+BFwgDEyWw1g=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_ee.pem b/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_ee.pem
new file mode 100644
index 000000000..c9335434d
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDVlm/1jOqkX+7O
+oZkA+7YxOihGRarijhIsrn3puGlxyWEChK8qTdyk1TuW13LBCiPr7UZrPWi3Pl6U
+ugSz6aR9HLSpZozQO+WyZVdNMJLd6L/WwSA5BF0SP0qdcgAEL5ed3mFXTuRzLkSe
+zHB3rFUaCgxMBLnF/5yFl0NpudJD9PFCLjoTAB6tkcSegEbF7AyywXlSYOdeBbiz
+5uh3GnY3kJxmJjNuxf1O7p2oCPBECmoJjRwyC9z/epSRBawlElPsJylxhDHj8fAZ
+dYrGbBkgpZLQjpv4PWkETYZO3vw/fymLPA+d79qYyzUu20LrWwNKPpJpZfjzPLIL
+dfiHRLxZAgMBAAECggEAFsKj9iL42yDU8iSCyTnJibfklE52vhM9KRFEHiyWYfd/
+dLT+dI/dCByn77RQSHVj7A96HlHqL4LAMfGbsC9g5asyLk4dCdCkMs09Tx6yu96C
+WOh2HlVSdLAVa687BLcsnThWH6dqzUJcMh7fikUtQWvaMRyczlZlj8/VcXYJi8+j
+jipexAxsXrhoWi4GV4CCkw5jS1HdjmdWHRwQJ+0OksxcHoBrwSOsVol6CWdL8+0g
+0NNHATK0F53wGhClLdb9P2ZhEOvNBidaMAsFN+KwE4NxM3hnt/OC3yRZA+0pi8+J
+fPRdP8/ypLzWVuwQSAg3SkmpcTxgLH+Z9Rljhcl6YQKBgQD8P52MamXSsLsOc2jK
+ihqALdz+UJTKFSzBIpMQ0txX2jUg9R3oa2kKEPFAHGA3LA5sMdBNWBW30s3MTjWI
+7Q5xE8VFvI7PnOYj44cJpBmJSVH59fLg8iU8JEG0b5jLMaiyFiCHBfoiaxOVphGi
+dYia5TtP2NCE6im9PqWaBZNm0QKBgQDYw6DtysvcA9kn36g5CDiDp6v4hUA81gGu
+wrmQSkCTGkmbItxjL5eCgafAW4tZHAzc76AAkVZZSdDVyYHuXFOS/jnAeAynVLbe
+zvu8rUgbZPBu7mYhvZtdx03cJO7zOYLONJacCuX3ygfTJ9D6ZxYJU2RRbHAfNSvB
+iafZnsnvCQKBgQCcpAB45sVuTZMLST2ksJf+Svy17GJJD1coZAkBZH+yCm39lllJ
+MBIdTyIRFs3k1PXr2A8rSGzMJxrnKRXzfon+TDGvuYTRhfQgCzWbFg1JhH9kgoed
+iqD2tOkcXER8wcypMjZmwp5u6yFRR7whr2zyCzGGxvPN5f+fZhy+BYJgUQKBgQCv
+BSYHWltIBoNsQpZdllmrU9LzEwRPGqy5ItkZvBpvrCYKcRdprp+y7GU6V7An/xIT
+whd63d7OsV9Bfza98yY35bVTxprQ8QHG3XE9Ytx54gKQT0V/sMyl56riOaAGG0WW
+obeJvvL4I9Q1lkySInIUjZTOebP+PrxZxIAWorOBoQKBgCjd9ZOVVrVFul5v3fyn
+rAKSMIZQ+r5InQtFROnPRbEFM3DQSmuZNGiCbF32yyZaSeOCPXLnnMi0ioQQP6EJ
+3tg8YYBXXRDZ8cBGINezNsZbT6J5Vxk6YjrLd6a6s9l2IkezBCPBM2SuQZwbSpJe
+DyzAF757x+rbcAuLnsHwGFgv
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_03/cert_path_common_03_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_03/description.txt b/src/tests/data/x509/bsi/cert_path_common_03/description.txt
new file mode 100644
index 000000000..e63e3096b
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_03/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_COMMON_03
+
+Purpose: Checks the behaviour of the application when the signature algorithm in the TBS part of the certificate and the one outside the TBS part are not the same. This path is not valid, because the application cannot decide which algorithm to use for validating the certificate's signature.
diff --git a/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_ee.TC.pem.crt
new file mode 100644
index 000000000..8cb9ecf11
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_ee.TC.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDKjCCAhigAwIBAgIBATAHBgVVHSMICTAjMRQwEgYDVQQDDAtUZXN0IFN1YiBD
+QTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDUyWhcNMTgwNzI3MTMyNDUyWjAf
+MRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBALuJ50KUpvsGjT9laQY0qA8tE3/kJix7fg4iD+KJVKDe
+NA0WOJED/CT/P8x/izoeXcTGSYelXuEr2q6+FdaQTqJSxh4FUkKxv2m3PPRJAORV
+5790N/g7dIImDtzEb0cDxnV7q+55448u6KWTdruyOMTaNsjSbxIgiw2vBegCR3MG
+Yam9T5KWRonI+KumFnGcmm9MnNIHfFwLo3F0+8c1o4nCwdW3EaEYGNW4EDZhqO/9
+EySnW23ms45kIJzFuC26ae8chzvJgHvNYF6+D4CnYIHaDO1fCo+y+5zSJKkcvIHm
+f/cyHQsBrWtRxI+8i5Mo91+X6yPS2xkPoDdOJT2RKsMCAwEAAaN5MHcwHwYDVR0j
+BBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0OBBYEFHQJQIGRv8BalTtl
+dgxITQaMOtmJMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEAMBQGA1Ud
+EQQNMAuCCWR1bW15aG9zdDAHBgVVHSMICQOCAQEAHLzQdww0YxZkhOqvG/frYHXs
+gar324D/2EQ79pdYpbzQgz2mcOiMJkhCSbKTiWHNbZ/rDIuAqVONvybMIG+T8jSK
+4dbvJCGxXxdEJtiN41oQkvbc932BkNm74ILtb1NqFmLRDJSc5Kp0xISW+atAVZ6J
+1dhhksCwMHUAW9R2Fffmm93qjWPObZniMtCGB/IKjZp6c6KWEWNk96U43FiBHMws
+ZYbPVhkGlGDqqpmnHf5dbM2dPxCbDDFxGfnu4gBU28MHd7AyGa1kDqvI+Jd81Fr6
+d/MabU2vO/60Ua8JXcU+l4X+DKn/Wo0Pe6Hp21o7mhNAbvOETUjiuTO983lH0Q==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_ee.pem b/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_ee.pem
new file mode 100644
index 000000000..7fc5e4cb6
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC7iedClKb7Bo0/
+ZWkGNKgPLRN/5CYse34OIg/iiVSg3jQNFjiRA/wk/z/Mf4s6Hl3ExkmHpV7hK9qu
+vhXWkE6iUsYeBVJCsb9ptzz0SQDkVee/dDf4O3SCJg7cxG9HA8Z1e6vueeOPLuil
+k3a7sjjE2jbI0m8SIIsNrwXoAkdzBmGpvU+SlkaJyPirphZxnJpvTJzSB3xcC6Nx
+dPvHNaOJwsHVtxGhGBjVuBA2Yajv/RMkp1tt5rOOZCCcxbgtumnvHIc7yYB7zWBe
+vg+Ap2CB2gztXwqPsvuc0iSpHLyB5n/3Mh0LAa1rUcSPvIuTKPdfl+sj0tsZD6A3
+TiU9kSrDAgMBAAECggEAB7qHAMvugRGD4v/Iubw+zCKlQektl49eolzN/x3TZ9kb
+F7T5j3m0u55B9f6wRqy3XDjNu/IukaSvMPIIJV0HbedvtGSvagHi67Y6Tq5ELqTJ
+qwQHmx/GzTxInYQs5SYnLh1IIx5RKKFGw4LAaxDNB8kfETH26NjVfN1gfBoSnA9Y
+3bANhb0hg7OLmucc+H5LGhZ1zS4HVtlwbiyOFzUZy7p2vohYMBQqgKtFYRd2ED1o
+T7uRkXVeYPyfxfzr9DmfoxZvf3sBmvaxKSGGOmcu4ATpHjdmZ+0/Hxg30JURNIZ+
+p5rEYlFCxseOGOMofGv9Th8SPiEzRIzeRB6aIl6P7QKBgQD7oh7Qo5X368x4EyR1
+oks/7bqQqbZBW0AVYXNafNejmeTmvkHVaa88b9H0GaqoBgRUYnvQ1nsS6MaHACp7
+irdvXjDiGz0IzHp6OZLcuGXqGwleYWwb3yPzFUO6rVdm0x8BeSDafgjWf28JfFei
+SxsfMFNw8iBOmisFD9qmC0gujQKBgQC+ywsFbCany24rJsZL50oP043bF7rqIYhv
+oCkpgQpR0Pk4SC9jk1V4NaSTqmMSci5nmw0B+Kkcg4Yt3I1nVuxOdoACBmMyMbBg
+m+7tmH4BDcC6orYpygKOegBa1jMVvbh8MUBKXMqbXFVGZnMT8XQ5E5oQ1jQFEh0Z
+kU66RC5SjwKBgB/23x03uoQswuN54wbCX/a19x4LQOiac9CDeYjEFQxmLyqUfn5i
+l20A81WjsQb5BLHHdNz5cdbcFOPvRHY/D8Ao4eLG/QDSILjH+XzqO5/6YT1I+Net
+h76IM/tRq6mXJfgk7+RxYCQHOg6laehmzAIxPFg7mZkCgnZ5JhgzlK69AoGATKQX
+e0gkhwbK7H6Y7WitcYoT08zGgsKRofV+U3PIh3Egi6FDmAZZMP6ra73oKkK/rVK1
+ePNAS3nx7n5INxjNt/8WELosIr+fEE/TPJIjG51ArDgsYMELIdyUQ+kDgFpDv2+x
+Wa3InXwLrUn+NCar/zmGi/jf0KGkGt8p9tzolrUCgYA1ByNcy2V3aGwi3z+mkhVn
+8H9LaboY32cSjv5uus2bC9wUmnRdeXKOJJUj2fwxbwT3tuwXRWha6PFOsOqKxCF0
+YqQqFZe+cShwF2WIVq0MxouvfuYVH/PBr0Hec2oTb00MzKjA7iwUExtC1AIicCm5
+GcW2hmWan2sX7iD5q7iwJw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_04/cert_path_common_04_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_04/description.txt b/src/tests/data/x509/bsi/cert_path_common_04/description.txt
new file mode 100644
index 000000000..fe46d3e5a
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_04/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_COMMON_04
+
+Purpose: Checks the behaviour of the application when the signature algorithm of the target certificate is unknown. This path is not valid, because the application cannot verify the certificate's signature.
diff --git a/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_ee.TC.pem.crt
new file mode 100644
index 000000000..c04d876e0
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDVwOCAh53AwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDUxWhcNMTgwNzI3MTMy
+NDUxWjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKeVnt5JJgxeJz+wcf1UYSC5tgx3kitv9H5w
+sztyjbCAfHDku53Rz/UfjIk9ogNMKH1FJd2jzMUVcLDK9PQjxnrJTPzwfhr1JlvU
+T8F+l9AZkpfZ7c3NPmhzhZaxk1PrtlKas+k+kuyfrRQjCvOIXmb/OV2YRu03itGu
+r83tAPBB9qimWGGn8GMw134dd/zp+k4+30yuEISAPBZ/4kYmqrXk1N4owoNDYlf3
+FjQLZyBIghMjTvA1XRzsQd47EKL3eE1PhVuRMx6/fdvAsdREWkBf6YEwbQmOsXSO
+9WpTpS+406+M0OkO6i/50fesHIN7cMNVStgx+2Atu3EF+rrhZFMCAwEAAaN5MHcw
+HwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0OBBYEFBicpmvx
+jFGW1xVi2vNHeFcDXqaxMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEArhzASa7h
+q/AqZUf98X4yeYWaH8gbGoZijL+diLRS4qPg1yPKuWE78wpVnkqD2v6vWoKeAFo1
+JUhi8HhNJHQN+JrHhY+varZf/xUO15v6v6y0rR3Od/R81geB9ojalybauaMiVOR1
+WGsdcvw/CEq6kDPxs0IwEIftCvyxq4olTS1z523N236U5moMc4aysIYzxFj1efH/
+aEVOmlaCow0sPt8SPLLtw3A8b4Vq+PznkaBEd5Bl9azBrwF5QJipFVmJZmG6miKZ
+dYwrQmADfnvGEARoah9xpGc3WrA7TtAlGPyPzZ/SocsVkVf9DnAbQccun0twA/SQ
+3tvyUmlDbhn8/A==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_ee.pem b/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_ee.pem
new file mode 100644
index 000000000..f03182e06
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCnlZ7eSSYMXic/
+sHH9VGEgubYMd5Irb/R+cLM7co2wgHxw5Lud0c/1H4yJPaIDTCh9RSXdo8zFFXCw
+yvT0I8Z6yUz88H4a9SZb1E/BfpfQGZKX2e3NzT5oc4WWsZNT67ZSmrPpPpLsn60U
+IwrziF5m/zldmEbtN4rRrq/N7QDwQfaoplhhp/BjMNd+HXf86fpOPt9MrhCEgDwW
+f+JGJqq15NTeKMKDQ2JX9xY0C2cgSIITI07wNV0c7EHeOxCi93hNT4VbkTMev33b
+wLHURFpAX+mBMG0JjrF0jvVqU6UvuNOvjNDpDuov+dH3rByDe3DDVUrYMftgLbtx
+Bfq64WRTAgMBAAECggEAMUbK+JSste1HgDA7TGCv0KYa1C6ikdgxHa643Q2RgSk+
+rhlr23uSuQKGWeKADZUqwK8A89uSvg7QXIPJJDKSzY78btGuWvHjzhOvQfed3yht
+1O3VQXMM2zzAtq9PYVlJep+XsElgfWh0RZwKP9LE42c/sHgyvtTaok5JznTWlk5s
+t7OPCbzOWDMW9l9B5vLQ5wtBcFthG+OtT4ZY8kqiYKg7LDciXQEcR4aphICQs753
+CiUziatiakAKSsKhFkinZ79waQc55xcFdazSOH1o8JqVK0LpeUlUPm+pgd4qx5N5
+F/3WtId6rWDnb09LvjpnZ+qQqYHLgARKUaxLzQ15/QKBgQDkp5z9KDe8OC0t+lci
+aDJpJvC/erDpnOO56wvc1ubUxDDZa3l3u3A9ZSK1G/hRJjna8vMNaiHpQfZ74rph
+jwfkrQJmVTOvYQwVkGjHdeY5Z6VXUfsVdCHh5LFLHYlfb+GEYsdY+awrwFeqRcKA
+/cNWutIU4wEkBKVzyWD7hqu2dwKBgQC7oE7borUJXyubTrM1IXNi0aGIFtharX6J
+LmnfST9xC0mkQWo2HVZ6cjWWop/tDLMr78UNxoU4aWrlZXszDDv3jBj2xDaJ5Or2
+doccOmJ+Q24WlkTUK5U97uQ8NeDrsK4V5dY+iMevD6NdzofyBj7JDZFUyk8Ojq/z
+I5Z/RODMBQKBgEZEbC4wKdChwuCaSiS8uKEv4lQ1tCBWonUEEoUvVYiVMh3etVli
+NL/pUJ0vl0P451atypuYvgscxk6UAorwlZBkypQAIv4GaNxHoKuLQ9DoVRtcijix
+k6gDy6g1z32QuFEiufhR4eMgHNCq13ckhN8mUmEw0azr8JyAillBrYtJAoGBAI15
+5px0xr+nVJFKOZUhgQkNexjL6R4O3nAAYHKun7jUwxWpAbaGTrQLtF6+h4rOXbgO
+lu65N7D+xEzvRYOLgRg7OoOwFlPKGmX3oA9n8ua0X6mGa6X0qxdFMDI6ijwOQGZg
+pTkIGFHnn87XMekMToF5ypE973jRnNjgh9W1kTAlAoGBAIt9otaTQ/eN3NDPPRS0
+9AlKiqwbN/2K3lzFyq11BEzZpJGSBv1BYBkCbBem8rKa5ZkkNE/tut6MBLBBs8e9
+wFxdtXjav7aSfSosTTeIUf/j0Nym0ux1GCJ3HDB5KDkBU5VbFcPaEyJFfTinaA34
+Hg3/xx2OM1G6pSUAa6KXsVQU
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_05/cert_path_common_05_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_05/description.txt b/src/tests/data/x509/bsi/cert_path_common_05/description.txt
new file mode 100644
index 000000000..e7f0fe315
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_05/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_COMMON_05
+
+Purpose: Checks the behaviour of the application when a certificate has a wrong DER encoding. This path is not valid, because the certificate is not a properly encoded structure.
diff --git a/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_ee.TC.pem.crt
new file mode 100644
index 000000000..f41710acd
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNzCCAh+gAwIBAgIC/u8wDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjQ1MVoXDTE4MDcyNzEz
+MjQ1MVowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0Oz1YEPWjv1QngOXKsu1V0AmapWkX0bTh
+nk52Ay8KNQp+QAWlklGi+WmkWlSQWkUtU2TFfB+wT77qmeDgtbsHCscmNnguFiQT
+fOea1e4ahq+GxupZdZj0TWj7OmYm/bAZiLCMSXcSYcd6UCl1DhXB3/b4zYELJ+yt
+Nzt1iC48pDtm9TRT6N52BWC7O3s7Q6wRwc3uURu1qL62fup7rkXs7bLaiTKXaDQi
+mzQVkDL/lKot+a7tYBK8TXdoH4jjJwodWZkdkI/PWAR8P0advNXSzQTHZ7uPzjL3
+quOhqJai1XfzgZ0b9URHkdkdo5T9rfYMKmTk7qOZ9GyM4tXhwGSzAgMBAAGjeTB3
+MB8GA1UdIwQYMBaAFOCMGappJZoaJQD2syi6G/cN+c/AMB0GA1UdDgQWBBTNFbXo
+TQBiWAK8Rc58xvmnA/R3dzAOBgNVHQ8BAf8EBAMCB4AwDwYDVR0TAQH/BAUwAwEB
+ADAUBgNVHREEDTALgglkdW1teWhvc3QwDQYJKoZIhvcNAQELBQADggEBAHuqmDC1
+svQzZt49QgENYOMcXg8tdnprFgMo6ufzea8MX6B7MI0D9tFmU7kzjlPcvrSlKKJG
+ACajAvF1JREX9L0/QwVCcmPA1UafUU15sxnnY6HWSUyroapt+96SOjCwE1dPv55I
+qQ7Y9RiJSHfVY63GgXSNB/lhQ7qfG3zVyuOewOr2UI99YB+Cg9fH8S6j1+VRkvj8
+KOEjgJhI3LBpoFCbkEUBMCHcuF5AGXDw14k+8vqvKWmj65sbf6580TeZ/okDQhkW
+Pp39X0SkXY1xrLahdn2j6I64a1qEkepMcFpcmzkYIp6comHItva5L+nzFY/j6OBf
+k2bZ1ItEoiux2m0=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_ee.pem b/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_ee.pem
new file mode 100644
index 000000000..906a1732d
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC0Oz1YEPWjv1Qn
+gOXKsu1V0AmapWkX0bThnk52Ay8KNQp+QAWlklGi+WmkWlSQWkUtU2TFfB+wT77q
+meDgtbsHCscmNnguFiQTfOea1e4ahq+GxupZdZj0TWj7OmYm/bAZiLCMSXcSYcd6
+UCl1DhXB3/b4zYELJ+ytNzt1iC48pDtm9TRT6N52BWC7O3s7Q6wRwc3uURu1qL62
+fup7rkXs7bLaiTKXaDQimzQVkDL/lKot+a7tYBK8TXdoH4jjJwodWZkdkI/PWAR8
+P0advNXSzQTHZ7uPzjL3quOhqJai1XfzgZ0b9URHkdkdo5T9rfYMKmTk7qOZ9GyM
+4tXhwGSzAgMBAAECggEADdcuxgCNz8SPPEL6lci/z4M2X/94q2RmggNol+KoTh32
+PFPDGz/tScxIsvjGd0w3W8Lq58kfnEHDfrvQ0fDV+AITFEaPXBqr+PZY/HVi35UD
+dCCUBpXjtRi5iYsM8f/+JTfWA8mKF1Z8ilJ1nJBqvOse42RrFuXUZK9R8mioarrT
+srblhC0wFei+ryRZvUN7Yq/zs4aw7drG713cL+WfYZAX7nw2KaruwS/tLq8bZ0Te
++jst9cdQInn9HwRufX3QzyAGhmvZE62H9eHuo1f1f1365Vo7Le13CO8x3E05/hgE
+pvRMvhSHhhRcTgXlM5nVHGusKmVhLK7NBZFRIK59YQKBgQD+t+J+/Jq65hUjNX2h
+lxqcTdD5XbMUq3SlHh6cNZkDAzriN1xOC4XC9ca3OH/R3M8/6J/f/E/V5lqV7FvE
+F0AqN6XYSJfo/G9/NDu1aifbS8Q8yPilBDDHxduK6mDKQ7M4+IvX3nfunKZKnidm
+5ZWZ9E1X4IKnIt6Vv/WhWCuITQKBgQC1I2eVE/FYbYK0g8GMkWEk8AEbrqYvA2w3
+Wtk6PqqPaqQMfOA8GooTc/J65kldmMRdargqc8lAxfhvfeIW+uMDiYfXx8nCElaS
+svsobvFuX8rFoH9rbEoHyA6vf8fnyuil0r9hGHnA4hsWQDexQMvxUnZaOpZJwipN
+ZumHH8Ig/wKBgGAD8NztW2YYVN9wymqfCujgbGWTbG3eM5oKQH+htIvuK8QaGjFR
+JprXCpEGOyhgk78DcUB9W5rFul/JOM4x9X30fA+LTbgFcAIDLn60BVIkvVQsbY3G
+hpzHeHpk3xdfba+MASreMVdAtW5rL28aG8pszLrTZmyaOE06jtzC36YBAoGBAJTG
+k5k6XAxJRgWGAj62WZfBGOfnts7+fK+qiqjwN5679Cndlz9GfQolPY/7/V5Gz2H6
++XDE0RPGhprsRfqh7jtFhrGQgwJHlZvALdGz7dC+FQnlHULaGqPxiT5UMZkMa7Fn
+O5FATSBDlgPckuGfWuLG3DaX0ECcnaodUMmPKB95AoGAGx+NwOnddbdpsAM1qgfV
+p+msi8wsj4OG9ahkK0sAbF4CqjKfh9DH5W9Zmtee4TicLP3ALE5tZn/6uJQKqo15
+rNc9c1Mgpx6yxdciwM5nrMwelu1kjf3MJdEDnfIPYoCIcW56XLpvIa+SGGv2ZzSe
+G8VXL9hdasyLtSefspL1P8Q=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_06/cert_path_common_06_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_06/description.txt b/src/tests/data/x509/bsi/cert_path_common_06/description.txt
new file mode 100644
index 000000000..779dedd9a
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_06/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_COMMON_06
+
+Purpose: Checks the behaviour of the application when the serial number of the certificate is negative. This path is not valid, because serial number must be positive integers. However, negative numbers should be gracefully handled.
diff --git a/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_ee.TC.pem.crt
new file mode 100644
index 000000000..e9a10c8a8
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAh6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDUwWhcNMTgwNzI3MTMy
+NDUwWjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAMRbXRwMucFlXZYdTdYU1VkeeqXtP3WRv4cJ
+N3feJbDnCBj77VHEmh3lJc1LDh6T4/NQ09dWwI8SpVR1jWXHZnPHoSUlDFtKfz71
+iZbYgIHrTXX1QC1pb7p6wBwQInqMiVVkOVJGrQ6vCC412DtVz/pLlxVWTWJVcLqt
+Agz3q7tx4HsUPTq5Fze85KkYtAD7RIZ5shVcoDQqTNRuIpzxXfAMCB3aKazmEbMk
+VSugfckzHo5UQnhya8lTvmzNnAXTP8AEjcTJn/MIBi3YBo3BQ42GaVWejWxrHRET
+d11e+vItowQ9nUPh3vObXL8DkipcfF7mhc8QmDwdCZrZY+33sW0CAwEAAaN5MHcw
+HwYDVR0jBBgwFoAUieaTDzrQDI8wkKMssP97/A8aIL8wHQYDVR0OBBYEFA5CdNRP
+NrMPM/sm6O9yVsRUcNjfMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEArgArY3rE
+fzr02OEroAp9HU3vpq5LHHqyZIZywu1oqyQaKJoBx4fwsGqtbMwrqhqUmXijfWmv
+rdDBPyIEigYpIlo9NLKOgVBQPLJNPxKgqOBQpH6zLMXYxeMfH1Rp5lnsR0vLN5bz
+VvAdjtxXazxNdEDwXgO9OfAImOM6vPmkBisKj4Lk+4q4+KQCDZKEQfrrOQGqCOoK
+oKx3QNJNqajJD5Esy87SL56epnwonxeA3tDbbJsN+rK6Jk4hq/aNTX0QZ35zQKao
+qx4vMH7KzqRTvxDwnepZe+8hmFz1ASKDEV5RiFlB54Gt3WsVAnh/LIDC6gypzkkp
+/gaOLnOP+XrjjA==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_ee.pem b/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_ee.pem
new file mode 100644
index 000000000..f977f0e89
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDEW10cDLnBZV2W
+HU3WFNVZHnql7T91kb+HCTd33iWw5wgY++1RxJod5SXNSw4ek+PzUNPXVsCPEqVU
+dY1lx2Zzx6ElJQxbSn8+9YmW2ICB60119UAtaW+6esAcECJ6jIlVZDlSRq0Orwgu
+Ndg7Vc/6S5cVVk1iVXC6rQIM96u7ceB7FD06uRc3vOSpGLQA+0SGebIVXKA0KkzU
+biKc8V3wDAgd2ims5hGzJFUroH3JMx6OVEJ4cmvJU75szZwF0z/ABI3EyZ/zCAYt
+2AaNwUONhmlVno1sax0RE3ddXvryLaMEPZ1D4d7zm1y/A5IqXHxe5oXPEJg8HQma
+2WPt97FtAgMBAAECggEAROW39HUkoo7iOR98Jb92osgWie0GpMaouQWLYHRirkFK
+bpXLDjNZTl8OlgudXy5OQBxe0ILAmxMUTt/WZt2B/eMQkHuA6/FmV52JExRRdwSs
+z9RnmeeSjBCxIseoiW6Ra5R4pn1lEK9qw+ghwKQaDz2BvDtleLj5Do9RFmK679Bm
+FybPgvm1usNIOPMpWbeLDmwtfBqyaZ5NIGMFnqwbtNIQMM+cgs8r7XYFGSq9m7q0
+LtDW9gKqmYBQl+KZGlvwM7V3i3iu6tuXFZ9gzdpoQKzVtOWhRJYtBVtOOsyU6lst
+Au965W/rNPBRHY+agsUMs16CshyKJSSD6lRO0+h1owKBgQDwWhI6wwM+5Z4bMhq+
+pEDeLLEzAh1SUnMnObpa5EyrhrnPDwkhEmqHwP1UuJBPioiiUNE+ErdkBHL1XCws
+plcAQucLS3O1entjktpFlMgrB5joGg9oUU4cejnZyJbbS81fG7vbBfIEkZow0Wva
+WCgN+H+iEA6yGnMNASgWiRNK4wKBgQDRJAgNhlHFi8JdOyCwWNDyJLBsUyE32MSa
+fqE1/NVotW/68HXJgTLI2tXu89X/oJcr1EZiyXMVqSL05E8+O+7RkEzqQijrS1Qf
+ASORCG8Sjh7RaxSeGSpr5WozC+WwgKnNn3uLBm0cLC8Gto/L4L+3nr9N2vKZkgvD
+iUwdwsUzbwKBgQCbahKJjpnlrMIcYbyrczhCsXFvQznEhm3RemGG7kKpUveI7PcB
+PJBH8cGda65c0H5jPpDea2nMMZhIEW66/GAbWiddxU8vlOB+VXHwNjFsqX/07Qzz
+bkds4JfRvAPYD17f1eYVzPVegOvMD06HJCPaTMny+CEYh0PHr+zFDaO88wKBgBAn
+Xk/dHhfKEbstw/qbAZiSaOYVDa3ImnbsbPtEih9KVFnnlNF5nziQXpHUV6Uk/Egw
+XzdmI/N6Wu7ba5t8+ZdKNAasEYkLCnZSmjKrmhiuzYaTZMZJX1NyJt/GfXlCltsB
+BIPafTb92qwEEdtHgsdmBZS34qEl/K6fvjdWQfEVAoGBAIqY4f0MbfwpaihBgH5Q
+bBaBPEEOhtvJLirRWnIZ8ssB1Tph7YKnFdaKdsB2FZy2dnbIns3qs+ZYEjeJcIg0
+QphWaep3Gefq+0XvKLI6NzMogY3XxkNKywh7r/6m2hpR06R/se/SrPjRCvmh/d2L
+lZUe0UrB79o8vnW8O4NkDP+3
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..acc15d3d6
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDgyNzEzMjQ0OVoXDTIwMDcyNzEzMjQ0
+OVowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtz1vzrbxATk8v2piez/GiF5dUjA7HJm3
+hl3k4kyf0lU2b+8dmABxHeQZxfbIEo+MnHyHw4mj2Vswamyi83wGqUWzYPUEk6e8
+sO59AXlqWb4O8T2BKsE+5vaTAcxcQ5tutqT+0Kjnl5GuKrUrmHU3cFJLRegFu70f
+SPDGshvlPCxQfT62TflZbq88mtNwMQ1Bpev+Pnqe5O5r4TEn/Fztr1/T9HJon3i2
+DLqs7SgqAo2W3w2nUZ6DAugkVoEuEPHccTgjICzfX9KuTr9LAlMuoLYA0bFWqg/n
+XkVJsx4HwgTsErgeLChIdAvO7TxveXubzy8t6Hgn7iuJmLtag/BEgwIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQUieaT
+DzrQDI8wkKMssP97/A8aIL8wDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBAEVN5PR5BpSVViDtHGw7nKe53r99zKbj
+BScHN9rQNcDeG6C5mNpZsacDs21cmFdX9UptfAPY+WuqbpaGGpxJlX9t5rPqJHyp
+GXh7EXIJ3aisKjxv1vDUuLf/i8Q3Tn6HVb5nNBrd8ovWqP4Nmt8VKWjSvUdBYxhV
+g0agr/IYQBuh23oZXegAtj2CJo07thyimTUDX0DvOKykgcnRjcwwxElEtb3HDHGf
+qp0RGB55kXqKr1EuBKaVuNMc1WOY1tkB+AuGAM60B66JoKukPcuActVS8SbJqz0S
+oNk7wpeYZX7LNGtl/dw0Ymy7MicjW0BXv3GyWz0QPsiPGSE08D/rJXg=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_sub_ca.pem
new file mode 100644
index 000000000..64409ea06
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_07/cert_path_common_07_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3PW/OtvEBOTy/
+amJ7P8aIXl1SMDscmbeGXeTiTJ/SVTZv7x2YAHEd5BnF9sgSj4ycfIfDiaPZWzBq
+bKLzfAapRbNg9QSTp7yw7n0BeWpZvg7xPYEqwT7m9pMBzFxDm262pP7QqOeXka4q
+tSuYdTdwUktF6AW7vR9I8MayG+U8LFB9PrZN+Vlurzya03AxDUGl6/4+ep7k7mvh
+MSf8XO2vX9P0cmifeLYMuqztKCoCjZbfDadRnoMC6CRWgS4Q8dxxOCMgLN9f0q5O
+v0sCUy6gtgDRsVaqD+deRUmzHgfCBOwSuB4sKEh0C87tPG95e5vPLy3oeCfuK4mY
+u1qD8ESDAgMBAAECggEAF87Irx//0jvgk7I7122i2ub/0wTnOUETokaizXBNN6PQ
+rdxwiOZNzCdt3dXBiv/RsidP8Gz6t+vsL3er+Fy99NJUix1qmdCqaIakAUQIOF7E
+TD3EgYyYIqQY15v4xOP2D48CeJPpezz3Vx8w6d8Y8+QNWajazdi1ruFxv4R2VUno
+AZ/VvxygkN24ojDntmbqFeFPDw/LNYG1If8UemtuParjcJtiKo3r9JOt1cTHq31z
+fLIDUKHwY+YGxIBvivx6VxreqWgM7tI37aK0kbM4oGn0t2jRzBy9uQgquEGUKZ+W
+u15A2RG3hom7ATtQXREhIoFo/q6KGX45wfvMQ9/RyQKBgQDz4sBGx6H+kg6hWv9a
+JIREbbRmrZmeIQgPzbibD01PjuMa3qK4KudHASMIu4U1tH7hHnkMA/nDhkRWycvo
+w08YF75wUif+Hm/slQcb9N47FabnLpsaprXgA5zDxHYBoxIO8hfvNQbeS5/r/xCy
+MNthdRqTELmze7+18vUv00BfhQKBgQDAV4PGp0+T8I0zI2a2y4vzbLpnqXI08sXm
+l7BGpml1/NtVQYAdeK8usStGtalnr0hf4iXJyzc41RuABvmEGHNvfV2+0oHg1p8x
+sL29VgoAc65ok2CEj53rZqCX9VJbd9tuyqvm83IXFO6Pl6pagpNarqp2OKf5Hvtw
+ET0BLkteZwKBgQCqib2QANqbC4DlfZ8fZneC7f9+6ReJRmm/u0fCTcHuxuixikrY
+Y0/UC8x2t8GfWzZ5rnhQWZtWCNZSpctLWP8+xqOpIRnMDXaQRWlyOBkJ0csizykw
+SrDVE1GUZxVpcaEYCFuKLlc+LD2IpZQENjvBe0R43/IqunbFAT5IEf1qjQKBgEQq
+P79VaDRr2f63mx1JQc4BSIaYXKs7Jru0InrHWzS/ahPq5LaNILiRfV7P3ruqOSIS
+CYZciLORgu96iU8xQyfN7D1GaVT/euenVXcWWPEUDkltgZU5OKRGeL+h55AXCCNZ
+nFZ7DIH1nx4wh+UPxZ0rram8Jnt5aW6sDUyv1XIdAoGAAKKBPL7pC4qnNg2pcPy1
+r0pr0ja0G1JmYMpf2jczbju8sKmHTDCINvse64A+Lwy6y8S8vUiT5SV4Uyx4DBvb
+IgusBULKQVcA9+XEUvtHyTnRTph5uwV95397KCyOTAxBTc7Qt7lWbKCG959wLau/
+YobydYjg43NDOx+uoGYzniQ=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_07/description.txt b/src/tests/data/x509/bsi/cert_path_common_07/description.txt
new file mode 100644
index 000000000..c9faab1d8
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_07/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_COMMON_07
+
+Purpose: Checks the behaviour of the application when an intermediate certificate is not valid yet (now < notBefore). This path is not valid, because one CA certificate is not valid yet.
diff --git a/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_ee.TC.pem.crt
new file mode 100644
index 000000000..6343c1419
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAh6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDUwWhcNMTgwNzI3MTMy
+NDUwWjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKYrzKlNQO4o4PvTXXSjqJ3jyFRiGEuSw9cp
+3oqP3to39fFUeGf8TvkIOgp0ISdRYtIIiNfBXtevpq9OkSsgxFi16fTJ5VZGQd+e
+Cc0DsWA0n3gdaQhsW4i0OYjeOux2TrAawOV9wEWT+fgyt7HJpIz2kYq7LdH9Zv2E
+wiKQ+0P9Ju+IvYJSKqUH55Bf5UNbdBnj56GJoL9ZChIiJuGLN+Z1NkQn4IpvS6Zy
+bluE7BOy2/xx3++fHlG4k20iipjdm5l2UyrPdCLX9Ne+wa3on1wFexifYfxZUTSf
+693y+aavHkTju+oHX8TcsHp/T8VjgjNrc+Z3MizUofQWtqVebU8CAwEAAaN5MHcw
+HwYDVR0jBBgwFoAUyWmLdbUlFFan+AeA+Q1LEqDnaTgwHQYDVR0OBBYEFIFHv2Io
+EE3xx/hKfOBQfAk38qFyMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAgEOfp6Nt
+cvwkvOFQpcSwohQXwiLWLTviwPZ8ynx6e9Kyy3MmVqDgPaWi9tD+dGNOLKxKvm7D
+bc8xHuf9F2pUDiVPWDVg/sr1HauI2QcZHJouNZI38O6I3XiHZuv4UoCACGqhg6zL
+F/KOBBUhgqi7Q7cFOnPuguNyMmUX7/hfqgmo5uW9vd+CoTA40o4vh2SRGCBTgTsM
+EPR/dk3d31jENoVBU/fHDqWY656bWB1XQBF/Z9oy9MN2Kp8b0hgAEvk7Sqttiibg
+HzLMwygTKjr03LYJ7ixu356FxKfi0UGBMpxBxhZQXywhMnp/mWHCi16TSthh1pUN
+7X8pPA/g2oPRqw==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_ee.pem b/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_ee.pem
new file mode 100644
index 000000000..f86a4d437
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmK8ypTUDuKOD7
+0110o6id48hUYhhLksPXKd6Kj97aN/XxVHhn/E75CDoKdCEnUWLSCIjXwV7Xr6av
+TpErIMRYten0yeVWRkHfngnNA7FgNJ94HWkIbFuItDmI3jrsdk6wGsDlfcBFk/n4
+MrexyaSM9pGKuy3R/Wb9hMIikPtD/SbviL2CUiqlB+eQX+VDW3QZ4+ehiaC/WQoS
+IibhizfmdTZEJ+CKb0umcm5bhOwTstv8cd/vnx5RuJNtIoqY3ZuZdlMqz3Qi1/TX
+vsGt6J9cBXsYn2H8WVE0n+vd8vmmrx5E47vqB1/E3LB6f0/FY4Iza3PmdzIs1KH0
+FralXm1PAgMBAAECggEASpQu0y9afGk5bJx0/cP0CgTw5LpwB/8TSU6/0/V1QgBK
+sCjGr3jkYs2H6ygqtxBGZ1iwPhFKBUiO6XA8JBydMulWWuiANwPqTbgK0wocwj5r
+8gdVHBQx0r18cwq2bGk+sLgZKgaR1EhxMK1ml3MWGLQTJy4SBwSRhCfgz429T8ok
+SSxboNo7S8QRLeZLbcz2CRZaRx3iLUSeJIs4VgnVcJ0fUaV3Uz5eGBfpW9g3uELA
+iLBamSnsRHPJ1a+2MKZznd7T5N6E7Re4XbTOvGGDRimGa71MnDHBEzn91z/K+RKb
+dtr2aKeexcP5VHRUtkglwvrLZAA6VnJaXIO9ffs1eQKBgQDq8S7FXKu6FXfh3zN/
+RQz+mo37tN1liA3mKcJ3HXW0s/SlKrGXIurux8GhcCk/j2ABnMZzT4ZIkIuv+l6z
+uz0iSq1AD1HnpbuOOpgMHA+4ZySMXIN4Au2W3rDfuIQ4lVW/0JKQB59ACJCCxyMV
+WUDzf6gHcBBluU0VOdeJ4YJoeQKBgQC1EKUZe+POgraMd0K6jANkkHlI9wzfTS9A
+LxYhTzQUTn35RyGRNwqSax3ya6NcDsUvDgcNWAO5q2YTmttxumKci51WWmiffwQG
+7seaN6WC1r1+3vXR8skcDeK/s481IUNB5ySPNSMxZ5R9mEudvKXXJzyEM/rYqkS2
+hLpoT/miBwKBgGDUxMUdO733STCz8KKc0A1DoA9E7RcCq0/YmEjFwJSYstU8MnOr
+NY7yj7C87JNAwX4IopY2CY9w29HM7ClBm6G9i4hiiAxkd1fYeIBNNIF5KUwceScG
+dev/noCmqQA1NGFZUn7AVXdr0DvGXYRYA/gX/iYKnwd+BvIfo+E1K61pAoGBAIuN
+I6JrkR2mMyo59O0wYqEMlN3+wyYMKCHQ6L6Ne/c2s/L/tshkYrqM4ozoFwUpwSJO
+LnNDZcOhbdAoZ3/VBpHfLUnT7pUXYTQyrxaWUvNvrKdvEolZFVWRAjV8ICDz3RGb
+I9tYOiKm0ZSnX4hYUH1uGT9PjMOXH9SIod8p3J3bAoGAOT0QhqJIsOFr4j1FHVBC
+tJ1+FxUnmhKXzhJMYlhQYhuStCsXzTy31KNSJo8lLSfHk7y0Md/QnxnuLadZYqq7
+1zUfRzKcr+biAkCJv9O6BmGYAwe/ZtJwoP+S9tMKDpIIHeeFYy+gT647hdxleTWE
+fxDbeNb10VY4NiyOcmSofpk=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..9216ad157
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNTEzMjQ1MFoXDTE3MDcyNjEzMjQ1
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6TYO5NqlGaTwj4mQimN1g26cuLJ2FjI2
+234pZqub2gB2TrUi8nPkPl00jYzsQ0XCxzqePeOl6nTjSZaQMfwuu3aRfjd5lwoC
+k11qcmjp1/LG5gqrnEUk606X/8Ku7iihQkwtu0MlhY5DXcqFHJkX7cjkk4AYHmW6
+0X7yikyjRmexfK3ihDB6+BHGnhLk0WsaddEP4ox2sDWOW7/uGu6clYhhObc7CrGn
+FuaI50DgT/xuAJEQDsYVnc+XuUUMhcn5AWueyo3RvhGgf7wAE9ZMaHvYQ0PxP6/a
+b1I6EU696PB8iYqGJ93iKsMi+mZxCYGfU9Lh0J3N0CCU3MzOivbuEQIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQUyWmL
+dbUlFFan+AeA+Q1LEqDnaTgwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBAHt1DuS8S9cbciEXkFA7zHgUHAZ+8Axj
+C6jngQYUvM3pWZ9lYltO59ncxtFceiO7w5Rrlb26h6+a2POneAvMSmqBwXi8TyZ0
+1VjeMC+Ewe6v+kpqOFcVHjbz9377S6hhr5SYsG1hOUt9OHjUvcEf7IrrTT7iiXw+
+L1iDmakbU11P0/oc0yFOl5+wBh7JVTjx+Okryf9KVUiqdW3emjzfVZ09k14WgIxC
+0Yq60+VDDjqFN2nAcPCPxClRg1ZKjcx26ZuK52id10gInwNMpJETzSq5PVw6Aes1
+h1NDPpTZNCV4WRmNHzmCMBIUiz/BHU96OGwg0Y2+hNsVAR4GWuSSYPI=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_sub_ca.pem
new file mode 100644
index 000000000..f55af09f5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_08/cert_path_common_08_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDpNg7k2qUZpPCP
+iZCKY3WDbpy4snYWMjbbfilmq5vaAHZOtSLyc+Q+XTSNjOxDRcLHOp4946XqdONJ
+lpAx/C67dpF+N3mXCgKTXWpyaOnX8sbmCqucRSTrTpf/wq7uKKFCTC27QyWFjkNd
+yoUcmRftyOSTgBgeZbrRfvKKTKNGZ7F8reKEMHr4EcaeEuTRaxp10Q/ijHawNY5b
+v+4a7pyViGE5tzsKsacW5ojnQOBP/G4AkRAOxhWdz5e5RQyFyfkBa57KjdG+EaB/
+vAAT1kxoe9hDQ/E/r9pvUjoRTr3o8HyJioYn3eIqwyL6ZnEJgZ9T0uHQnc3QIJTc
+zM6K9u4RAgMBAAECggEAXAQ+4zCcFR695jzGobv1mYrS3pNXwZFFkNxaNI8Amwc0
+pwCUjeqJQ8wd2L4iWLbVUCvCVTQV+ojtR1NXiMlynPf/FziHSr+h3Yht4D+iCNlb
+flf2d13W39tuYPVtdT3lxtVs8+beDrDfxsmKNQr45JMwETzpB1FnYZK/2y66+6Nc
+gLTeEWfj2sp9iUngvSy6EyDFKhLo/CZC+nSP7GmvgplD+dNTvFNjBvAnEnbfHoWd
+q672xWwZpNAEnaxjkCwjWUwIzhA/VSeARwUqwyYcCj4G5t8PYh/k9NxuFJ+SZHic
+yrz++vwK9t/aWoFj57OcrKKPVW3u1yU8WFzq79w+uwKBgQD7YFFsJnityLdDrlOb
+sapxVZvG72rPvIOgOKips/VRVDlZ/bvLH8JpVsd8CjmK/3DD6+VnluLhrVAVO1k5
+T0u2u9+h02hINNSbBbZsRCGhPj0wsel6T22/dKiGt7UNEjpRd6r+Na4fjMJvno2i
+N+4e7DooI49Oz8JZaDGMUB17NwKBgQDtgDRM17dsN6Grb04WoN6Ad8K4CNs5BXka
+TxJGGbAoghT2vW1TmN84LvXU0/sG1Urzbpxq3I1kyX2Hypybi1v3BvCvcTapDws9
+YIFHy7egeXWNw6z1hLx1hvttChi83KREMVAVFMMfan1elhELwKCNEb8CUAnJNNPe
+llaW0CFU9wKBgAYt4PKCo5bKB08/msiJ/oGYtCKYwgxnOukWW3cIeHBOXLaMmTAu
+EK5cNr0i1zVGgDQguVvphpw7kWtkMRZKj7bnOWEV/EtCGTPSWSCiMB1xlTl8NhwO
+lckOChJ9s5Klrw9PnMFw+l3GLQVnZV3meBEEh41zClPKoaFnAUjMs1zTAoGBANlR
+tomZ2fzr6sMz1gBeszpaW5KKiA5lM6sfL1l1p/tpDEW6j48vExIV5lwYnFpkUXDu
+hbJCnh7bQEJA44xwuHYRo6rlrV6EpYRECgfoIN52RVqy8lC2ZLwmB2p/EqO+QZEk
+jmK73M+iYZVrO63FVSPAWUeEdW/nJvdGGXVmfRmBAoGBAJVC0QAoW5EQLeDwn1o+
+7De4LlYQt8UH867KtHDv+AJPSCdyZQ+CvXhWdyZBdvOXAN1Ne24n2b5ixsOMf9Ay
+w1elBayE6OFeS4WuAeKRTj36gXebxBC+etADHM0MoeRbQSf4tXTKWi5R1sH8UxMd
+jM3IlJF6fH8I0Dmf/9zHqikA
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_08/description.txt b/src/tests/data/x509/bsi/cert_path_common_08/description.txt
new file mode 100644
index 000000000..be96b8eb9
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_08/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_COMMON_08
+
+Purpose: Checks the behaviour of the application when an intermediate certificate has expired (now > notAfter). This path is not valid, because one CA certificate has expired.
diff --git a/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_ee.TC.pem.crt
new file mode 100644
index 000000000..f2617c822
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAh6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwODI3MTMyNDQ4WhcNMTgwNzI3MTMy
+NDQ4WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBALthLrGf3QvfuRB/oRJ0WCktf6kTvX7oxUPG
+/npKslY+Vi+NDGG5CcepM25Yq1UC+6kgCVut5SL5bsYPMDvs40ePsHBOE6n4kzIr
+c8aXvlh1ixP1qmR/S8zK+np9AewwYT8Ya9vE+mFlntY8LgjLKJWbCDIvpZLKBDTK
+Ca18B9FrJnl1z3EMCDT6deAIbJi7+Pf737FXJqbzIP+BfJ0rpNGRtd+kpUXONsSf
+1wnf+bIuVGllEe77HEHICSXKsr6SAMM/7L9DSWFSC9ngU2RqGX6FJnyhXkKYo6Vs
+7fHI5pTLw8Uh9C+utIeQvesDZ6aJKqncgPf44I8VO50yD46k56cCAwEAAaN5MHcw
+HwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0OBBYEFOhiRviZ
+86QTqOsmWa/OKICAZgHWMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAGxuY2YnK
+ZopNa19w2OdJ7Bt/RukeB6bNis6v7pbtyCsp68228P+yfl7s1FaPwYLcVCsiZitR
+C++Fbmv7gHoWbSaKu+pcwmQpaOku+j/QMByQYz+L9pzzaWepER8kK6FINFQUN1L7
+ImG73mLNAKrwxfDTciCFx1fs21+f/kohMyLsaPl11K0RuaNwdIyQO+I0bGimGowa
+XF9D9OMhriJBzjiYhZEaPaBphMtOOTGGwE/XeJfF60VXVWZ/xPIjcIInhNr1etZT
+/aHAmcbQTZdRSiAlR3WiXtLsFpsVRrZeWotk9c7h1cfvEFPC4GvUn1qohj/u9ODo
+YTIduluudxG6Pw==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_ee.pem b/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_ee.pem
new file mode 100644
index 000000000..7c9341a29
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC7YS6xn90L37kQ
+f6ESdFgpLX+pE71+6MVDxv56SrJWPlYvjQxhuQnHqTNuWKtVAvupIAlbreUi+W7G
+DzA77ONHj7BwThOp+JMyK3PGl75YdYsT9apkf0vMyvp6fQHsMGE/GGvbxPphZZ7W
+PC4IyyiVmwgyL6WSygQ0ygmtfAfRayZ5dc9xDAg0+nXgCGyYu/j3+9+xVyam8yD/
+gXydK6TRkbXfpKVFzjbEn9cJ3/myLlRpZRHu+xxByAklyrK+kgDDP+y/Q0lhUgvZ
+4FNkahl+hSZ8oV5CmKOlbO3xyOaUy8PFIfQvrrSHkL3rA2emiSqp3ID3+OCPFTud
+Mg+OpOenAgMBAAECggEAJ2VoXtogrIVuMITVBb9GZen2BENtPQiNqRFmoamg0zcq
+AbdjGgzAfKUbdiDYbPhCly1wKkFmgrL00lmRJ5hHtN0GGKahxcPIluzB28g9sfWM
+tzaYi6aj9jva6/PqepE1cQGec8d3aRDnk111xE2Ki+HbmEmiQzmMJtkvrbT9I89K
+UH6BaUhfjyK0zgnnOlsdnEXZ/C4e8mm/i6qLjGsyv1Unv1mGyx0O5EknwtHBHrHw
+qjfkiQxutU50JIkP5lDyKjiiec1IzylmUbRmaQognhADkQMzOV8ceTEeEfYKBLTy
+BxkuX9S0RO1iVe95KuENeNmvS1x6Bhok4fXEe29MoQKBgQDi/Ix1WwC9JhIfmhCt
+wfL8UjsJQG740BuDzr8s4NxvjNNFhZNoq95lzW3fMgZj0mDqz4sHhHzsfi9jL6xC
+RD7zxXvIgbyncV/VWHUTY8n5c+gckcmwq+Tg+X5xhtKziLEsc2hZiAyPlDv1duo6
+QnNQuTdq5X0/Q8m2TMq5JHJ2dwKBgQDTVJ31yDO+G8cjL5Eg8yrcl2uXqXpf9JfH
+AQvmHVoqpmpeD4q43UUTP8ONYs+vGJ2oZSH7rxZQ4G2JYxl4fzar8zePVxOUfxMp
+widEb0WiHAdfjCZRjmjj1Fk3rI/nYTcFmnU5gUjtFx7q6V9d6aoMqZiK7uiNMxCb
+Zw7Wa5z0UQKBgQClNjaxsGQQSGaGk+ex4OoQF3Ya3Mgo16g/PrtNWfl4Q+L+xiOt
+2vLL3EMtYkbeXyDlp9xEw3z90TaClg9mSDAd1E6teSisI0wih/jm/QnkRCXcrYxE
+yEiWK2KKFRzFSifS98kq6WhjFPyzRDNl5jnytm0MpC6OXrOxuaEQMuQRLwKBgQDD
+5PYftRsxqHIpzZgMIRykKsCTb4h+li5zTCcJgj/otSZ4VpPS1VmIhFzzHJtDxd+v
+D0A3G4/mHIOtDO25YsL9FZF1D9SYnErZNJ5Ns4+qu6yiBzol84qLVnX1Q8KJSvZD
+/W+YhJ1jGUGRpA7A8S6uWi+K6fcrnCBSzW9Vl5+AYQKBgQCxPfQm4QFRPVW8BYFf
+vqnssYvb0tqiRRa+VGgTeqW/EFG03ZTZM0OpKGHBAiBRF2ZHq7DsrUvsr2jCnxJz
+0vy/hmTPMCx7VQFA30C+b97OqkKcr9B/+SBFmilo39vZPTTaf/AJdLDN5UPo0ynu
+WGYKgGtfLnzJFt9X1tQDwf/ueg==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_09/cert_path_common_09_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_09/description.txt b/src/tests/data/x509/bsi/cert_path_common_09/description.txt
new file mode 100644
index 000000000..c248e3875
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_09/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_COMMON_09
+
+Purpose: Checks the behaviour of the application when the target certificate is not valid yet (now < notBefore). This path is not valid, because the target certificate is not valid yet.
diff --git a/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_ee.TC.pem.crt
new file mode 100644
index 000000000..69331bbf8
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAh6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDEyNTI2WhcNMTcwNzI3MDUy
+NTI2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBANnpAKLZvLSvre4lA/8lDcf9XuoJAQ0PgB+6
+z2atWrBVwbIqH3bFq1YMVo1JHTDOZ0yI8NK5o5xtcFsLuv33aJm9qol36pczGtAD
+Z7TatNXZoi9wgFud85lGvhky9ylWXKU4DoNcaaeqMmh5ETKcsOQ8qe7B68WhQ/Vi
+71aPuJHjhkfyi28JaBpfH6QzuyJSKHB9fv+JLhvbJXRbDLT+Zbk2VuGeAK6I76m/
+Jh4hSf1COI7ezqxtdJ0L7j+TbddhO/SfZCR21ZwgRw5uY3+vPghqrEAJpwebE7Pk
+QAIn06Yak+r/KKBF+Pni6+29m4sPJboarx2a3riAGpiBgRqQ67UCAwEAAaN5MHcw
+HwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0OBBYEFERbPaoh
+NV/nsn0dnO1DCszXje1HMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAT23eJDAv
+QuRsPwKqhwwKYRzbIw1+jf7ExAseJCpTOFfSFJC9nf48YWKMBghq4gw/SepmzPOO
+SCpQuEB0gHjDKsKnbG+uKJvSUstU6WfIPaRm4I/kXyWTQpBGJph4xDOwsOgBU7Xs
+OvqFgvafJytmXaczeYyr2SEFiZBYrbjz3nYyGG/PUixylFW9OcbQ7daLDHUqh75S
+0x2Isw0FN5s2xfs/0q40Jcd85NROfNrLyeLV9HnNq9OK7cpLyxVvcrJqAxZnw/it
+5aYJUyRCg/43uTz+/VJBmAWxWLxWEbT2UdA+xqmzGFEaY7b6BdwJIPtbCMFiaHSr
+GkUYAUQGEJ6i+A==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_ee.pem b/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_ee.pem
new file mode 100644
index 000000000..4f21045c8
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDZ6QCi2by0r63u
+JQP/JQ3H/V7qCQEND4Afus9mrVqwVcGyKh92xatWDFaNSR0wzmdMiPDSuaOcbXBb
+C7r992iZvaqJd+qXMxrQA2e02rTV2aIvcIBbnfOZRr4ZMvcpVlylOA6DXGmnqjJo
+eREynLDkPKnuwevFoUP1Yu9Wj7iR44ZH8otvCWgaXx+kM7siUihwfX7/iS4b2yV0
+Wwy0/mW5NlbhngCuiO+pvyYeIUn9QjiO3s6sbXSdC+4/k23XYTv0n2QkdtWcIEcO
+bmN/rz4IaqxACacHmxOz5EACJ9OmGpPq/yigRfj54uvtvZuLDyW6Gq8dmt64gBqY
+gYEakOu1AgMBAAECggEAHOu5s+NmEi0GzoaHI0PNsm9EO5d6Vjtqa8ulXyE+2gxn
+qrfAeUj+1mrIyfOcNjAOsa+zFqSgvFAiC1NhO/esIEt16MzLi8myk00AZJZqTb+W
+sOkjgAVUoVEsRbfn6cqWfS8VbgXD2AbUrdzzlV4KdCBBBXkjS5V9qYG59ikY+/OR
+0/QJxp4yXSQ3ojpAxd8iIs557gzGt1305/me5l/a+2cl/VTCSYN3nMql3miCSYIX
+nJ/KKBNsmRHp25AbSN39xutOIUYtBguIboWglUhTtLo4jVn1TffWEXsx8H2/V+VN
+t7cOMEIVM9hB29NM7jC7qet/1IpJl7uHMN3JeaaMeQKBgQDzVtVqGBL89zkJfZXG
+PEFu7SbG1yuIC55Ts+RF1fXYonYS0BzZ/be6uuFcrqmad8tLaygRY0uInQ83wRAd
+nplqNXya8XsQr70nEZ3lESRSnlps4GbzkmwXnwneZa4SXSGgPodEoKR/vH/f+PJy
+aGIN/bW7eRnYvvPdrzSgZPcJqwKBgQDlP3dCV9ipycalHmEe3XlTccd7N8R2M+Ow
+6Fu7grZWP9WXsz20QDen8iezY5/tn1qFV0vgyOFE7deK1RpkgFJd0P+sC1vis75Z
+rDpMjBDObBEm1v83UMWd60H/yc9oO/HIJKVlObi9pFsq6pNz93rTuokK850oDnhu
+suGO9rRAHwKBgClDOzMfW/DrVw+l7QTNaOcPbbjf+bC7D6Dv6zBwZJzUh6MPCSVp
+4YLXd6mIsJfR4nYqeIPiS4eh4le49CuhnjAlW7jGY/Dja/a5BQY3zun3kivOLYb1
++EBVJo5AvbC9fBs5HyTi/KHwa9ql0y7VRnNK50sf8OMRFjcsI4djN4S7AoGBAK0I
+HEHtAFIXRGI47eFYFU1QYdq1GwqE2+UZXLPJU0sCX3tjBL3agqe29RRHq9y1HKPs
+Yg9GUBGw27Gka4lT+ddp+rCm2jHgrVoNzuscBUto8gE44eWkh6RMf8JLVss8A6Cn
+WFdxG+m39kAMUkODlifdcbbcbdBgK7KSPgGkYCTNAoGAJgcfumqDBMgpY2KBw/Ko
+6Nv1Qk0zf29aPve733e9tYoEPYPsq54IVudcOQMTeEvuFj+WGKSqnsVAni8FR5Fq
+KC27uIx1vCV6g+wMPqPQMnHT4M2feu1G+vxxKwfmKp6RprKpEVV59qhVidvzRR7T
+V30uvjLtM2DeZLB67fJrUhI=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_10/cert_path_common_10_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_10/description.txt b/src/tests/data/x509/bsi/cert_path_common_10/description.txt
new file mode 100644
index 000000000..5fa2f591d
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_10/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_COMMON_10
+
+Purpose: Checks the behaviour of the application when the target certificate has expired (now > notAfter). This path is not valid, because the target certificate has expired.
diff --git a/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_ee.TC.pem.crt
new file mode 100644
index 000000000..35d63c31d
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAh6gAwIBBQIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNTI2WhcNMTgwNzI3MTMy
+NTI2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAIzJdzaqP4imNOIOwAqwIs0IADZkqilKBB4s
+1CWhz2D7W0o30CjsE7tDRt5ZWlO+x9jMIr3/pRO4/+Cewyx0dVKT7oihRaBPFa3o
+zLqqgsI7P7caHfK9UMnHqZa72tln7BCSqUeMeC/5Gim83njtceHYWL5b9MMPCKjh
+ROUdrkFxc8rt0ODvRUAMsq/zcutlO3BvxLcvdOoDNCUpup8NWq2QKKtznxXc+LN/
+M0I44Q4AXyefjwPj1S1T8joAVJ5zEikFxnhtptMMBnqdXNqhp1ttoAYli1qxHpdo
+7Phb/RxPHxrO9Flatkg7HJQAg/vBca8jIM4g7X5h+GRltNai3gkCAwEAAaN5MHcw
+HwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0OBBYEFOU5vl4k
+v/lb10KegkKnzsy6o/GtMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAE+38Axj5
+Mhj++eMIAs6kaNkuVAYyCgSzqXBb5ScMstAFVMceGBjq/DgBA0ee8wQ6KjQXbDk5
+LUglcyNq1Zo0rh7pyC1tFne51skDurTN10LILb4gMdc4/DcZw35hGOQmv5/JGrAp
+TB9UU3MEEZ8vMSpUdingK3ePEjX52cVI9eZ4/kDl8CC4z4ReDd1hIJeh/pnSIgRs
+IWBO7JDOdW/b6ru1z4JWphaKPeQmhShCPEtLOrHNEvBtlVHLZsonCemXZcrMF7HL
+smT1shld8oeIrIp+SSy8HIVGYGaojdvDP1e7A+KkZzsVryrntvvQ2pGD1gT8zZxt
+amdGokZRws3gvA==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_ee.pem b/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_ee.pem
new file mode 100644
index 000000000..2261fe050
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCMyXc2qj+IpjTi
+DsAKsCLNCAA2ZKopSgQeLNQloc9g+1tKN9Ao7BO7Q0beWVpTvsfYzCK9/6UTuP/g
+nsMsdHVSk+6IoUWgTxWt6My6qoLCOz+3Gh3yvVDJx6mWu9rZZ+wQkqlHjHgv+Rop
+vN547XHh2Fi+W/TDDwio4UTlHa5BcXPK7dDg70VADLKv83LrZTtwb8S3L3TqAzQl
+KbqfDVqtkCirc58V3PizfzNCOOEOAF8nn48D49UtU/I6AFSecxIpBcZ4babTDAZ6
+nVzaoadbbaAGJYtasR6XaOz4W/0cTx8azvRZWrZIOxyUAIP7wXGvIyDOIO1+Yfhk
+ZbTWot4JAgMBAAECggEAB3LZyjQ99gmAIwUvgylAQBuIIliXWaWjO+L4ivCpj4qg
+8PdsvZuG7DmSIG23Dhb6DRX40RdbWSSosg5ISnvzYJ33yPYKYGHKxneajFY84pCe
+rX3132vFgFV+Wx2fhbDeQB64UtMjYTtjV1m5Jgn/BFlNUa39EExlc4Tun5YfS/JD
+/L2vBt/aNIbRgmEELLlOPqebcyMNJPx3XpwdkXQu8eYCotj100kRTCL1hbn6V9vC
+dxqx/xu6Pmd+1Qu/mpTOIa4dd0/Mu87jnFPG1qO9LJZZXcfIEisBCjCSG2YTuAKY
+9Y3lVdbDZ3tqMABen28aGLAii8r6+ujqaMSH1ERdcQKBgQC+GQ817pI9sMjfchq/
+W5SebyePouN1ZB3cjYQwmELoTBehs7viRp5Bp17DSQ36Pw4yN7KvZkFVMSsmqzaX
+fW5p6pD08e7oZUCk/baEszVQO4PDa6YrjTgUQ4xJHM4aD6L/S8tjqWYMdfeNLA0P
+vCtJ+ii+7WWx7Wx8J2RpBLg7GQKBgQC9mCB2FRBNz0GbijkMB9Qo1bIcPE3SuSd1
+lKOdmuew/iAMH408KMOKTMZJgxfd0oKOVJdhADEiT7Mzo1gS86MjaepWZiWNdjFi
+acwKaVSGbSE/aFia/b5aNS1Jrzk7HULQ021DM+cr1pPzHwBuEf9q4YuzliQ/Fy6p
+kPbz4jgIcQKBgQCZ9Mep4SaVSdjVhp78/ZmW2uUKYlyfFU9N8Vru1FHTutSkxGDU
++GZxO7D2rfLhCjJgH1Xa0hD1gxW0gpN7Cz3iD/QIPOxFUMOTHFu2i0ERUrH7EfMJ
+cJzLZI14JRkSaDmVU3hMpcQdMWkk71lAth/FERHw12k2OdhTkL+0gfsG+QKBgEOC
+b8ycI3oRWqMvzLBj+T+xGALF1lA6bbqIetob1nRHiNHISlopibctL03tyAnMc4CK
+znxTvSsihgTVHP9ikayCglbReH2uoFcSpPzwFJDpOvWBCkvmHmmwlbevFQnfmXMS
+Vc2gJaiOd5AScey/q9s7BKulwrJUZuEqJUUiQCGBAoGAHMWIIlOo/oBE5NWukIx5
+vVW+RnLgrPNCWl4mfkD2siTHZu7V+FP/JYE1v3JNEgrIvDvu8LwtrBNW7BdHoGGE
+B+XFC2M+V8OmhsLjr3obY8thlsJ8CklYfYwyq1e07igXE+MyT/kEsJYjyarxYoVW
+O+bCv2vfxSG0o3PLMksiteM=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_11/cert_path_common_11_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_11/description.txt b/src/tests/data/x509/bsi/cert_path_common_11/description.txt
new file mode 100644
index 000000000..222370ece
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_11/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_COMMON_11
+
+Purpose: Checks the behaviour of the application when a certificate contains an invalid version (e.g. 5). This path is not valid, because the certificate has an invalid version.
diff --git a/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_ee.TC.pem.crt
new file mode 100644
index 000000000..57ba033ca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDU1WhcNMTgwNzI3MTMy
+NDU1WjBhMVIwUAYDVQQDDEkxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAx
+MjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0IEV4Y2VlZGVkMQswCQYD
+VQQGEwJERTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKtNBvS5Ahox
+GjNi4MxWzEtRjVKUIC0hnduJ3WzXhudVhklxEawhUttfWYON17krjDVfToIwSRSN
+aMhu+iRH1b+JPUtccsl5HitfUHnO4So0bjBsb9y99nijvKd1Ch467JbgXnHdEzlm
+C1kZ70/XU1c1b0jwfPXnAwJyAVvp9A7FaFr1o2TFFMtPpvCFx+DTPa+3HtMnnPGm
+gfbyO+z+GGUVjGmXPpRRl07ZndTeERNybPyO+QGiqM/gc/tPQvsMXPC2wNXpm+8/
+NMC4HkfI8CVJJVte8F2/pm7EZO2jZM4n3Bvc47jMTyk5CSi+gKG+KjLTmgAFj9WG
+4je0os/AwJ8CAwEAAaN5MHcwHwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35
+z8AwHQYDVR0OBBYEFA198x9YJYgAHfWgMee59bILChUqMA4GA1UdDwEB/wQEAwIH
+gDAPBgNVHRMBAf8EBTADAQEAMBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG
+9w0BAQsFAAOCAQEATq+s2w+lBcF48ocSqmY+gzqpEXWzr0XtZu8bCjJoBOJhd6XK
+SypOfYKJoXWhY7YSLzLvSp6R1GqYDE4V64a7EDMcAGDamoiz7eEMiLHz/LxR3oPI
+/ea3ecr4MM1TKEBRiMhQEmAf0DAzAU2POlsPP2iPrt14nads3iO7YSE5bcVq7IIX
+mLHM0SMrQr5ExjvepR8eZutQV3dGKHBEP6gKSSwCUDwTe+ltCGfepisqU1JqEVXo
+RTZihXdgghRGqNEZmJkugk9D/WN7ZMpNlCL0U64QMIhdQ1JfiX20v2hcGC/Eu8zk
+P94g2QgKPSvcQroQk0y8HamcPiJD/4p9REJsCA==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_ee.pem b/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_ee.pem
new file mode 100644
index 000000000..fbd177a73
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCrTQb0uQIaMRoz
+YuDMVsxLUY1SlCAtIZ3bid1s14bnVYZJcRGsIVLbX1mDjde5K4w1X06CMEkUjWjI
+bvokR9W/iT1LXHLJeR4rX1B5zuEqNG4wbG/cvfZ4o7yndQoeOuyW4F5x3RM5ZgtZ
+Ge9P11NXNW9I8Hz15wMCcgFb6fQOxWha9aNkxRTLT6bwhcfg0z2vtx7TJ5zxpoH2
+8jvs/hhlFYxplz6UUZdO2Z3U3hETcmz8jvkBoqjP4HP7T0L7DFzwtsDV6ZvvPzTA
+uB5HyPAlSSVbXvBdv6ZuxGTto2TOJ9wb3OO4zE8pOQkovoChvioy05oABY/VhuI3
+tKLPwMCfAgMBAAECggEAEtvpl/gQWQWD5BlkNLWaS0aAtRE1aP0/owO5cCSwUk1S
+T0lBT/6L3+FOT73w0eQ595xKXpSQpHscXfNd2wWvl3qKrX58QrMbalyq1aY8Qt2/
+2IPvstE/zoX+8elgQktsGwDmVPR+YSjbYfq0I/RJqsW+vpHUvWvVTdJy/4Vbxw5a
+81bDRvZVSC3dDOCC4I6C+Rt2K0qcGiulpXMZqNSG1WdH8prrX+4lR04Aq5dzvQBy
+hjV1xvsIgmUJg6h20efrgKg+ybayiBFkQQQWqyKFZNQT+Nm0ZRnqAPzvJPMZnxKp
+a1CiisAoA442+w8zoBjST7J/SN0vT9nJ5BPKQImQ8QKBgQDTQ7INtxpnt+2dhSXe
+Hbh+tdH6F0pB9E/kOclDlBRu5tzIDCOu/TMcfUjH2+Fnq04xkNp99CSQURMhSH85
+LhCHzwfMGFx9vIgaejfQsQF1BOK8shXjmcpe4IfJtF5EwyqamgPzc+ZIzgp++3Z+
+jmtWQFptE4iytp16TEhD2az9rwKBgQDPkvjdJwTdlV4gMgwcOarlyDNbaB67i+7M
+xW4eS+iIX8r6GU8ulEqs7+FLniPQoGbPmc6VTgDfVpnCxQDUwvIq0if9KyhtMVEE
+0ZXtkelgPkyuNMomYjKQH455P8EcQI4l4t+q0EcjZUehGwITJJrGQb6JA2RGdMQN
+xgaqUpyYEQJ/bpUAni05pRChT9Jh/+GOsMR7JG0McXlwWAXnU3gvOd2dsxinlPDz
+z/XEItj1I06Hn2oy87rXaLMHUGSiM0vpWy0C59HYl/gXRcSzcok0OgxUonCVBI17
+YC4m5W2D6no90q7LYqNH5tPyqoT1gUkK5hrJOk7/PoxX4awMJ3fJFQKBgQCwKgfT
+iP30IIRVxqPIgJitkw8jEGakvMnaN+SRCdM7ijD1uO0elvQZeSw3xOqYcMlQfzR4
+Ok87PIAacJ+X8iscdGdD0ZDpuuULteQMT71E1Rq27k5x7P0EnAOKm7UEiTUaqkUw
+7rqxK49zBzznijVg9QMDvUEpGogZOGsHujz0QQKBgQCAcb0SQ28989Y8W3XLm2Ol
+QbEePGlY4rXgGq9PeObYkHW6ZgvfMoSd5JFAUHscWUHy+fWCHhZVtQFzU4e3fLJe
+4Qu/EjfR4hvDD1SkXeVjaJvTEPmybs8qjaxyciycZ112CetHzEqeM5j/ou85VUgL
+6ZF60N6JF0zCM/rlRFgZeQ==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_12/cert_path_common_12_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_12/description.txt b/src/tests/data/x509/bsi/cert_path_common_12/description.txt
new file mode 100644
index 000000000..701818786
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_12/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_COMMON_12
+
+Purpose: Checks the behaviour of the application when a component of the subjectDN is longer than the allowed length. This path is not valid, because the length of one component of the subjectDN is longer than allowed. However, applications may decide to gracefully handle longer names.
diff --git a/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_ee.TC.pem.crt
new file mode 100644
index 000000000..79c6f9c58
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_ee.TC.pem.crt
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFTjCCAzagAwIBAgICArwwDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDYyNzEzMjUxMFoXDTE5MDcyNzEz
+MjUxMFowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCy/ASeaqxzOjuqRJjTNLhazAla1pFuFn1h
+RLDGSMaknpbZTR3xE6eZ/vz706ztY2tus4K/sHbgpx+Vqo5/qiZ7Tt++w+h6tsv9
+WP0+qhSAftPlkgQqNMyu4Ru0mHK1FU/euXV+2MP+9H0vSQbcXToLDbp/0sLh5RHn
+Xo7V6+sBqc3+9gcdPZwAUPGfR248li1D2cPJ45TOmNe4i5aX5FUaoJVrVGS1EOj5
+2vue82N/RUnBn49HuEVO81Tdfn5Lmu/TzT+3W9G9wMqv4xH/7wPxtPOWev7zoOBg
+irFcUodTGB6qPglQphyZ2BAh++baqbpgKxGTddmLrAKEr9hu3YrptIr5e3r8Qjn6
+1n8QO7DxF9dpe/AiH/iFnOKB35iJAzmu7nuFEQyeMcptmxIa5AMwHF/lH5nG67jb
+rsVpPOKa8PfzpJ1kCDK6QhonaNqY/byfrGa8dZsBsFolzbRHkwceLt8QaB+n//ju
+1yYRl7nIKlbmNKAQ3enlGNhK7oL9N5WfCH+q2uzc+Tse4pZ7eTH5PQUo1j62uU+U
+PvQjmsFN5xog12MpuI2f5A4/FYn4vg4a/eD8tuakgzR1grulS97addRTO1oomZ/z
+CKv2GTwFZWN0Q1aLAkBnPtTlsKQm1r8+7UKLiRXdw4r5zRL4uBuFRSB4u/i6qV0P
+Sb1Wq6z0pQIDAQABo4GPMIGMMB8GA1UdIwQYMBaAFO+wmuj+0lTjduwK7L5y5d6N
+MNL0MB0GA1UdDgQWBBSyKunHW7hsq3rVBQLB+ScxlJZ38jAOBgNVHQ8BAf8EBAMC
+B4AwEwYDVR0gAQH/BAkwBzAFBgMqAwQwDwYDVR0TAQH/BAUwAwEBADAUBgNVHREE
+DTALgglkdW1teWhvc3QwDQYJKoZIhvcNAQELBQADggIBABBd3WwZYiNXQYrJUYEI
+AdxjMBpajMOwYZyzLPPuQhNgmFhd4WUJ83XTQMmnRFz+MZhhHUwyZNlN8d3ePplV
+U5KvXnZUI4A23St8CwDTxBrshLsKRsdVv2B7MgawaM3y+493uA4Oet8ErO/+bqi1
+pGoVSkOBPWtqIGbwCoyOPTiGzdNpBx2k6tbtWiu7a3e3Tn+PLqTUCVrcOcgmwPXD
+1QZX3ou0ySG+Av/Bi5cA0tkOo7sNerERnbJAroW3I+5F+qZW7wxJlE2IMX5dKb2A
+vtD7HK3D38XxF0FyQAbaoq8azTGPMSPneM0Pkluf6MMHefDk/HypmXSbLk6dCczy
+lz+jsWmt2ot2xVhaSiSdJx/LDa3McAC83fuVlyJXjkfb/06JzCEi3+DtO9+uJflP
+KH9I6XUIs6bDA5HwsJ8tJP2B46wcyWNWu3Foq/KcktDVXqTEdGu8fF2eNqlx62qS
+7cayq9zu6YVCX8UxEsT1d9JonCGWmpqvH31mSrrFpSNyY1grkeKUcmIy3/IGOPUA
+DLney9POtShIB9iqek5YnYDRg8h7iPBHMvIvZpCGsBiHOdZgLz3IRxAUKoh6Cc01
+PJjnpL9IdEAEmxCuFE1+ky9kOla5mI3hBq5Q2pPwdnRmA+AHjasIuk2M5n7v1oG1
+OmjXgdHfonFtPIDKeLi1znZA
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_ee.pem b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_ee.pem
new file mode 100644
index 000000000..5d068e710
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_ee.pem
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCy/ASeaqxzOjuq
+RJjTNLhazAla1pFuFn1hRLDGSMaknpbZTR3xE6eZ/vz706ztY2tus4K/sHbgpx+V
+qo5/qiZ7Tt++w+h6tsv9WP0+qhSAftPlkgQqNMyu4Ru0mHK1FU/euXV+2MP+9H0v
+SQbcXToLDbp/0sLh5RHnXo7V6+sBqc3+9gcdPZwAUPGfR248li1D2cPJ45TOmNe4
+i5aX5FUaoJVrVGS1EOj52vue82N/RUnBn49HuEVO81Tdfn5Lmu/TzT+3W9G9wMqv
+4xH/7wPxtPOWev7zoOBgirFcUodTGB6qPglQphyZ2BAh++baqbpgKxGTddmLrAKE
+r9hu3YrptIr5e3r8Qjn61n8QO7DxF9dpe/AiH/iFnOKB35iJAzmu7nuFEQyeMcpt
+mxIa5AMwHF/lH5nG67jbrsVpPOKa8PfzpJ1kCDK6QhonaNqY/byfrGa8dZsBsFol
+zbRHkwceLt8QaB+n//ju1yYRl7nIKlbmNKAQ3enlGNhK7oL9N5WfCH+q2uzc+Tse
+4pZ7eTH5PQUo1j62uU+UPvQjmsFN5xog12MpuI2f5A4/FYn4vg4a/eD8tuakgzR1
+grulS97addRTO1oomZ/zCKv2GTwFZWN0Q1aLAkBnPtTlsKQm1r8+7UKLiRXdw4r5
+zRL4uBuFRSB4u/i6qV0PSb1Wq6z0pQIDAQABAoICAFL6MW38CGz3L1gVq0Anbdxy
+QVgCp7OA66mffdC/RpBlEYw2i04LjaUAKOrazI3VjKXqxQ/3UHWAJU1un9eh22tJ
+OsOm8W2Kt3GBww49LXoQ0k3Y7uNeTRI6PGzyTCOVeMzJ8CXZeqwFTtAQLAUXl2Qu
+firqW/z8BNvd45xbXj0MKvsrtkqhGGSxIgN0yy99dAjDuVgskP1isIfW9v7+FVJd
+5ke2/WVQLKJBGmwrbBJB3hrMzVEzpbYfa1WwYf7NGqh3vDVWdRtieNUoEV00wwBY
+oqE97lqmV7+KLQWfISutv/GvBwSDrjjIiVon/XOcQlJ5RRG3Dh8JpLU9DLsBLHe5
+qZk1qwuyHPpV3kvo1dfC7lVZuOmff86A1BtZJt+SwyNepdxCi9tS8UxcRiJy7ncR
+qp1jKtZ556swkPEXHqkItaDgO/7RN6r2w1y/+K58s6lDqyJNv6X7QyTcPOgfJDK+
+QSUSEEUomdvbl9XPBctx3EinFHDELtbd3pxktzIkN66lYoVv6p6VUgKmTrAg3w02
+AHddzLxYUCeosgssLwtRHpY/eDeQD0zxWW9zZcjdf83ruAPqFdN/o0BVwLg2o/71
+m62W6ZIEksgM6bidQDnDYuYcDXlh5rR7UJiFsLg0qwF6NVGS7YAEp+fdtxWC6mIz
+eizZIe8Vz9Mu3hAihgvVAoIBAQD5zrq4HfK56uJlb+Sj5XbknbIig9wKrlb7Kv0q
+p9LS5RjPBdWe2uhAHPt1FnRDq7Jh09xHBJ13XiJUz9faCLGUhYSrKvcmU2C48zhV
++/BS9xrOJ0pNCRS5IQQ2hMfrX2MDpwPNmNKzTZrwWkoZn/eGiYJub4Xzx63SUzj4
++rg6RFsfsenKHSIJApuvNcnz8ROTkozMaY7sB5Rq701RzhXH63LqEMworcf49vm0
+MtBUQJrvp7L8ZNKzFjeAll+oBY/EzbMdsr4znpb3Q7VlOvla113f426VBvNSsR74
+Dt2qOIpalW98O0IvfiVaEdIYHpbuRhg0YvloBiA08onG13G3AoIBAQC3a9j8b/ms
+gBiPlsJyXHrPBFylPoKx1BQEjes83ONe7WUcrWFi6Ks6aXKKIKJHMIFO/IJ3IN02
+QVpu5WsqlghFqqUv2myRmsMzGv2BFWOFo1GyGhYZfQG6QNb6KjrBzDLlJrb2X4If
+FfGJDbUd//pIazMyUzlwzCvtrK1ttmKJAnojFVUgwKTWjQXuozG/XU7fvNQ4GyfP
+VTpfJcqUZH2xJIX0aY2LXiVHOTQIclh4sZ/Oz+BYvsIaekTGNEl6qXH5yzjetlAe
+BpQPTX8axkTPEG1ABdeRcjBONOHGFEV67RgSLTVTTz78fPSfO1QxBYY5KFAJrj0D
+1zdaAf018FyDAoIBAQDzBdAWwGPbxQtdHZ70Z47j2Bptg5Q0++h4zxieP8hVDTW2
+aXmp4lMh1FA5V4/iKY4Pp/lbSb0bXIPPuKfIYL7Ju58WmmT4bxLguxVqaQAi5my4
+c/bPvO7hL6KWm1SWwiRkcD297VfFwdDi1SPTjBFVXD98ypgpUm/i9r2tUtSZMtjn
+m8DStMbgtx3YNV70J+sgnOjHEEZPjwwvgADbfb8o0ADqf07uoCm0JilEyk5sOLHC
+RoZVDo0AVrPGMAR9RHPaRTdkw/hP5Y/+m2tEQTxGyNB1uB9jcfCT2OZE8slpCTpn
+54se89Nuuq0B0+ZtOo0g3yY7CLKUJal9eRraS8w/AoIBAAZVZAW7fByXw8FZjFdU
+mC0D0osmMG8hiptppyDP484IVoB6AC3hKOB4easJW3En3J80mvCwItNXyF6h72Rm
+D90P+mo/mZYhiPH/0ZcefPRFYnHK8s5ogaHD0WiMAsFkYrGE97ZkL+MQ5+k6nvFt
+QGA1y2vGcepSMoYfe1GZhaeDfWIuv2TFIiwCbJ0D55jbCPky1QUm8uX25HAapvce
+zTRLtZBuAKQ6WQEvmXtdL27je0gx52ZJF/zAEhXiAlOI/FWKzejq1LNkuMIag/QR
+upiH0a3vRbVRAxgAPXeQhaGsBDPEed3pk5w2WGATNWIH9c2Ndc4PxS2XxeKGxQ6S
+wS8CggEAcY8j3HECYuP/3i0+1TxYP0SEBDOX92DsjdrSuSuAzGhce6bEfDzMCBYP
+7QAr+kA1nUGlz6O2yCHplAGTawWvBe+JlFmztt85xu7BzPcN7loDthgV5dsxll9p
+yYI0L/syGOkMMZiMkWelYrw7Fm4C/Kj/Wm8nx+4lyb1oWfLFdwiOxEm7dI+1AIb/
+t9qyJ1eAGRC3kXvK8Rb9O/OVCbGttB0NNgc7ANWXarYYK/yukJsS5vjJp7Pa2KRF
+QVUHXlQssIqJSqRNAZvQIyTUAsWq7JPZqx2k2vDOHhpSMf4DN9KbKJ6bYaaNmivv
+R/0OoiABpfkqlFBeCc0JKu1kSrWHmQ==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca_key_rollover.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca_key_rollover.ca.pem.crt
new file mode 100644
index 000000000..a8ac3b509
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca_key_rollover.ca.pem.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEOTCCAyGgAwIBAgICASwwDQYJKoZIhvcNAQELBQAwITESMBAGA1UEAwwJVGVz
+dCBSb290MQswCQYDVQQGEwJERTAeFw0xNzA3MjUxMzI0NTVaFw0yMTA3MjcxMzI0
+NTVaMCExEjAQBgNVBAMMCVRlc3QgUm9vdDELMAkGA1UEBhMCREUwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCw40B/upIRBI1qsZWeqMgnVX/Vn3MACJWD
+3yXyCkJJlCkwM8cdWIr7mD6f/p5kH6WDJoPAYQvNwEVnJxzypzBdMkg+bOBpTD+m
+bJl18AUiyLsEv3QANdjwezBuEs5jCQCHjgl7Ig5he4IvdrRGMu1cXzKLrD4mBl8Y
+HIu0qzqzsrsSaQX54kMP+wjyDjP/pB7JZl9Mn4eS1Dd6dVxLTIbxAP347A4YGMzA
+Jmt6LZDfVNHYXcvI9MXzjvEs+SvGoE8eTg79ESERW+jKJBXvh6nzgkUBBu7zx0hb
+5szSuAwqt6/TUATzFbc/5KzJWRDK6kbc3hh2qr07W6eDPoDu0s8Lnt7SYX5Jmk5f
+B/3JZy0zVHfO8x7ICEBXEiHJFlfxE2owgv/QZfk4C6c7MCvrnfvUTxGjJsoiuVAn
+r3jf3JbnUYY7MqD7wGktk30hd1OMmE/81SF8MERQe0mS/ZFJA9ljj+RgUCUgrWFX
+p7+wxGXc5hcGnO9liBkiediiY0xvpctGh85fmGDa/bM6JbDp/o0enanoEdZzLrMP
+05XksBNoK0wpXrPyxT2QeaV4NSK/v66T4neoP/6W6y6BGMYM5FMmTrCpFUI7zj/X
+/fCQ8pK9mcISziTHrgVhdrojGFrcSlEcFfRY1FclZ0k8DpaViE03DZNhsRcmFj/y
+6ohup0eORQIDAQABo3sweTAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBq
+cDAdBgNVHQ4EFgQUHOZyoERFb+Xefjmc6Nt/ORt3bEcwDgYDVR0PAQH/BAQDAgEG
+MBMGA1UdIAEB/wQJMAcwBQYDKgMEMBIGA1UdEwEB/wQIMAYBAf8CAQEwDQYJKoZI
+hvcNAQELBQADggEBAAY+0UQ57UwiZEQCjTn+L+itxXYDUzM35BaT9Oyg8Lf6nt6o
+ZWWEGZmz5MaYz7y+Mp7owRRHv1JhVOOSAsxoTZvG2UHp5oXW/iWPAQXW5hy1QC2A
+FbPhSwaSLACIq19K+zd1kHweOlU3byLq8p5T9o/c0DSKNvlG9OCQ5uTu2bdlOpTd
+XZfFz1eQMSZU8da/A/myb4r7pjXezIYXLDH1hPOgsek0X+022sxDCtfpVWCSU4UC
+0U/KtFv+SCiHxsXjwmhs4jOxFX24APjEL+rjdmDlNDf5daslmqV58IOngfDDgZY+
+S/Nw1m07gmR2ekrdbGqgz7J3LhDUrQ0NGfx/U9g=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca_key_rollover.pem b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca_key_rollover.pem
new file mode 100644
index 000000000..910b67d9b
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_root_ca_key_rollover.pem
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCw40B/upIRBI1q
+sZWeqMgnVX/Vn3MACJWD3yXyCkJJlCkwM8cdWIr7mD6f/p5kH6WDJoPAYQvNwEVn
+JxzypzBdMkg+bOBpTD+mbJl18AUiyLsEv3QANdjwezBuEs5jCQCHjgl7Ig5he4Iv
+drRGMu1cXzKLrD4mBl8YHIu0qzqzsrsSaQX54kMP+wjyDjP/pB7JZl9Mn4eS1Dd6
+dVxLTIbxAP347A4YGMzAJmt6LZDfVNHYXcvI9MXzjvEs+SvGoE8eTg79ESERW+jK
+JBXvh6nzgkUBBu7zx0hb5szSuAwqt6/TUATzFbc/5KzJWRDK6kbc3hh2qr07W6eD
+PoDu0s8Lnt7SYX5Jmk5fB/3JZy0zVHfO8x7ICEBXEiHJFlfxE2owgv/QZfk4C6c7
+MCvrnfvUTxGjJsoiuVAnr3jf3JbnUYY7MqD7wGktk30hd1OMmE/81SF8MERQe0mS
+/ZFJA9ljj+RgUCUgrWFXp7+wxGXc5hcGnO9liBkiediiY0xvpctGh85fmGDa/bM6
+JbDp/o0enanoEdZzLrMP05XksBNoK0wpXrPyxT2QeaV4NSK/v66T4neoP/6W6y6B
+GMYM5FMmTrCpFUI7zj/X/fCQ8pK9mcISziTHrgVhdrojGFrcSlEcFfRY1FclZ0k8
+DpaViE03DZNhsRcmFj/y6ohup0eORQIDAQABAoICABCec+424TJSyIFAXgZMupa3
+ebiLBTWjmNM4S/W0RmC+AtX8h2CXyQxfqW1EHC2Gq6OUIsdtrBDmAknxas7W1mcV
+1Pkd0Ze9tN01/Cplz+sMtkV5QgojBQF9vCHGB+NWHS6fMaotRkdHtgYvk5Bk3dgn
+5DUrNvZA8v5DmvybzyVtosCADYevXQ2gpZ6C/G+wQ77jAgvOO+FCVFQKYrl7CdKV
+fUcTJoqCX0+jocVrh95JDHjU7H3c7Bw4pIAiiPJdwrveKZpX2aYqicc0IhDMdjM4
+B15UAG9MRzLF5HMycjIxP9u3+5RlyJRq2luweoYWAhe45iOADHdfN8XPlt2EAN+2
+SIUBcOtuEXQhagaVAbFHVu+NwleOpHMZUxtRCwjiPesKMCAPopSeRhFLthK2sciT
+WETBNpBpsOaVYWpeEz6ockdOp6mtI+uVJAGPLWLMHp9l+3eYI89xR6g5X07W5RQQ
+1+oG9y+2WtRwxjlqbxcbIZblyG7O+Kv635tBTLjCdE0eyGFglgGlYPYQjpANj463
+DnDNTLCa2GrH8GT7HkZNQxDrJPbXpJp83vv5qXuOve74j9qFETMF3KgTFQHxuvAA
+F0aEVP9k8ay4IKxcskyxFeLCJ5f4PGUdG3gO/uhzJ1/kIzFL8T6RRc4m3OSZYxSh
++2e+mlMITqLmJhLvC/ihAoIBAQDzJTwHOVkwOD2SMl8jyEmRfsTEt3SC65sMKr8D
+oXKv9eGJxbsCKE1cwK2GNSpw5q1KtNQOFuHJXjQeKJojxKAKzuER/2nJPUYCQmhs
+IqTLwimsRb4dAeALFfF+clnnJmQHtLTzhEoDXzD7fZ0AMmX2WU0xbgKOq3ZIVceY
+5rjmQCQFex5hIp6xpR7tvuG/zsxJVbbZm6L7bTs0XhBNXHymPwKO8DJsGQV0utol
+Q+4ncIHeBv/mXtoopDbOgmo6cqyzWle/X1nIl1ZEA+lCPX9Nn97pE4noQdriBd7d
+lzqocNLPZg2KseZlulrvayz/yVzdDB5HpAZCiomrw2tW//AbAoIBAQC6PUaOIc/4
+r0MoCkdhGJg6l9ozbMJ2FgUt8/a4T6L6Zh6Eysl0HXZYMvYHrPr2kbC6C1CkexXo
+rxXJhmM8FJqbtweZ2vzBf82wu9SEo1pEA2xNU5VYvqGsxj//o6MhMWDaEJ3+Oh3V
+le+kYuopoGLjLw97RuC569TYqmcBDrStChlmfWD+1eyphXtHt+kkCjN0RFf6zQcZ
+uuXKxN/FJJ9tKEeXwJB7eu72jY/X/IlonfUkh8/ysUBKl3Vt+ZYwDIePudORuJjg
+saPMqLn7HYdUyQONtueFuIyBY3LqF+p/2J7VHjMnZEhTT0N91lZsCN5Nkyph73P6
+qmmZwPoCYiEfAoIBAFV29Q6k/dCRNDM7OW3ebN2TbZ6nzXBnWGyCafnguetXxhsj
+QYSUnfzITTYrYeulaawku5ToPh0F29Pt+aAw8QBbj4k/+fMecolAxmucEcj9SqCf
+MyAHFLVQ1T3Y+/jf6bE7t48RJOLihtkfYhw7mtNouFVzkbqMUltCq5H3J27nhMHY
+cOk7vgQ7Qg/XVIqTKgNs+YSrzDIMRw81MQ3AQKA+7atIirCsatqJAzyuD/wU89ET
+LMfQ92XpssoL1UMOI943FzjRT0HO0CfAKDF8ZE7orvXGRGc7HrDr11aUXa3vWmpE
+OOZTeeSwCF63kW2nXdjk9Y/A++JPx+x0GDrQY5kCggEACJcw/PdkT3VOJLesqTbo
+NrOwdfTLV4UWghMhy0ipHOG/AKMV/cwqHFFldd8tyFfaDgrdkmi3Dv+cgqo3Q5sz
+soET0a3/QLGzfDZ9zAx46nA5+6siVXCdpomShCk5KhvL+uMPVp25qJN89Vk2serb
+BN2z2hzf2tOdAs2BaNQT03OGzmp0Ie0eOIeWsy0xjN8HlpJceI4iiLZNSTghlkdl
+LzTPcJmKUJfQFAFdpDna4L+AgknddrVkYMxxtzvvCJJbYm7Q6oTYUG0BQDx8L7Ai
+APAwwMWyEkH8AS/kKhYmU/VbBjuZYnTGvUkHtPNBE0SpdGyYZOIVuHdJ3bTAE4IR
+QwKCAQEA1itpOqUb5z1LtNFGI6fqHtBmTaoRq3DUa9ZBGqd0Qg2XLGDhByqKyQ8y
+ufyR/cyuWT9XXvq6LFiRfKpskBplC5hY7nyaZWetTLgHKNdFsPNVuml772HoSbbz
+5qX+C4VEDqo0i3ACbuq/3oRqNgPKq1hXoXu3SN5hm8Q5sZ/dxNJIoh5OZfd9SpNL
+ToPZisT9rbKB7H8+h7cAcofpxIOqVdKzN/Hjj/LNMfw5O/HS9ECX8ezT86+vaPG6
+2Uvo15k4A8JaSST8RQvIgZb0fFXEht+bo4sS2RSgFcPmKn9N64xfXfAuCMdRtrG2
+Sxhs0n+34U1bgI/y0I/cPraF9YFZuA==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_subca_ca_key_rollover.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_subca_ca_key_rollover.ca.pem.crt
new file mode 100644
index 000000000..2d47d9197
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_subca_ca_key_rollover.ca.pem.crt
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFOzCCAyOgAwIBAgICAfQwDQYJKoZIhvcNAQELBQAwITESMBAGA1UEAwwJVGVz
+dCBSb290MQswCQYDVQQGEwJERTAeFw0xNzA3MjYxMzI1MDBaFw0yMDA3MjcxMzI1
+MDBaMCMxFDASBgNVBAMMC1Rlc3QgU3ViIENBMQswCQYDVQQGEwJERTCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL+IkzxtT9xP+YQj/gaCJdRobZXyiWmR
+nY5RAwpvbp4+bnhKuUupWcZydse3k7HA/Nz4wKIhC2xPjP/cORyvwtW9+MUz6g3t
+Wy2QpMPTFfKmP9pFQ8zpcUbTsquoVVHqUtMH8lFIfrNDYCEYA6MUySzCSYEe0wz8
+2G8T8Z4ht1JTaBK3+GCrpUPCKAcCBRrOS37zf45cI788Wt1LKIzIOjuwSh5M1HFG
+VycRoQWrrzEodP/va7dGlsTDJ2ozfgHHRkfQI9S3jvQshktKPMYmRzyCqkMDAHRV
+8NdFhv+SFZPfvPhed9nM0U5h9LhB4F6r53LQg7QXMLHqlVL5Q2EifwgurXtDjoeO
+bAzWHjXLI5dVoHCMsNNrQ7NF2OULdc+GpmFND4lBiz1Ptxd0mGNNGvczr5TeTplK
+gRCcF7Z/p/EC4ygl+4IgWK+wukQv8RMO0UJj1nk+KLHvtoGQv2Tjmx21y3W4f2zC
+7pMCkUb5h5B+0x8g45wDizMd+aA0yQcVD4UkZsvx+dCRARG7jDCAGemDZ0DigH6Q
+Pa4ZWM9Jp7hPYblem1/EjxRvbxK8z0I/OiMQpVWRuuMU4UpyASkN6GSgUlWYVzrf
+t+YSvMXMPhvcbQ2tt8Ab6uH7ltlg2QvDX77TiWCGLEKP4Z3ibI3WzhP94DH1zurr
+uKuIcUv/TR5dAgMBAAGjezB5MB8GA1UdIwQYMBaAFBzmcqBERW/l3n45nOjbfzkb
+d2xHMB0GA1UdDgQWBBTvsJro/tJU43bsCuy+cuXejTDS9DAOBgNVHQ8BAf8EBAMC
+AQYwEwYDVR0gAQH/BAkwBzAFBgMqAwQwEgYDVR0TAQH/BAgwBgEB/wIBADANBgkq
+hkiG9w0BAQsFAAOCAgEAbp9Jn+nVckYMCUA7J/qlyXIcwVfQ6FRzXcnJNlTy0mze
+qSOB3OASkDYwSlwE1gCUSwgaIu/T2C+DRnnxSezGIYiZLv+5iPtByzb3VbW/M6HG
+3kCt6ztcFY3MI3Zea2g+9S3pKXXG3cY7wODYSnWlDTvZ8p/zC91Iwc38ziqu0ZPv
+qW+fAT4DKlvNfmvFkzCz0s1UtR4vN7s8K7MelbC70lhjaVoNPLWpgsUFzn/JRaQo
+pZ3Z9u+synDr9zMDH8itRIGxx9s8AOBrj+LEnJ8xea0qCeFiVuZC3jFVL/gaK0nK
+cHjXgJnvbTr/F3k86Lknwtqk88MYbzW4gBwjKiX1SzJT++rIQBAd3mF9QrOCgir4
+7lB7shlEsHEGnhZwI3TzraV/gcK7Vr0kKPaGmck/HEa93i1zd9v5iHL6QuzH5cfU
+AqImVooasej3huftKK5keX92PprS6+j98bOa7KxAyM7/ZxPDRQakc0a4oSsfJGUM
+OpNVxwNwyToNVbpkaNY53Ug6C1vuIwK4XrYTdE3RmfZXbYjctR6yjkO9fAba5YHB
+KYQCb6DloX2YCQ4MQdilVTcldi0v1MAMKAb5oZ+mYju66FDN8ZL5IAyU8YSv9Svq
+OJJfCOzqjRiz8HR7TnearraMNV0/FAp7KMSZT9AcDJRhaLxLJDqOeQqpAuUwYNc=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_subca_ca_key_rollover.pem b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_subca_ca_key_rollover.pem
new file mode 100644
index 000000000..c1c3c2cd7
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_13/cert_path_common_13_subca_ca_key_rollover.pem
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC/iJM8bU/cT/mE
+I/4GgiXUaG2V8olpkZ2OUQMKb26ePm54SrlLqVnGcnbHt5OxwPzc+MCiIQtsT4z/
+3Dkcr8LVvfjFM+oN7VstkKTD0xXypj/aRUPM6XFG07KrqFVR6lLTB/JRSH6zQ2Ah
+GAOjFMkswkmBHtMM/NhvE/GeIbdSU2gSt/hgq6VDwigHAgUazkt+83+OXCO/PFrd
+SyiMyDo7sEoeTNRxRlcnEaEFq68xKHT/72u3RpbEwydqM34Bx0ZH0CPUt470LIZL
+SjzGJkc8gqpDAwB0VfDXRYb/khWT37z4XnfZzNFOYfS4QeBeq+dy0IO0FzCx6pVS
++UNhIn8ILq17Q46HjmwM1h41yyOXVaBwjLDTa0OzRdjlC3XPhqZhTQ+JQYs9T7cX
+dJhjTRr3M6+U3k6ZSoEQnBe2f6fxAuMoJfuCIFivsLpEL/ETDtFCY9Z5Piix77aB
+kL9k45sdtct1uH9swu6TApFG+YeQftMfIOOcA4szHfmgNMkHFQ+FJGbL8fnQkQER
+u4wwgBnpg2dA4oB+kD2uGVjPSae4T2G5XptfxI8Ub28SvM9CPzojEKVVkbrjFOFK
+cgEpDehkoFJVmFc637fmErzFzD4b3G0NrbfAG+rh+5bZYNkLw1++04lghixCj+Gd
+4myN1s4T/eAx9c7q67iriHFL/00eXQIDAQABAoICADGmOSiOW4fMMW2IGPbd8Ol9
+Qn7+tpEnnpSAOo4PcbjSjTdgg2TyGuP+0vyVgVMwKDwtvV2pvDjQ7Ed88k8V3qci
+jiSsfu0qTJrkplle1A8o+l9d2iP5lZQbF3M4+Rj5aYvrwOxCIxncCsS5YWP6ZOXV
+3VD7yRDSUFaG8Hih29Aa79z+VIPWqsoEP/UFGIao2FgpzbR8/QU7I4C+1V2dH79O
+RQBSwTU12yy0/K0oIotXJfEcQqtpQHbz8bktbOoQGo9ODKO9C3EPQ6arsVJaJNgy
+NOmXExyVFI/xJXwFhdNlyaoGbwIF/nHXoaTL6toPrLkOBT3/Tu+n1BqEo+s/knb8
+7U7GOCwXK9d7Ry2SU2ErbmFlR5x/Uxg1kWFfjiS0fp+fLKX5dd7fUXRr3UO6HT5+
+SiKCw1yKhztSzweGITO3glEfSA+NgvZQ6fDwDXjNypvqnCT8EjFdaLGEjGLYcc/6
+jmS+FJB3g3CmUCjLyVTzR0pL1uL85TWQ8u2Rr9214bFC8p12O/GYJ8penR8zSxnW
+N4ZHHkFdwwouxztnN1g7FYyHT3j65O8v4A+Fx9xANp6KMaA4Vzt37X9nytdY6eqr
+DaGBrttkR4F7SovyBRCKIMtY9Nb6ts2j72V5ygm+RgfbeFII9byZgjSJURiwoJ/T
+3hUmATNpsIQ7ITFeQI8vAoIBAQDt9Dsz2/LLH1/zpuH0+BsAV7JbmgT4A2NxLtVX
+q46Hm/w5WXr8/Qf9Ve7kfHEDmYeDxNay1s5bGGp+EYxgybt78d7DJP6YLs0rQ2OS
+kE5JDxLCb4NrukHcwScKHm4SBwpbF5m0E87/DdTT4SRhflEurJMUcXVVnfPdleCf
+eHVnBhii39z0aoNJ5+eluGqnhBgXMsxNIXn/J2cKkTzZSbWPl3vn0EmP0EXsujpY
+eh9Wx9wyatHiKEu9rxe4Ph9Ul5pMl9RVoE484FLaHmISnaExL0PzWBOqIrlpJhvg
+nLRnNa/ckr6ibFdBys3hvHLU3OealKy1RRVBFOnwxV6X22zDAoIBAQDODxxHjyoL
+5UEd421msKSjWTNvD3DpBZCUcFUzmu7pydCXBqpKb0v1zE+E4UQsixvlOMApEuqH
+b5zunoHddSCrHX1ZoMXL+0OPZgR03cadTpxwx/VEy4cRXiUI5uDhd2C4ep9wsbWH
+HvunEdsnCgb/nj04e3s+EvFbfcmQk5UgfMpDZj4gr+QlsShcfleDEGMyEC1EZ6M2
+jcSnOBMXaTzqqigNlsUwgTQMaTFcnnYzbJtoeCAYXu4PdeXx0oq51NyLxAUlvxVG
+cq0yF+j6u389TOFG8TYNzV31PWbEtYiIdov8G1cmj8XTHw/nC8UtulhvSpIoS21z
+bYgUUOzz7RZfAoIBADxP0g2j6xcm3aghHVZ86EMe9zsWf7npCfRvHW36MscWd0iF
+8JFdBQBmHoXVMMPrzxhL9OshXO5j8uH/SqhhmV6iAIdPwiQKgMA9dWh5oQ4NfwC/
+SP0uGXF9l4qOCfIRzMMn6TJmbungtJf7kcAQRz1gSms9ErNftKbuTR++ZWt2dRob
+SaK9uIcr+1/arVXGOmDu5C+Mk6Jjd0+LXnPopdc+Ww53kZ2c+Yw164HvejABukMh
+Jg9/jSsHzShKvqAvSNGvDgeh+RKe/QECAHOddnTD+SIdqeZOpNYM7bXxohwi1G9A
+1obOlRM89xAHNsfTMfTRSDEt0GRNi7oWHJK68AcCggEAYBeH1o8ayoVUgn2mbPb/
+L/XPGIGY4/HmZHKmKPSdaYTlsyg2jZOtVqi6hHsQcb1FevWmFwFtQU95XYWphf6z
+B1kvNXbWBrPb46ltdppdnsokBiwZYsWO7Th8CNSyFjK3dhAo/kLBJov6SwT2sBPr
+A5Vlc0uSQ3ZN+56DOtq39nh7UkcBvfiIalNdQRTh9orT12rX0UiLQkuGY3yw2oAH
+Gl/TYdLnjiEShp8fl9OFx6FkL6mlPfg3CBqw6r6GVva/CqaUx+9+GmYsAmpICXUa
+dxm9DHo7/N/CazUBEcaeLxUpXp3ZXHA7jqKzpclFYHe/+dZKpmPWXLe9d8vtVCtB
+/QKCAQAE/2lnZQG3u36jpWsExzFKgml7DYFBsfv9ZyS0NuIlJgicPD1oXGyNYIn3
+me9mIDgpgHmFjfRa0c4xAoEB1IfMjP3MQUavdg+riMaxd0HDbQ4inmF+N51d3Zwy
+BjoJUL0nwazgdvSmq/9haDWzEPYc9MaZdGE+buU9FUoB5Dk1BIocl83AQEnRhueJ
++gmgdx+bEJVjoZZqwRn2qrrs6nihaKL18rg2o0vHlT+nDGDNcQf2pQrWBzYCpP/b
+UYSFJ112sfhPby4N4sF3tvd8GJBlSUwfxF6T27do9gOXEL8GR2fY+rgEEsPQbjlZ
+A+xsNK4J2N8gameHv4bKr/A2e0Dv
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_13/description.txt b/src/tests/data/x509/bsi/cert_path_common_13/description.txt
new file mode 100644
index 000000000..a07273fae
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_13/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_COMMON_13
+
+Purpose: Checks the behaviour of the application when a self-issued certificate is found in the path. This path is not invalid, because self-issued certificates are allowed in the path and processing rules have been specified.
diff --git a/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_ee.TC.pem.crt
new file mode 100644
index 000000000..b30fabc35
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAh6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNTUyWhcNMTgwNzI3MTMy
+NTUyWjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJ6UeEYTXI3cnRaAkOLa+/VstMu74HuGazbH
+C0oA3B0DTDSBgAuiDnslKVp4SzewXnNmWedHB9vlbe3+PfLDSObatkC7ZvzmfR/j
+I4jeftisGDzV6EnT7SNmlelj8nX01R0sqlXilim0VCCq+H5eKNNyEKOdnxSQhnqE
+WIw6XzLH3ABNvV/aMQILwycJOg5xWjUSEsBSd5Emnbbtit6jmVbb/6w8CyhHhdcl
+SW7kNxtavhJD2IZKSMJ8IbYF2hk6b1KdjqYXXnXHORjzk+8AEAe28Ka4wBE+/wt+
+cOeT4ZJtWX53koHfV0yd8Cb0hFd20ddF5k4cXT0bOKYXgne5tBcCAwEAAaN5MHcw
+HwYDVR0jBBgwFoAUgBBiRHuqS78aqSggFPV1Rz2pCo0wHQYDVR0OBBYEFNyRWvw9
+vi2mOqKT7OWl5o4ueRjWMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAW/NZ08Pk
+wNcISY3WRhI4yL/n+O/WsOnq9ZP2m95EP2RQj2k8H01Vo8i5rK8esF85FVKVHzJb
+iOWdEkF5t4gehNWHVjfbgOLpgYjbIGvCGJgZofaLxQ9qOEuhQEue4YAuJNvoB8je
+W9GD3BRCqQyOhUYHuasLUYIGLGKbDULNcok9wOSGgpU0UATho6cLzPsGhoeHIF9+
+5Wxiof2YsSjAJpjema0pp6rrnrM67hfCsuDYSsRCsW42vLgycCFYKZlANSoSyf7C
+YkuUsvQklj3vpDZ+RwPbRSHqjzytuMfUUOIz8JAChT8TnR7uOL74pZIDfo2DLuWG
+bp/iYiNm0IgoLg==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_ee.pem b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_ee.pem
new file mode 100644
index 000000000..f6ae47e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCelHhGE1yN3J0W
+gJDi2vv1bLTLu+B7hms2xwtKANwdA0w0gYALog57JSlaeEs3sF5zZlnnRwfb5W3t
+/j3yw0jm2rZAu2b85n0f4yOI3n7YrBg81ehJ0+0jZpXpY/J19NUdLKpV4pYptFQg
+qvh+XijTchCjnZ8UkIZ6hFiMOl8yx9wATb1f2jECC8MnCToOcVo1EhLAUneRJp22
+7Yreo5lW2/+sPAsoR4XXJUlu5DcbWr4SQ9iGSkjCfCG2BdoZOm9SnY6mF151xzkY
+85PvABAHtvCmuMARPv8LfnDnk+GSbVl+d5KB31dMnfAm9IRXdtHXReZOHF09Gzim
+F4J3ubQXAgMBAAECggEAHjzgPDh35wMAnyhPuDoaXh9m0AxYjyU/71d/4xIL5qpY
+zxA8artxeHDLFFmougsyz11eWjfUm00Bq6ZViKNNFNvycaBqUGHgzQJCJdiLJmSW
+UI9XNjCnYJ8wiarJsk1Hj8MTDcJhcL1WZ05CiNIKhdsTqicljMXMJrNysPZ2bZea
+a2dfRDUuOJ7ViEE2uHvHMmxt5et4j9lzZqXCvFgqcN08Nm0Q5RWJAzbdBnszP2RD
+rRwda5esRTlzxqYMickHX+h+t8a7RpbqeWRenHingB7s/f5OzlUIP/zM4lfsXgPN
+dwQLYUu59mGPkj0I0v7pOznk+u2hDMSEAZs8eQVdsQKBgQDXkWE0j0+GeHdnK0Hu
+mUmjfLIpN3sIOuAbQJ2SsBKEXpw2ljgXINDERoIAdza/ie12jOlzKZHiBgJD+2h8
+o10hR/jj7n3BlJEspWcl9lYm/XPxlugru4JnfOaETyh3VM7v4HXLnJF++QdPDQb0
+V3Ps/2C+JjgN74fAlkaBqsR1JwKBgQC8UsfkZ5rE99UnDonT61j9DcmPkxOscHyW
+OpfYlzr5ei0kU39naXgV8MzoOg6Ych/aJm/NjGOC4CB8on8QFtRrxyU49u7H/EI0
+o1hQVO0QKYZCSZFyTiPJiBP1LQwsKPH5a6m92sMRwY4rb3GKYubAijCu/IA06MZP
+GRoLHCN/kQKBgEwyEfbfFRAF8safzq1Et3e3Ms5I0w8kqGRZoZjg7ZqmSncs/+SE
+7+YAuiDqAosPeMUnp7jSH8ORtilLazJrGBcUdpAyk3biSbJLQLt1aBxeCCaD3crf
+e4eS6XQo+re7XW4CnAB9dhw4b/HsO+IQK2TBG/P6VGPwn75eH8vjjY+PAoGBALFs
+jEb0FSxdEcSqPdAaesxuoOdTecWMdNRUf5rfYACKytzejbmv9CM3qtVfXUDixH+S
+luLg0SAMaI8DyRIvcBHanYb9nhlr4DQXcKy+VlpTxNnO1ekLFUxZl/P1bPJt4QtM
+E6962y1vXbIuXJo0c5ISn6s82M0AQVVkINU2vXsBAoGAc5RdGI9caVuuVb1fkFLx
+6NU+zqYTHLaTcEt76Vemd7phQu6PiW3NXwT4hlQLsP/EJpTRQ85HjKcCEIPi68Be
+H+Cn1csWXWEFZ9OcXrvdRshb9iMuh8NH2My3R0fS/gcRrwijakTelqSiytS3Li3k
+sDIMu3mN2lF4S8Sxwg0RnyQ=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..bdbce07a7
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjU1MloXDTIwMDcyNzEzMjU1
+MlowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhDxgvyYOTaDKq8Rm5wg32tAZhS09dQF3
+ctnnmO3TRg2Dh8S3WugJpNAk7MfiqsoKieVV7QgQWEgay1QfVmZkj2jb8BgpNqsl
+7yy0vaYqvnCFyfP/NTXKKE+ntuRuYIYza0wnYia5/PKygBx/BxuzE7iQoTJC2Nq/
+T+JTNGlVguLOYkwYu8nxOgVG9HTg0O1qi/ZYcdg9IhpoUArickVZOhBULftIOCw6
+E5j2Mz6dPHzQLWPyfo2YgW9+MT/r7hqANNePvshroaPoxo/ksyW1eOJw7LdrS5Kv
+m133KwobwPQKqo8jffEufwYZu1s4XXUJSbUYl484OXi0FbNNulL6wwIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQUgBBi
+RHuqS78aqSggFPV1Rz2pCo0wDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBADicSXTGuEX3rCU3THlWgVNzCACVo9TM
+xWtI36Rb5CyiWnLYO7IG6S63mqpAUgkOz+aw3RqbcfIyjIV1FaAtKYM9+dGTNWhe
+DBXt9A2JiIgQqaRBYKzPUToA7N7i7Nx8bjPzoVIeUv+qjdg/XU8IDy8dlVpOFpqX
+ZIHAIyNrRMVt5gLAbKyxcANZi1ruDWh1Abj3rr2NCJRABaO9pTxwmMMrDcgQF11k
+5rTBAcSCtIN18HBPOZteuU63DAMDLl73HabHyJsDIqA0wtSJy+fQTNvUlJm2EYpa
+W4C78PmJXEchLOgHFomdq4KRi/ayfLdLbYRFS8QJntflPaDH/4VWJMk=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_sub_ca.pem
new file mode 100644
index 000000000..54484567e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCEPGC/Jg5NoMqr
+xGbnCDfa0BmFLT11AXdy2eeY7dNGDYOHxLda6Amk0CTsx+KqygqJ5VXtCBBYSBrL
+VB9WZmSPaNvwGCk2qyXvLLS9piq+cIXJ8/81NcooT6e25G5ghjNrTCdiJrn88rKA
+HH8HG7MTuJChMkLY2r9P4lM0aVWC4s5iTBi7yfE6BUb0dODQ7WqL9lhx2D0iGmhQ
+CuJyRVk6EFQt+0g4LDoTmPYzPp08fNAtY/J+jZiBb34xP+vuGoA014++yGuho+jG
+j+SzJbV44nDst2tLkq+bXfcrChvA9AqqjyN98S5/Bhm7WzhddQlJtRiXjzg5eLQV
+s026UvrDAgMBAAECggEBAIIM94FGpi6Ggoyn3iQ9muEiZNbrhVO7m4Ri9jkbPPva
+co9mUoWfS0zCQG52r2AU0ISJ/hXeJmUMlP1/wEoy7Zd1I0lgGbhgXjB5oVAbSlJ9
+S7cwtr/YJPe8T0+6HSvlEFDoVptbRvOUpSUF4ZBWF6q/i85dJg0sJZclGXukVKsh
+hAzQdrrMJIO5iysUmXEs1+3HjnT7XiGeJvGUpJUu8Hu0lAMxMM7iHmYbnbjLFcqS
+qposhRYdJQPanFPO5eWwLzBAN9dhbwzGy3Daty8Q7QxSZ+DbH9ll72kChzEGwRCo
+46504H4yTYudHwK7NZhliUcut5kjbsgGtLGczIzNAKECgYEAz9Ic1JJYgANJn8v1
+SrP02ISa+zwMt9k3FL9js4d+zH7MLRxciH4URd1LmFgCxUSXUzxo9ouEbUMnKnll
+T/uEwaF0UwKPNRYMnV3NhgtIwAoGDPWYQP0OMrb45Z6hCxfH0Yvd6LwdTr5SShnd
+fViSDod+igaAjB1+5czccTTqYRkCgYEAouRmsuhBC1hPgzPoCQz8un/I39NPccFc
+Of7ZWMXa+2x4DLJjCVkvcDAQ/t1V65k00Q2lA1OU/xq6bcunEGIfFCakNT74jM/+
+j6eNnaZUXgGZIXzjiZStPE55e6E3DS8QKjA809O2rJiRhA43Cei2xj+OVMTq1LQX
+PfqatBj0qjsCgYEAwjHcruZxvG1WBvRXqg6u5QREri9W0xUu2zxctg4O9pglwqGV
+9hWabA517U2QiTWnEiiJDJkijdcKai419Z9aVnXAdTEXEMwhzYsx2egBezHipYl5
+VIEjG1DPFAI/ClaWacEBA9GEsWg3DPdOeSqikOEb5W5eAJAvXB0qgL6ppUECgYBu
+Y3SJl8XEp3MzCfEceRWoWcLKlExJXe1fTCsE8wikzGxKxnVBN5RjZd+OqHZ6tBfL
++IA0UecuPnHKyHGOM8C2Cj3L68HKw4XS2oypIrgYAONCg307lmsT7GZ9dtJ098jv
+nkMKlnY8XyR2Jp/78h4zGY0eO1idDvKVSQigNi1QUwKBgHbwzausAVX0UvejvaPa
+BqTTfJiCRI4/Wvafd/bIFUhe/1NMgl1E1gPogIwDCcyuKYrlXFYPsGiOtaBYsTkh
+1Pe4/ypLvXIftgw930gN9JmXXYXNL0gwOB5IHuy+HT7RPdHLdI98IdaTdXKL/1O1
+nWilWrOYgz2bJyh4P3C5uYSN
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_root_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_root_ca.ca.pem.crt
new file mode 100644
index 000000000..ab14c51cc
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_root_ca.ca.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNTCCAh2gAwIBAgIBATANBgkqhkiG9w0BAQsFADAqMRswGQYDVQQDDBJXcm9u
+ZyBJc3N1ZXIgTm8gVEExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjU1MloXDTIy
+MDcyNzEzMjU1MlowKjEbMBkGA1UEAwwSV3JvbmcgSXNzdWVyIE5vIFRBMQswCQYD
+VQQGEwJERTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJDFQUi72lNX
+wO3/wvQO00iIx22PMBUgD0gE50m4GMjWmxTLTXRkkBTyIxIQy0ljBTT31YspEtG2
+tEovUTRbiCsxPpssESrVdqwHxL9hObycXMvJ3PFxdcqUzSA2UEzY/I62GuBlo0ja
+TbXtys4WaTMJ9BoBQF7s+XDzgkPpbXRjuECIxsz9ePcccCmB8ocE6vGYz1r0Cotv
+mns68DXDZT4mUMtE/lkvNEPKpvI0MwvpsSFMh7+NKHvE1yeGw4LrwrA6tInPg0QQ
+mdb2ukoZps8QQyFVv10Mh18qgZYiC+LjiEV+9jKuAJhkhhQfaBIBEKCgnqcLT8Kp
+YP34qLwnuY0CAwEAAaNmMGQwHwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVA
+anAwHQYDVR0OBBYEFJluGjf1vc/EL8UqSKxU95GodVZ8MA4GA1UdDwEB/wQEAwIB
+BjASBgNVHRMBAf8ECDAGAQH/AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQCK3ytGjrgc
+292f2rBlMKDVXAizd6fVvR47qXQWYO4+yjT6FLI6pycnfDHysAITcSZSzgfAd37f
+URBCuaVd5LWWIuoyNYtwc22T3NVHuHU32NHQaakj7BW/RZIqDc/zq7MjqtU2DTct
+vMHd0rBm9JBX6UYak7i6TvBLLcZszMH6JJ1oE08ujemCmUUFyooZ2GL5hDHrRk2Q
+ZEDjOmMMO3Y4z/aJa721/xVse1zMLq23Zbiv/695fl+xefmw1roo3bDITrVsReuj
+Qf5zPzNsEHsiQh5pA/pYDcu58+zEqUGm9GUE4gYzOu/tgHeNLmY9YhH3p6rMYMBl
+vAm3WL2XSKGy
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_root_ca.pem b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_root_ca.pem
new file mode 100644
index 000000000..376f2688b
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCQxUFIu9pTV8Dt
+/8L0DtNIiMdtjzAVIA9IBOdJuBjI1psUy010ZJAU8iMSEMtJYwU099WLKRLRtrRK
+L1E0W4grMT6bLBEq1XasB8S/YTm8nFzLydzxcXXKlM0gNlBM2PyOthrgZaNI2k21
+7crOFmkzCfQaAUBe7Plw84JD6W10Y7hAiMbM/Xj3HHApgfKHBOrxmM9a9AqLb5p7
+OvA1w2U+JlDLRP5ZLzRDyqbyNDML6bEhTIe/jSh7xNcnhsOC68KwOrSJz4NEEJnW
+9rpKGabPEEMhVb9dDIdfKoGWIgvi44hFfvYyrgCYZIYUH2gSARCgoJ6nC0/CqWD9
++Ki8J7mNAgMBAAECggEAAoa82BrRQy78bHwLJHezJc1kUiXHLukJqMS7mUqyBsvQ
+PbA7UHFju/k5SYb+9cgoPDgzuTSJ3QjHwVaUvSdHS2Mzka1qdPg+u98aEIBxkv1L
+Y+C04ulGYiNbxSyOso9ha6nR8vDAp5bYlSogpdhCCwRkGmCIXhNlRn75+GS5/0oM
+21GNNYS6OVcnDc3M/y+fqQCXjBUyM+a3mymH7OklMtxC8xgJcNXs/Em1eNTZDpGN
+flHXrGSkL2h3u6uobWSHB/6NXd2t9lhwrs5gHhgyXVS12mYbfRoPGCqNRA6YToya
+5OCPmby+jAthmKqjkx458gZZCUuLcTvs1LYe3hNxawKBgQDJvkEctHrlJWIE59XV
+Dg14g43EwMsOJHe1E2+WxmkOnQJbsWItNfEcLWjx2tlbsbtqhmJzrjI+j7qNIPY+
+OUmEuTpm/C2aNzOhKvtW6xOsSyBXUutPKfubZSC5T6K/yx/HZwhhvk5c43iG1Tid
+y1AN6Zo6JNFC0PQlHu4nOrDlkwKBgQC3tIKoifqOHzJ96gkW46lZ7NiP57pTbg34
+C8FTXHccv07bgw+uaP3AzzCyPblhSOCP7xllqGe5ZagTf09IXWttCTwBdL2yZGza
+iRVucOLnjSQc8QItkVQDirZE8NJvIGcCM3KotLqg8FEbytZg2S58nFJojIgBzS6j
+MA69wwhYXwKBgHmUtxjdi9LdHJ1oOm4T8fpXDfEtXzI+uAXgmLd9C4NLDEjGNiyY
+/Z3FoCFhiuy/x/sC0gJ1UMJzTDIRU1VcoPnjx1aZU8JE0lCm3qIbOdfzzqHRzw3+
+dyvHXllPrP15JMW/SkXdssw4KkLX7S7rgGtiBRhVZ+eklf5pDY2GyWURAoGADcNa
+XqInwWoY8FIOaEaaM4CJIQ7taL7AEStgSoyM5/x1PgDttdVr3XwoW9JAB0fceywg
+rPsW+k7hbsSE/hjxqXOdqUZDyA+6EA1hK6sNdOegIwLzdNKEhtdnnHambWjyDroo
+BvezW8dlbD2gHhVnZDKaAfc1YV0r91HsaM8p2uUCgYBUPxU6pyNlZTFVbE3KYaQz
+kVNw8eoCrWw/FX8bJdmTe0uiNwcaBUrrVyRFV2X8IvFlgzHhclr7z2uJ3Siv8hxg
+LCpbqahiXs8DdS0J6ItqX5Vnhczf2K7/gUhwBLSsMVzJjUrMZHXq8BgV19aoCnV+
+08k/841kTbRk6KRM3oMTDw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..720b2c90d
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_sub_ca.ca.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDLjCCAhagAwIBAgIBAjANBgkqhkiG9w0BAQsFADAqMRswGQYDVQQDDBJXcm9u
+ZyBJc3N1ZXIgTm8gVEExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjU1M1oXDTIw
+MDcyNzEzMjU1M1owIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRF
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhDxgvyYOTaDKq8Rm5wg3
+2tAZhS09dQF3ctnnmO3TRg2Dh8S3WugJpNAk7MfiqsoKieVV7QgQWEgay1QfVmZk
+j2jb8BgpNqsl7yy0vaYqvnCFyfP/NTXKKE+ntuRuYIYza0wnYia5/PKygBx/Bxuz
+E7iQoTJC2Nq/T+JTNGlVguLOYkwYu8nxOgVG9HTg0O1qi/ZYcdg9IhpoUArickVZ
+OhBULftIOCw6E5j2Mz6dPHzQLWPyfo2YgW9+MT/r7hqANNePvshroaPoxo/ksyW1
+eOJw7LdrS5Kvm133KwobwPQKqo8jffEufwYZu1s4XXUJSbUYl484OXi0FbNNulL6
+wwIDAQABo2YwZDAfBgNVHSMEGDAWgBSZbho39b3PxC/FKkisVPeRqHVWfDAdBgNV
+HQ4EFgQUgBBiRHuqS78aqSggFPV1Rz2pCo0wDgYDVR0PAQH/BAQDAgEGMBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBAFaJ5ee2lE7jwt4AqcPk
+hI9aUBofemgCj/d2/RjUK/9o0L6fDK8AVjeZTWKw/lDA/LXIC24AENDBbpTw13ap
+dTnSWM/D7AsKNP+wIYl4j5eAAQwrmpxgffaiVvfHi2s4MFpYpxx3xPmJCgwXtkrA
+9Ra8u/qd9OFlPE+DzHnuvtkiOVzgbaZmbSLi0Uid22Y2qX6078BiHdpylYQeduTy
+3DDELk1zN/uyHTx/qOSdp7tt6LCQb/rtT31hFO8OqFEDblw63iAl1n6wmHZnHZcJ
+wPmvdqHhyRaEVhiFCyGhDP7ANBg/p8TWlwii6Z3pjkZE6eO1AjE9LKEQ4Zy9kjPq
+eZ8=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_sub_ca.pem
new file mode 100644
index 000000000..54484567e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCEPGC/Jg5NoMqr
+xGbnCDfa0BmFLT11AXdy2eeY7dNGDYOHxLda6Amk0CTsx+KqygqJ5VXtCBBYSBrL
+VB9WZmSPaNvwGCk2qyXvLLS9piq+cIXJ8/81NcooT6e25G5ghjNrTCdiJrn88rKA
+HH8HG7MTuJChMkLY2r9P4lM0aVWC4s5iTBi7yfE6BUb0dODQ7WqL9lhx2D0iGmhQ
+CuJyRVk6EFQt+0g4LDoTmPYzPp08fNAtY/J+jZiBb34xP+vuGoA014++yGuho+jG
+j+SzJbV44nDst2tLkq+bXfcrChvA9AqqjyN98S5/Bhm7WzhddQlJtRiXjzg5eLQV
+s026UvrDAgMBAAECggEBAIIM94FGpi6Ggoyn3iQ9muEiZNbrhVO7m4Ri9jkbPPva
+co9mUoWfS0zCQG52r2AU0ISJ/hXeJmUMlP1/wEoy7Zd1I0lgGbhgXjB5oVAbSlJ9
+S7cwtr/YJPe8T0+6HSvlEFDoVptbRvOUpSUF4ZBWF6q/i85dJg0sJZclGXukVKsh
+hAzQdrrMJIO5iysUmXEs1+3HjnT7XiGeJvGUpJUu8Hu0lAMxMM7iHmYbnbjLFcqS
+qposhRYdJQPanFPO5eWwLzBAN9dhbwzGy3Daty8Q7QxSZ+DbH9ll72kChzEGwRCo
+46504H4yTYudHwK7NZhliUcut5kjbsgGtLGczIzNAKECgYEAz9Ic1JJYgANJn8v1
+SrP02ISa+zwMt9k3FL9js4d+zH7MLRxciH4URd1LmFgCxUSXUzxo9ouEbUMnKnll
+T/uEwaF0UwKPNRYMnV3NhgtIwAoGDPWYQP0OMrb45Z6hCxfH0Yvd6LwdTr5SShnd
+fViSDod+igaAjB1+5czccTTqYRkCgYEAouRmsuhBC1hPgzPoCQz8un/I39NPccFc
+Of7ZWMXa+2x4DLJjCVkvcDAQ/t1V65k00Q2lA1OU/xq6bcunEGIfFCakNT74jM/+
+j6eNnaZUXgGZIXzjiZStPE55e6E3DS8QKjA809O2rJiRhA43Cei2xj+OVMTq1LQX
+PfqatBj0qjsCgYEAwjHcruZxvG1WBvRXqg6u5QREri9W0xUu2zxctg4O9pglwqGV
+9hWabA517U2QiTWnEiiJDJkijdcKai419Z9aVnXAdTEXEMwhzYsx2egBezHipYl5
+VIEjG1DPFAI/ClaWacEBA9GEsWg3DPdOeSqikOEb5W5eAJAvXB0qgL6ppUECgYBu
+Y3SJl8XEp3MzCfEceRWoWcLKlExJXe1fTCsE8wikzGxKxnVBN5RjZd+OqHZ6tBfL
++IA0UecuPnHKyHGOM8C2Cj3L68HKw4XS2oypIrgYAONCg307lmsT7GZ9dtJ098jv
+nkMKlnY8XyR2Jp/78h4zGY0eO1idDvKVSQigNi1QUwKBgHbwzausAVX0UvejvaPa
+BqTTfJiCRI4/Wvafd/bIFUhe/1NMgl1E1gPogIwDCcyuKYrlXFYPsGiOtaBYsTkh
+1Pe4/ypLvXIftgw930gN9JmXXYXNL0gwOB5IHuy+HT7RPdHLdI98IdaTdXKL/1O1
+nWilWrOYgz2bJyh4P3C5uYSN
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_common_14/description.txt b/src/tests/data/x509/bsi/cert_path_common_14/description.txt
new file mode 100644
index 000000000..5380ca131
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_common_14/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_COMMON_14
+
+Purpose: Checks the behaviour of the application when it should construct and validate a path based on a set of certificates, for which a valid path can be constructed but where invalid paths can be constructed as well. Failing this test indicates that the application does not perform an exhaustive search for all possible paths.
diff --git a/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_ee.TC.pem.crt
new file mode 100644
index 000000000..081a3a909
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAh6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDUxWhcNMTgwNzI3MTMy
+NDUxWjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKDcYK5nyMhopvMgchTBGhMBkqtryh/l5+Wh
+oeBEW395abj0PT7s5Pqn52H3W124g7iO1INKk3U1GOVM1rYa4AZxd8pmM5EeGxbj
+yvv+O/3NdknqskH2RZGr+o+VRHtMd41SMul9yah2820kOrINYw3NxVF20tgf9Jc+
+cjwigoF2oyqKqXmLzk2zhBoEKnOISaimCyXiqXk0G4mngyK3BIU+OYTdgJQjCVZE
+M44A9/BFHLWr4mFiHfWvw9emee3J8jQZyVG/SkuC7fKS4xevGO5JKbj66iOyPMoZ
+Zkk1HO7VV3Uw89OlW8l4PPjqYZOgxLCtWQw9qQ1wAtb148WFCd8CAwEAAaN5MHcw
+HwYDVR0jBBgwFoAUIfJeVTKx+lTOP7Os93S6UaP4ERAwHQYDVR0OBBYEFCiVa1S/
+do/B18ZtvnB/u2P1acaoMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAR/FIKCOu
+GLe/xE7vvtcpdPHu3CURds5P797boZurNNytA4CdZDmATyhRQFTsCmxCyC8hPmBl
+AQxqZJ75Za8J1IAGYGLjVMcKQe7JzH+2u22AUDuWItwMiKwO81Q+1LahaiUYae+p
+RxIHamu2qfkxue98ciq4BqKm/39JQlHcvTDvLNXOtU+3JzE0wYbot8eurD98kzCL
+NRSsgR+DRG0R6BIjGArjxwOhbD4cMc8q2ELpjqXy9iq/YKzNrhTZ3vCqco3/7qVL
+eTanIpFR8kPHcyXe/Gpham7+7icERbTHBpIqEz/tmCEwShuJUTEzeF75g9e2xXwO
+pIIGblmyVVcwiA==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_ee.pem b/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_ee.pem
new file mode 100644
index 000000000..acfe12379
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCg3GCuZ8jIaKbz
+IHIUwRoTAZKra8of5efloaHgRFt/eWm49D0+7OT6p+dh91tduIO4jtSDSpN1NRjl
+TNa2GuAGcXfKZjORHhsW48r7/jv9zXZJ6rJB9kWRq/qPlUR7THeNUjLpfcmodvNt
+JDqyDWMNzcVRdtLYH/SXPnI8IoKBdqMqiql5i85Ns4QaBCpziEmopgsl4ql5NBuJ
+p4MitwSFPjmE3YCUIwlWRDOOAPfwRRy1q+JhYh31r8PXpnntyfI0GclRv0pLgu3y
+kuMXrxjuSSm4+uojsjzKGWZJNRzu1Vd1MPPTpVvJeDz46mGToMSwrVkMPakNcALW
+9ePFhQnfAgMBAAECggEAL6RVdhIC42grWgKYBxGR+WMT33VTLdNXtSkD2nokZ0K8
+Tyz3HrXms14bJ2atRrqpOHYE9sWVmrcZIoB5bwHSq9XbVrSiPS6fc04QBkYr2mWJ
+zSaXmPWpcRVwZiodWC8zkUVxErpQiXaBbie2wpk4ZxQ0hoYcuCnutQSnrKvD3zec
+8OAI2ULcW1snsWwG+uNihGxu3q1Np8cY8FF1m+3CpJS1D9sKW1FTGCKsJwNPRSmH
+Cn6lT3olLI/L8OgYcfWWAGC482D2Y8dn+7G/qGAlXfqziR+cVEbsu3NcFLiuiyxW
+hB8Gim6bfo37w5/Uh2+fR592RmR6pbMuBFO5IQyAIQKBgQDjD+JzR7cTXXTbH8Rb
+eD/rzV6bLQzoBf+1pI8nEgjmzGQJNLvglKSvtY2uQyLZeVKbuPMsSXtWDHwm7PPA
+5Iq+RwHFu4YNWRiJPWO3fXp5EhaEZ0wbEYd6umRjNlz3kr/T63HRAFG1WT4gBh1v
+ztuKgMLB0jdCAHGFJfUaaJ8wdwKBgQC1XJ2wwcEH4XP7nNkPcA3QoWSRdScnfisG
+OqJfAE7AZEQgy5RrgDJgJnrL9rO5vyI+4hwvlutjdB9f0NIYUDQmoc0OX8e8ZXrU
+gp7xb9hHJhUHjbsU+XymHzdaR1ppNMubODfBLkN0dnxKqr2kn0j6C6L5sr91PWZ6
+N0w1egzz2QKBgQDdBCk4bSYXA3ErmdBX+MS/kjf0c/WMI8qz1GpDbZqcjXcSPvJh
+uE5VejNe3JqfdSijy3NoOF6Fc8GlYiAiMlOawyNGhTIG7CKl88uMX+dG0gR4/NNn
+xbhKDgSJTfFQStfOP++ZsOXXz/ZY1ZrxqjioqIzqfOSsqiHVqQzbl9rcIQKBgQCk
+w25TTcLjOPRYq0cbWk6Cso0eBJO8ske+Efi/XBUvfifSr4C4JTAe3/aBZDAlWLpw
+7JR0u6Q/pxh1wM2N3xdx3V7gZy2bP4pWlBB4AYc4JCXIxf8nb/zJIuTztI0ztQ4g
+hvNIIpKPtLD4WKOPclInL/kw5i5AAbce4yvuDWLFCQKBgQDh0qp+iHZLSrTrtrbO
+OZbpy3NXAUg3j1P1Cb+Fv4diUuLvB4FXTBW4dm2NM1kLrs8LLQL7V79M2EwTMDOp
+dlRDPFaIEWo5JGQLg/y087SAoq0ENT0Fd+gvQy9PYN8nVHfrYmbzzkQ0qQJPy53Q
+zsPTv8FTI17MA5WehFpKyDu0jQ==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_root_ca.pem b/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..5ce5e9d10
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ1MVoXDTIwMDcyNzEzMjQ1
+MVowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoane1OJzB01mhY4CldHdKzF1E2cBct7a
+i0P6opyZojoL1i2Lxue7RYgy1VslmQ1wG0/ETVgGITh6jJgcvejOJqxOA6tVFsSI
+MrFTXXzhPWOVajEkNvBUDFAK++HPTU+YREampRTDWrkguOljP4uwnCyaQ0kG0WWj
+Y10RCWvnLTOZwMmnJicTvDmYnbyg67mdjFruk1MghOwnG1cTfSyIh32tIZhan/ro
+Dd7H7i1Cfkz9w7FNvcmSnEquwwXEH9AaqaLB/ZeEGgyyW14xGxjMRhIh3TjR2FyR
+3qwjKmemSTlKI7WvsehDcuU2lbiQXXEQwVRZTLjMnS6wdSZO2eQsQQIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQUIfJe
+VTKx+lTOP7Os93S6UaP4ERAwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBAFRY7ixueAFLrx32Ma2ZT7k6ny6d6MGM
+KYJpp79ZLhPycsmzWYo9nhg7CmwSnic42IryrXhc80AsFNlSXlRzaWqtOD6gWEOf
+GqQaPCIVbqReP27wxqJo5q4eyacu0Yo0gZIRMiTVtXpTK1OkfhJEPAHheFxh+yCF
+3AzFK7atqJbLdnOPOuV9mUWv+V7H/pVyTtWH47lkEyCfj42vo7yaX+aArhjpat+A
+X5kD0YnVorg11n6wpojsR6DtLwpmrhEMEEf0baP3zeDChPTzrRyx+1aUhdBCln+r
+wF9pKIvPKdF4DztCENEZTVhvRA81P2MkqTzOVQdBmp08cekeEa4vUE8=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_sub_ca.pem
new file mode 100644
index 000000000..ea2174aff
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_crypt_01/cert_path_crypt_01_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQChqd7U4nMHTWaF
+jgKV0d0rMXUTZwFy3tqLQ/qinJmiOgvWLYvG57tFiDLVWyWZDXAbT8RNWAYhOHqM
+mBy96M4mrE4Dq1UWxIgysVNdfOE9Y5VqMSQ28FQMUAr74c9NT5hERqalFMNauSC4
+6WM/i7CcLJpDSQbRZaNjXREJa+ctM5nAyacmJxO8OZidvKDruZ2MWu6TUyCE7Ccb
+VxN9LIiHfa0hmFqf+ugN3sfuLUJ+TP3DsU29yZKcSq7DBcQf0BqposH9l4QaDLJb
+XjEbGMxGEiHdONHYXJHerCMqZ6ZJOUojta+x6ENy5TaVuJBdcRDBVFlMuMydLrB1
+Jk7Z5CxBAgMBAAECggEAG7taYo3y+gh0wwnMlztAM6HhCcJEfRpOBpBTfRQchbfr
+4mJ/RRBo72FRCQkA7tufhMve6n6kVIwN97K7UXePb5JkspvwNX7it0F0gcfDkqaT
+0bra0cLRxCfx7mn6x/IUtnehLBXe+h/iRV4h3Jt/oRbEorCzBvYmvEuRedqE9luL
+CqKQktW9aEl+gqPpCoHQPJHZ5APy6Zpa/yy7dfsf6lde8v9FXk1pxKyebM2JaUG9
+o6Na6+h66uqThPuXb515YUrWlYugx8Kd21p7u/jBKmofKtlsWxljNV9g90YiJvok
+Wq6ZtKRWE8MrHEJ6PU4N2Xyxz08d0emggYkLHMxXzQKBgQDWd1/XP9LaqgK4V+7E
+khOmAChO7I4gnByCYcfitElL8Y3jSl261d5fsCVbddHHs/Y2Y4sKNuDhTaLOJI1z
+ugmRfssDHh6zP4KBINhD+29WJuBscB/6YtTD2hOUjEgZ36ExcSLWFupA86U6G1y8
+Kn40NAnWsyxC0Nu+TzFeN89WVQKBgQDA+K/VqcMBVQzZxLc9NC/usTo8XzKNwYk3
+JiCds03jXPB+UTWj7S8kD/9LhZ3kjl4RZua5lwKttjVIWKxwdGtjaYnUtpTSnvj7
+rVEOHVKNRUoj74dVnHyN8H+RwDzs0VVNBjDPnV7xIy+YBjZEi7/1ZmzcCKVWwu0n
+k8l9NCAyPQKBgE0ru0La5mZkUoI+sd3tqkBLQjXUDPhS9Dc+NAyxTsaS7rlgowV9
+u3y3B1o3tPqlGO1NOFS+loC7zN9ca8G+qX6/HxHKHsXlDnKkfO1JZjCb4JlkZz1T
+nreymuUS7UbSH1CJIz3iFPy2LzgPbHkQ2USzjO7CniSUvt1l5Z+/eU3ZAoGBAKOt
+TFeKmqDypue/dz0umsl3AdJbXOHoGp7wdBHPGG2VU1eRQlI8yBNqjjxcpURLjXZt
+NZ6Ne/Qj7KXksL7hwISd7A7Enw7XUJEIvQufy3mQIAbDEKOJDAzIxSu3RvYHyLaA
+Xb572R/nnGLyQe16K+PWcNdhbfxdchJzxB+yquxxAoGBAKoK+4ttDGwN6T6JFpqN
+6IxO9srqAdauTnmFutzPX5BWRuITJEzNg8rn8Z9q1aIcaNhMMHZDVwbBrdi1JfaF
+c3ln7vsHV7FvGc1yk8GpQKBcZiXqQSOKGsRciGjc7hOiVTo6HE73ZYf1sQzgbp/B
+l0VW/4Byy7d0QBt60zVsEXcm
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_crypt_01/description.txt b/src/tests/data/x509/bsi/cert_path_crypt_01/description.txt
new file mode 100644
index 000000000..5887aa1a9
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_crypt_01/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRYPT_01
+
+Purpose: Checks the behaviour of the application when the signature of the intermediate certificate is wrong. This path is invalid because the signature of a CA certificate is invalid.
diff --git a/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_ee.TC.pem.crt
new file mode 100644
index 000000000..0566530c1
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAh6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNDUyWhcNMTgwNzI3MTMy
+NDUyWjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAPTzDRCFx7e8LteH+ZyhKJGfFHCtDY6f1/69
+MTFdMVbG5mzIS/fzKRQX24JxhODSpEUhJalm31+rY2/S6QmRLiP7l79lVLSegQFG
+YQzK7+czcmhS0aSfb8peMfh+hD6Iu5et+cySKw5kvgt6/gdQdBd3HGysXoarLHdL
+/k4q7CcBNLyOIsdfEptSQudmzEK+U0HWsK0FjvSn5EMP5pKGRiUJFUXVZgaX9VgG
+QA9FTsU8w2ISUHvLcAStH2xrxFSu30JdaxOMrpgYv4y5QMxzWB6qifYcIP5WnFlu
+6x8W89JB5lb2KmGGClqThEjuZUE1KPJedz+96wgbcwgIBBcfdIUCAwEAAaN5MHcw
+HwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0OBBYEFKviY4/z
+gE5tIlAXl+SWZhenwBwAMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAlB7j/KSh
+vYSI8KIgtG6XOhkTu5dpor8zO/4mq/IcyPdaLmjBhPj+DMjskEzmZF3j5KiS/MFG
+bSH/helzooAo37aF1o62kmB5UxXfC5TE148waUZ/9I0FIizII78mFjC7djjNwZdv
+HDhNJ2gui5FbxLCrr+IblVslM+84C+uEoUddKoSOTAiCXSxy0jwoOVv/KIowS5Xe
+ih17jleq8K26Ivnv6nVLtdf/+BZLKhBBmebPJzJM/sCw3GruDpA5XeTLxqtmHJPl
+X9qV8WojqjNr5UjXswYTqVc/El/vba32Mw+KV9uHpGnItRR0tooDTUq/iIYS4HFh
+1dreezsle8h+8Q==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_ee.pem b/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_ee.pem
new file mode 100644
index 000000000..767c3c536
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQD08w0Qhce3vC7X
+h/mcoSiRnxRwrQ2On9f+vTExXTFWxuZsyEv38ykUF9uCcYTg0qRFISWpZt9fq2Nv
+0ukJkS4j+5e/ZVS0noEBRmEMyu/nM3JoUtGkn2/KXjH4foQ+iLuXrfnMkisOZL4L
+ev4HUHQXdxxsrF6Gqyx3S/5OKuwnATS8jiLHXxKbUkLnZsxCvlNB1rCtBY70p+RD
+D+aShkYlCRVF1WYGl/VYBkAPRU7FPMNiElB7y3AErR9sa8RUrt9CXWsTjK6YGL+M
+uUDMc1geqon2HCD+VpxZbusfFvPSQeZW9iphhgpak4RI7mVBNSjyXnc/vesIG3MI
+CAQXH3SFAgMBAAECgf8ed0sLmlJCsMJRRpJ5qMBRivHizAB1H73mdwpQCAdPVTOl
+MS0qdWtDpfnQIoiYyw6X0F7koY+m3F6qhBbgwnmMIxYT+COWx9pPa2APguhfdl3t
+MxoDCHR8JaPXSkI0J9ktRHB2HlrrI79/c94wROLlwnCph/VoYdZOumT4X5h/tZEd
+OnDadx1P5EKn1Ee/r9G1ShmGTYsmuBuo+IZsO1CXsRMAoQ4FjSlaSgC29jMcAH4M
+CsB5XotJOdsdg8j09a70DKHKtZAEXzP+BiPdyao/PiP0sj8cDp4VDpQPD0j3TFOj
+9fsqIWweCQqjr4ulWjtluU3XUisHSwLzvem/pVkCgYEA/1j47zDafHYEa2oM8+9y
+xeEshjnx0PgF9YYOPluQ3Qmyp3BO+it/Ed8RgzQoGiaSnGTZaAhK/gdgNb2awv6E
+kXOjVnDMSe7ZlnLE7K3hbhn5pUwZIfqCVFaVJekb+K47N1+O7WWe9LXldNVrPj/i
+rdSe1eqZumY1gyejiKKnKg0CgYEA9ZNG6u/lJEUMkvPzfFXArpCUUlEkXsoY/uAv
+3DvWcmCJ5Wu8aemXsIgnayWWINyiBm+D+ySA2OUE36E84oA8LftEoeGbX7w6pkPM
+5EI7x8BcpavfYclKgbqM1IrvQ0sxGRNseTBcbV586JZpuopGH5JRSdUkHb4rDSbl
+1xPhrlkCgYEA7KhFb0pT9O5cgkEz6BGQyh076tthZ0+4Fio8oUa0KGiIj+7jA7G0
+f5fC31tDn5kIYLKHXIfzGSU04hnsibTioPwP8llwvUUFnQ6ZvNIbELQ6UB0LXhaT
+HB9y9EPsjLrOXy/Ng/CfNiYvl+0FDBihuoJJA/H+sGdySTA/vK8jRzECgYA0FM8G
+hmgXYBmBlQE/jkQ2AW2jY5gODlhsvYkI8RvS2AyGvmmQIL1N8CJEBA2p3ID0UnQw
+MBavaSq2btClzMJ2kgKFPn6gOCBMILb0deONwosji6btay5FAxZZATorEGhSRB9O
+OGZxv4dIIJY9vJOQoIxi1zQ4ppskx+oYyhujyQKBgQDfejd1UNMg5Epk+NTazuf7
+ctK+W1fryuOatcmzoJyHDcNhF1/N63s6nquozybTofDb6/e+Hptm9JZvxcZlCmLw
+Nu3b5qw3jo7kx+q5q+YPxeMKf1+78GiSM7enz/lNzITjHLr0lN3+vWxRYbetMoq3
+GVe/D2BFpaM/oDNiWUTVFw==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_root_ca.pem b/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_crypt_02/cert_path_crypt_02_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_crypt_02/description.txt b/src/tests/data/x509/bsi/cert_path_crypt_02/description.txt
new file mode 100644
index 000000000..4c653e868
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_crypt_02/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_CRYPT_02
+
+Purpose: Checks the behaviour of the application when the signature of the target certificate is wrong. This path is invalid because the signature of the target certificate is invalid.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_ee.TC.pem.crt
new file mode 100644
index 000000000..99dc6e4b4
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_ee.TC.pem.crt
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC4TCCAcmgAwIBAAICTiEwDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjUzM1oXDTE4MDcyNzEz
+MjUzM1owHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6Pam5NEgftsyuDFsrXZ/opQfRNoB6hWVm
+zezfn6AMPyLia+K4LwVfa8WUoPDt1/jAcYjpF0mVUDGekDVy8w4TggEcUyiL+uzP
+HE2x/Va6xRbjPF5SPaY9B7stmLjTjuHxEipbuO9RdEOL+e9eIWhfeqxImuhHSxc6
+2WYYKkHOSh7vtAoi5EAvnakKvoGa6z57R2BREQs6oXV55yK35mQ9qFjraepAU82o
+IAOjIaGcqkynDR4FTV4tW5c3cMIreShUrxUyqUyhIHHaFqN12qsiY6BbK4vJA5/k
+fwN9UlEefKCyAyi0j4PWMcVbyduVJLyDlBRpNxMWGLOPjFBdt1OfAgMBAAGjIzAh
+MB8GA1UdIwQYMBaAFOCMGappJZoaJQD2syi6G/cN+c/AMA0GCSqGSIb3DQEBCwUA
+A4IBAQB3ozucLEH+f98LbdM0mQxSAOAExQHmZY3IejqKWraELH8tEgJFb7nQkkvn
+ZyEMpboebekhhdrOafRH1CO2hJNJtWq+fFyQS8A3jz4VXUGatHZVxJQ+qAAhzpgF
+KpazIsSk2baGb2Fac3qvDkGHWBSudkXYaFkeGRix3iytClnURojbre3ANWK9GBwt
+/50o3usyAlyf/pG8KzFFlM+c5XH5NTm9nHnxxXYomFz8NEJGgtflO+THeKbY/qFq
+MzefpTUYPI2Gk2JJQXGHDba46SefIeRmpCZRuDQaqxOCqHmQ8G4kPChe2occeHJM
+FFdzSRS1VscBzZG4iQJY2/OJOMF+
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_ee.pem
new file mode 100644
index 000000000..51a02dba5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC6Pam5NEgftsyu
+DFsrXZ/opQfRNoB6hWVmzezfn6AMPyLia+K4LwVfa8WUoPDt1/jAcYjpF0mVUDGe
+kDVy8w4TggEcUyiL+uzPHE2x/Va6xRbjPF5SPaY9B7stmLjTjuHxEipbuO9RdEOL
++e9eIWhfeqxImuhHSxc62WYYKkHOSh7vtAoi5EAvnakKvoGa6z57R2BREQs6oXV5
+5yK35mQ9qFjraepAU82oIAOjIaGcqkynDR4FTV4tW5c3cMIreShUrxUyqUyhIHHa
+FqN12qsiY6BbK4vJA5/kfwN9UlEefKCyAyi0j4PWMcVbyduVJLyDlBRpNxMWGLOP
+jFBdt1OfAgMBAAECggEAHNgrCWD5tgEOVKXbmEJRChZGjoELR1k8r2jqVxIhFsnP
+1yiQEyhOg+JXALd9HnZ/c3LCGnO9tO9C2Bo2pP3UQBziRibyVd0Vldgo3Q3DGSco
+QyZuPKeJWn9wM9Yo818i9ZQeKlmLUIlvYru2y9SPFpE9zfrr9GAYEh2/Nwk9wDtX
+RhAbjI1DIMmewCfttRvXAXEorrLj0iFouhF89KYStyLkk6Pm8Id3sqKA9zOKryAX
+FgfyOZTtSzwmBo9sK6xZ9iLL2zWL1Q374vAHoj796/9qz9d30ih/z9tFGp42MliZ
+8aAckFryL1/DfdZgv2S1M/ZnSjD4U1zTMUQOQSMA+QKBgQD7pAd8Hwz90c/owBkf
+/JVQgFxFx0+CEFiZ+FRjw3XdnTluMXTb0U6oqPHPyavkx89X0elkTnQXYtD5nYs3
+g2/nJQWN6XD9xw1UQszi/TxVnHV5bpqe1CwRtpYCn9FjSAUZampxsQhIsfeHqaK+
+F9d5bWox/CiAvvWP3heZXnHnNwKBgQC9d5mQhCvgUUiT5SwTH/JPp6z3y5LBCtg+
+cPn2nEpfrgZZL6+5rv3xPGmhNCN5FChvWaa33S5knHnt7PStTcTJwnbnxzk/oepv
+aBFOCzOHyQKh3wchHXCuzW69d+zqEvpRjo8yj5tcW7YcNk6dHnd/MFHP0ITRH+C9
+Jk/3iada2QKBgAZpiZ9KE0SsggXGT12XTB6/Bprol0gTLo7N2yinpGs/RGVgcT/g
+t4Zot7C5zN2JkekE+lOKBD9MT1LtBs0lVkanlNqm5jAxUE+jXCE0nsL3t66eeOYv
+NehFpNDwTZ+gCDE7mvbGshVYI5ybYABED0OS3C/l4wpU02EVIbjQxUpFAoGAJmyZ
+9SgI6e4yJORGQv6omqTrvDlJ4uJ7JnatCul5X9wgJ3g3UBYAJCtXVL0JMKX46VQq
+LoGpxffB9pGmsXrjHPPWP300zAXfUIavc79rzO7kHMXpYTriPmElQ0GOB46fu2iI
++/0JyfpDfYc5/D1QiLfY76dfODYZ0uJxN0dwbEkCgYEAxdCf//3le7BMcFtwBFL/
+jSTL/9y+XfGjnBcdMkPBZ+KsWMrR6hY5mGIcQsYa5Gr5sBplfSnKsi/IFYzGQWPJ
+a0eBuvHjci8KVfNa8iq/yvBm2gK0hdQKIQu+YE5RdaqCb1X0rDm+oBdqkhVhuwSX
+qsUgegAzhLeIXAzJihcMNhs=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_01/cert_path_ext_01_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_01/description.txt b/src/tests/data/x509/bsi/cert_path_ext_01/description.txt
new file mode 100644
index 000000000..202fed6ea
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_01/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_01
+
+Purpose: Checks the behaviour of the application when a v1 certificate contains extensions. Certificates of version v1 are not allowed to contain extensions and therefore this path is invalid.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_ee.TC.pem.crt
new file mode 100644
index 000000000..8398ce4d6
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_ee.TC.pem.crt
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC4TCCAcmgAwIBAQICTiIwDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjUzM1oXDTE4MDcyNzEz
+MjUzM1owHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCoDGFl61006uZ/U/dx1WfEAkqLEH3ZXp6y
+OSkPK52JchKnmzFJpTDU9sy/a7NNfMB5oIzEUace0zTWCBZ4LpiUv+4k8OJoP5E7
+1UEx6Gtwl+vJht+fpYxaRqRASvGOq5Edf/jhQfyNw8WFYW5TmkBY/GMwhFt8hVGK
+j9Oaqkxt+L8DwzW5gOJ00rtCGKcyhJAT4WIR9Co/MFTfZwNLSDesU2kNsh74qcQ1
+2xACOy+nH62VaSgeTL/Y9Gqm2S3JLr6Ep95t8x5L25lCVv4B3Cc782FpNIBD7mZC
+8LXkL9JjxjviUPEu7XO8DGzYgJOlScMoxcz7T8pjs9IZCdposvhPAgMBAAGjIzAh
+MB8GA1UdIwQYMBaAFOCMGappJZoaJQD2syi6G/cN+c/AMA0GCSqGSIb3DQEBCwUA
+A4IBAQBGdsNlHf2KTCwDZCT+5W6g71CQlfd1XaMEnThmgl0O3bR1i/aUD8oi30V0
+qTtzfzNEnr6Yf2Wcz1XMSC+eLFo+wH7Xi0KJsqvbazJ+wgsLMfuGodx6hU4+MYIo
+WO3pluOVnk25bFqIUQ0SzhIRpUyrKyDnpd8EqCO1LmsFBDKNl3uAky221XPL7P+n
+yUFJHnWxuI+v7B8mDjfvhM2OOKBAOAtFREbRmAC+G7hgjx6lOphzUYvcwrOSB9px
+c22hbdghtfp1mE7PtvqEiABfoYqgQVo9Fp6vVMC5uLFmxCSRx5/fi50cB3UexQH5
+2nBPNqJ69bVjX+Ovc6LoACYCKsjp
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_ee.pem
new file mode 100644
index 000000000..4bf1abf83
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCoDGFl61006uZ/
+U/dx1WfEAkqLEH3ZXp6yOSkPK52JchKnmzFJpTDU9sy/a7NNfMB5oIzEUace0zTW
+CBZ4LpiUv+4k8OJoP5E71UEx6Gtwl+vJht+fpYxaRqRASvGOq5Edf/jhQfyNw8WF
+YW5TmkBY/GMwhFt8hVGKj9Oaqkxt+L8DwzW5gOJ00rtCGKcyhJAT4WIR9Co/MFTf
+ZwNLSDesU2kNsh74qcQ12xACOy+nH62VaSgeTL/Y9Gqm2S3JLr6Ep95t8x5L25lC
+Vv4B3Cc782FpNIBD7mZC8LXkL9JjxjviUPEu7XO8DGzYgJOlScMoxcz7T8pjs9IZ
+CdposvhPAgMBAAECggEAPZlkLm7rGJWubigCQSjfw3qvhnBCIWbMtzm6skPjmFlH
+O0bo9zzlPHtHLDe3XwUGrM7MKr5fiy4SZQ5L5jv2VDhSfBoMc/gxLYSLRFcU4w3d
+MV8OI8AURZc1aBfQmeKL7AtX2IJOqEyF39GKFn0pbzT8yvEJdAiOjkMQZtZb88ct
+Zu+/kq3gARD0MkxRTU12kbd3QVFOIknSFNfPqxq8WKjznKDbRFScbEvnz5KLsnKD
+hgqt4HqyAe1M9jSHBSteoiZ5Lqn4UikXG4YHdNmIFO/2N/W0R0IoURjxv7M1kIBZ
+6+S5KCG6uz2JMzAcLmcqf4mbJC3JuR0/Fl4NxyhbuQKBgQDVUtzioljBktIN/XpG
+qRGHtxDCyM78wHlpiAM67fPpP7/sN3pnA5k1RtKN0B6/DYZpqxq9Jbxe6soBRk+z
+usiYoojz3kznfMkb+gulPShLsowBUxumKT1BRSJ2jq5/oUuptMWP/PjyKE9KvxrH
+KcnLIZ0AnX7A1D+ZFTzHZn9wQwKBgQDJqsq9gFIN54B3Wrb0hDgzIrnp4hoci336
+WWetb8V2YbFVXqhsH7wDPT+EG9tLR/qJp+Ski8xQ5Xo1VhPsS/JQfi7zX1+4yMUW
+tR3YCilVxZzAeYs/GIud8ztOo/VbzKgXQ4WXuctMkn04xLfZelLvjHBDj6sPDKrr
+jqR7df4tBQKBgQCH9+TqX2gLGbXhTOsfFqwhwMFiJfQojdXVOeg1K24IAaYmvcW6
+20RP/PA/i6PNSqWdvH2yidbi+OwAm/w5JpitEQwRxGNoONVGi73YeH6yoP8z6PD6
+m9Z7P8GTp6X5m6lKZfp2qFtUnfTMQ7qhrzT70FTuC3S7G43d2PeAcQhRWQKBgE86
+NQo75oCl6Xd6gRQQ+c9FHkr/VAjQ2H5JL40Yszft63BBjuNjmEahglmRZBbwQUJh
+XlcywOMrNFbN6WfU8m6jFCjy2DVNUvi30PC2FUUoLIwFdComp3s3Op6LlXIqNgNl
+uI9CI9eCWYW66wuangiUYOp5/9cav+9pC7+hPGlNAoGABmsnM7cpEFcamq8rR1Pv
+OzjoG3iHLcrt9LRG8de3o2z5iSKwYPPf4o0q1qY+wuT1sMvHlqt6eho0CZghgl9g
+fKxykPVyjAl0zF3SL4Xi63+c/nlesYdn0+Fb9aAU++O+q5Mbs/B0WKWFz3mClS1+
+oKX+FAf36fcjp/4rPpUDefY=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_02/cert_path_ext_02_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_02/description.txt b/src/tests/data/x509/bsi/cert_path_ext_02/description.txt
new file mode 100644
index 000000000..f7c52b51d
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_02/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_02
+
+Purpose: Checks the behaviour of the application when a v2 certificate contains extensions. Certificates of version v2 are not allowed to contain extensions and therefore this path is invalid.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_ee.TC.pem.crt
new file mode 100644
index 000000000..b95269669
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_ee.TC.pem.crt
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIICzzCCAbegAwIBAgICTiMwDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjU0MVoXDTE4MDcyNzEz
+MjU0MVowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCl2MEA6NcQmuMkzjpIjXbJJlO8z6yhesK9
+Idd4SObOeoq2HcY0g4wUjGDvAAAJv7WWXjh5/hxBkj504+U3SGkrlYAW5tBa5L5i
+s9eIO4yZnvUu/uQNgmYHAPRzxWSgMO/gYpU2vpn+pKhWuEmzuBQOtfkO0mXbrG5s
+d0Zihj23saGyatfrouQxuiB6Gtgq661FwOVa9r8Ih1di5cQ9hjAEsT5afsWqVCmf
+9V3RPNqhPpOdsh+c9GQfl6r/TxEogQrEcrtaFELhVCxWBocqP6i/MmRpahxgz5Ph
+goLnlp79SGc+7kBREDBYKDYjHpDKOkMoXVSfOfjaiuGKHfvY2zOrAgMBAAGjETAP
+MA0GBSoDBAUGBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4IBAQBBFir+lZc3Xy/2NB1Z
+zfQ7W4+5HMxjbNvdvrthPabgdczo6QcqZVdRMW7OHYYJ6kHMI9BnX+1v4XRUG66F
+EG0dnfJTj9V2djh2dTHPnOExABI3Htc4B+kaxDDe9Bej/Seaq9rsmwl6WdO5Nrpj
+n3AHSzrAE+55o/S/iktKiMFEH8TBzOaWaqXH19A7l+v47/bYQeO28ansKfQoOZRT
+nuvaGvNYpHI6Xz6GNS12xNKeJQ+FJDKPuTyCzsk86gKZqI+gnwh1FFJ0Nb76nZa6
+Br9e6Fwb9QWIU5vDNQqqii3UTlRskahTby7YdyzisJSiEmMnyxUiZ62jwRdnP0Fb
+OEuU
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_ee.pem
new file mode 100644
index 000000000..e42c589c8
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCl2MEA6NcQmuMk
+zjpIjXbJJlO8z6yhesK9Idd4SObOeoq2HcY0g4wUjGDvAAAJv7WWXjh5/hxBkj50
+4+U3SGkrlYAW5tBa5L5is9eIO4yZnvUu/uQNgmYHAPRzxWSgMO/gYpU2vpn+pKhW
+uEmzuBQOtfkO0mXbrG5sd0Zihj23saGyatfrouQxuiB6Gtgq661FwOVa9r8Ih1di
+5cQ9hjAEsT5afsWqVCmf9V3RPNqhPpOdsh+c9GQfl6r/TxEogQrEcrtaFELhVCxW
+BocqP6i/MmRpahxgz5PhgoLnlp79SGc+7kBREDBYKDYjHpDKOkMoXVSfOfjaiuGK
+HfvY2zOrAgMBAAECggEAM9ztOkoWG0i8eKGPQ2oNuAimzhhJnXPk2z1ugtyVZQOY
+RixYc8qhbzmZBJSE7oeHkz7ivW+USYMgyfAMmbWoweruE/tZM9ttmDMyVxV8Ofwm
+I2ytR3Y8TrtjNqMHfTrggNSDYgvH34SBaiEWVz/c8d7BRHvSQ5iQLZY9Kgld2ogO
+o+dX6bz4iH1RH5XGmsUL8elorbqCnkGIYvXhGU4pEqGIl3/P3XqqoE/atp9FAiZe
+7tR5zYKnJ4p9dJA6PtgXyoxQ49uhrQ4riuDEXDsHEVyi+fj7qMSyucriaGRBK1fd
+SfX8F19n4w3q81DhG30QXwOuKNSoi70eoOWATornCQKBgQDTsiKInOj+TdyhqCY1
+XwkbJ68XyBcPM+mr75OgHZZvjhowyknFRvquYXZ8/ckILtZawmpyDmdaaSoYvrLb
+kA/+oQIBwjXZG21f2Fjkjv6IEh+tV8RKy+JkY0wwV155khys0za1A/KI5yQYUjI4
+/+aGN5afgWlhOnY81bYstpZ56QKBgQDIjjHXKqQClspYVHIbcqvbWO4AkspMMp9Z
+FxICwjGDVYmA5/7/aP7BwC9vJO61WyM55aYXOD5sO/NO0w966gxfjXhdNNt9ZPJ2
+3QtcDnMB4WiTOWUk4dLnebH9G5/1m4YObQzTrUEJzB3UVxfE9vZMuaohvUqrfmid
+6MkZpjjwcwKBgQC2eprh/7+nVh6VCojFAMKssaxwZ33ZEPqfxsgOAPMn/en9nKGy
+d9imcETewTSE5TrIyUVQQ7I7cONkqR0rvibLaqZ8NZiNKONC9w7JFam6SUUc+sat
+YsonlqCaGvXI/XXSU86YgmqSMAwhGtlH4O4pS8l+fOMFeItrLRz3tfxH4QKBgQCh
+rpDbp9KlC6+A2kNLgXyuztjAuZZBK6ZvCjxI4QlNmc3KkD1w5tJKnIchESMoLZsO
+d+cYXQ1l8EbMSzb1nm3vMnvQmGZChvk5fiZERpnM8E2AMwspWqzOU7t8E6M3O/Qs
++RkYJVqDbXy2zKeq8HXLkPppTNM/wh7Q/vPwq6LHpQKBgB4UIMvbNaQfoKFr5eWa
++acxmRb8/6t0jLExQJHxhfblx1TTbYsk4bevCBMSYpeFqCESx3HtXJH2rt9tHiwN
+6a7dlFGYvCwjZqR+jHTNGLjggzQgZQXj64BfGRtKX8+qlG1aJ1mibH8h6E0zccLn
+GPKL7A1o7VC7LxBwU5VbCqFK
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_03/cert_path_ext_03_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_03/description.txt b/src/tests/data/x509/bsi/cert_path_ext_03/description.txt
new file mode 100644
index 000000000..e862c4d89
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_03/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_03
+
+Purpose: Checks the behaviour of the application when a v3 certificate contains an unknown non-critical extension. This path is valid because a client application does not necessarily need to be able to parse and interpret such extensions.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_ee.TC.pem.crt
new file mode 100644
index 000000000..f3b943bea
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_ee.TC.pem.crt
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC0jCCAbqgAwIBAgICTiQwDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjU0MloXDTE4MDcyNzEz
+MjU0MlowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDL035T3jh0PFlIyolm8d+OPFYfYXkDMNFm
+F0PIK6wZHHzwZRYhhFNUp/c6ctJqNViGcLf9lNwKuM7MSoSPrLpnE+whQNZ9j72/
+JRm3X/2p08VoiFticoncK1XsuPXe3nZT7zCRn0fxpRdCGnz8QUE8ZySSRCvG83mY
+6Ee/aCMpmCTiAPQD1/FDD2yQhYAtD08qNSC1sT6bG/GoRGgBWxKE+Dois+RFhX5W
+/fDRw/SknZn00OR0xSU/gcfKOdkQsul26o9YdrwsKzzovTcawThVYjdhQGwuYtOq
+Doaatr2TiMVlbS8IUyZPG7F0ivMZSXqWn9ZUIZzyUPY5p6Tymd2BAgMBAAGjFDAS
+MBAGBSoDBAUGAQH/BAQDAgWgMA0GCSqGSIb3DQEBCwUAA4IBAQBhgxNDI2ydzGwU
+2bh/aYpE+u3wSWaxiGhKLYMNhyd62mcFU6staO5/EhFOYxunxs9Dy9f1QRXbDv9c
+NRQq8foEtaD/bwudthWngzCvnTaWBfXu7tcy0oTYGvRXU2Trv138iXuvq1hf9XLz
+0SQ/smxb5oJxNClhNZwjt/ILSBC6j2LsRZ8HY6lT/v7tGwo834HQ300LEXPYSAfX
+b/+ZWY9rJjdqWjmviuUj0n+tBMJzupTsEVFEfrBqabySJvxVYKJ+gw/SwX5UV1BX
+Px43mtrPmkR3ETzn/+I47IayfdoWu2vWYF+ZAsbyT889ag5Wo+JZRPDz8S+QhJQR
+CMbFtMCB
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_ee.pem
new file mode 100644
index 000000000..59095092f
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDL035T3jh0PFlI
+yolm8d+OPFYfYXkDMNFmF0PIK6wZHHzwZRYhhFNUp/c6ctJqNViGcLf9lNwKuM7M
+SoSPrLpnE+whQNZ9j72/JRm3X/2p08VoiFticoncK1XsuPXe3nZT7zCRn0fxpRdC
+Gnz8QUE8ZySSRCvG83mY6Ee/aCMpmCTiAPQD1/FDD2yQhYAtD08qNSC1sT6bG/Go
+RGgBWxKE+Dois+RFhX5W/fDRw/SknZn00OR0xSU/gcfKOdkQsul26o9YdrwsKzzo
+vTcawThVYjdhQGwuYtOqDoaatr2TiMVlbS8IUyZPG7F0ivMZSXqWn9ZUIZzyUPY5
+p6Tymd2BAgMBAAECggEAGlclPDFmRPSHlUtB9nZ2LYDJSxo4SUabHlZjVrr4wptW
+ig/bjE6iy43pT+RcIjLtUx0TVJyoKGU5qaz3n0RIfTRV5PY8FyiRnOIZMK7MWTtv
+h31s/Iv7b43UzNgaQ3L8V7HRf6rV4U80ckEkux9eZC/wH0wwBsXwMOfTsyist/Mg
+wgIoL9WjB9socpaGGj+MmHsjKAo+suRVrfoGK22TS+gjW+NLpTB4X6B1+J+3Ci58
+kaqm8/mlRrBv86C536mDYIPUNqWa9Xvcd7b8VTYdP6jN83vizDSf9z/AargO3GF/
+l9lvOFDvYLpIJRdE5/Z4GCzlZ9Cs1gZIixSSrbJvAQKBgQD+w4CiQ7zmxaMFA6VD
+9+yBfMjuiQX3V80QvqQuU6aRFo0sMhZRhaIHM/XKw4Gs40JZT96jg+vqRLLi02E1
+0KOFojinobY+bq62uiX7atPZk/P+yCLy8/v/oQNOk3XtPctE/62JyniVSCXwZ9rI
+DvmRn9EMQrpWegxWyc+8NMFNHwKBgQDM0LXa4Q7dGtF5MLIHJX0yMLxJnW7IURSV
+jt/HDif4RzieQvQTddmLSPiqIjz4drX4awPjKJvaPoEm7+TNzDWqda+qnxRuvCbc
+9zEQwmRt5VvBF9m8sP0HlfL3jPY09Ne9NpBb1qzffFnCCSjF0v77OMCtEbQICmPw
+zmYpzSrhXwKBgHHgFWlyecd1ZA7juEWPVkny6yWkXeRXfLQVYvHKNlP4DpZItS0v
+XGN32FAP37DVzFx7lPrmBteqaYN2FKenYNBk2IolgH6bnsDSqBOfhp5kwdWKxARx
+Bp0W7ZF73GR1EJ0A5CMJO6kOnNa+tU5jUy7CjwC5+uyYlVdd0dtAgX7lAoGAL2vr
+j0Aottzsv0idD7aIZESQc+L1sX/EalRoT6hhbMTgwRPze0YAFpXQrWO8BjNGMrxk
+bAYM/90U/jTxHw03J76T68dlbbY2sVayj5TSt/cw5WZmTaAVFdqMJPEIWH6QLQkj
+J4BvCle6WIjSXetaikQ7qFa+/lWZijnfwbH1SbUCgYEAxQglnXz20cVIerpj1P7o
+cUUzjAvtD/TXn0RsyaJVyarznx6XMyE4KCWZQ6aREWGk48I2IE2ltdUT4wg/ESnb
+xqJVkniJYrmg5tqhS0XdlnZc/aaNTtaFALYc9STAO95XrVrJMuelidRV2Uh6NVpf
+Lpc1DcFKb9+7V1UPcDl4SWQ=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_04/cert_path_ext_04_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_04/description.txt b/src/tests/data/x509/bsi/cert_path_ext_04/description.txt
new file mode 100644
index 000000000..3ef25d4a8
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_04/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_04
+
+Purpose: Checks the behaviour of the application when a v3 certificate contains an unknown critical extension. This path is invalid because a client application must parse and interpret such extensions.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_ee.TC.pem.crt
new file mode 100644
index 000000000..a38fba56a
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_ee.TC.pem.crt
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC4DCCAcigAwIBAgICTiUwDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjU0MFoXDTE4MDcyNzEz
+MjU0MFowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpz6pOzbJADidIOOE4JBW9z60AH75w0O/L
+2saZEtC87DvCWcRkb/uojoKDOlyPUTVqoQvUDtX25wfqYqao9JMci9wHtPiMJ7Jk
+HfHb5nfbv4YxmERiWMgvc6+oa1f8pj98HVy+eNIwgWY9FpIilcjsOuweaKqXLRu2
+Zea3ndUY9BfZ9cLnaZQBvnUdAF1NpNF6i/ApK9R/lpFJxvILU0WJoEDXMi9LfPMY
+JZMNzxudtCQHATzuK7r6Dydq4SRJDp7EqZdvyVAbfyLBpK8ChFg2dumUAqgualSM
+wnOpvjChF3LpNBI4T+M1ZkBqzEI+AONVq5/zWyYzOFWUftPjFgRrAgMBAAGjIjAg
+MA4GA1UdDwEB/wQEAwIHgDAOBgNVHQ8BAf8EBAMCBBAwDQYJKoZIhvcNAQELBQAD
+ggEBAGpIOCvV1lgYbCwkbiEHik2PHDS9s7Vrb7dAYNSJXT9AxKvqi62EriZu3S+0
+Qcgc7pJIwZmNXzckJ4q5A7nDp52Ma3LL4M5SUiKc3NboqVFj/L2Erh3JrVHZ/COR
+WZ9fdMHLND987kdYaTtySvN/fCv5Qg4XC96316whS4iyMcB/fgev+eCNAOQiULBm
+XTyfklU13U6M4q9CIJrX1P2Ud04HSMdJ+yZRQoXNNef9E1tZAzFZdQiaDvfTiw/g
+mGKlEW1cZ9KRsmBpGelKH+XaBejaHGjWBCBHtFjPp/N5NZfpLMo92NOiv+UyUwwx
+MMaK20K4YCudaUW7QcFR6YBmPiI=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_ee.pem
new file mode 100644
index 000000000..18c4fc742
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpz6pOzbJADidI
+OOE4JBW9z60AH75w0O/L2saZEtC87DvCWcRkb/uojoKDOlyPUTVqoQvUDtX25wfq
+Yqao9JMci9wHtPiMJ7JkHfHb5nfbv4YxmERiWMgvc6+oa1f8pj98HVy+eNIwgWY9
+FpIilcjsOuweaKqXLRu2Zea3ndUY9BfZ9cLnaZQBvnUdAF1NpNF6i/ApK9R/lpFJ
+xvILU0WJoEDXMi9LfPMYJZMNzxudtCQHATzuK7r6Dydq4SRJDp7EqZdvyVAbfyLB
+pK8ChFg2dumUAqgualSMwnOpvjChF3LpNBI4T+M1ZkBqzEI+AONVq5/zWyYzOFWU
+ftPjFgRrAgMBAAECggEAGsfNGdJ85cyVoLaVEQU33JCFEyZDzYerWctYqMl73ApR
+k7a+hKyDKYkYHNlhFu/SwcyWO0z/rN8GCOP4BAtWVsPZNpScN4EHNEeOCNp8VU62
+O4TCZtQ49gAuWBxdwFL5DiTp/IFnfLjbm+S/Cpn0GbViiZqDf4YLVHprptJLH5Jq
+dnKaTxPBXGiPBjB44bViMJ6XJWZKwMrwaDfPlAUIKsK7n3LXDHk6OkSn3DBT8Y16
+WuTvFNpFKji/bVjJHTWsHohT47SNf516AHGGvAKpbHOUapwJCQngpVK5PW7yPktF
+X8mLFFbnfi8mitYpebC/0wWIRpQQ0chqi3ratqFZYQKBgQDrM0DhNXolvpCfQR6F
+7qwyt+o+eH0lLuygBQpQAEO0KAirX7FrTUx9hxWVodh5LZ7KSDkXl7FjUbBxluS0
+rBsoCnKsAOvvxUk/Am2al2cx+Q7FMK3ye7dw0FBXDvB3+xRJHoPABTwSJRkjGKpt
++EYf/7R7VzlClwqdzhCl2EMBsQKBgQC41A5mwGxeg4ek1OKZXuYHmw6Mtf0OoX3M
+w5JKvxBbGhI2QpPZkR44bwiF7OM4jhWRSKL+WVveS77tr+rwHNpl54nLD0evtSyH
+QTRGyNH3RpqoJvu/7xQbHR3gVJ8MedqNC92AmBFRtagv7CA4QjTzRufP6COFsPhZ
+lSwZxx8y2wKBgCC4H5V02Ao6KWpOJ83f9wqTNT39iwNKNNbJ/LZGYyTD0PjuNgNE
+XJi12xXWzwOEiit/wpl6m83CRnZ21Fgh/SEj2vH8qtXPLzJZxx+TYmK8UAa0j+5E
+sa86+4Iw7Nj0D81gNlnXIJUxnf6Y5tSnjjHTY6so5ilSU8LCMOSxYhjxAoGAB9Qz
+p/aOoJJBtKGv139FjxzqSNuMlIoSohHGqJPfRXydON8pFBYpiYpqegHGviaGk1jY
+Tp3KXmgm9jp1YSZXuelM1OUYzECIWlJQvI7VFfxPoL/F+iNOXrelBFORSR4AO+k8
+wK2wTh27ugvucXOcepGOUCgtGQSeAG1pKM5ea/ECgYBjQWEOMmvBxR+GXUIGcnHP
+iPP9qoeZt0jVRxUAFnE7ZILm/2gvz0nnUt4ynxn6FsoRL1mu8c+HuJnrfOnT+SiM
+zHJ3JhtkrvmPiADf6B2dM2zoQdy8uAYZaNh2PFAbJJFtzN1kM6SJ/HG00+S5hbzD
+dsXoBt8pMCy3fFRAsovSoA==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_05/cert_path_ext_05_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_05/description.txt b/src/tests/data/x509/bsi/cert_path_ext_05/description.txt
new file mode 100644
index 000000000..512d59b59
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_05/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_05
+
+Purpose: Checks the behaviour of the application when a certificate contains an extension two times, possibly with different values. This path is invalid because this is not allowed and additionally the client could not decide which to use.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_ee.TC.pem.crt
new file mode 100644
index 000000000..bde909056
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNzCCAh+gAwIBAgICTiYwDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjU0MVoXDTE4MDcyNzEz
+MjU0MVowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz5ArwaRDadFpC7jOqP2nwF+YboLAgvLIG
+bc2JAEZaFaPOffO/Ouyh/O7zCOeRwo+AVswZ1hmXUgGO1mLl5lJ0Pktp22Qd2Ilg
+qTXE72Gc9DxMGhLjodCyx0g4dbORKFHhwxbIOgm/0fPL7zC+PusJfcZEw3XUF/rb
+6BcUPmyPuwK9jvx0MNOx2ccRiHVqY9SC9jI0/9oqZUIz+ArpYiWfYlz7egkSDDpA
+AhuyKna9uL2vBC/iDVSBu+/A3jLUUpez2VY/duYTAA8Zc9xbqq/bLiHa+zQtMb3p
+qH66HGSnbmmI0ryKa/NMhrfa1p9th2ozM3SIDXDPsKNgWUGsvzhBAgMBAAGjeTB3
+MB8GA1UdIwQYMBaAFIg7PemiPjGTRq83w7QDXMiPE66/MB0GA1UdDgQWBBT7YmQg
+RLhQkgvJVPMiEvYw/DneaTAOBgNVHQ8BAf8EBAMCB4AwDwYDVR0TAQH/BAUwAwEB
+ADAUBgNVHREEDTALgglkdW1teWhvc3QwDQYJKoZIhvcNAQELBQADggEBACh6kLHh
+0In17oNclR+d/zBEKnDj62koIN5cQ4NeKU3bTqi7UVb6enYxYppEqHXEmN4/eQ5I
+U5Qqqz77VB7byFgtoPT37Vu6tFKhvGxsg+DNWbokfP2wYp54OXcXBQCktlQJHSua
+qwqXhk+WSoUPZfVH0fRr5WRBWM/4q6dobT4Lk2CvonRBWo420ylVnLum8xMhcFCH
+VfP9fa7ETfnVr1gl9B0OGKCQBw2pt2a5jya7gdD+GbbnSwxd3/0YbCAmy8uEwVEy
+tFPErOgB9SoYyMl/wpsj3iNbJOP14jqzEMvElYUtoGRFg3BBIIz3grvsfwfipcyT
+0ZdOanAJ53+ml08=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_ee.pem
new file mode 100644
index 000000000..1edee12ef
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz5ArwaRDadFpC
+7jOqP2nwF+YboLAgvLIGbc2JAEZaFaPOffO/Ouyh/O7zCOeRwo+AVswZ1hmXUgGO
+1mLl5lJ0Pktp22Qd2IlgqTXE72Gc9DxMGhLjodCyx0g4dbORKFHhwxbIOgm/0fPL
+7zC+PusJfcZEw3XUF/rb6BcUPmyPuwK9jvx0MNOx2ccRiHVqY9SC9jI0/9oqZUIz
++ArpYiWfYlz7egkSDDpAAhuyKna9uL2vBC/iDVSBu+/A3jLUUpez2VY/duYTAA8Z
+c9xbqq/bLiHa+zQtMb3pqH66HGSnbmmI0ryKa/NMhrfa1p9th2ozM3SIDXDPsKNg
+WUGsvzhBAgMBAAECggEAF6999TuQOYM6Yzej29WvqCotZRPaPOU7d3c7qb88hB33
+THfvAQ3MHGQGPj+85cc9R8Ol6fzzr6XfiKQXr3eNAbs2CMEXRIq/Q9fjuYNfUeAi
+lE6WkBw9M1zj2HM+6mzpoxUhyclCgVwugnqC63mzTrOdyG4H9J4XrJ65czPo7V+T
+8pIgqp89reiyJpSiyJ+2zbyOVUoGZPT8KfDDI+u9nwDnXzoFgzBsiG7kNGaFMqCw
+Amvtn1+CcevqBR0k+DElNs79ioCRruAEpMeKiLi/HGY80TiZQ2/VIuNbkJNqYF02
+VJbm36aCcU22mUzkSxh3MIuJiYrWJEZlgq4MTRINVQKBgQD8WK02HaDtGZXBJ1Kj
+yMqxYcOEozCU9dHbrogNmuxa4kZY9jeU+XDgG0Hss++Irr3fM8BWKxGkN2jyuB6L
+PqEZuNnw1zgakhee57xiw64XCyY1Ijxy7WbvWdrovrSmJaPkqmzemV1beOq0/Oam
+bRbyUnTcvOizbTavYU37Gp7OnwKBgQC2fs8bX1EV/7RuXZfUQ5FDPwDGfqnef1ON
+egwgaZRkgy7ffwC/eYg5kq991yMAD+7GiWN5fpTd5++5GFG0a7Xmh510IyWK3/EG
+wyQMYVS+ZZqI2Psz4gpWYyssTwnJ9xQabZDe9q60jNkZaexdg+cZiQauqiwEhhdJ
+I7JGJuXtHwKBgDkaH+f1AGtmtLqGmW6yixtkkge7ncy3a4uYjPT3L7DJLz4GSUGO
+yHoN8PcNKJD3acPORCG7kTxlxXvXKiI8Q9w8NiUHroxkrq+opLp8qTJRtY2kd6VS
+D07uOFkefmZycgnWfthIQBXo4MOfztmuKdkfy43/uXCQsCUzkZ/WwETlAoGAc8Je
+VwuQILcxWWyO2Xr+krxNHpvL3rG/axeGx6yRD2zS97vU2qAZlAOCw/0KW4i/ujn9
+2lw7y8LKogtWEG7eVFujub5tmvjQJ6zymdPHcHp8mt+gAFoamo+PHC0KlYzfuJ/V
+bEjnqulI8MDqyKrZla4AihyxjTENZjx5YdxcrpsCgYBPz9LjfYsDmTXj9vC3sGoV
+L1G1W4wkqIywWKj+h2KKrpdrPt6kROTxLgCph60idLI6xiOeJB0K5XiElKZNBtbC
+0XCweW8FLBb8x+1nzXtMLxJy45ThPiRpK3cDR/dbk+M7Kqv0cVlo2v6MQNJQVozw
+ISkJoSrIUR4vSs8igcPY2g==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..1046e26eb
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJzCCAg+gAwIBAgICUg4wDQYJKoZIhvcNAQELBQAwITESMBAGA1UEAwwJVGVz
+dCBSb290MQswCQYDVQQGEwJERTAeFw0xNzA3MjYxMzI1NDBaFw0yMDA3MjcxMzI1
+NDBaMCMxFDASBgNVBAMMC1Rlc3QgU3ViIENBMQswCQYDVQQGEwJERTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKiBqbV0p27AhYhiFpwSFTiZQ7hkBee7
+Fig0jRXTKWtX+zjnRjZy8Puyg89En7l2MzdZk8RzlrYsE/tAWWdqjlrNRU0TCoom
+HmWms3Vjs6+z9UmcE6bOchUg7BjpAqKJHSguybqyw5V3RkTGh51r9HbiUngzbRYq
+6IepXvhYk5tKrcmcNmUKP14JhLdKzTVMxEEQh/UEWx1guCdrFI5s+LYq6tHget46
+KWDpueKHZxXalBCQN9v9I0y3nOHhwy+FOsUfX9WI1zsetpMByxGmO8UfFB9zx42I
+YvJoHPwSS1WdRofa6fXUsbVK8L7zBsxRP09Q68AWJtHvOgI0EFsBslMCAwEAAaNn
+MGUwHwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFIg7
+PemiPjGTRq83w7QDXMiPE66/MA4GA1UdDwEB/wQEAwIBBjATBgNVHSABAf8ECTAH
+MAUGAyoDBDANBgkqhkiG9w0BAQsFAAOCAQEAeX3OGW/9h7NxsnUbgpC7SFzyLxjv
++25VG8jtE+pbZdnQEEE17vfUdQXJ1FZsL6jLH+qQT6HfNF0p0rxjYjdBZNNnGTZX
+ujdyovRCGZU0xIvtCzyKeDRMEYHOxOcuqKcIb/MPNqERXY1lqFbfgKTtwVptifTg
+O8wRZ2pMuDtkZVLfmCVZzBx0sT17mDzd9FEZWIH6hTYMgV9mZrL2B9+bj5zjC7uN
+h+BF7Ftv+dPBQYsi41ltYTgVJMlOMNnP7ueceKiZhZ2/bsci/PiBEkaMrE/rZKJh
+UUMYWkOfmseYEr5LZvfjs5jVfHg6WYe8eK/Uap6xsXb11hFCeiNK10IwGg==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_sub_ca.pem
new file mode 100644
index 000000000..81bdba630
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_06/cert_path_ext_06_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCogam1dKduwIWI
+YhacEhU4mUO4ZAXnuxYoNI0V0ylrV/s450Y2cvD7soPPRJ+5djM3WZPEc5a2LBP7
+QFlnao5azUVNEwqKJh5lprN1Y7Ovs/VJnBOmznIVIOwY6QKiiR0oLsm6ssOVd0ZE
+xoeda/R24lJ4M20WKuiHqV74WJObSq3JnDZlCj9eCYS3Ss01TMRBEIf1BFsdYLgn
+axSObPi2KurR4HreOilg6bnih2cV2pQQkDfb/SNMt5zh4cMvhTrFH1/ViNc7HraT
+AcsRpjvFHxQfc8eNiGLyaBz8EktVnUaH2un11LG1SvC+8wbMUT9PUOvAFibR7zoC
+NBBbAbJTAgMBAAECggEATtT6VE3S1tlyny9kbHd5PhVVvTnuGU9JOl37cy5qvjFW
+8nQgQPDdFKObTqhIITfPFiHuI4YACBHu9yhPqzYKiyhlN32k/KSArAWlB1Ixig2i
+v2EpQGxsqr3QNocsGGYVIethrNpc7dvzH9HRODB9GfEfq+RDMI+6YV03dO/bflZb
+KqQSyfVtL9mO3LO3zSjKyscoSpjOzWy7gZJjVVWDeTc8w1gtQ9le01/GxXonveoz
+3O2hOLeGqIuJiaTWYrR9ZhpqU9UB6ayPADupfgBC/lSH2RCgbu25kbTj/8lZxazf
+RU+G+tKTE+vouIJf9BRFv4d2MUM6RoYD6kGiftveoQKBgQDXKvTzmcZeJrkKKts6
+FBNfe7+VlEOSnr05F8K0OnxjVVEj7UVdKG2qTTVhKhrJCmPClwFXKpq/+vZMmxYw
+XlE3KJI2uNfAV+OWyaEpLVZiYvNIFtC0wmQDPS1oQK5Ms3pNVKH+lftMzKVGhQc4
+qqXG5y9t1CeWqsrml9jJoGS7bQKBgQDIe9vAY5geOX7p2N0VnFOLjNKssaKc0vlS
+p70tEDvbbPwxvzESDcgy9Ja0QWJSB3Cod/nV2ihhP4BNdhFXxbk062gvTjGoyJd3
+Lx7jvWvcvC8m7mpIiRhYodZt41LyyPUCVUP40H1U9PI+FAVzkUkyTglUkXF9RKFi
+Ez16fhvMvwKBgAzbWD+mFKBTmALvhKH3ySCPeGcrsM32BkB/FvdF92DIHE0VRGvI
+mqTucB4aMfeJU2SxOTdIKG8IQ+dX7P9+40N0fSgf62Rm3AaKjcK0HtFKMFdCZb4n
+T2qSIUB1fPTAVLKCOBvKQnXYVJfeIwxTxgwYjFD3uFXcZrtYn2+M0fgRAoGAYT+j
+cwlcipy9MVXeuFLiO7kNoHNyO7wi8LMpEqjjQCb3lnH1rZo92GnIiJuGw9+UCERa
+Th/KopGY/Poeo4LnugHOwdOeRw82Wbvjsfj6T1KBVNMlfxXxV1z5lMhGPjq4jm8p
+z5HimclPkElJ86sv5FTyNbFvaaJW3ioTEk4F0iUCgYEAwU/n9HM8S67AYtcw4kWm
+BdtpY/AS2ZwOEBSBNxLp4LMMdqSaM3nFo0VOjrSoWhOh5kFYXiBb4UPDhIAwwamn
+c9d32a0IjTepWqIeTbZDV1bHZWjUVLKGbwyH/b0/FZhlrR7zXgRHAvRBPU8ejUC7
+gR2KvXnwPQS6qawYqA6plW4=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_06/description.txt b/src/tests/data/x509/bsi/cert_path_ext_06/description.txt
new file mode 100644
index 000000000..e845a3a3f
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_06/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_06
+
+Purpose: Checks the behaviour of the application when an intermediate certificate does not have the Basic Constraints extension. This path is invalid because this extension must be placed in every intermediate certificate and an application must check that an intermediate certificate is allowed to issue other certificates.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_ee.TC.pem.crt
new file mode 100644
index 000000000..e3ba1354c
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNzCCAh+gAwIBAgICTicwDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjU0NFoXDTE4MDcyNzEz
+MjU0NFowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC14EqoEM0I9pvueykUMARNku1Xuqt/5DvW
+3ck0ZbvtAbZMv1VTzzl7OB7qqp0VxxPdFVQTvnSZYK0/Zyui5BbbHa+AtVOPT/Aw
+YC5Vxw9tYgLpPTuaA+QJm58oG4EaE73YzYCHwuqouC0Y7ZrNQrJ+UNPwnXZw31BY
+b0BtEft4c6AwuJCz+qZMwFTPO7CqpTfpq/Gq3xzikIf41uhpoI/fC92el5zOl0P1
+KOUpGD2w4VZmHo9zGbAIEvO5AJihqkHJjXY2Iu420gDV/Le3Zjl3mbIu+fnT/dox
+d1PMLIKWH6ZAVFXN8FYD8hqY2NfvDq3A2Bv9bJtwYZ9m23e3vSqfAgMBAAGjeTB3
+MB8GA1UdIwQYMBaAFO5cE1l0RBLjSOfqN2NLCzwhT34EMB0GA1UdDgQWBBToIp6/
+QDST9Qz8MLl06Bg3mp3X1TAOBgNVHQ8BAf8EBAMCB4AwDwYDVR0TAQH/BAUwAwEB
+ADAUBgNVHREEDTALgglkdW1teWhvc3QwDQYJKoZIhvcNAQELBQADggEBAB2u2BGM
+bNhvRrpXCTY6rubW88AEukLG/9FZ4whDJsaL/r4DOGoADQkZRbv6NgioBwJZa8hG
+EOaEECGGpDbSikx8bSOe/qXWOlsIO2GNtJ9d+osZ+4v40+520kxm+WFul5lpPt+z
+cdYb3c55DEKEf8yq0LEzrzn6ONWDGlF6JJnJQlzQqk+YPfLtB0mxmNzzNZxo52ZV
+PV6lkWMdw98ZNjk1Gpiv0kOUQyEOGu59FbLEYoHv/ct82ZMEb6AfmiyT3P+aeBzX
+K6SaSbU9yx8JhSq2uNW+9aiY/dEiWYZBOmDOamydT0QnCmzkraErSoovAe5ovPy6
+RO5+SgTKOysoRZA=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_ee.pem
new file mode 100644
index 000000000..393d12cca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC14EqoEM0I9pvu
+eykUMARNku1Xuqt/5DvW3ck0ZbvtAbZMv1VTzzl7OB7qqp0VxxPdFVQTvnSZYK0/
+Zyui5BbbHa+AtVOPT/AwYC5Vxw9tYgLpPTuaA+QJm58oG4EaE73YzYCHwuqouC0Y
+7ZrNQrJ+UNPwnXZw31BYb0BtEft4c6AwuJCz+qZMwFTPO7CqpTfpq/Gq3xzikIf4
+1uhpoI/fC92el5zOl0P1KOUpGD2w4VZmHo9zGbAIEvO5AJihqkHJjXY2Iu420gDV
+/Le3Zjl3mbIu+fnT/doxd1PMLIKWH6ZAVFXN8FYD8hqY2NfvDq3A2Bv9bJtwYZ9m
+23e3vSqfAgMBAAECggEAR8oXHdy32dRhu1IA5neHk0kuBwVnQW2I0yirDVQkyAn3
+d7bESvcOVN1TksQyihCQ/iC3la2FH6+B4vdpyXunq+i9SBwKthRTFf04/OG8bKwV
+wxPI7WOgxMwZF/83R+BH/QYsuCnPbzZ3kpHjGyc7BlIIPj8hK69x6t5K+2JwNNwg
+TyYhfeWLqoOc5FlYQ34NH7d8YyJeEzlHb7mDU8Pfh8cs+tIpRblJozUkDuD6y+Zp
+oDfPwJ/mVYo2QKOUmAOTWwNtutE6HP3R+39kRbdERWR3VrJEq1FJT7KoLEQtNZ+T
+j88A4RzARQvmozT4AHX0G19ONFTJF75nErjwWhyLDQKBgQDlrPUO4LiZfWisCenX
+S5/6OnXwNF5vxQJ3RoJjkxtqygD22LMBlvxKCNJtx4q/kExwbKHL7jQVtAAAhYcz
+VQvxHtsOkNed1iCEdIFV0Mq9JzXwVe4YBeNCslReBEXBkOMiHBIu/jAAGszRr1X9
+Ep0aQKgTud6LHFjm52cQRnWTSwKBgQDKuNKjFMaFIJ4AnqmtQ/D7dhgLPn4XXDbW
+pn6qlE//0kzvsIVPVEyAL2B5RWNCRrWrW6iI8vYC25FFrXJT12k5Jwt7sCGHJqrl
+LvQDtm1jouHRV/vmqIiK1GNDD6P1tHNp3kvpkBFkQd0KaqLDX4d8VyOXjLj+iNro
+dCIhmDZdfQKBgQC6hyoK6DTj6zbcKbzxLikBxwLLjyx3J5AmIGx6xBlLND1uPHW8
+v8ursNh9ccZcZ6u8zmzku1MvoR0zTz6LUPG+5KlRfg6u0B1elWQItuZAkpy60H7q
+obV9EGl2ZY/lcW8V36hg4+1F2H4peXWjb7+Jd6NJSfXUErSc6qgITsDkWwKBgQDA
+P4yKWd52S9trjQwuo7r6TiE5MJeVgb8Dyztee25uljqeKJIUDEbMXaGpADPEm5gX
+nMH0tiy1wxI+uOEuP5+rMqsCLqNtLy9sTx3cE3ojvklXJZBfSz7KIebMpx1/mxTE
+tqrZIeZMZOXBxiT7ETJEqcK4Kx0ZTiIDxnbD0zzjZQKBgEtR4MpYSl4cO6ZYQgSR
+ZwZ0m3WXapu1bVvRuYzoh2/1TRr8nZxWCUZzD6v1Jrho13PoM4PlHxYVcKIQOlUB
+tmRSOiutR3FZG4HcabUnTNyIPHIpkD98UmuMOmwqTuQOBCPnUQIrCvmUts1ge5SD
+N2EEVtMhObKgNdIDt8amRB+D
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..3cb629910
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_sub_ca.ca.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDODCCAiCgAwIBAgICUg8wDQYJKoZIhvcNAQELBQAwITESMBAGA1UEAwwJVGVz
+dCBSb290MQswCQYDVQQGEwJERTAeFw0xNzA3MjYxMzI1NDRaFw0yMDA3MjcxMzI1
+NDRaMCMxFDASBgNVBAMMC1Rlc3QgU3ViIENBMQswCQYDVQQGEwJERTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAI7cX7m5nLzPC2vRaE6s42uZCIh0lJVv
+R74r0lIvt3EMB8A9cjbqcq5g1vayoJao+NmVNMT6Wuv+fBaoGSuhZ+CCW/zCyep0
+A9RXzOTWjGLT7btMQaqiBjG/ZVcMJMZOK5C6LpwUa8rWxyJKgrTTWraVIAagmQ1B
+bEL94FjUa5u1D295vsu+3Kg+lwx7q6RkUfT/w4lqas6x6fITDT/9dWXEIBk63/oB
+eGGqiOJFpCTMg2bKuI0XXfBgjPRzSSqlaeL80He/xu1k40z8hnr9vDVH2flGnfnb
+BZ9t8wS0MerV/aAoY9YrJkgI9vGRaZqnGaOgHy6s/vyZBcUYoJHekvcCAwEAAaN4
+MHYwHwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFO5c
+E1l0RBLjSOfqN2NLCzwhT34EMA4GA1UdDwEB/wQEAwIBBjATBgNVHSABAf8ECTAH
+MAUGAyoDBDAPBgNVHRMBAf8EBTADAQEAMA0GCSqGSIb3DQEBCwUAA4IBAQABrNlI
+OnhK86vhWOlA/uSaGvoGAuoMFJN8viRu2bulw5BPX7Ci33oeHPuDuUuTcf5S3PQ+
+om5t5sPaYTJ7Wqe+S+9E8b0Vk6VlYZLMFdjOi6WZmsILlaOzKNf6BU6w92pbFVID
+J+ChjlFSsKPJnGYq195F9W7VVCsMT5w3fdIfEZL1owL6j2uAHED/gi4AB4dMjLDk
+Z1pOzysAaWkxjEuZoLtZN4jOXvxE6qTtOOR/64yUOcRMYyBwddz0VDlGxhQCOP3S
+hiumnSArFd8tSmPv4d9uKuuLf4AevDL7GagrDc6Wwt4vBz3yheX90IbeTTC9tMFR
+XhIfHCLyTSIRS/rF
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_sub_ca.pem
new file mode 100644
index 000000000..1f3391f65
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_07/cert_path_ext_07_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCO3F+5uZy8zwtr
+0WhOrONrmQiIdJSVb0e+K9JSL7dxDAfAPXI26nKuYNb2sqCWqPjZlTTE+lrr/nwW
+qBkroWfgglv8wsnqdAPUV8zk1oxi0+27TEGqogYxv2VXDCTGTiuQui6cFGvK1sci
+SoK001q2lSAGoJkNQWxC/eBY1GubtQ9veb7LvtyoPpcMe6ukZFH0/8OJamrOseny
+Ew0//XVlxCAZOt/6AXhhqojiRaQkzINmyriNF13wYIz0c0kqpWni/NB3v8btZONM
+/IZ6/bw1R9n5Rp352wWfbfMEtDHq1f2gKGPWKyZICPbxkWmapxmjoB8urP78mQXF
+GKCR3pL3AgMBAAECggEAFpPqhwo4JLjeF7idMQ3u1UL2z8YI84MGRh5b24RSDAo4
+MWAkrFwqKrgAUTXS3myvA4gqslTUyMZL6zK+45/bMGa5zf0k9ypFrqn/pkzoG/hd
+coPvPt3jd7pFdFfleffBt9pM4nrxvDlseFVpSdW7WO7BhHqeJbOovf+slK1holZj
+OuYRIyvU+JJU/z11nxodhHwdMSzEupTFGMQ7gw+jz7uHoa1S4LXuRv2u4JEzHI/q
+mZAgpYNLk6rywzD8en4el2LWidvFv8s2NsoAb7J8VAMoKbytok4VZm2n1IAGEx6g
+/CCxrZCRWW7oCU8+YRJ10cA0j3NACc+GntIDggzQvQKBgQC/rfqEIklNVPgPgHK1
+HNTKJDwhv3984jWiJrSC18xBpF3TzMwvZ/mIyRJ3uCK28OmCTM3VO9xUyOk3adaz
+knzgu0PXrNjiTdKhVk3jwJcBHKbU33slFwneaiA29I5lyh45yel856JdyOyw4E5R
+/rSOzLtgq4HaxNhq4v8NImThZQKBgQC+zKx/DwUFyxfTf6pgdmOn7pTNaxtKFSGw
+w5Z93lhbKBNNw5qCsirC+Pn/I+Gb7cDXnZWqyZaoPftuv6vt1RgcEboJWQNzP2Nx
+062tsoGfJFt2sy0hPfpgAZVOkMzRB8x2XpCFOLO+DceL8ptZi3Dbrngh95/daor/
+Ms7WeiHrKwKBgQC7J66xkaCtB0fmKu7VdD842ER2Vzqtv1nK56vdDcP8W/bZNOAx
+cX4uVtXXW01Z/sShW0im6XnqtvkwCAGA+IlCDNbjIXvrCz2cFl6bAJLwnP8wXr0o
+q+QQ7OJjhkn7jWwR1NpMAQeCNwsUcQ9H9EBsJe7XJt71srn1M4sBUhHaGQKBgDOi
+oGwiXHGc7O3H9wvz/jRMVOjiu5fo8B0uUWPu8Gp7Bf5dmUsVfI0XZFCwHTZduXqg
+owh9VdBiNdFa/eR3bvbptTciZ9SgqwD7EF2ZmYrABCCzjNsaMtAYnZeNiGBpg+Pk
+46eqGLqub/pnxbMOEZTiOpC2uwTo+ITn8yIIG3XRAoGAXUbDa+MoEbQxnh5HX4z/
+wIRSPOl03npF5W+US78Ji/HSvky3kqVBmaxYttEVaU3RoJkQcazmxdh3NAPrB+gO
+npaAsgHtOAzMRxFwMu4dcBvEzk1/CbXxxjvuPaY+GdZkm4Wxa17yvXKpUSUFUoAF
+V9hUB+7a3M5OsWxr2lE7G9U=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_07/description.txt b/src/tests/data/x509/bsi/cert_path_ext_07/description.txt
new file mode 100644
index 000000000..fa07997a5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_07/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_07
+
+Purpose: Checks the behaviour of the application when an intermediate certificate has cA=false in the Basic Constraints extension. This path is invalid because an intermediate certificate must contain the Basic Constraints extensions with the value cA=true.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_ee.TC.pem.crt
new file mode 100644
index 000000000..64d0e1276
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDOTCCAiGgAwIBAgICTicwDQYJKoZIhvcNAQELBQAwJjEXMBUGA1UEAwwOVGVz
+dCBTdWIgQ0EgTDIxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjU0NVoXDTE4MDcy
+NzEzMjU0NVowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCnKvP4Oj27TOxu4fQY2XFjYwycJHN+
+n+3NCATzEeKgcBQf+qY8LjUCHQaMCaFq+RkT58Q7E8bPp89nQENO904NUJv39/G4
+WIfyU4VjCgod7Hpi/ziBN+JaG0HScAloh68KM/na6BS/PAIp5zmQAOGCgUkLjr3i
+IQja/SHkbgD+ClziqhCwE8RzVFRwn0ECnf4pAX0UDE5zxbTwAmKGl+VQkYp3qfig
+X+m4s8iURTReAkf5bmq/an0UXFcnvEdvz9Rs5eRbh4xS8OfbwS0jFtVyoX9xus8B
+XeuTsQQQM5bSuCJIlVSsG+2+EtmG88CdO//VEUKZJJLAxhXgG0enFj91AgMBAAGj
+eDB2MB8GA1UdIwQYMBaAFE/8cgLGhgiLwpTUhCp/RhfLtTuzMB0GA1UdDgQWBBSD
+bX+sBDBa0zyz+S4F412N8KPY1DAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0gAQH/BAkw
+BzAFBgMqAwQwDwYDVR0TAQH/BAUwAwEBADANBgkqhkiG9w0BAQsFAAOCAQEAL7TX
+pGoVGGeFmQaXB6TGbu4Yyrmz6nposq6HjS1jYCaigjjCI7m2RJlKvEJuVwDwtP1v
+037VJE2VzfQLamhbzd16zK4EPbuNAxivQSxLUYCx/J2I3giwedSAN1UE4ZxrtXoW
+ul/LyC0YYuTsXZGrR9LYeNMQnO01VLhpz8QUlJsPpVEqpF87YP1Pseg5W4UBUuRp
+1hDntGXEvmJXo3kkfYvYfA4P66/Ppz500zjWSWfheF6sxcBXvdADHOpjbZkFIuAu
+/ppmmg2YGYGoVGV52DiV5Ny6e/tSu6CY2JkUa0Qvh1hFXtbAg3iagwY8rnSNE5nU
+vtyJAd1c10ZEaDnzMQ==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_ee.pem
new file mode 100644
index 000000000..724fcc064
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCnKvP4Oj27TOxu
+4fQY2XFjYwycJHN+n+3NCATzEeKgcBQf+qY8LjUCHQaMCaFq+RkT58Q7E8bPp89n
+QENO904NUJv39/G4WIfyU4VjCgod7Hpi/ziBN+JaG0HScAloh68KM/na6BS/PAIp
+5zmQAOGCgUkLjr3iIQja/SHkbgD+ClziqhCwE8RzVFRwn0ECnf4pAX0UDE5zxbTw
+AmKGl+VQkYp3qfigX+m4s8iURTReAkf5bmq/an0UXFcnvEdvz9Rs5eRbh4xS8Ofb
+wS0jFtVyoX9xus8BXeuTsQQQM5bSuCJIlVSsG+2+EtmG88CdO//VEUKZJJLAxhXg
+G0enFj91AgMBAAECggEAI/6oNLFZvHxWRpPpqvYbJ7Lasr5YjhHisuzAoBQgT7qC
+YtZmN/wdFtzoHXwvYSjM4Q/dHXlnLCxuiMV6GMVAbbaHNvARAMgzUZbxWD9/qSzT
+t4BMCurdFtjapfTQ2cypgJFrgdrKKNlDgAFVUDAYXrD26QGt2kSRsxGhXB3hodGA
+57U/gnt/2+i+xT0OarlLS0GqhxkAl2yh8m3rtgwoCkSgmSETIcUvd6W0aeVda6K7
+56jbrHFuwHomkDubRPRedfrbXkBDiIrBj1qDQGuyIlKo/u5DltQ3lwbqcHJhWkp1
+/CVe9hgT1SoFqC0gX+0lgjS1Ozv7dxILyfQn5u8mmwKBgQDj8MTPs2z7hU8xKLpu
+D7eZJfxLmDsfsJmKzZoU7R0YVpmQpbolYWp0QUel65c0ZCD0DIfgpR7JDONov78V
+/TstwjwI94SeKKnH4H8GGvgwx9e2Pw4ASiR7tlXZQ932mx+CGOVMWSqSAhIIYN0e
+k/kwpz1XoOJzNyISNA4oGhrPBwKBgQC7vwQCJDn3sxPK7Jw89gss9FhBwGZF4CrO
+a5dwyPd+LBuk2dffv4B4hr1TSzFfewis6PouLPYLvmIU522Yn+5lslKJdC6VASfN
+X5ZRGjnBGmo6824TIjmQwBN5QJ+AJkGtyk7Ww0XJ+Wn1LsgweJo3BajAfjyKiJ/j
+x6B/BG6iowKBgANQh/whNs99g8ZKOlPJZLkUZVPQFeQDFGiBTuFJBWhKMhd5YXiT
+rxGbtWgDQgKgBh6mY/9vR0BTMKdgSm4ObaLftTHIL6SBIN7oM9Cp6bwD2+4pgpGc
+gmVOJHdxVjP004N3yzXOAiF3aD248t4z9qavd+PjUges4JD1MtOAda1XAoGAXmvy
+2CDgBnNJwQS+juovNKyutmLNDNdwr9/sigyIbCxCuuXUa/Mj6XnaPcnTSvHVqyCA
+sjhqhf151omN1PSaMQs992M3CjlKiz9HmgJWiYd/ZaaH9ZeA3Au9v32AujKDVaQp
+glkzACEv6N9eTwJYjNOLy0OxrvqHb0c2sKrJ+YECgYA28LWNZrtuCMkgbl4V7Nek
+yzrDvx+RofvaWJ9O+EJzGBgQT3N9xpDQoc+l5dLwR/reMWTfprS4vWUsuAbD8Y90
+75Cm8EHVmDdkb7c+ktwVSVRPNiW/xnRGs7uPA6gBwDQvkfYkfakQb8vKN7NQQpPV
+aNMgN2YUQC01A+6zOfqw8A==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l1.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l1.ca.pem.crt
new file mode 100644
index 000000000..42ba03151
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l1.ca.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDPjCCAiagAwIBAgICUg8wDQYJKoZIhvcNAQELBQAwITESMBAGA1UEAwwJVGVz
+dCBSb290MQswCQYDVQQGEwJERTAeFw0xNzA3MjUxMzI1NDRaFw0yMDA3MjcxMzI1
+NDRaMCYxFzAVBgNVBAMMDlRlc3QgU3ViIENBIEwxMQswCQYDVQQGEwJERTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMXvTDKUK0V8BQkelYfrJ7k5xiSX
+jgcYGSkYvnCQgsO/O/huGXjtnCjNFazb6JP+Ecdluut9HFBTJvx58msvMzP50oIv
+B2MYQtXZ39Chs940HIyqZW4NV0hlyKKGfE6MTVGewpQUeIp3+tfpPAXCc0h3SIf7
+NYZ+T6UifTNMS8aAMwZ0vf/KbXEEyfrOasWBsdrO2CeN2m+4Y0XWXZL8uqjM3beI
+5WAs2C2TImd3YWDtwpvmUMz6MocrGcV7Y93cJdlQabxwqYvlUe0ODqXu5jGdYOGq
+Kt8rmFDJDPKnSc+xtE6+ODnnv3RXtcb9qU2TB0tw8rOAiKx+2Nv8HaWqCDsCAwEA
+AaN7MHkwHwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYE
+FIQR8VcIMbQqpqDvbvbMlPdVbpnTMA4GA1UdDwEB/wQEAwIBBjATBgNVHSABAf8E
+CTAHMAUGAyoDBDASBgNVHRMBAf8ECDAGAQH/AgEAMA0GCSqGSIb3DQEBCwUAA4IB
+AQAiiH/FQcLHHQrWs7r1WkuD44Vw7rzQkah2Jp74ODQQVUIbV7L0YHBvMnEV0vM/
+uFwhH416JNr0RU7eHSoGe8mLlxs1KDCRef6x3afp13B+UGV7YYYI788/POxdAdTy
+sbhMibG1rmtrjws5oT04NrwOpXoIBy3I56tsGFxz77fE/FHIbg9XSLhYih0lIu1D
+IKxXr3meTz52a2AVXAa7KfNDrt8W0wRdzo50zusZKV6M8a3Xa833vX7FJSoTPSYa
+/nZxZncT66oMopODmB5gUIKDOY3t9yrHfYdQW7qe7fyrGnIge8N1DFb6x9j0dK9J
+b4BCwXxIqBN5EqhHUVPha+DA
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l1.pem b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l1.pem
new file mode 100644
index 000000000..8632d82c7
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l1.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDF70wylCtFfAUJ
+HpWH6ye5OcYkl44HGBkpGL5wkILDvzv4bhl47ZwozRWs2+iT/hHHZbrrfRxQUyb8
+efJrLzMz+dKCLwdjGELV2d/QobPeNByMqmVuDVdIZciihnxOjE1RnsKUFHiKd/rX
+6TwFwnNId0iH+zWGfk+lIn0zTEvGgDMGdL3/ym1xBMn6zmrFgbHaztgnjdpvuGNF
+1l2S/LqozN23iOVgLNgtkyJnd2Fg7cKb5lDM+jKHKxnFe2Pd3CXZUGm8cKmL5VHt
+Dg6l7uYxnWDhqirfK5hQyQzyp0nPsbROvjg55790V7XG/alNkwdLcPKzgIisftjb
+/B2lqgg7AgMBAAECggEACZjhFJwTPmBADOwltfG/UFTZIvxnj40p6Hs2/gA+cZKm
+gWoyjqbUE9+1ywGH/7z+9wXGEBWrN3MrXcHlRjCDXA7N7TADPK54Ic8ER3pqXT4g
+8D/G1pThBDVN4CDYis/KDp4TCIO26zKGwCH382jf7Bs/MhC1IgX32KWZH9FK5J9M
+LXxJJWNCU03r8ZIO9JHVIowqvgcljwCbAfUoiZpB2exfTM+rX0R1rS7Ay8o4TMrk
+OHbGlk5XkUufj8j0riuLdp67RtJz4QY+zmjjkv/0TCrDA06dAZOhfVegGyiI03tA
+lB/wt/OOU5x7cX/OQlC1Ollrf/JiFcNtt7XORvW1yQKBgQDoify7MJ2JXnPcQAdU
+j3PNLU998AIrVZxbK2Y2PCiYEfWEcDQCHiBIYZTwl3yXOhj8Y03eyExe3cymU7O8
+RCTj7y0brhXmxlU9Pnwk6SNGEwfryDZ7hm9dwnXAPnBA0isoG5if3QnTMbmjHPn+
+7UHbltv+9EMGpdRAESGwlSihXwKBgQDZ541qoGqmzMCg3EO6WK+voxuDLjx4jKED
+JMN4BzIrHUE3Zp564ZpNVb8klVQ7vlOUB20LiVgJxmIB2Htg4i1IqyY9hedklTcn
+WLA0q1n0fDgf/kdgmFrgmNDp7NozqQJrs+yR2I/BTpwbsEcyOKf/+3pn1aVggBYH
+NIkc5aW6pQKBgQCpj9TF+lElVcZOGDJAKspaFmwcfOJYDvkQUbkaWwuOt6m7hMWn
+taf8n4snVI75BtgpUY/6nztxAXK05dvtsBLmUgUmZe56dKy7F9EWaRnbgw0HlNqF
+gCW8zItoPx9DZP0rJdRI3bjIUz31/q8cgIzBPmP0qNAnDMyUWumiBWG3KQKBgAyR
+cnKn9f7Q6HteuPlSjC+RNNEIJay+T7sir7OIlrgt48kSPinQQVoci/3MLyOTArcT
+BpMXxOArdROuLM+VvA7o8De0NXhzss6uKtue1n1nfMU7oVpM71Ds/3++jYdVRDJ6
+Gjb/SqtXoWFndXPMGMSG+LRsejFqsdqQiSgFht2RAoGAdoRawASHfFKPGTEWEPtX
+KzVRN8IeMiosqhYEvjbr9KSw2ee/LtAS2pXftx93gH9kVdlw4SpJRZpQMlsf5UrA
+eVhkcgCMHB+I8xMuPoB/0wkJUYMp9M5eeSsREtvdiD9nKLylXPhje7y5f7iNO0tV
+Q8S/gDZYJLK6I75tJUluKKQ=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l2.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l2.ca.pem.crt
new file mode 100644
index 000000000..739c8e195
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l2.ca.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDQzCCAiugAwIBAgICVfcwDQYJKoZIhvcNAQELBQAwJjEXMBUGA1UEAwwOVGVz
+dCBTdWIgQ0EgTDExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjU0NVoXDTE5MDcy
+NzEzMjU0NVowJjEXMBUGA1UEAwwOVGVzdCBTdWIgQ0EgTDIxCzAJBgNVBAYTAkRF
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvXvi79gkN4fub7WqyZDM
+7Yd6Q1inwxHW7znIUhfguon5Ol8kUAZUggwYhtCG3RDcAPnU/z3z6fqyQrrIKEOV
+gnqdBNNBFK9l2o0deGtvDSTsAX758KzumdqV10lm8MPva/3fTnLEITISNHIN3hJw
+W8to6OfcniwUX7ovBimimSkb1iRQ6ECBg5sSOzK6Q8gtBxPl8zlSh7wYNDFVeTCN
+/FJ633PWVDVxbHXCJFM5HfYhKxxQYRy8yWmMO+BE3EXdkTfMf+0/LRNWYl2AhqEi
+CTM4JFgk5jLiuLzs/FBVdqM5OcTh5gzXCHJpuKCsBmksuvzhTgenKVv5K26G/SVq
+jQIDAQABo3sweTAfBgNVHSMEGDAWgBSEEfFXCDG0Kqag7272zJT3VW6Z0zAdBgNV
+HQ4EFgQUT/xyAsaGCIvClNSEKn9GF8u1O7MwDgYDVR0PAQH/BAQDAgEGMBMGA1Ud
+IAEB/wQJMAcwBQYDKgMEMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQEL
+BQADggEBAKZYftYumsfWlgqNPtucYuaVKVw/5QoUr1OQSJOzBciDLu7NUlvgFMji
+ZSSc5AdBzEnPkHbxu5dj2vd/Fm8egNY+qynOYI0zPOHPH/C9c2gE1RjD1rla+xNz
+bK7KmIeKbcVw7nyGsfLKDI4h+g6ZVyCY6qh8B9l22riSLsp1QHGgfhSkd0p6iZG0
+h7JuuOAX5GihG8oORdoOu3Fm9UnQ8Kcj1z9GBQ9j6lsTuC7VxQH0cpbzdr8xdhRw
+cOhr8SsRgWXoHvwpGXCDJxFWAtCcNn+OdBVL6EcDAHORZzuvmu7kjewqcGkmUIhY
+GrNMPdpdDzqvw+FqVbnVvMhocxNwWLg=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l2.pem b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l2.pem
new file mode 100644
index 000000000..e30fad7e9
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_08/cert_path_ext_08_sub_ca_l2.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC9e+Lv2CQ3h+5v
+tarJkMzth3pDWKfDEdbvOchSF+C6ifk6XyRQBlSCDBiG0IbdENwA+dT/PfPp+rJC
+usgoQ5WCep0E00EUr2XajR14a28NJOwBfvnwrO6Z2pXXSWbww+9r/d9OcsQhMhI0
+cg3eEnBby2jo59yeLBRfui8GKaKZKRvWJFDoQIGDmxI7MrpDyC0HE+XzOVKHvBg0
+MVV5MI38Unrfc9ZUNXFsdcIkUzkd9iErHFBhHLzJaYw74ETcRd2RN8x/7T8tE1Zi
+XYCGoSIJMzgkWCTmMuK4vOz8UFV2ozk5xOHmDNcIcmm4oKwGaSy6/OFOB6cpW/kr
+bob9JWqNAgMBAAECggEAAf+bezqIOnxmZnwuqLOJ8It6E+ORbT42Z8sXeNdCqzqI
+f5rvPlxxMSgEsflPZ3FeSjC61DLf3XRLHDXyiCPgCDYrvA5tpbJWk+viv+WtaOC3
+BkfcY1W8NGvchNTSm5BHAkS/I/DYvZjP4sPVuZHIkANJc+qiRktV/efIqhFhALOO
+0V+Q5e9Rrf6nFjlIc93WZ1oqvSY5PvigDKhUN38bljbp5paYIgXTT9/ltt5AFIqZ
+JGRUgEyqihXpIr9Z8Jm7Jf0F6xiz/Qk1pA9RQr4Y8V/+OwUZDOrmzFhgBqHDlzlF
+TurjX9rqxaK5gyDaipB26dnZCjuGB5UN+Z92KLttsQKBgQD72wt02QRTGAIxpYQ7
+1KLlSi1OLdI1VSRZ2uJeegZLODvowl5JbPJhksGfsEWgD6Pggb/n/rFNM5gIvWQw
+iRDQCEnTbYoitLrcZsaihi6fjRcC9jGLgBVwTKAYpUOtpbws/T4xWqmbuYcUfcKn
+kJhXzLDfXzOZKQhb4X6P5rDKXQKBgQDAmhj615fGi42mk2wTjqPlAE1e7JUrq11s
+xzzZawGMAAXcl3omjALX83dVW8HrlPQtG23eY9p4MDxsmBDjqU2wisSKex6gYXsM
+E7/qdw8iMXZ5MbuYSgj0SwsUDei54giIVM/bS6fF7uOr5IPmLX4tc76ycE3X0VSV
+S73N+g398QKBgD6UIriZ47Ux1fm4Aq9LGl6Wm8M9J2oRCcM5291VvJKcGmavRPZB
+l8geyvV+uw4WVMXH94MRicSA+VnSlT5qED9gj9d09EnDVlrFPr3LUXJbgEhAG/dp
+j+ojX/Q/vB09fRBArF9fA52p76JrzR4Nk4zdU2VtJkj8JROPZ/8hdvQRAoGAcDCT
+AnLY/xdFQNW467936qn9Z6DJ17Evb3CzGjaBpSpSP8egqJmAAojYZ0lWsUKH5UqH
++jYSCVaXq+38UJDLJ1391GiZU3TU9xj9/raxgwpq53e3vaLKinq4Dkt31+c5byhw
+F15/cQWRawxmZIr1Z8Z3O3u9bEyMR5biDfxtcBECgYEA0ojsWapz98LZ38ZKIlu7
++8jQ9Ytn3+8s0hI6LnqvlWQsgiyy5Ifg8RPu/f/JW+ywdj/Wpqn+ONKwe/bYwSYD
+GMuihUkMvcCZsN/oYNBy6nZxfNwrSIdPy/0abZeic4ZTS+EOF3itA9SzP+dv9gCl
+KVWOrecsUjraxsuZ93FvgW4=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_08/description.txt b/src/tests/data/x509/bsi/cert_path_ext_08/description.txt
new file mode 100644
index 000000000..af97dffd5
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_08/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_08
+
+Purpose: Checks the behaviour of the application when the first intermediate certificate in a certification path of length 3 has pathLenConstraint=0 in the Basic Constraints extension. This path is invalid because the last intermediate certificate is not allowed to issue other certificates.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_ee.TC.pem.crt
new file mode 100644
index 000000000..8df1a7a1c
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_ee.TC.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDADCCAeigAwIBAgICTikwDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjU0M1oXDTE4MDcyNzEz
+MjU0M1owHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo1lzqwjFN7vQdJUrk092dVqw5BfrU6i2F
+9nsbbUsRwg4A8asro9oSewqVkCOdl4pMVaVoFNen8gL7wIbcRt8o6q8KiklywtUn
+0rsLQEQVJtH7PJ1H4k5gXhPsz98S/C2Ek5guieko2fFdNXPdfW0eY0UpfE/Hngo1
+ddcQ83ch6VWndmXa9wYH5kkHmjdXcFMSwfkhfMdNpWcx8BYiRQUIQ2s+p7LdQJ9n
+Ih96cxu+qaAgB3S2mxxYStnIkX0p2WnEDBOBlD9t3YvBSZm/tkh4Y2apYsOFe3zd
+UXR6e4pTwJP3ZFDeWuq529zIS7dYcXEfXHUcGrVU/5fCh/pGxY7HAgMBAAGjQjBA
+MB0GA1UdDgQWBBRpkprHIUGGNOoKx++Tuxbzw0LAaDAOBgNVHQ8BAf8EBAMCB4Aw
+DwYDVR0TAQH/BAUwAwEBADANBgkqhkiG9w0BAQsFAAOCAQEAf7xyd3qugJf1LQJY
+fCwl78c9KmjcSR5p0sB6MJ/g1iVKWckEZ9cMeCkru4cmRAmnkb0w+c94rKrBQ0lW
+zlkgddeUUcJFLZXv7ogtWOg/9K9SzYsTQlM1OFtL7I3k0NVKpYQe49i9wUbL+jUN
+d3tBJitVD5m9XYTKHej9uXqfqeTjxFqwJ1WUxhdHiBz2aBIZ7HaGW6D61NWlWd5Q
+CcLeX+EKRxiVs4gr13IfW4TyqVU/h/eX8JBbgeuMngx4hdqlRtjZeaxC27+t8zxD
+rejBlb7WCsoy+fYUWzm/BAlZ4RUYVGmcPceeSdRjhie74BHK7JgDG2tvSJXWmeVX
+TjBygg==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_ee.pem
new file mode 100644
index 000000000..60f82dea4
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCo1lzqwjFN7vQd
+JUrk092dVqw5BfrU6i2F9nsbbUsRwg4A8asro9oSewqVkCOdl4pMVaVoFNen8gL7
+wIbcRt8o6q8KiklywtUn0rsLQEQVJtH7PJ1H4k5gXhPsz98S/C2Ek5guieko2fFd
+NXPdfW0eY0UpfE/Hngo1ddcQ83ch6VWndmXa9wYH5kkHmjdXcFMSwfkhfMdNpWcx
+8BYiRQUIQ2s+p7LdQJ9nIh96cxu+qaAgB3S2mxxYStnIkX0p2WnEDBOBlD9t3YvB
+SZm/tkh4Y2apYsOFe3zdUXR6e4pTwJP3ZFDeWuq529zIS7dYcXEfXHUcGrVU/5fC
+h/pGxY7HAgMBAAECggEAUwQT69pQI+G6ZhpQGPOTpClZxTALhWUfvR7UqUe0AadI
++23YnDyUnUGikqes23AHsEDsc6DL6Og2T1L6/JRcZeH+70/PjX3/EPWswnt2/m94
+D/Bd5VqA7yFS6r3LEaqtNuLbkQZ+fnerFgmSTvW9EZP+Dcfx8lTi8CZg+RS9Hw6u
+fDvvMI31NTYl5sto+KsvhhHPej2owG/fxMq+Zr2JkU2P9Op8BAZVACv6R1EXVS2z
+xsD6G0UTEF0x3/x+mRTtRnFtQERf+SH0ZbAsF8JRGMhnkFyFl2SWFrBgSwNqOBEl
+OPdc+HkQ6yjNp9z+ZkzTgcdwvEGnRXclXm27im3lAQKBgQDlgTArl8j9WbI/FIA9
+MUpCM1NbNIMjIFH5VPs1SNEWMTKBLANXB4Q6wOcfgsJ9p7Kwe8PRdn5/ZQCncuiq
+zfLByMTMK3wqASb2tRwvu+Uq6t0KZe4Kv6vbkLQ94kVtEdWnKKX5CUx/WtNn9cUh
+OB5x8gZdMniKrXIX1SwLQc8VQwKBgQC8VDSYep9e1gaSfYObi+5TmH52K+rfbPCJ
+J50lmrFTI6gqXvPLk560bEKrqtMzxpdHL2mCfF5Xoc9j7hPcGigxzkquaMQwZE8B
+yw+HcQRlylXNMeHctrsvci/4WOGLXu+FxJoRy7q0zq+JSCUrlOwWMfPRNcDmNm/s
+j+iQxA/GLQKBgEDs5x+t9OIXOeG2fwDQrN1Ff9NRa7fIMOiELfzI+L16dXstZFR+
+f93PLJMxfqvlgRuEJ8Vd7DNF84VrcH7BfGdt0J6hvqJzaP5qBetLEG2vu5BxfYH0
+7z1SFmtbU6CjZvm++hUVmFp+60eBs57OLW62tS4wVQGGR7yORcN5fofZAoGBAKa1
+L12uZjcP4/92pbJiOtS7D27Rz3Z5u67dZykrdz6uOKVRKiQSB5GUp6vIam7Ro4X6
+/T3pk6Wk8a12yROz/9Ke1tLuoIRpttpSguuU6pykcDFUr6euBaKpRLdlDjpODl7u
+Oqf4HM0CjLZMK8MZb6byDu8p0xi2JXtVpDvJomD9AoGARXVqqdnQ5OptU89uWu/y
+/N7Rzmr+FlJzrMpMTJUWJ22OAcNgDccqYocyFV2AEVEvMJ0vQslQIeR1hiAs9Lgd
+cMuHXtxLZ2cVTeVUMaAdFngcUZzTwlRK0SIX+SNdIBkbw46A9M8fsLC3sVesn80y
+tmlLCJxHBIy+gDRNgG7gLkQ=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_09/cert_path_ext_09_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_09/description.txt b/src/tests/data/x509/bsi/cert_path_ext_09/description.txt
new file mode 100644
index 000000000..7d2ffb0f7
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_09/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_09
+
+Purpose: Checks the behaviour of the application when the target certificate does not contain the Authority Key Identifier Extension. This path is valid, although this certificate does not support path construction because of the missing AKIE.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_ee.TC.pem.crt
new file mode 100644
index 000000000..cc68c119a
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_ee.TC.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDZzCCAk+gAwIBAgICTiowDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjU0MFoXDTE4MDcyNzEz
+MjU0MFowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDCEmD6rh3DuDBugBy6cn7zxdY1zXzDBaga
+cO0yYVAPy3JpnIOgXSLTPDygMh3CPlmYRA7vTNd5XvAFd7yX64aafuZG5xIlHUdT
+NhM/vIZ8sSPMQzNTM8N5B8Q4ug31W8TDnYtGOOR8hUF4oAGp3jQWL3ZWDrfrGScD
+odW2N2/1yXYXkgwXFgh5OPI+NIShkuhjE1mY/0pAVuQroRqMTLVlqaq0u7h4DQiZ
+ukbBIVRq1cqftqCSvP/V8Abb/6UALVveBqFexeVR32Nv1QV4DdRlLTHuXcuNPsVm
+cfyN71zAtBJNejB2+Avk0x6UWB3f1WWZ9pwrb9MUr7hMUVLKoQH7AgMBAAGjgagw
+gaUwPAYDVR0PAQH/BDIwMDAuoCygKqQoMCYxFzAVBgNVBAMMDkRpZmZlcmVudCBU
+ZXN0MQswCQYDVQQGEwJERTAfBgNVHSMEGDAWgBTgjBmqaSWaGiUA9rMouhv3DfnP
+wDAdBgNVHQ4EFgQUC3QeGP9mP0PKP2xDlYgQ+aEdqRwwDwYDVR0TAQH/BAUwAwEB
+ADAUBgNVHREEDTALgglkdW1teWhvc3QwDQYJKoZIhvcNAQELBQADggEBAEIfntYU
+3+ha6aCeOJI7PPyikPtGwbm6Ig1II2elyh2NRx15Mn+aOJ8J2dS9XkRpEo6mwtIi
+aTW7QQWYd9ciXItnhOk8Py7I2GwOto6O4cY20OASrawDXMr45/pCbp8tyBHkCf8W
+7ZRlwxhtr11oUbyDIxobPCJtxWiAFYUl7UkpokaKQGNl9ODv1po44UZNyr4w0i8f
+feWJKAZTCwVsXqqBxsLzUElG0O7T/bwCAmQTWPl2lubIM5FXru0NDnL8kp6WUFW1
+xrgnoISSmD72DH8nvLqXip3U09Fol9pkCHfv7n0RCynniQfyFuWTXN8eAXtdrvNn
+Fym6gjWOQbwIWio=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_ee.pem
new file mode 100644
index 000000000..c948381e3
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDCEmD6rh3DuDBu
+gBy6cn7zxdY1zXzDBagacO0yYVAPy3JpnIOgXSLTPDygMh3CPlmYRA7vTNd5XvAF
+d7yX64aafuZG5xIlHUdTNhM/vIZ8sSPMQzNTM8N5B8Q4ug31W8TDnYtGOOR8hUF4
+oAGp3jQWL3ZWDrfrGScDodW2N2/1yXYXkgwXFgh5OPI+NIShkuhjE1mY/0pAVuQr
+oRqMTLVlqaq0u7h4DQiZukbBIVRq1cqftqCSvP/V8Abb/6UALVveBqFexeVR32Nv
+1QV4DdRlLTHuXcuNPsVmcfyN71zAtBJNejB2+Avk0x6UWB3f1WWZ9pwrb9MUr7hM
+UVLKoQH7AgMBAAECggEAPzBRwD1R9qhxqIDxGanu+PtY6FK8RRmB5v4O1SEHOuVQ
+nt91ohDBJosN6FD5DIZVkLTUMglQfTWyq+0VDFgFDyezXbGd4FS8pPTN5qpBFbdt
+gvP8caJAipdDRf8aTWGwWsrgjqA2kO6oZxieAguV5QVWH+YR7yvU3qNiXL6HJzz8
+mYPGTQiMnqbVbnfNstVXK9QmuWsGDjarmJ4R+MHebvWUVPSJVmCTKhxcgDu/M8WU
+q2oLdJYpthM0nDIGJjyOAUDMJ47Md9zXYUji1yz5a/RBERPUF5KqyJhoJjL7taWl
+dmLeZVVb2y2sobsQ6FJ8onf1U6Wa45yBhckxS4m8JQKBgQDiozcZlhv9vBppjWQm
+ZhnshMgTgPCkVS2/GCNW06vynVDu+nBU93vWT397S0xbVxUi+YHzl63+eaW8gVuq
+uPx4xF2TovEk3kzjxEngUolxvpgYBsjzidTK1E3k7nLSmVf0U8SHTIClmzHiilfp
+OU/QuT5nm1cWAcrFat2KlFaFFwKBgQDbNxHSOloEUWFCwxIZIib6SF5UnyKyEZ1c
+604UvVnKLk3DtJLNyqBUjSrKD71bgdEGju3Hyumw1tLSN2Kt6E87GeooMGU4cD7P
+YJUeguw4EuoBHuIe/USzFUFEKrw0Dhb1YgOuNtgnYutZTp8u+ikrH7uxZDGvo/Vd
+e70C6T1AvQKBgQCcjQ3EmNIhBUxhWQ+zDpgdruLdxhV0DnqZI71VfsWpw01ipo/t
+wT5DnYp7ylmmRpMNI7jGYSIJRFJd0iVV2o5bhZj2IHnec8g9FRvK3nien39EKXup
+7q2Upe5gku2x18bPuQVqSEgdHQTqbZGoQrSFg1A+FSmkw/wjPlxmG21gZQKBgQCa
+tx0+0KwjjAQnCGJHltEHp/fbpYzpPIFhyTkMbi9nAJMl4tYRpEbQJenjPoSYhuCt
+zkaH0fBpPNUCRNDCiMkSn1GiF7X4xU+vMS1NoX1yffbl35Qb5wiLlB7CK5805hTS
+DuEmHdMkyS3tlA3JLAnOQ9FGe76NhhxwZBqcaV0vyQKBgFmIZ50wiexkxMCTzs/W
+IJdSCsW9Zv+UZJi+h95HqMe+IDX2Jk/0IKVmxQN70mna/fBLRLJ0oa0P9wRBmzP3
+TsUmQI9DxXy/sfRpmz3Zi6YkxJq7cLnDJcuKIQ83T1ydhC4Pn/JMFbwEU5G8dTZw
+JM7MpPZS13InT9Ys8tz/rdqW
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_10/cert_path_ext_10_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_10/description.txt b/src/tests/data/x509/bsi/cert_path_ext_10/description.txt
new file mode 100644
index 000000000..45196b2e9
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_10/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_10
+
+Purpose: Checks the behaviour of the application when a critical extension has a wrong value. This path is invalid because a client application must parse and interpret critical extensions.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_ee.TC.pem.crt
new file mode 100644
index 000000000..29dbd1f09
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNzCCAh+gAwIBAgICTiswDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjQ0NFoXDTE4MDcyNzEz
+MjQ0NFowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDKxAdXrHilNqADJ4QOq8yM+z/I6YdOc8Vu
+rQUj0GN3nF4c/HcisMTozogP4v4l+DmrbuFt21wTDRZ3mmX3PBe/0ZSiir9XUasu
+1uQ3NZb+mVJtah+pmRkwp/u4+QXD7q8PTmydDqjEKIzc45VmuO3bhQLoPUrQ49uf
+f9wm+BEdPGWoKjtNbkhywHJRaog9Lsdrmx5e/UwuvJcVqrE5gIaWU5xbXfTrUVGA
+TVq0vshqWRDtz4E/55KB7acBHvu8V3JfQbo6kfwLtAKpWNpZl5CLCC8GUSo/eseN
+NbL9OSeRa50djsmdF+uNZD1RU19Gn5NSfV0b3KvRDaMmAGSrL0DxAgMBAAGjeTB3
+MB8GA1UdIwQYMBaAFCRUOnIu+YyK56K445QfLeWbVgv7MB0GA1UdDgQWBBSIlCRH
+MJ9x2YiChJShBraqokumgjAOBgNVHQ8BAf8EBAMCB4AwDwYDVR0TAQH/BAUwAwEB
+ADAUBgNVHREEDTALgglkdW1teWhvc3QwDQYJKoZIhvcNAQELBQADggEBAFNaB3BR
+14XV8fjOaT/oBfCX3YrHa7mUnsAEYvM+VZHq75gvJzN1vc9kZ5iuzaGk2WlCd7ZU
+/MUGi2m317Ls2qh4STg8sfOmxVkLmMeF+S3ADSfr3mz50KrnWmuJ/2I4/e0D9lty
+46UkUYVL+R+X364FwRPT6STv3XVrlSzkaknMg7M5HEfeCmzaOEgBkBdiBmHiAeqg
+d+wEGnZiJLxOW/5T6zUBPYiJM2Tp6HM1cQLLOSQtM4Lk8ZZ/l8E9fpQVIWyR3fCA
+mPsGCmzawEQ/gW4JKU8VqAbuBilBftHYFquI5wiCeYG+gaKwEqflM/I4ASrCwDYU
+IFlyHAWJy3w6Dsc=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_ee.pem
new file mode 100644
index 000000000..438c96363
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDKxAdXrHilNqAD
+J4QOq8yM+z/I6YdOc8VurQUj0GN3nF4c/HcisMTozogP4v4l+DmrbuFt21wTDRZ3
+mmX3PBe/0ZSiir9XUasu1uQ3NZb+mVJtah+pmRkwp/u4+QXD7q8PTmydDqjEKIzc
+45VmuO3bhQLoPUrQ49uff9wm+BEdPGWoKjtNbkhywHJRaog9Lsdrmx5e/UwuvJcV
+qrE5gIaWU5xbXfTrUVGATVq0vshqWRDtz4E/55KB7acBHvu8V3JfQbo6kfwLtAKp
+WNpZl5CLCC8GUSo/eseNNbL9OSeRa50djsmdF+uNZD1RU19Gn5NSfV0b3KvRDaMm
+AGSrL0DxAgMBAAECggEABZbStv13k+JGFeAseTUOHeK9Ft4tDyIM0qitSBfx7fWe
++ICTDh8+RkaPJJT2uXg2qr2TNDKEPrgxItncLqz24KA3zyUw8gi7xb5Bqy3sfBcg
+2QhAWC3yrk8rFqWynXyCUdMxFkE1sLaHb31MfHjjgZYQhvNNkSV+w85D9MUIv7wC
+Vql+qEk8z7V+RIKIAKgwZyGLJFXw7vusbvJ1+azQUFWfiZApHHMdfYY9MwMnyZo+
+71wcket5nH4ev1U7JNmspyQBp2RynY/wNuXgxzaTkgp5jnABgxfy/lJynZwELd2R
+MI2EUNYX+rY6cM62xHg1aQxp6Iuq+lwfWj4SqNWkoQKBgQD8p90vRrT+71HeDjqE
+/OIw8zArD/yDKEAIY7DoyNLsDfiFfWMf1kLuKZ0gFDmJzvYYPiTo+UCUvxP4nMjb
+1QlxCtF33ZIOPB9hFI7/6UGxTTLtGMwXkwTiVkzuZXiKOkHFUcgXbprGo0yz9c/5
+XMCwzneQIbU95Ii4mGZxmqMNOQKBgQDNcxwutJ4Qn80+vV7Yo/cgvAVycKXE2wmA
+FPm5HbyOQPFSE2BqAR0ialqIiDzb3ntXHwtSeqdXU6VJATaGxhluHmyal6dJtW1o
+tSf+tCodOSZxoDU56dOf4S7IIKBDg0V3+5L9hYMNInaaSWxcCeaN4MwPTa555P6L
+aeag9N8JeQKBgDLLrPRsSsdWZic2xR0nmnIs8mo19JaJ6RXGtTKX7Y/33xc3dk5Y
+TWyEgUqJxmembGPDWrhcJFfDcshw/RD1a8iGXEa1DUA/Zi+manmY89QpqStx6NZ0
+gG7g2uazD+D6hW6eWpQbcJKvEiS8Luv7ceIaIH+hx0aCQ9qZCT+dz1pBAoGAGC0T
+g+t9Ljefz2I5ZwTkb9WwTmczGpcr5waQ3FfDeHnr69yb292FsCcTwD1H7BeiK/5b
+Nrl4N66AJLcf03w8QdkSrp5p8SKIXWnz6uUIj6fJ/lT77nS1knrNJn+wXEF2S0gv
+Y+XyJfmIO1+ogKwplUh+us5JWc64pW8w1H/8PwECgYAIxroGhtOnXaM0G3UAY9Ni
+n3x0GmPOMoKnIhHLOeCjjCqpG0MVSJKLriKjImOwKDwamrSKwE6Tsk080YHbc4js
+zE6Qf16VTzOUBTgRqvlDeiNJzH9K2EyZFe7m5qnkm7d2cJnLPPiL0t2iIENJst37
+518w8lOhCJSxV1c/sEcRmA==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..fb21c7d67
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJjCCAg6gAwIBAgICUhMwDQYJKoZIhvcNAQELBQAwITESMBAGA1UEAwwJVGVz
+dCBSb290MQswCQYDVQQGEwJERTAeFw0xNzA3MjYxMzI0NDRaFw0yMDA3MjcxMzI0
+NDRaMCMxFDASBgNVBAMMC1Rlc3QgU3ViIENBMQswCQYDVQQGEwJERTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAI6ulYPDygnRFodJgOAE4wZR8IJ4eIBq
+Gi7XnPDoKj59FrDUzFFsQovcZ6sbsT7IwWCQoVtdEVMnI9ltyNWA6EwEN4Y/i2q0
+Ou6aMghmoFyhJljsp9YCHIeXAIQdmfAXlqyUWFtueFnmJ+PjyzaxI/1IvuprxG35
+g5LSjn2BkjjVXgjFeIO8BcjkKpKYHlv1v7jJ3zWTvX9JWvYiXHTDmpV1/5vkmEeE
++bePGdtaoDAakzTYBTwkQEVZsHUhNmd3aqNLxGbDAV30XK1enDed1J+B/GVf1KXU
+4FhDUW3imybzxC5Z6ZokkFVneBH7K3P1ik25KeXNSb+yT58mG5M5JMECAwEAAaNm
+MGQwDgYDVR0PAQH/BAQDAgECMB8GA1UdIwQYMBaAFMdPGIQtfK+M/IY/TwhCE9kl
+QGpwMB0GA1UdDgQWBBQkVDpyLvmMiueiuOOUHy3lm1YL+zASBgNVHRMBAf8ECDAG
+AQH/AgEAMA0GCSqGSIb3DQEBCwUAA4IBAQAox+b00unlZZggQ1ZTEkJuQT+qooU6
+W6r17wJND8TrD6ynhAFhaOwA8Wt6tzlw7L/Tu2PR/FoI3RtvQdbKz0X7kx5/bGyL
+CbkI2vUTmsX4ZavSNx53UhTW1KZcMnCsjcO51zDsn+X33OuQ/VqNDXkkK0t3dWsk
++7ZTeTdnkkCFo+NKT1bGwd2WdkB6FGjcS2PFgBhDBJhH3JLXvtpIQKKFDvcwUMUX
+EDs+9KmRu8BxGJstvIVad1Xzige6BrZ/wkIYhZRRGAYrsW7jttnEokiI9eWsK9IU
+N+uAeQaGaFzxakJFXW/p7Mnn42joYUsinQpfNjzpcIFps4y+HJfAQTqB
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_sub_ca.pem
new file mode 100644
index 000000000..37b92e17d
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_11/cert_path_ext_11_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCOrpWDw8oJ0RaH
+SYDgBOMGUfCCeHiAahou15zw6Co+fRaw1MxRbEKL3GerG7E+yMFgkKFbXRFTJyPZ
+bcjVgOhMBDeGP4tqtDrumjIIZqBcoSZY7KfWAhyHlwCEHZnwF5aslFhbbnhZ5ifj
+48s2sSP9SL7qa8Rt+YOS0o59gZI41V4IxXiDvAXI5CqSmB5b9b+4yd81k71/SVr2
+Ilx0w5qVdf+b5JhHhPm3jxnbWqAwGpM02AU8JEBFWbB1ITZnd2qjS8RmwwFd9Fyt
+Xpw3ndSfgfxlX9Sl1OBYQ1Ft4psm88QuWemaJJBVZ3gR+ytz9YpNuSnlzUm/sk+f
+JhuTOSTBAgMBAAECggEAB/prA7b4otWDQom1lCkvytpddgUvm0IbkFGX/ehEdvGq
+iXUfruCcZLrMfO7PqZajCf/SVvQQeD9mt7Vl4sraSmhctLP0SzFUX4PFnw7CgiV0
+agnjHWJJNzt2QNzxHvHJuAEUQvoNjpzSD5IM6pQrgpHdE4l2vo3CebzucOYEL6to
+vS4k0ZwcebHahi9aexcJoebeXFqQXf413QuUHVGuk5JaajEX7NYaqgaSPY0XQEM5
+G3n6HiZSzZzQ6btTLa4Bgt38BvPlTgXg1RRpO1pbLOXSEA+izvEHk38FoWEOgeQX
+OcrTGUlhZEqXOz9oA6U+gUasozOZZc9A2v46eZKMsQKBgQDD5LQ2LaSAblhgecu8
+CdXLd5UUw9gq3RAoEQnXNgJenU1Kq9kEf/bsiCouZQDWI60KE5brLG1BRktmgqXv
+DMmqB1uXVW2gxBCmRTPmC4+AVNtroNrSEnTtOj3eVYGTPXwBG5KkKmiATDwhUsG4
+M8HbD7TuPgJ982ay89haBv/WUQKBgQC6dii5DA0mVXQ4BCM6Z7WxYN1zGf3aVJsA
+bj6lx7D10F7z4rTB0Q/y1KzwK1AbGmWf48cKKyNoA+X0/wa9VNdmmM24smtBbH/Y
+3g/Wi8pj3qZpPHPMkv5AbCELIrR5znO3FVeY6MmQOhJA94MHEBqYS/imvUdk/HKd
+xidtjGEbcQKBgQCvdpVsyelFGJGUqMOyhGS5wT0JwnpHuocUPF7CJCBvOxrWPaM/
+gpdcOoL9136uUHpYQj+2Gq8p/prfETssKhogcEK8BMsTa0s2g1n/Pm+lFV0MxKH7
+9IhDTR3JnnFXv4TpQRdScKH1+VMKziOyqLmFTEZV97kns/NTa1NpIEfcYQKBgQCQ
+TK0LN/ZdOjisuRcCNgx4bzwxvWWlN2CVHrxA059xPIafO00jyUUMaeZEH2Do+K64
+5C+/AM9vycSGq25ty2C/N3XNf9ZdVThDfubG5HwGeeJTAsOjCAbXmFaiJYOB2HHY
+uB2Iam7CvQ4vVN0D9ESApBqT/1tnHa8dxqHwt3jXIQKBgCpdVx7ybwNDgdHkzPor
+PSVJoMyidCuFywIeUQMi2oY4lyj2jxqY6oowEzFzjGAM74eAdajD2DuGMFyzYHtn
+X6kQDI7JPE/MMB8OtUEQZyjlXCA5TLj5WAf/3HqqU39Osd1d4IV2BkDfK9lYMll4
+lK8awVmbZbVMWQL3nRChfj6v
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_11/description.txt b/src/tests/data/x509/bsi/cert_path_ext_11/description.txt
new file mode 100644
index 000000000..1f256eb44
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_11/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_11
+
+Purpose: Checks the behaviour of the application when an intermediate certificate does not contain the keyCertSign value in the Key Usage extension. This path is invalid because an intermediate certificate must have this value in this extension.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_ee.TC.pem.crt
new file mode 100644
index 000000000..bdd1b6697
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDVTCCAj2gAwIBAgICTiwwDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjUzOFoXDTE4MDcyNzEz
+MjUzOFowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCjU010/9L5hfhFBXPWRmCoWYQW8bIL4urO
+Y2uGq51Jgr2UrTRXt/aVPfeogIsvFQdSyNbES4MdOm8NhS/Wjc3If3QqCwd1NP9b
+tpFPgmjenQmPke3Yo/SnSgIQ9rIwOn4cVi1JkWI5y8TG8QVWm6phZxb5iiR9xfjZ
+26XIaReJ/RBAVvSieB6MJH8INppYU4UzIxZr+SjSbnR4g6sdGScfqUlvB+4suLuB
+03t/63C/X+jCUwfq8QHw+DgsuiDq4FzNVc4E0XGqrJjTGrhVodEa/AnIzd80yXBj
+N5zps/6jqP8suurQLgixrnrpMd01kkpXwB1nBNqBQAe8I93Z5g0pAgMBAAGjgZYw
+gZMwGgYDVR0gAQH/BBAwDjAFBgMqAwQwBQYDKgMEMB8GA1UdIwQYMBaAFOCMGapp
+JZoaJQD2syi6G/cN+c/AMB0GA1UdDgQWBBT4CxwKv7mpfVrBiiBwRkHHEf7NjzAO
+BgNVHQ8BAf8EBAMCB4AwDwYDVR0TAQH/BAUwAwEBADAUBgNVHREEDTALgglkdW1t
+eWhvc3QwDQYJKoZIhvcNAQELBQADggEBAJZRINcDe+GPHAeFO8VpXKzGjDIe7VyF
+odkSOGJBiNvERqz9a3L1GDqm6kDjelp0YFBvV5goophLweUYT8QLciujvZs83Oo4
+OMKuhGyT609tWxWNouwh1DkgcHdIBnDVX1cqeWtOsbypMRYK8bGD18nMd8Or1uj0
+wsqF2WqCxF1X3TZtMru1nM20kilDD7et1BFUTxeB6mZG3fXjQwDeootVaeYN4H3x
+DeZU69PGWkE5h4m/qZMabrFjvncjHYmSuqmVDXPfFoyak6vr9p4rU/F8H2R/Rdzw
+kcwF36VK5LGsaJ6p0GL6F8AwIHnc01reoznOi+jtUiNU2PNIz+Qa/uQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_ee.pem
new file mode 100644
index 000000000..c2993a2c8
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCjU010/9L5hfhF
+BXPWRmCoWYQW8bIL4urOY2uGq51Jgr2UrTRXt/aVPfeogIsvFQdSyNbES4MdOm8N
+hS/Wjc3If3QqCwd1NP9btpFPgmjenQmPke3Yo/SnSgIQ9rIwOn4cVi1JkWI5y8TG
+8QVWm6phZxb5iiR9xfjZ26XIaReJ/RBAVvSieB6MJH8INppYU4UzIxZr+SjSbnR4
+g6sdGScfqUlvB+4suLuB03t/63C/X+jCUwfq8QHw+DgsuiDq4FzNVc4E0XGqrJjT
+GrhVodEa/AnIzd80yXBjN5zps/6jqP8suurQLgixrnrpMd01kkpXwB1nBNqBQAe8
+I93Z5g0pAgMBAAECggEABFGembpuFMUTJJgZURA5XBpJ4OVxRNkyRlTgsgX1uczo
+QHc4DB3EOnwSAXWsuIkA0ZKYA0bP58T0zNG5yx2i1GtyYe46u0G0gvNX8ldLeJ+E
+cjR0qqbjQE03ssUjPx082nj455odk9Osl2omLv0cy0iTlfOuNVk31GL3hk4pHi/1
+Edg+GV8+uM7HCIBi+yL9lDA9/ulkIF10R2ZGyhtsfLB3/mbgU9lJNiDxWwjALoWa
+/3S+vDUzHWGv1MPuuJSYG/JTvb607dPitRVo8oZcmhi6ZrHgzPjif3n5uBNqjyhk
+LstRUEXojQFCQor9IvhQIQuhKuURXTNTS+wC2QndJQKBgQDhFWxnj9HFgn1USuv8
+2s+LP5GjyDxOZA9schKbHMMnHYaUlwIJ4M0W1DV2OMsqxiVP9I66xKRy0sfw7FKZ
+aypd+1sSSDvPgei7Na3mxq/cDHoGyZxEqpkh8VU8akdGKfnE03YMjolIVvqgPA2Q
+YmmbGIeRIprxB7bVhadDkSPdJwKBgQC5wkioT3W72uZEZtAVXLnJ6m+XsdybicLx
+cgxJ/7arWQB7ZkwZXnFSViTRbmdxXPjIzc4FzrXWFfIOdcQ53qYWYCuG/V4je8/A
+hL0Gv1oU5YpbturFskR5hqSZzkmd8tKhbivjMRDoseLKTwHH4d1VFZlr1sUqSNV+
+jERa55nVLwKBgQChclxvbBlrMk3zSEo89DYqC07Ly7R2Bg+KGch+ugLA68y8iBRO
+QZDZ7xzpz5Lq+3WIBELcdHAAbHA9v0UABn49Ky4HzwgXr3bf0YELJzi8/bYJaFNO
+bY+paRFaZGD7UuB07bifCR4vZTQf+vM/vVdCiDW1RL0eZgoe3d87979hwQKBgQCw
+7Uiw7sXvgCY0XkyxHBllJSLWtDSv/H2t5Hep/6In/+SCpEO1IgwDZUM6KtLh2bCn
+6cXiKClvWIWtmiOlDtjYlQ7ASxDf8SxGbOdxxs3w+1RV2JoyZIHt0f1y9VWO2Fog
+IcQxZ2l4iP2+vZOvowRh5umzGeO/S5H1L3pnrxIJRwKBgFqE5JLZJetiwGAgmVtj
+dfoUKLhesBODDCXrTS+dZBFjSB1ih1xXZaNNmMVXMRUi3WPs/3ET2PhLJXDQYn68
+EwNdjS/XqUJnSuOSlOn2DYL3G59g2/c6DS/uXNRGxA5p+hUsS5UydQb96KDqUwie
+BxDCjymvW7qbg/PLsA/pV2iO
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_12/cert_path_ext_12_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_12/description.txt b/src/tests/data/x509/bsi/cert_path_ext_12/description.txt
new file mode 100644
index 000000000..6330f7028
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_12/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_12
+
+Purpose: Checks the behaviour of the application when the target certificate contains a policy OID two times in the Certificates Policies Extension. A policy OID is allowed to be contained only one time within this extension and therefore this path is invalid.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_ee.TC.pem.crt
new file mode 100644
index 000000000..472eb097b
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDTjCCAjagAwIBAgICTi0wDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjUzOVoXDTE4MDcyNzEz
+MjUzOVowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDHiUHn9iXfDWVR5lISY9eEwyMoSDGAgPmO
+J1YIsm+so2SswD/bcbH/49afippWp/sIkY7uMe7ITVPBZfF+daPmEoP8hT0E0/tp
+Sr7SF8xxOM3S6KmgwDW65FQNOph21xXtJ2/TmecwZeSlH9zbpLlDcqwVS9FXCEFp
++oQCZNJwE5h3B0IYtIPkCeFr1il7IHcoxxyb4ic3KztKVa2coSXjrs17RgbtISwP
+jHiN7AzDj0zyOoZl96Bun2SNzZxycu2X/+yZddAalVFdXG3YIcXhLSr4LNtO88Qg
+r6PGPf0xHE2tUUys23gF27EFsEuDUfNuXgsL9sfyNqnREDrfeUwDAgMBAAGjgY8w
+gYwwEwYDVR0gAQH/BAkwBzAFBgMqAwQwHwYDVR0jBBgwFoAUlSqTLdADuLM6yzYg
+0dte2ryVwekwHQYDVR0OBBYEFIcpAUcOgfJ7sGLK9VozyrJfJFPzMA4GA1UdDwEB
+/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEAMBQGA1UdEQQNMAuCCWR1bW15aG9zdDAN
+BgkqhkiG9w0BAQsFAAOCAQEAEH8C9A/1ApL1Fm0eu8N4FGbt2UATn7+r5uY+cN4s
+kTR5IR7Awq/o4sVcOfRPXZJbP1CnIq4JATAGF47CknHwdAb5h2t92DynUB8n0RUT
+z/F8ILbrBrLXQRe/0+C2ARMiY0PpN/d1LwfkXg5+v4LdcI1ksYMxyslrGtAinO/J
+iFsDfNAXt13nnMdFKoeRRnQrNajpb7Nyr9rFe2hEZeLvdN1xHdl1vnt6YW+uAhl2
+y9bcyO7uxic+H18k9OxWNGEh/JTyywb1dGOo+GWZSThQ/X/b/fKSytX4mig63VgO
+DziaAbOHIiKKfc7bxt5QwBB36UmpKtJ5Q8YRuwAXUgNiEg==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_ee.pem
new file mode 100644
index 000000000..55db5dd81
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDHiUHn9iXfDWVR
+5lISY9eEwyMoSDGAgPmOJ1YIsm+so2SswD/bcbH/49afippWp/sIkY7uMe7ITVPB
+ZfF+daPmEoP8hT0E0/tpSr7SF8xxOM3S6KmgwDW65FQNOph21xXtJ2/TmecwZeSl
+H9zbpLlDcqwVS9FXCEFp+oQCZNJwE5h3B0IYtIPkCeFr1il7IHcoxxyb4ic3KztK
+Va2coSXjrs17RgbtISwPjHiN7AzDj0zyOoZl96Bun2SNzZxycu2X/+yZddAalVFd
+XG3YIcXhLSr4LNtO88Qgr6PGPf0xHE2tUUys23gF27EFsEuDUfNuXgsL9sfyNqnR
+EDrfeUwDAgMBAAECggEAW/Hkm7WyF8k9cfLWyMCXFAczUSGLJfLIi/eWTmWizgNw
+paXlBwKqCgb75AJjQiEfrQAdw6bgqA3x1UFbeXFN9/t6NEdVKb9gr1ERAxCSVW3e
+chxh5cAMQjVqgboJfWF5KhGtFu1pOcUKCgjXpaKO+ASERT/tk9QrCGG2qL+6tIeS
+snLsS5AipDvkXXh7rjQdOzRXjDcGioIIJQxxGR+Lx725d+hKrWsWSSa7bJVEkR7F
+P6VawJW7z/X0b+iDXZ1kYIKNdH/seJOPNBQLRo2UIeWjX0VOwfUf7y3AVIbV5bNw
+TcXy9euz/nFY7VXyNwK6Cw0XPx2dbTI2+dNijdCREQKBgQDn5gaqrbjN9qL+gXgR
+OWaYvYX2QUSohrhXN3pxheqMybn0lYpTrI0RP3hGMuuN4/jkO76ol4CTatlOppuY
+dKNs2XN05W6TdVORfNFCj0UHKbp3biKC6+Soa15IdSaMfuDlwh6mCJ/mbMmF9T4I
+axCdSXq7noL68UeW6oOZ8yZUGQKBgQDcRi/G9juifqTf1dICZZ6t16v4zUEywV0+
+S3Yk36YnPjVuuY12DM+VJNMHQVX8Y/rkurNJTh4bEFsTYvYjtjCIKaHOBELFlsCT
+ynEVAHGSV+m+NEWVQBM0HqgsxEKTm93aQ7sGOv4IwDcgEEt5hKKtuREIgaEHrwol
+8sMDtIKEewKBgQDNHqFM/WbW/87C0eBTU/OVLSa+YJMLgkayFsd+fNav+4s5dcCq
+LJmG5R5M8aN7mWfA8bu+QmwfeUaIFETTAHDBykIe5wX89q2Zpc8vUazcHiPqmgd6
+yI80DeySqNUVNvFVKXSUplJRrm4+yGM7bQCAL8uZAyeWMi+BpSQM249OmQKBgEeG
+3wLLeEfmueEZTI2Ms/8dVnF/LRmvInkVBfMpUInTsIQY6q+Xr1xtzbzAYYyIZrMZ
+URiPrkT5hamA7A5indXJNwpv5cLFlhknlprMPxTXSUaDMMkrOlElV1TaEgheh6bV
+cYivZUgwKnZV9DwsbqrcuoQ5m7GkDDaQYvT0C6G7AoGBALzBpOvMF5ewRFUOuURD
+LmdTDw4/i7fjZog3JzctAzXmDr/+JMBMwThte2EtoE43UdUoLiiMxy2epv97bfCT
+Q2yhedPvRenJJHNSvW9q+IAE5XZmzyv5mw3k5gD4e89mc/pATZY0e4FBTapGZSJp
+a6E0Gj368UbyGbzqg/wovuPg
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..1b8f2cd09
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_sub_ca.ca.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDaTCCAlGgAwIBAgICUhUwDQYJKoZIhvcNAQELBQAwITESMBAGA1UEAwwJVGVz
+dCBSb290MQswCQYDVQQGEwJERTAeFw0xNzA3MjYxMzI1MzlaFw0yMDA3MjcxMzI1
+MzlaMCMxFDASBgNVBAMMC1Rlc3QgU3ViIENBMQswCQYDVQQGEwJERTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMJ1fJKqvxZtLbHaS0AQw5Z0QH59HRur
+lrBc4F/9BEbG3RKwYCsMp8gXuE9JXz0ngIW5UbXdjZkMbryyD2rJ86SkmgGQbe3A
+WFJ/9fwE70rJUbBbVE4Z71MSEKLZSDWooXG11ZSLy7PqSwDh4ogk78P7fzY4Knqd
+wLazgFCY6HS+s8rgxr6Sw4iT7OfXXN3IiALCAXfKvirUpp1Cf1NG0LYd3fVfSlH+
+v19EvgH8UqJ0CIh2sYyy8Z2hgDyhQnImSmsntBPLGcO/7VEoJeTOD2u8Xju/ejfw
+KxUyd9ZEivC4vEkclOp7GKKDcBuYplQGqraiO9B9VCv/fEJx5Ys+m90CAwEAAaOB
+qDCBpTATBgNVHSABAf8ECTAHMAUGAyoDBDAPBgNVHSQBAf8EBTADgAEAMBkGA1Ud
+IQEB/wQPMA0wCwYDKgMEBgRVHSAAMB8GA1UdIwQYMBaAFMdPGIQtfK+M/IY/TwhC
+E9klQGpwMB0GA1UdDgQWBBSVKpMt0AO4szrLNiDR217avJXB6TAOBgNVHQ8BAf8E
+BAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADANBgkqhkiG9w0BAQsFAAOCAQEAJkVq
+n0iUdzC8YZWraYJb03MfIrhFV7zwx5DMmYWzGpj0XW9SCwGZSaIuSuvNK24sN12q
+TWf6SiZ5w6SM7T8EHD8//gRD66up76NsnKqtpZE8Xo+DeJ3lwRJReP+X4jRPb99g
+jiBBtN9V0gemRs03xqF/wgLx6z0Ce8/q3T3FjQWX3366IsCaj9GZg8Zpdwnkm9Uf
+Lu0oNSnErRXrkgIkTdU4LekPzK3d92QMUhAjMAAe/m4VuQh/neRzOOv1ZvtbFY+i
+DnoCwgBys8dMCnvMoPiVy6QvFqEm4n2imiIniSaXOXdyZeDGjQmT1Q8AezeSEozB
+MQ3qvChBWHiKvQxqOw==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_sub_ca.pem
new file mode 100644
index 000000000..b7454e7d1
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_13/cert_path_ext_13_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDCdXySqr8WbS2x
+2ktAEMOWdEB+fR0bq5awXOBf/QRGxt0SsGArDKfIF7hPSV89J4CFuVG13Y2ZDG68
+sg9qyfOkpJoBkG3twFhSf/X8BO9KyVGwW1ROGe9TEhCi2Ug1qKFxtdWUi8uz6ksA
+4eKIJO/D+382OCp6ncC2s4BQmOh0vrPK4Ma+ksOIk+zn11zdyIgCwgF3yr4q1Kad
+Qn9TRtC2Hd31X0pR/r9fRL4B/FKidAiIdrGMsvGdoYA8oUJyJkprJ7QTyxnDv+1R
+KCXkzg9rvF47v3o38CsVMnfWRIrwuLxJHJTqexiig3AbmKZUBqq2ojvQfVQr/3xC
+ceWLPpvdAgMBAAECggEAEksl16ZjKPjxvjQ1tWaI/95v3XZnsUgIemRCYhqrYafT
+pFkeCEQTL1UL7GmP9sYrO76eBpM71D9sgNPqH2G1n1zcysjg4+efEiPM6v3hL71A
+shaQF8jY0DfNg4RtW/RBO9v0pm+AT6yljFpeX/Bu80D1oWQnRYxm/3O43obZV3dv
+PeRANG8ECkqTL/DInE4L5Ycuwt2CUY6pMRSdK0vKow0inHP090oO9Ho958WcvXQU
+KJVrL6yQmV1a9X3OJbryfmXIXSxr88XjuMH9nW0iV0boDOuzHUvnheHtN+r1EI6D
+m5BdjeqtQX4U8fm0KqRGbM9Y7ed3+mp16hX6LMA1AQKBgQDrS1f2iBFMzcaoxBB4
++2ne9Qiq/l3CnshDIy2N0XKfXRlyEanaAY5WDSBpTPqkBwgZOAbJhsKxfkPhBa4l
+SP/XwmkFfPbf56v9CUKUdCSNNDKZgBduIrm+BgjmSYtGlB2i7L+HZ0a1wEIkPeAy
+nB/0fVzxSGfKujmMUA5PSTME7wKBgQDTkjaDAg28GdzfYoE4YPxv/d94mpO+PkcR
+/ii5tGQczPUgo+EBkEIXAEPmVvbdbYv6hoRYT1xO72UxeiEGbPrsSrn43+5r5mjj
+DMDDg0LDlX5H5Vr64P2IqqxRlXa8If5b0juteR5w/pK+zEgkQfWBQFbE405tdos9
+C5V1Xp/j8wKBgBXuzwNHCb3MDLGcnSB55xOGaclurpS+slI3zD5FANdEGWQdq2SL
+8pWo4ZWPPGnf0exv4YoVir560579JY+KL3cQQzPkwyp58PlETLWD4ghbjj/qxcRZ
+blD9RQUaY+YvVlfik7Pud5PnmQLB1c1B6mSi7u/63Nnz4/tlVwAjBaN3AoGAfEgt
+oXO5Yb/HkampwtamM5tshMo4885drWIhxkUDci+r50qdSG/Xgu9y84IubhCF49rV
+L5Me5HeYeCIH+GBYXinfaSUSR2wIPSgmrDMVKxNMJSvD8A/unzOzGhG0t/s4EfRD
+fjnh+fpxdYdG8ZWVhCGpVus4DPFQBcIiP9ogDqUCgYBVq6UW/hsjHQoz3agvZEWB
+slAAZeBURtHxIzTBrIGHz1I2BTLI25NNwI1tbvHoblt4pvTG2Qf4wAiz5pVJwUYG
+Z3Ml145cm+fUHwAKrBvrNJPrCAnrMDjVRO9ACQZebCx2Q7CasSziuWxVvn+bBdDK
+PsF2YDQ06a+gDRveH3/oVA==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_13/description.txt b/src/tests/data/x509/bsi/cert_path_ext_13/description.txt
new file mode 100644
index 000000000..a7f66fe78
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_13/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_13
+
+Purpose: Checks the behaviour of the application when the intermediate certificate contains a Policy Mappings Extension which maps a policy to anyPolicy. This path is invalid because it is not allowed to map a concrete policy to the special anyPolicy.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_sub_ca.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_sub_ca.TC.pem.crt
new file mode 100644
index 000000000..f116dc43a
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_sub_ca.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDWDCCAkCgAwIBAgICUhYwDQYJKoZIhvcNAQELBQAwITESMBAGA1UEAwwJVGVz
+dCBSb290MQswCQYDVQQGEwJERTAeFw0xNzA3MjYxMzI1NDhaFw0yMDA3MjcxMzI1
+NDhaMCMxFDASBgNVBAMMC1Rlc3QgU3ViIENBMQswCQYDVQQGEwJERTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMvm0v2xggWk+PT9LvKUSupiasTJcjF3
+yZE6gdq0WgjTGSTMOdL6ujgEtvkILPvFAEOSdgTLlS4v3yasNN6svUcCKw6PAlSD
+YL7dVQVjOVnSlpd1SNIl1Jw+Y3gESgjUr0zTktsI1sAijvNTUOiV6yA8uZGmwtMv
+27Dz0veLoR7v3ifyBFDTCkVa1UDdks1hDzr4AuxTdqhgvKZX6nWYWRXUieOduAd7
+b/xFVkgK6BnL64Zf0OYNZxxypBrhKXomXPiyGFJBtsCGrOYqJ+vwRD7MHPDa2zEb
+0G2o19zLyYh1b0Xk0bwoFjYV4tYPI9M1anwvR1tQVyGPgtZqJMwZ7m0CAwEAAaOB
+lzCBlDATBgNVHSABAf8ECTAHMAUGAyoDBDAZBgNVHSEBAf8EDzANMAsGAyoDBAYE
+VR0gADAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU
+fbgZmC5vRGZPEqRbU7bSLZiFoCQwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBAFkVD/ePIUowM3YbfJBIHWmByLCz
+E4KkD5YevP7nfVxM2qXfRH53a5jhWMfBmee3l1oQpzh03s6CtKMA+5wGhaWTQRpw
+E6RrZqbrR5CMdyqA4UqDQ2WaNbFJrBfxN2az4sFU2dqAekN9/2skaoFd7RwQg19Z
+9+2D69Hd2qOHV7zw17TbQ7l1D9NlXX0t+076bfmkbrfWmx2wtQXU7PFsaD/Md4b+
+1FLp7UcV2096qNkxNwVOKeyvrAR7gQiTE8u8tqbH5bFnSrx5dsDmzlN6o/u1Jbba
+Axs2fPp5Ve1pWlYFCyLZJH+CDdthravoptBSU3Cnf49hFjOCUHStoTV5hnw=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_sub_ca.pem
new file mode 100644
index 000000000..fb64a7f6a
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_14/cert_path_ext_14_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDL5tL9sYIFpPj0
+/S7ylErqYmrEyXIxd8mROoHatFoI0xkkzDnS+ro4BLb5CCz7xQBDknYEy5UuL98m
+rDTerL1HAisOjwJUg2C+3VUFYzlZ0paXdUjSJdScPmN4BEoI1K9M05LbCNbAIo7z
+U1DolesgPLmRpsLTL9uw89L3i6Ee794n8gRQ0wpFWtVA3ZLNYQ86+ALsU3aoYLym
+V+p1mFkV1InjnbgHe2/8RVZICugZy+uGX9DmDWcccqQa4Sl6Jlz4shhSQbbAhqzm
+Kifr8EQ+zBzw2tsxG9BtqNfcy8mIdW9F5NG8KBY2FeLWDyPTNWp8L0dbUFchj4LW
+aiTMGe5tAgMBAAECggEAAkprs91llq9x6m6uzN+q9JetZHXogbdddsA4L2FZ/EIP
+q1HlYCRX5NRq3QUYoIt4+MDVztu3dEQMWTXPIS4XoCTdSrPHh/0h3AubtwyUdOWc
+OvbWFYhxZwh+iD+1J1ocVpfRXkdANZSlRwTvzRfKnLUJaCJK8cPnnDP6pSu0rQSL
+9mFB2KI4advnoLW/wEPPhHu2Wq8l1NggHONeu7+4xJEMY57lxL0cDrgmtaCFxcxJ
+oIwVXkf6wOH1ck234Nbv/oXalCIUMovZkKeuCCjHWsLonJl9g1mOnhUH8xXzdMyx
+bX6Pekkv3bbtA4egTM58hChcjvX9q9WmfnMR7544kQKBgQD7AsyaYqN/V+ofaMRZ
+udQvdu8tZ26jUFD2cE2PSKUUf9JlTIHmDSI2T1pKt5zFl1lb2LGM1xoXs4tqMViU
+FZUjrC6b2WB4vFKxWhb6pbYPjNBgshJa3P9EUmd/2jY27NZWQvYMO8Pqk15Rsrej
+gWQ9Zx/ZwJzdTatuT9LhMbyrVwKBgQDP9FJ9ZKikTiEaasQ5TacYx3RsMLz2TV4R
+bOzRPIIQAZTFmQaRYsU+1aRzuDIrEUMCo6DlroQ+JGnktDtUtktk1Ug5232jg05G
+wMVI9fl4inCAnKB0E1ho0Ba6WG5lPRZ9CZzXAm6MckYOYis9gOCSP2gBQ8U+aJJT
+cqsoVfmd2wKBgQDf+293k+0xBNH1lRcguaGNeSOT8GfZcyHLxgpvgPNNh4HGwq5n
+CfEtZUG8ynsqFhO20XYdpxOxcpVE/SN9gITEgDBXAXIESoe/mhRHNPdwiMaogj2+
+ttVRsfaJL76Q5GWeM8I6yFnaSAYyALe9PwijghH5zNYs49HFbZVPPYKNoQKBgGuV
+Wcu3dKu0I9oX3DZNHyJppaiHOmsuMXlQYeAJrrv7JW1osoYqlCLiwjZ/16yCPKmz
+33yT4aSIkCQavgsgWDbtRHVyQTiDqM5f0nDhmFOtQ3C2FyiWDYoEBY4YS9yiUu0T
+OQnfHzQXtnigfwBNmWDv3q2w0u1rijATxcqTWBU7AoGAX3JwozQCVXPAHvJ9Sx6q
+boyLJ7OI2XX9T464Kj6i+/muNHJEKI8btMqhIvyoonW3qBcFYx5RaZxWJylS85ht
+ued2w71jsWDk8lIzsWahzTWkfG8QFHZrMIuRBd3WR/ilyDxVFGnmWXThxa+2mwSM
+IzuzwRSQMvhVVXSpGRBfDsg=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_14/description.txt b/src/tests/data/x509/bsi/cert_path_ext_14/description.txt
new file mode 100644
index 000000000..5a84d0d3e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_14/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_14
+
+Purpose: Checks the behaviour of the application when the target certificate is a CA certificate that contains a Policy Mappings Extension which maps a policy to the anyPolicy. This path is invalid because it is not allowed to map a concrete policy to the special anyPolicy. The RFC 5280 validation algorithm does not explicitly verify that.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_ee.TC.pem.crt
new file mode 100644
index 000000000..8cf914a6b
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDVjCCAj6gAwIBAgICTi8wDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjU0OVoXDTE4MDcyNzEz
+MjU0OVowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvHq3DMxypKRALFJ9p4h0xJYLjcD23/N99
+JoZzLcIpggkjbQxjq4cybvHSYz8odVulnl9smUP5edgbSEsgvj6XeDwgs3RvSQMu
+S4khlw/9A9GKotafRhcAjJmNmVbYVnPYhe1UF8euEvRX5y4lSRMyEwBve2d37sW6
+0x6M1Ds9i98yYlHylBYM/hqvPDbTM2W13DX6qVWQZWT3Uqz+flsfujzzh08IuD/k
+gva/me5B0xjUYStATxPIW9ua1LADKWUezQFC+s81T39TLzvCQDvR8LrCeNGLeKih
+W/i8JXc71moETcvaEN25W4U774aLYR0WSIWF9W6bWmDqnbFjeCrpAgMBAAGjgZcw
+gZQwFAYDVR0RBA0wC4IJbG9jYWxob3N0MBsGA1UdHgEB/wQRMA+hDTALgglsb2Nh
+bGhvc3QwHwYDVR0jBBgwFoAU4IwZqmklmholAPazKLob9w35z8AwHQYDVR0OBBYE
+FMyyQYUefutUUfqxzShgz6zrDfZjMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8E
+BTADAQEAMA0GCSqGSIb3DQEBCwUAA4IBAQCGBmuhYoP9vRIh/fMMCQqE2hy5eeDI
+KzhZXv80KVS5aHHyX6eBbRP6L8m0FgL6xrnmok2gpH/JiTOmY/RvQFOw0tqcn7pn
+eJ5yHxAzZGCgsRoJ8qNNAwAU4TyiGhILZ1iCBt7rrOU42Uj1CuKa4xu/BFGM4ChY
+mhjqNPgaR8LWxNzU95ARHvFGXukzsssb2IpUTMcYwoajo6dM4KmHTjkH2w+HnHbD
+HsLQVgSt0spG+BPv+WZz8jCZ6UeMfAtazix6e1S0JuLjqeHOxtTyn6Al9gSvO1U/
+KyLsbSTpQuKGn3iogzQywlL3U26EcR6jkbfWMcPAZ9/FcV5ShhHig+ND
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_ee.pem
new file mode 100644
index 000000000..02355f14e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCvHq3DMxypKRAL
+FJ9p4h0xJYLjcD23/N99JoZzLcIpggkjbQxjq4cybvHSYz8odVulnl9smUP5edgb
+SEsgvj6XeDwgs3RvSQMuS4khlw/9A9GKotafRhcAjJmNmVbYVnPYhe1UF8euEvRX
+5y4lSRMyEwBve2d37sW60x6M1Ds9i98yYlHylBYM/hqvPDbTM2W13DX6qVWQZWT3
+Uqz+flsfujzzh08IuD/kgva/me5B0xjUYStATxPIW9ua1LADKWUezQFC+s81T39T
+LzvCQDvR8LrCeNGLeKihW/i8JXc71moETcvaEN25W4U774aLYR0WSIWF9W6bWmDq
+nbFjeCrpAgMBAAECggEADcFcJsJwbha/bHXKbv4hPhRs0cHZDaDh5F1O7EpcDCsE
+3fDmRNUnwaqWeU8gZxfCaVTyUkzYdDn043FSejG9wUoWQ8wbL9UAi49iJ+6xhWja
+YCIAUVlBD0liYMDHSI3DfCHkJw0JiAvaTSYa9gTMBDMbGQ0MoigLa5+PsI776qgq
+BnS73PDTCUrwwZqMEaahNOdQZH3SJOWA20qyUKzWqBDZ6dbOnx+/4un8s39RqAsR
+1wNKE7Q5G7LBstGqcIPvLvMXngx1f30lSuWKbixLquemQF/7EHb9/GgD6KCVak9H
+JNIYbtmLyCdjBGMegXqRqCo1f0O37eGIAcbbErRi/QKBgQDjFTd9EqBVOmopo0EU
+QSIcAAlGTEEf7rTRUYjAuiDuQPUt5ubPa0s58tvYb+p7kmRKpHd3JieD85ufdu0D
+HRrzKSiMbFE7fV1FNfk8/+JQqHDfnj7j4NTUBnn83AIeFcBZnZwA76rPvUGXbMnf
+1HgHneFyjpvDepWmUkJcyqGy8wKBgQDFa357PN+N1WTOGW7LHZM6wTnc0snycMht
++PCK+gpzAG59Z9XvcPLlU+98Fn6vYKyV9+F0LfjQpyzV3eWajJp62Nrc1jiSwaGl
+PYYYCUuixm52b+TRjAX8KQpyzDYvEAgB+XxKWzytfmKs5yPWII2akijUNpiY23Oq
+JidZpsyJswKBgQDeJ9yQNM+8cZh4wakiWpI3GGX6axFvXwVwnjaObclXrR7v2CxI
+EayXtZsUhHC+kboiOAJUA3S3J3VBLYSz/h5mcwajUjiqXXwJAMOjxKYwyIkci+D0
+6PjtsKRZFxfPPPJf+cwsMkxGTd3EeX6Jxn/i27c6bn++XsfW3jTkOKy2twKBgQCj
+6qffDWEU89y6H3XVoh3PyAYSKtbQvQI+BVc8HXY1nGMhLuj74U1cSj/rSQYw+dTy
+xBlnDJCuNlBM1uxAUYQmgg3fFONuPuXHPHktVfJ+GcI4Bpn3vwptH2p0fMh0dRwg
+/5RKbMzJxMmLhHNF5EuOztKluRskt/mmif1cO9lSbwKBgCaozTIYt4LKTe+g00Hq
+fP6PH4qCaG65t/Td1AEXj/pytD3ks+MxHzYFKPn0xwe2gezuEJNJDR/bhI0MZ3/8
+dwU5UJfCMqqSpZntyyRzIU6zScwnpAVcM7QoDRRyWQtYLX9LZ07hQRYDNNwogg4f
+FYFeJ0ybiL3NC/XKhJKpbnju
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..2cbbc9e4e
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_sub_ca.ca.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjQ0MFoXDTIwMDcyNzEzMjQ0
+MFowIzEUMBIGA1UEAwwLVGVzdCBTdWIgQ0ExCzAJBgNVBAYTAkRFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvm0xXD5IDqn5nBGRUxlk9EXP1/OCtdXc
+TrUkBXmY0jCSa6VS8ik+IPMNbmfr9y52xW1Imfqz4cw4t97wMXe583hTy+KEDhz1
+J2I3TlCRrCCRz4laEZN+AiKT2SKX2VcjrWkxNq+T/rCAJMIjx1cO77/kbNCjL4t3
+3fXKmOiW5r5ePQZ5BS5jolQAznsGWEcj3qsd3Ua7vn13ygqsav11Q63ZgZUcx7y1
+Xzh5YllRwYoXPKreJMurf3WYWS2DAcpd4bmVwp0u+tOL+OYXOrqsCUwLQigFXuVe
+O+hsb5hbz28e4xC+Q1BsSlA2/NkIVR+96Rr3vj7pdDh9+DWrgiFeywIDAQABo2Yw
+ZDAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4EFgQU4IwZ
+qmklmholAPazKLob9w35z8AwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYJKoZIhvcNAQELBQADggEBACSEBLrtrXcWiFDauK1dOFTRQdTFVPjW
++Df6mjP7wqvIWLpPE5Uy6R1zXbqZbM2kcjfAR24mgQK/NrVqoEaVsmkuxhPOuqNG
+egL1bHCHnx3hdrUyA0rjp19YQc8fzbwT25z7Fe4K1MxBLZwbVjJ5ejE+wI7QzQsf
+Iw5TRtHd147ja9jfM5uKIWdmBXsCQ2lak3KEh+ahs5BDL/l0imvvzT/t5BSZqzsE
+oG/YtkS1RiZUWyu0q5cZ4/lnUspsIwFPq7P+ymf2zGAzeo/77o4uypCzdwdH3OKc
+eqHQrsoynYRYeoT5rvDmKbDd0098FEclLxgzdABmLQ7jeKSex41iYLQ=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_sub_ca.pem
new file mode 100644
index 000000000..0b3622e85
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_15/cert_path_ext_15_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+bTFcPkgOqfmc
+EZFTGWT0Rc/X84K11dxOtSQFeZjSMJJrpVLyKT4g8w1uZ+v3LnbFbUiZ+rPhzDi3
+3vAxd7nzeFPL4oQOHPUnYjdOUJGsIJHPiVoRk34CIpPZIpfZVyOtaTE2r5P+sIAk
+wiPHVw7vv+Rs0KMvi3fd9cqY6Jbmvl49BnkFLmOiVADOewZYRyPeqx3dRru+fXfK
+Cqxq/XVDrdmBlRzHvLVfOHliWVHBihc8qt4ky6t/dZhZLYMByl3huZXCnS7604v4
+5hc6uqwJTAtCKAVe5V476GxvmFvPbx7jEL5DUGxKUDb82QhVH73pGve+Pul0OH34
+NauCIV7LAgMBAAECggEAHOHK3sbDfxXguf8gH452dWYxQ/u3E4VASN/IetwahabA
+TntgvUHsHms+2kQA0hjGAuO0Y0ZXCiRDZf/2Rkp2dasGaqIMjWdu9246HTKzJXw7
+IVMfyhKoxgIgkopgpaJF0wNlZ3nx5Gs4xFp9urpFla9xId/zID7zC0NAWzjLymtJ
+95gnemdh8oE0xrIPkJBgp8G5JC8xyRcGXzTWQsDeYB15mM6FcPyFEOb8WRVNa6qJ
+LCbuO/ne/K+9GC1jHGJLVtVwBSJhv0semkYPy65JBLZhR13mQNrYUKL1HsRy6xyw
+19e/YWydDFZopkxYIIQ8HbIeQluT58aUiVFlkRACIQKBgQDxtx2XNCq4VHc1MntW
+eXrRxypd/ivkaEUQEHcKapuGEdPm9DbYuJWgZ82OKsJ//4W0oJpVaXYNnFKpYtvT
+1MLbG6n21l5xSLHsVCnmlaRLx8JFX0HncYB+0/jFgmWjRcysIn2J0mf38bAd+Efn
+Wt03NtfHbfGZQ5W0/awJLTos5wKBgQDJriKYm5PIToCc13hdsoB3ywCSZDISkJxY
+utVSEesFuvjpbYhXpTMVCGoP/iphPLZ7XiXmgaQ/C3MJIYXUbD8LcxyHDzWZ58gN
+UmgS7keZxBPednEmTcprHKYNSDnJIoYEMzgNx3GCBepzjXPPKLYy/vQSbRmKNLFN
+dmsrYqq+fQKBgQDDICiSDDnETeNhnVv1peFhAV+ROwLhws6ltjTywrbD1xZxpYm1
+D+Ux9Tn530jeHT8pXlDYTGdRe3U7aiO9cE7QpBdjvQ/GcYG4HwUoMHrN9fc9GzXP
+iU/KkoGLp8U2tb0Q5FLldGYbwQ6EUw5wlGhqDyrHwlg7elSbJADB87G31wKBgQCl
+N3ov+oN+PJEv63Q3jdugRzUYt+wtOTpblfLbYMJf12PCFnDzG+pU+KeqolSlg88a
+EW6K/vlGjGKYwFWaR3L+NjbQja0jf7Vq9G890uXlGbQNMopPDrscNEPz7Y8pLpcL
+Kcppv1FFawM91kthEcDw1dusnKOnjLMS+kehKxslIQKBgG4Y0SYZrWHOUn8qCqNK
+zbitFLesrQlgqIvIokPH7O4qVKSLAWJzK7wGyeUCQNP5YOjtBM33A5Qwfu69VEeq
+XwN+lmiAnpUacWiQiJeNRp8+PUquIkLqsvmB4vn7jaHa5xkMa215lT7isJORasXZ
+n0cSN7T3e6V9K5hxufFzjnLI
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_15/description.txt b/src/tests/data/x509/bsi/cert_path_ext_15/description.txt
new file mode 100644
index 000000000..d650e915d
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_15/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_15
+
+Purpose: Checks the behaviour of an application when the target certificate, which is not a CA, contains the Name Constraints extension. Name Constraints is only allowed in CA certificates and therefore this path is invalid.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_ee.TC.pem.crt
new file mode 100644
index 000000000..d50da3497
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAh6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNTQ2WhcNMTgwNzI3MTMy
+NTQ2WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJ0VVkBCR5AUENm8LmtosBm37JtkQX5WUveL
+xVeytcQsjNU4vin1YGJ1xaDEK9o1S3u9z0lFy9RSPETqORfCovdVqqFQOYigrlW6
+AiX74hBb2o4yvhpK/eBITOf302NV4rL0qN7RDAB6IzKApIhNg92PNmwqwCmvgO1G
+4WrFG09yOgcj5DYwuA3MLo+oXyD3S/6Q3YgLDgXNNGtoz7n0gIGwQwG64UIzmz/4
+E9UQ1XuSyNZ9bS5tJl62C0Zm3Yv4En9ZonV2hUF6AJIlNNwxag+A70JUtozs/2sQ
+P1edFsOnZ9q0+6fqcLCdA3TbbQOmMswFQ44PSzjx/7y08PZRO0UCAwEAAaN5MHcw
+HwYDVR0jBBgwFoAUWnDTc6qUQNwzyWd7FHWFyw+YTpQwHQYDVR0OBBYEFErASPBR
+VvjVCumIUzsTSt//knygMA4GA1UdDwEB/wQEAwIHgDAPBgNVHRMBAf8EBTADAQEA
+MBQGA1UdEQQNMAuCCWR1bW15aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEANTKudpq0
+hWB6CcSC7jHg5yudj1EViQjTERVBw57iSUQH3bHpulumlc/nf57+IiiYuf/xwGEg
+37qFG7IDnsR2v2EAcYYXiuqShpG0plcV5wMY3URBHeCJFrbTW81/6TJwmcrk3Blb
+93lNynkg3d+INNEnA6jA1TwrOLNn7ylwXsnznhZcMy9Rpnvyb4QXwhFJLENsZBNN
+Qmi/5nRw2eoezuA9BmjFSdG60mk4M8rgWXjPQiBD9r53LUSjiHRTzDhvXuDnE6k0
+ND33+7VClTvWpudqiOhVjlp3rJKezTe9Y3jxUsQ2+JOCk6Pu0Vuq3iKotm1wkgkQ
+u+9Oc28a9WN3pg==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_ee.pem
new file mode 100644
index 000000000..7cf201c19
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCdFVZAQkeQFBDZ
+vC5raLAZt+ybZEF+VlL3i8VXsrXELIzVOL4p9WBidcWgxCvaNUt7vc9JRcvUUjxE
+6jkXwqL3VaqhUDmIoK5VugIl++IQW9qOMr4aSv3gSEzn99NjVeKy9Kje0QwAeiMy
+gKSITYPdjzZsKsApr4DtRuFqxRtPcjoHI+Q2MLgNzC6PqF8g90v+kN2ICw4FzTRr
+aM+59ICBsEMBuuFCM5s/+BPVENV7ksjWfW0ubSZetgtGZt2L+BJ/WaJ1doVBegCS
+JTTcMWoPgO9CVLaM7P9rED9XnRbDp2fatPun6nCwnQN0220DpjLMBUOOD0s48f+8
+tPD2UTtFAgMBAAECggEACieboHfTFytU6N5+GbogzZN9m5C1ndcyxzH6m0Vq9A2f
+5RYlT6Jp4rOTsmWReCpt1h1aeHV8ociB1kAAr4UznSL6mYcNe8RMwNn6KD509Mhw
+ron1OXno7kYo7UNbdQEpBeyZu3MZgDEPyW9WM5bfPsQdU+Ic82pBvr+69CNd3/Am
+c4oGyecEZTMdDbPQmtV3HcIHHIGXvvYdAj5Pm71inS20Rwlz4FkxRGVZ6R8VvpMC
+W/HizcG/dy0RcEbx7+GZCMpnU/4VEpFemLT9dwfzrujegtjJ0gRa/VnkeI5pddMP
+tPTL+QuepQE0nHw/ouUpbgB7v8QkvnzH900cS0wqwQKBgQDYYq462ejsL0NMyLDl
+b7NrAq7jFztQtB9SWYT15uhRoEldF+8FemjhhMbIr/8SuP1p54uk07M0YueN6MNP
+9YX8nK/ImWPEPKgBIV/HFYh7jUCeFu88PP0xsLLHM3D0clp36IbkBkguEV+rhZAC
+h04cKxm8nrwnXb1kQuK3yvMgPQKBgQC511lISDsrcsQ0MA2xcg53Xi9uQ1RWM2UN
+g5H2yPT/twuHPj8NvmGwpu7ZEwr7LV59KzGBejwba2YzFS+5zxyrg6EFlVTLX2P+
+lwZlMcSad1dk4ptL0Sedm3RxBjqYQKwdWBtDoVYQJlGCIUZAmkQ/2T3CnpqICvhG
+ombklxjvqQKBgHzTQEr21eUZxqsOwu04KLo8jAK4riD6J29r8MWh9LbRzkCDxADX
+ApXF8J5o2K5GRPnI9seY0DISNB2q/rCrpCV7hfQkeGcFzq0IQaYpB9iuPW51MIEB
+ddYqZpd/V1PMe9/cJaR48z6QCy55GAA9aZPaUTh8IXJcIxspcnwv+VzJAoGAP9nK
+ljgjBEGRQfEEs2PhroeQukytzFQqMyNyYh0XeEh20IfFeD5iKCSiybhuPHCRF2Zg
+wwCxaCZVXdW4qRmM2y0FhPqSwLFMlOtkyh34U64PO91TyA/bkZ4YusCOH0ORHx/n
+diwXesL/nDs8fPPD4UANpTGDHJzQQsyHl6CGc8kCgYAbBuCgT2vqCp5j4hCPX28C
+XEDt6Um67UIBmfptJwD/ALx63nAhh9CX8aj+nWSyDrmVyXiDcyj6sqcRUrtl2JbM
+AOahh2FtkjijZgLJD+jgauaqM4/XsTgSC3mKbKAHPImm0+MUlQ+3jfD/wtLEigNZ
+rmwAa2zTwycJdaGxdE5pZA==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..9e0b638e9
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_sub_ca.ca.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDQTCCAimgAwIBAgICUhgwDQYJKoZIhvcNAQELBQAwITESMBAGA1UEAwwJVGVz
+dCBSb290MQswCQYDVQQGEwJERTAeFw0xNzA3MjYxMzI1NDZaFw0yMDA3MjcxMzI1
+NDZaMCMxFDASBgNVBAMMC1Rlc3QgU3ViIENBMQswCQYDVQQGEwJERTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAN7w8pFn/aIdoOAmsMkSRuZSiUXBT1Z/
+yZWXJCZONZSNju0v5h0D1GUcOPH53Ld/CjbHr6OI6WTIWpzAV8oa6loOhBbLnmL8
+mcxwghv0PSj1LNimorVrga7WiXJ+u8NDLMinINl1Smgvfkh59N4blXaG2IN4ePMX
+3idqD3KUUTyQCE8rSCHR+XXXT0VEset0LStTuV7tpDX0xL43ja4oxgPOLKAv6u5c
+3iS5mdkqtop6s+wU9eHLlGFCZQ6pMO1n0D1bycxvhBh6rW6aXFrV0M4C/2dZVQ06
+maG9H+ltBmb+tfyl8SaKPZACdHnfh1ySCDGbccMH9f4KtJEibmJV5d0CAwEAAaOB
+gDB+MBgGA1UdHgQRMA+hDTALgglsb2NhbGhvc3QwHwYDVR0jBBgwFoAUx08YhC18
+r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFFpw03OqlEDcM8lnexR1hcsPmE6UMA4G
+A1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMA0GCSqGSIb3DQEBCwUA
+A4IBAQArvbGyBruNR29tAAwhk+LbUwO6q3vz1oxKtQvI1g4WeT1lOAl9WGguwLr5
+jCG7KEIwJcdmcIzGA2LVx6yo3hA6DkWk49VLFu2+KIgyIDYkfCbu0H8JXgwEGB9c
+lRc1FDWC0PqcNOeTydD9Td+M0ZTVGjG+bkM3tfGKTWePRXbf6Q9VC4e9kBrRue96
+rKasKi2kUBCcJL2+RUJUpO5tVTSPzJwd8f7w50qj84yOrtX4Fad3jioR7wL+b/9a
+KLGgqneB1JPgDG5OrSbxjMtAi8lPvKYekEuFcHswFjeWIsZvV/hx35Do89rkggcO
+oQbvHxDmzWUPZMgCJtRhd3IhIcV/
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_sub_ca.pem
new file mode 100644
index 000000000..96b3dc02c
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_16/cert_path_ext_16_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDe8PKRZ/2iHaDg
+JrDJEkbmUolFwU9Wf8mVlyQmTjWUjY7tL+YdA9RlHDjx+dy3fwo2x6+jiOlkyFqc
+wFfKGupaDoQWy55i/JnMcIIb9D0o9SzYpqK1a4Gu1olyfrvDQyzIpyDZdUpoL35I
+efTeG5V2htiDeHjzF94nag9ylFE8kAhPK0gh0fl1109FRLHrdC0rU7le7aQ19MS+
+N42uKMYDziygL+ruXN4kuZnZKraKerPsFPXhy5RhQmUOqTDtZ9A9W8nMb4QYeq1u
+mlxa1dDOAv9nWVUNOpmhvR/pbQZm/rX8pfEmij2QAnR534dckggxm3HDB/X+CrSR
+Im5iVeXdAgMBAAECggEAKmrbKCXKSO5MteE+qR8gXMGu6xX2560MGHlnkB84zBEr
+9L50kKgyIOPABPAmmcYi1h3jseCCkaGaNfFVsrcwyB4zbRfkRI6tn4t3geSUP2b4
+l6cK1axFAhRBFgb9aA8vpeTAmAdcNxr0Mst7dsf2RdUtvEPvdUchBkxEcKc+FqCw
+/KQmnOQw5LrwMNe4+0mSYknZsLO/2Zmyt0qVrohBP6AHiynCRaZtwighEQXPr2Gl
+nnq3IC3BTurnEHicif1UjOxBORYF0V9VxdDIa/yJDBS+WGr6JCu0lxfWqOem84Bc
+6hpNRVE7T14fSQGNJaeeAmLMWBA7J5AV9YZ3evq2MQKBgQDym8kWld/X5fge8xq3
+l+Dz4Q330R5MUKsrTgT63vjSyFWfl7pP29pt5uudmDhxyGZwUbGrNuBSTRS/Xv9/
+aPx9joU44ouQv50sWqWcvdmOjsz6hUt5Wn/pRIOdM0oPYYEz8ingzrFaFeCOz5HM
+V17zkqedfDabfPStHRrg/dLJTQKBgQDrPz/8CHUEeh46stAnxUGsUK2msE676xDb
+WLb5qi1fd2oNi3/Yv3Bg7IWDYzLqNaInz/xzxErAOuefh5Vt+udJDIh5rSapSmX7
+nxcTZIcCJKYaC/H0vgohqScuko0CCGzAbcFkj91Z8kH+Uds/0qHycVPN+gL59rne
+AphIMMbG0QKBgHVpaY9Rp0xQUp1/3808ZrUAlQb7IKOkYsKJdqWG5Xr1U2LyRkvB
+xdtsZ1kUwzRl3RW8o7SN0VBjV4gqTJJ318JYCCd4lDzQTxuZHw9VXgW9HHydp+Iq
+Jz9YVi3tFYmOEb53E0dmILTNY6kZ0aDII/7TWeVAqRjlB3EEZe6/SJT9AoGBANEO
+z4zp8xv8blrZx9RgH0HEHN4ydnXXq45So6DyFApv88Z/vyje0D7CUtB1Wqz65tUc
+p4w11/xHHMoP0sL/I4UuZyZCs0XlAQaA1h/8yWIlMZuaG/bU3+oUCecAg+FXnVXQ
+8/mrRBoICY+6LO7l/9eV0NUOppB/K6RZh/03o57RAoGAaftasgzqr8nZOqqtdhzd
+M5GfYCofKiHCMW51VJpCrFQ+r8aLqIDicTYEOd1QJa1aDOftma8qDCPfiseght4r
+PO5QtrND6qCEnJgvUP/MpP/EFVfa9FZ27e+fSUlb5kXfrOzd5hs610UdSR+0PHQ+
+wH+qwNzFx+kw7/sbolcSkng=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_16/description.txt b/src/tests/data/x509/bsi/cert_path_ext_16/description.txt
new file mode 100644
index 000000000..85544db80
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_16/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_16
+
+Purpose: Checks the behaviour of an application when the intermediate certificate contains a non-critical Name Constraints extension. This path is invalid because this extension must be critical.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_ee.TC.pem.crt
new file mode 100644
index 000000000..d6de99bc1
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDSjCCAjKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMRQwEgYDVQQDDAtUZXN0
+IFN1YiBDQTELMAkGA1UEBhMCREUwHhcNMTcwNzI3MDUyNTQ3WhcNMTgwNzI3MTMy
+NTQ3WjAfMRAwDgYDVQQDDAdUZXN0IEVFMQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKwmpKT1zS7A8Yx/YFgrtcUfyig9jGBwVA0I
+yYIw6wDFp+L/QqT02Z3oQii/xoADbZlyHNZCrJR+7O+3ivcGSCxnYaTbEumFCcpQ
+0VPThNG7ZAvOBm+Y7jfy8Wpwbg6LJgjf1d97TOjeUI5/3+JnMd3QzDXqxhuQDhGe
+YlGUahv6xGu4et9GhqWELinBH7YrC7Rs1+N7luU8XqhSplrDD7hXuXeVA4lttmck
+dT9y5zyQ3zsHDM3XacgZuR12x2u7bdNUpf9VkzSTKMvl34R4/Xp+UoHRkqN1zkEG
+Mdn2JML2XnfGFn0wmBzdtqVTv9Oy0jicRtctYAlUlJ1PzPv+1YsCAwEAAaOBjDCB
+iTAQBgNVHSAECTAHMAUGAyoDBDAfBgNVHSMEGDAWgBTFAxdfUwgDnER4iRx2Z3PR
+7Qwj4TAdBgNVHQ4EFgQU/ISfLHd4jA2xChMZ05c2kZLqW/cwDgYDVR0PAQH/BAQD
+AgeAMA8GA1UdEwEB/wQFMAMBAQAwFAYDVR0RBA0wC4IJZHVtbXlob3N0MA0GCSqG
+SIb3DQEBCwUAA4IBAQA43OLqa/BmIJM3OxYJGUei2FuFnZSra9FjTo9HJG4BDMVZ
+/jbiZwPt4gao5Zluqe1ZurmYLPMaNYnK2+kWcoXgTFtsLlcYgVIv22qTgCAl9xVK
+gqzoU2g3Fl/KUa+ZatFjY+6YcyCFSH9xeVRBrXHCXa7iEL8Q3bqTGBOJUYlyd4+0
+LxVJlCJvnX/EAMER6Dm4u/981WjhyDehpI8r968ZQ2n/C/g3KeghtsxbDVcHnukO
+PqLB/J5cb0ZbHqIJ10EKJgNoYs8/TdzPNB6hKMX6BYVQhr6chrKxkWxqxAXxEe7Y
+zn6JYLOLsrLUW89UHu/mDHlgp6QGJkH+kpnY4pYq
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_ee.pem
new file mode 100644
index 000000000..6f2670849
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsJqSk9c0uwPGM
+f2BYK7XFH8ooPYxgcFQNCMmCMOsAxafi/0Kk9Nmd6EIov8aAA22ZchzWQqyUfuzv
+t4r3BkgsZ2Gk2xLphQnKUNFT04TRu2QLzgZvmO438vFqcG4OiyYI39Xfe0zo3lCO
+f9/iZzHd0Mw16sYbkA4RnmJRlGob+sRruHrfRoalhC4pwR+2Kwu0bNfje5blPF6o
+UqZaww+4V7l3lQOJbbZnJHU/cuc8kN87BwzN12nIGbkddsdru23TVKX/VZM0kyjL
+5d+EeP16flKB0ZKjdc5BBjHZ9iTC9l53xhZ9MJgc3balU7/TstI4nEbXLWAJVJSd
+T8z7/tWLAgMBAAECggEAE+oZ0cYS3lMOSPp94rVBFHSrpiFjQ89labyX0v+7BR6D
+CrdiC5hniY98rR9s5GeBHjxyfuFnpXtUCBxrbvgYZp/u+RXUB5TkSmCJq/DOxJRb
+lndW4eyxt2HbRjzgqRNfwFcPHrMyH8jX+M7CJNFbQMBkCeNcLNlqnI8oldddZFmv
+lcswGsbE5dHKMQURrG/GUqLxsTnjIQykXdi3VlXSqRcZR6+hyuGT6v+B7cirhGz5
+Ume0AoWbNGCYq0+v3yyUaWaRD8xIC0U+eV7xqP2X99aoTNe9rxpeczOj9LPUYqGg
+2mS6bb3PXmvXwjex4gPDeZ44oemEenB+ju3WjNKAAQKBgQDzSeJj6Vvv0qUs1vOD
+YGGc9h+5n1OzUJanqtpKlhyIR2VxXEuuoyWuAzhnpMReYwoM0uL6Qi6PPmla2chq
+cPIDU+MUDQlf63o8e9F3NM2v/K5FhDTwHHo2ugRQ5/g2RXIF6ZF4HbWpTmdpotmO
++FoEYJk8tF3WQ5mIRC7Kx/sYAQKBgQC1JUEijiG1SMkInMF0H7XjuKz19wu82hSO
+7QAP+1BpZxJwIL+aD1GHM0WSg1y6pyysEXt4ZvTWx2wIf7rFpra+2Ux6aOM2XLqW
+GITFsNqLWXsK+0TvYBTMGybqeoIsCyLMfRamkuNktqvwghcuo1PvswktP9KncaPf
+b0/T1HDNiwKBgQChxoCXBWbQC1cwgOK+eomOMQ+Zg/vJYg48Ad1T+YuRh0BKaCAf
+SXdVxehs6uB1DxBwxI6P8RA6yjqOYgDl3qLfWZnHDIAuW0wWChOYW/FmU/SiXy5A
+d/9AguM51XZ0yCrxCYZkxAS3R152nQZkDnr1LDLZbepz/tGKDiS7TM2IAQKBgF9U
+CLAfrjuR30HqBKCQ447ArD0Q0puDBNimfqbqccnWVUyu30Y7E4OcBtvwx4bu3UJ8
+PMcDH4w8DG14kpjbgEZ1Ypr0wcXlDMhahNzokkpNP8RqsT9sB+XV0CgLap+1CI4m
+shndKU/iFiAOxhZkG5MEXCr08G3wDvZRxOfMX8S7AoGAP3cvBXIsLvBu/Z9iMG7e
+KVWwonHsFiyiuK0ezscr3/xDChSf7lx1YlEHW8BVy4n+gUstkHcd/aaqSA1OqYEg
+i1ehv8QKslktq2On9vUuJeYH07EZGs14D525U3siG9yVkoPgwLAkKmGFQp+j1rgc
+2U6ozcr1ct2cJHlnxH35uJA=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..3bec3003b
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_sub_ca.ca.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDSzCCAjOgAwIBAgICUhkwDQYJKoZIhvcNAQELBQAwITESMBAGA1UEAwwJVGVz
+dCBSb290MQswCQYDVQQGEwJERTAeFw0xNzA3MjYxMzI1NDZaFw0yMDA3MjcxMzI1
+NDZaMCMxFDASBgNVBAMMC1Rlc3QgU3ViIENBMQswCQYDVQQGEwJERTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAM5Kivd/4xVgizsRTSlrunbzax4/7A9w
+bvnf+RMN1hJ/SvB/L8wkUWQ62ulFC/ElA4zL5mvEsrlo1SJmrqGaNK9cqubHKimy
+SuNLZv2F2QT2PyfqcZpgr6pXPYSEsB8V+X15Ur4EH2fG+7mEb4wkB6VGv+X5jMns
+aSwso8cS0diQLukqeMMvbSk4ihegysXqC6X6auWn828QYDObkPRbOyeTXW6Op+Rp
+V6dSJhPq68h7FA5Wf6dHZ16zl5Awvw+IumPW1kJHb+7EZ/yQkkIRTzWNmB+QO/bw
+lFBtEMiqSwvpjhx/DLSWSpHbqn32HVQgzWJ7T7jgvR5E4yGMFqgK13MCAwEAAaOB
+ijCBhzAQBgNVHSAECTAHMAUGAyoDBDAPBgNVHSQECDAGgAEBgQEBMB8GA1UdIwQY
+MBaAFMdPGIQtfK+M/IY/TwhCE9klQGpwMB0GA1UdDgQWBBTFAxdfUwgDnER4iRx2
+Z3PR7Qwj4TAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADANBgkq
+hkiG9w0BAQsFAAOCAQEACju/UnI2lb//vwvuozNDn+g+JJzIQn/RIOtboXeMWjlw
+2+AG9wztJgdsAxuq9Kw5wBPNdnLCHZ+xALdX/3WUmgPodQUgB7/XKFobZSSePF60
+e5LZGboevIdhCeRe4utpR4EqkXZpbspoVcpOegqyriPrJD3NKuDgNJGlwUWZ0zik
+39mh0nbsICsvz+WuIVFpcToPj/YEWaJ+aJW/lkYQL49nd61SUBM+kfaERTmwZrWP
+j/sax/RJDwb4hke7UbT4ocWQ2jzzJjdNKKpGI/MvSf9DfVZr8eGYx9PvrFUnrLhD
+S1ZJ9oaNNNUqP3NY3jgo+FdwQak4HMyMKwlh8NY7PA==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_sub_ca.pem
new file mode 100644
index 000000000..2914c4d13
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_17/cert_path_ext_17_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDOSor3f+MVYIs7
+EU0pa7p282seP+wPcG753/kTDdYSf0rwfy/MJFFkOtrpRQvxJQOMy+ZrxLK5aNUi
+Zq6hmjSvXKrmxyopskrjS2b9hdkE9j8n6nGaYK+qVz2EhLAfFfl9eVK+BB9nxvu5
+hG+MJAelRr/l+YzJ7GksLKPHEtHYkC7pKnjDL20pOIoXoMrF6gul+mrlp/NvEGAz
+m5D0Wzsnk11ujqfkaVenUiYT6uvIexQOVn+nR2des5eQML8PiLpj1tZCR2/uxGf8
+kJJCEU81jZgfkDv28JRQbRDIqksL6Y4cfwy0lkqR26p99h1UIM1ie0+44L0eROMh
+jBaoCtdzAgMBAAECggEAAI0EZ/rIcXMrjAHU0ep+ufiWbaNADx5+vV4SvTFJRA1g
+9tlwGDx0ly7tDLhpesBdjQ+yUtFYpNQZ1ZiumLHfuCQoNKuNekUGnCrEYKLt3GyH
+6KRgn0fo0CyhdmwgSET3wJUFWoqKRu2qGGm5HoeuGYvh0UxkStm9widwXIS5WLmw
+m4IoHCLl4NowkQWUMZv/lqBabgUdtC1SxlWhEENwuGID3nXNTaAZp9bHbf6tYklo
+gHsTdngjLGQXlXOypT6aNZ9Hu8R8QzG602gG34BvaFXLfY5M1kmj0LxYjOgE4bC0
+T0yC5D211DHx5GHnP+8oO7kXpIuonU4fT8wE8nptCQKBgQD1dclG4OTPJB/tRJlB
+V46k2YevlwCQREAYb4d3/JaCZsJpCqzhlf6rQAjoRmc2Q/HoLKVcf7jVEBRu1dza
+imNqNhHxmt8Y5w7LG4CxlJxH3wwd6fPrGWlRxsZ4vqshlBzsyO24ywvtt0o7Xkyl
+5fjOgUDQIEm2hjTLzkv2HF44JwKBgQDXJjF6mSMZQ+ZDR9ho+QweNGV728Co9KXt
+kcAh5vChmytIimXHJN3T/VMWou9oCfW7Z23tsaZ/+tm11D9FJykJohTUfiCdt0N7
+CMZTeFfnfbTuuZL2xWzHG7NXTer+AenjJnsbOR4CS4n+AT3Az5KKBslSxvXgnNYj
+JWrsniVJ1QKBgQCIRXwY/YIJ/eQ7tXnf7NwkaSALO6n0be+noUN0OabVfncwGd0g
+4EUijcpkKbHjTpVecGrdj4rtvp+ZaOHT8kB/FsWffHufN6fe2sX30KlyvUHc2aWx
+P8pYvCIzpqcbXT8xtdtEXHWi478ydofXEnWvL9LruQEzdA6bl0xUtisYwQKBgQDN
+xs/oLHOvhIvFqf/IVvtKIF84GbSpZGUXViHnyxQ33UuGtCgoUpCAY3iG3AwS/AO1
+3HT9tL5FBc4Y5QomwA+2EPnPS1syvcei83+M8jtRQ6A7++4ebDFgNpRPWkz56Sak
+hXeVUAnttAYllVZVBbNopJkFvRoKXLdLIkykR5XuiQKBgDm8GOKo7pDNY4KyM6CD
+gP8CLX10w14dFyPc1DmE33WzrJVVsQwmrbdowfMn+x2+8t3mjnO1d3WKttacKaJ8
+PettTx66PoGhrQ7VY583cZ/DdsLHGNOdip7fm/rD7/ItacSKDcdWOcsS5iVf4145
+hp591ZX/bu0jUStCp4IRHhni
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_17/description.txt b/src/tests/data/x509/bsi/cert_path_ext_17/description.txt
new file mode 100644
index 000000000..089e5637b
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_17/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_17
+
+Purpose: Checks the behaviour of an application when the intermediate certificate contains a non-critical Policy Constraints extension. This path is invalid because this extension must be critical.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_ee.TC.pem.crt
new file mode 100644
index 000000000..8faa941c4
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_ee.TC.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDITCCAgmgAwIBAgICTjIwDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEAwwLVGVz
+dCBTdWIgQ0ExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjU0OVoXDTE4MDcyNzEz
+MjU0OVowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+uhFThvbxc8vWJ2f8BQhW0BytQ32uUZps
+RM3tpa+69hGu0E1kyk7sizFBXcazbcnxz9ZqaAyjoq8w4L87zxB6u/CPMKDEIES8
+8hxCSUD0zx4QvRuoi8t4lnn53UOv4/hUHQNep/YW5gAq3vmaf+kb+QNr5Oatu58k
+AboDKfX8DpKJycnSdeKAWoEUKwBVVbGLWqXkNRDk+Uuvo8Fg7Q77Tefh81aTUFTi
+0JAG4133GSKwfI4316VWN69BHpMrNgm05HKTebn/z0r/c3MMvjXKsju0agjEU64w
+8nKSpQXvu4VSic02zRrjez0KdeNm95zlN7c7c+so+kyXSizG/KelAgMBAAGjYzBh
+MB8GA1UdIwQYMBaAFKIure3osUOOy1Zt8ZNm86ToP4DoMB0GA1UdDgQWBBQz6tAD
+C7ETWqKlblb6yXA31QeVLjAOBgNVHQ8BAf8EBAMCB4AwDwYDVR0TAQH/BAUwAwEB
+ADANBgkqhkiG9w0BAQsFAAOCAQEAjqZBOQPwm+NEegQPVklOffHAlO2nRVNym8i9
+xkBGBOFYS3WuIL2M4xSjpnHN1u+4Vu1om11M4/RsvtKEb7NM0+FXAMZdzdiolAAz
+C/FLzMX8Frr6CjfcmVUoAEHcFKNAuDH09xo4YneGC9G9vgLcY9WfUyf5Te9O6p4B
+ES+kTsoXgYF1pJlrFcPiz+CQ4IeBe0Jr2Kg9GHEUYT3c/oDvcylRwAzk2mPWiIZB
+timRjGF65aD5LiDZ7FzN6IMMdOYTjJw66SGqXqOhuNpShsnwMbPDUrJfQ6LMIU61
+cbMfTNOj6DNf/+Y8+LaiQb5WF52jdJDkGpT9LwqOXgsVgmRbJw==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_ee.pem
new file mode 100644
index 000000000..f2d97c25c
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+uhFThvbxc8vW
+J2f8BQhW0BytQ32uUZpsRM3tpa+69hGu0E1kyk7sizFBXcazbcnxz9ZqaAyjoq8w
+4L87zxB6u/CPMKDEIES88hxCSUD0zx4QvRuoi8t4lnn53UOv4/hUHQNep/YW5gAq
+3vmaf+kb+QNr5Oatu58kAboDKfX8DpKJycnSdeKAWoEUKwBVVbGLWqXkNRDk+Uuv
+o8Fg7Q77Tefh81aTUFTi0JAG4133GSKwfI4316VWN69BHpMrNgm05HKTebn/z0r/
+c3MMvjXKsju0agjEU64w8nKSpQXvu4VSic02zRrjez0KdeNm95zlN7c7c+so+kyX
+SizG/KelAgMBAAECggEAAfOh0OPlo1gExRBoXeV5BUXd1+xy2LFgWLnhhKXv5Oq2
+1YrRig9lpwYUJYUw6IEzicqxkoC1vO8QnFe7nk0YCZOeKWZH46wHIJNyVoP52eMy
+9O3CeGVdBOUuGifkHYaxC3qA7Rc1HG4kSynhbBAU0dHCaU28GztZLGEvehIUBPOR
+EEGS7nVcrwDZ+PivtzTnPi/86nSGedKQHrC/vUynsxy0RQ97Kd5DjGZQJt7idhol
+qorEk1+eMKThRTYcqNzf2xKztaaMPg1sZK9DjTIWJ4etdmn0Uzq9ensyY9iip2Fg
+DOFk0hveLxisNfh86txhay45peyUA3Um0nJjBb7fRwKBgQD7VQxQTBisYOuNM1fu
+bIZXyM2ZF0Osb6K+vXjlDpaHVTnvYYumOC7lKEcssikmTeIp9eSYuAZ5uzdBpeu9
+DHrjmtKJYAlKCZ8wfjTY5Cha2s40UR9EfGmWbzhh/q25B8Tw7PptKcgNTY0gkhzM
+UpB7uQcSkmYEyfEkWIRPfz+9IwKBgQDCRN96jk55Lied5DZMhSin/hA8dkZadtml
+PeBI7i/suvUE+N82Mln9U2VBvrt3BTIFbo2OdHTroSix7R/THTDuNhrgHwUv3ovn
+kQN4qIA3sNrojCSuRii0vaobU4iCjvVb8XjkE7rSgfgy5jKAfpm97N6zVo18FZQ6
+jljkfskIlwKBgQCfryaWsfKPOzkNyoxYsN0eUzfFx9E4culc9Pcl2YHsVErt+/UF
+U/b/o/qsvDmG278RV+i421tJ5pgx/qBryc0eZVTU8Y6VWs2outcK4tN8/j47YTtT
+gRR4/ws8v9pSkEwhov9tcjlnslkzU4I2k1K3ORT0SM3GxyOOKytNcxTlLwKBgQCW
+U6c+9cmhmeaMFmEyG0RXopC7yKYuMJPAez4IEVBCdnVNUKuhC5t5HMRY+JelxP5t
+F5wwZMto3j9YV25t9cO8QV/QmBByd1p5aUxvXKxC6/apRnDH7oBnQ/DSznPu22Lf
+r95lVyMU6/+8m0bvCYg8YIP/8HTxVN1r5mTBA57apwKBgF7cz6ovoWvkzdaR7oSC
+DPets54LE1Ri3JKUgUwh0NaUaAg6xGLTCwIFFfO74SXMh7Oz4HCTmeTF9brY+wuW
+oztrI3Rm9kH5wV9t+hGZ9TCBcOEwFBDZAaQ/j0MVNV+YbybpKzyhcbwC7h6lCz7/
+gm5OW3CB/sPwtIsnNiCNXc4F
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_sub_ca.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_sub_ca.ca.pem.crt
new file mode 100644
index 000000000..cba1659d8
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_sub_ca.ca.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDTjCCAjagAwIBAgICUhowDQYJKoZIhvcNAQELBQAwITESMBAGA1UEAwwJVGVz
+dCBSb290MQswCQYDVQQGEwJERTAeFw0xNzA3MjYxMzI1NDlaFw0yMDA3MjcxMzI1
+NDlaMCMxFDASBgNVBAMMC1Rlc3QgU3ViIENBMQswCQYDVQQGEwJERTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBALCFLJmzmejO9iDEac7Lcx7vwJtIcv+A
+i/3emB6Woi9JLnWwBeVOgAG1gs2DHBWvrWsxv5CB+udOAwcMXGnw3Oa6MyRZ+sPT
+wRVNGtmhEAV0PKMP2nwAnY5J4xhBRADt9G89ApKGTE3ZTj4Yy4soau0YV6+SfOe5
+QcwvH+csEB9VadR/Xui3ju+qEG0lqpaGBUEgt0fj1vABXQly4dVrraP3antW5jr0
+7zhgZfExzvUaZNxhIv1uEdz19UyprnvLYbEZ5GdRJDfdgVBuVQ9u07NSwQXPMBWT
+b/vCUHic/QUD3EteYE8AGQ+gkw9zedsPRuqyV7zke4rsHEPOPIGnU9UCAwEAAaOB
+jTCBijATBgNVHSABAf8ECTAHMAUGAyoDBDAPBgNVHSQBAf8EBTADgAEAMB8GA1Ud
+IwQYMBaAFMdPGIQtfK+M/IY/TwhCE9klQGpwMB0GA1UdDgQWBBSiLq3t6LFDjstW
+bfGTZvOk6D+A6DAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAN
+BgkqhkiG9w0BAQsFAAOCAQEAIXDrrLzt5W7eNFKM+ZyIJLT47usEIsFYmZY+D+h6
+/d3UD5kRCMKbiptU+TdsKkwTNvfMWq9X34tu/+YgMOlkdOpxshm68iGMPtOA3QKl
+ruTIUGdJRmT1TG60euXMHaXnU74cM30BpSFwibzQfnltcPsFwu6hE8O0KRFzbFUO
+Ym6/j/P0zV+B36MM2LkceorI6NEbmKtnMQT+0lbBYhmvzlNnhIzZnmy58rX+bTZu
+hfo//BX5JLvJS2h3fzRjilLBuQOyCELmW5NQYQwZfgQBw3NZxpBhkj3Gsb4rWlNw
+dmUpvhK3aS35VKsV9CuOmBTl/Q56NLj6KM+H/8/f8u61Qg==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_sub_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_sub_ca.pem
new file mode 100644
index 000000000..0a7bfeafc
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_18/cert_path_ext_18_sub_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCwhSyZs5nozvYg
+xGnOy3Me78CbSHL/gIv93pgelqIvSS51sAXlToABtYLNgxwVr61rMb+QgfrnTgMH
+DFxp8NzmujMkWfrD08EVTRrZoRAFdDyjD9p8AJ2OSeMYQUQA7fRvPQKShkxN2U4+
+GMuLKGrtGFevknznuUHMLx/nLBAfVWnUf17ot47vqhBtJaqWhgVBILdH49bwAV0J
+cuHVa62j92p7VuY69O84YGXxMc71GmTcYSL9bhHc9fVMqa57y2GxGeRnUSQ33YFQ
+blUPbtOzUsEFzzAVk2/7wlB4nP0FA9xLXmBPABkPoJMPc3nbD0bqsle85HuK7BxD
+zjyBp1PVAgMBAAECggEADV2FWH1BozUpwVEN2oi2BpAhqxWWZiPItb1TvZvV24hf
+elgMbOXU3wxBbf0bicV7oc5U/QSSck60/6TJydhhFB6Mvm0KWycei1XYuW9ZWV2z
+36bUz1HJRtuaVHJQoKoOZBkgUjwql98Nw7mN49NOG/XytwpQ5xy0T4Omlz1+BQPg
+IN+6Jqbm0TA7k32Wz/vtDKXP7FK2bVGNcDCTH3cq3rGQkE+WjOIdrHPRZQocZb+f
++AA2EWUIeMr4R8Eeg1frValngOV1gjpZt3aZ7uzl600QIF6ATxMhQysMEa8LDaR3
+omQ+ceFjJzX/ffFwKjsZV4pJatvrG2Ei7aR16vaRoQKBgQDmilMx+HVcIXPGk9oC
++PqPJ2rZybw0vF2zrZ2eu0XgZzyowdQzlp9XKi+zAsYkevuZn+y0jjmA0XAqJ3ya
+/gxkT5JOIupb9JmQR33DVEeC+Gi7mSRm3R0tpkF1ogevkvDnet6WPWHFvUqi5NLv
+RZo4xSUlxgV1RvxtwsOyxdd/sQKBgQDEA6FTzzq8lOAaCe/MtrVk21p4Ho0FhSln
+qcBEElnkA1AUk5wNlHzO7UaolhJf9kV3hATAe8D30m6rLpi0pOyAH71V6yKIepPZ
+aohEeR41hexUTRHuiJ6NDk0fjaMiOqXR3oeJTJ7mW5I4OV5NZcP55h1S2rGyC8JM
+93j7NejjZQKBgBFsWNdI+M2qtY5HdE2PNZiGGRw2k+PEbKx8rZHmg2RvSPVUGM6B
+Tq+Ov6YeyozNQqCcpo4KxavHqFt3OoKYOqWGIf+HwgCLHuP5kzak8vaiAYBUFZ00
+jtT5YK8cPMp3J3/HGHVwVChWowJmms58iyhJNgKB0b3ITKGa+6FSNHQxAoGAFCxv
+eSm12NzVp7hoFsCjMKsmx4AVcYD//uxInnjpCX+RyVxbzkX/BmkDQayYXYoCIkfT
+GWBjPt5Ih5O3IbhrotAhc2tM1ZEQEGtXdPymMEoFRbPc6ZjkAI59P4cbSBWTJWNq
+vaXGIN1B0kmNPBgCMIEPeYyKh1GQgM1jhS9KNcUCgYEAsBezNeyrU1fb7DlTycw/
+hwsPmFriD6Lr4S7Vdo+RnDLhzIYrgZF+hZRg4B7EQunPMWoR28cRwiin5oPASIVb
+5LOI8smcQMN9biPEXhUu42n5Fz0TiwDzFiAAwJ4mmYRpUAO94BZ4ptZryyznNvRp
+fbG1kbR0PtVc5sEoP+tbU2Q=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_18/description.txt b/src/tests/data/x509/bsi/cert_path_ext_18/description.txt
new file mode 100644
index 000000000..7f2c3e3b6
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_18/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_18
+
+Purpose: Checks the behaviour of an application when the intermediate certificate contains a Policy Constraints extension with requireExplicitPolicy=0 and the target certificate does not have the Certificate Policies extension. This path is invalid because an explicit policy is required but the last certificate in the path renders it impossible.
diff --git a/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_ee.TC.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_ee.TC.pem.crt
new file mode 100644
index 000000000..26d10d0b8
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_ee.TC.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDOTCCAiGgAwIBAgICTjMwDQYJKoZIhvcNAQELBQAwJjEXMBUGA1UEAwwOVGVz
+dCBTdWIgQ0EgTDIxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNzA1MjU1MloXDTE4MDcy
+NzEzMjU1MlowHzEQMA4GA1UEAwwHVGVzdCBFRTELMAkGA1UEBhMCREUwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDXLBydgzs1NaXY49PdNvE1WIccB03H
+w3Idt7crDBD1T0MksHqxDZjCaTtcDyDrxqPVy8zAKOL6Dz0fPV6nlH+nu4oOB2hs
+TjROXgAr3eIo4gmQX5KZnk/dSkydVJJajC9jhIlvdna2P0faXh0ChBcHlgcCqXt9
+Lx+wdsnRBQ/wUnUQI5RN4qVUmWgi5/f60Xf+Gd1gu7+U9f8thhRGLvCKf2z6Me3C
+DUyuRcs4MKVVPXTX13FBLny4bne+meV0w9VcKI9+oPXyaifzEbsmMUSxMK+HWAmD
+1bAthf4aFc+RGLnE6A6akHw4V5nMfdPtOQ5D6QnxXJO46uICFBhkrATZAgMBAAGj
+eDB2MB8GA1UdIwQYMBaAFMEN04RhXUVQxBsLng5OBuOIdBjiMB0GA1UdDgQWBBTT
+h5Tc/TFMBsPYf8DIn5cEHIwZmzAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0gAQH/BAkw
+BzAFBgMqAwQwDwYDVR0TAQH/BAUwAwEBADANBgkqhkiG9w0BAQsFAAOCAQEAXv1Y
+w50WNOGTAFe3mUpkpKYc3jBnHNbBQpfuPq4bokwV5/BAkKQVD8ztndARVu8dqpnu
+u6gXrXNPXV6TLd3fgvYzuVWCQ/Lvg5ylAL5qZds9NB0zQZ2hX9Djp88wApmcZYVj
+QZvovZ42UrK1mIxW0hTPJTqZzBHrkuowSuJUOBL5rOc0eeoBxk3KuGhvxDjXoys8
+74c+z22xlsADHeounzxFfagjcx7KhgXsR+amb/rTZqPFs9XuXhFESsuCg259MGNl
+OYZf1bPD7mrFK5ykk6JkUh2ItX+pd5SOhSsQrsHTgBL7MWO3aQqzpS1NjSAYolNM
+bOjlToUPKxkQjOYCqQ==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_ee.pem b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_ee.pem
new file mode 100644
index 000000000..60ae80f82
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_ee.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDXLBydgzs1NaXY
+49PdNvE1WIccB03Hw3Idt7crDBD1T0MksHqxDZjCaTtcDyDrxqPVy8zAKOL6Dz0f
+PV6nlH+nu4oOB2hsTjROXgAr3eIo4gmQX5KZnk/dSkydVJJajC9jhIlvdna2P0fa
+Xh0ChBcHlgcCqXt9Lx+wdsnRBQ/wUnUQI5RN4qVUmWgi5/f60Xf+Gd1gu7+U9f8t
+hhRGLvCKf2z6Me3CDUyuRcs4MKVVPXTX13FBLny4bne+meV0w9VcKI9+oPXyaifz
+EbsmMUSxMK+HWAmD1bAthf4aFc+RGLnE6A6akHw4V5nMfdPtOQ5D6QnxXJO46uIC
+FBhkrATZAgMBAAECggEAKCjVw2k7mvwDEva8s3A+d0IpX2gWkobuLNE96NUk8iAD
+zFx63cJHpVteJpm1P4QwzmWt9px69ohzFDpQSQ88fyoPw3wK95HmDc1aE1XjkNVV
+SyKnWjATwF3ObFvdP/SjoJubShguYmfvqXhAylgsczBDaTIIOA5cSAN3ueELv0LQ
+p3sYf5j0+jafeZ6vHP9h83pZwab0Gg4fZcBxug4gmTB3unpifvIIs7kJJ0fSQEXR
+022B+Ca4An2GkOA3iAd9epFDP1j7VLhQmldnJE8Hq4L3kgR9biJqUzaOnkLVaEoA
+PB2JQJJAzKFDqiOMKzQRZuMpaj2z/aN2p0dyYoE0DQKBgQD/Kusr+mSHZxoDJqXg
+bMIFY9zfXIvhv/wOiQRiDwRIpzb+jE15qJ0v6M1nAtjrFlWm1/Fg0aml3dB04aV5
+RR9FSh5AuWlq7cxRKOjJrjkHpAqsdK1O29KQQgaRTw5Gtnk/f9ysonv3WieDtAI2
+usKPuE1f/SjHXgzgwJcDBJ++bQKBgQDX38tiAbkyw6yDhWn5DAG6zOwcpr080DyF
+lmNUE4RS0JDPsCgrmAr8JIfa/YUcmFLhnuf0iKPxHEVta6+Cl0CIIxpZOOCGwoz5
+TcXQDlo3/FLl5zuB7jTfxPg8mjE6Jbv84tLVvdg+7NjtDOY92AyckbJ1uNhGiDi7
+WkbuX++snQKBgEU17vPOxtWzMWsJYJSu6zFrFM3A3HAvEr8eiwHN8OuD73a7t4f4
+JCqKiqwWKaAaPsEycVZBiDJlJ9WMHsX16bVxlSMZJ27JcVHSNtH9X5qi9AIy448w
+MLzQK9feCZFEjT6b/88Tg2xkF7Oxb6hIn907sEEI+baZ3ARaOJuo9WtBAoGBAI3v
+dTgBThVUlo77H0xCWrjJl8zWzMG5YLGsya40DuKsgyoq9p6DH2XdVv3jhqvgc04p
+PvWHCdOz9OoWzZUdga6A9ggH34h7Tll0i0VaynLZEmBbAsNRLa6bQWQHNaq3uLxz
+HpCufAoTjCWAP7oV3WTsXtwMJxdo5XQ5zT1aEqn5AoGBALys+6FvrwDEs3QkPBqL
+aNlgT8rFU9mQvXNxkqDgPz/vyoVGgauM1+ZEAykzLGwV2lIE6TOogLG5Heb2qcXV
+Zrf5WfiF+2I9qvusLTAjUqkCFGj/9m6uCJ/2im16acu9OjY1OaX85VJHN/sc3t0X
+R7iytdG+ofR7qWZsKVd4x4Mk
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_root_ca.TA.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_root_ca.TA.pem.crt
new file mode 100644
index 000000000..a9140cbca
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_root_ca.TA.pem.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADAhMRIwEAYDVQQDDAlUZXN0
+IFJvb3QxCzAJBgNVBAYTAkRFMB4XDTE3MDcyNDEzMjQzOVoXDTIyMDcyNzEzMjQz
+OVowITESMBAGA1UEAwwJVGVzdCBSb290MQswCQYDVQQGEwJERTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAI9PB4xgmFlKxkbnda4ObABjxIdZ9scX070S
+6zCiBOtEVQK9FrNz43z4EqWfjyx+o6/uj/KdCAECqJ/g4iObS/gLKRaEINwTpHXa
+cr4XoE5Mr664P+YpEJxQz8LrZTsrGyaGRyNYC6gr6VZ/w977gFMsv6jlbOQ05wm1
+cCgJpj8xBMlARNtC8GsGQ4nXzz3NSrU0whGeRfcP0iWpHheKvkad6+qdgKk1ytL4
+L8dRf9FeD7095twXvSbjASjdgyGkk6R7R2CqcP5r0JgY4HiyXEWI9IW727JtS7lU
+8C7ZnE2dnLUnsk19xa/OON02RiotSmHCH0F41rCwJkGNypyJ7+sCAwEAAaNmMGQw
+HwYDVR0jBBgwFoAUx08YhC18r4z8hj9PCEIT2SVAanAwHQYDVR0OBBYEFMdPGIQt
+fK+M/IY/TwhCE9klQGpwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAVLt1+CTl/zT3mSsekJpmZe0zNrsvcYQEx
+9PpQ2SgyQnRWnUuBQPdADBmGIWPEH8ljvT+RqafJWDbMhbvwsy6zz5LUjWI+g3qo
+BIA7ZLUiI11YSabpWKzLbZbSbxYDyzzidmDaLUpb18k4rUStCvUbkyEY5CfWJOf8
+/F0H/0p2rH4Wp9iFCgtek5stkvVvdIXttdvkyhbfh59E+eDkfOIdEYm1mcKf7BiB
+iLXe1bUv1HGg89TTthfgoC1SqKBo3LkCNxbaN0ekH0ZWWmq9oL99Jikjg5RZ9hpS
+4ztmjkwZM4bkIEKih4IT5PDB6F2Tna0cWmdaOtf9VO6xBF2CFWLi
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_root_ca.pem b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_root_ca.pem
new file mode 100644
index 000000000..5ff68e746
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_root_ca.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPTweMYJhZSsZG
+53WuDmwAY8SHWfbHF9O9EuswogTrRFUCvRazc+N8+BKln48sfqOv7o/ynQgBAqif
+4OIjm0v4CykWhCDcE6R12nK+F6BOTK+uuD/mKRCcUM/C62U7KxsmhkcjWAuoK+lW
+f8Pe+4BTLL+o5WzkNOcJtXAoCaY/MQTJQETbQvBrBkOJ1889zUq1NMIRnkX3D9Il
+qR4Xir5GnevqnYCpNcrS+C/HUX/RXg+9PebcF70m4wEo3YMhpJOke0dgqnD+a9CY
+GOB4slxFiPSFu9uybUu5VPAu2ZxNnZy1J7JNfcWvzjjdNkYqLUphwh9BeNawsCZB
+jcqcie/rAgMBAAECggEAE3SOA0jn1ejOAzk6uNmyCtmAiEQ2ju/VVIwEIZLqql/u
+pJO0HcJZZhFYQrjnMIoJbIHYHqlNOV85h5RO+bjZtupuS7q9//KrYek5U5o/LpzA
+QFmOKeUgTABikZqbIHhpKVvoaMwer62Kci5Kkp6VMiAsmDV8CNKFHRnPM02gDrWZ
+ETRbxiQESVoHhcGgmAHIM0WEbNQFUcknsiEUOGTO8FnxpALWn5aBnMKaffj6D+aJ
+rfQidNGUzlsxAkMjR3neTe3FE+pH269bWkw0qRtPBMv9/NYGb3QvDvjzU/nO2/6C
+T3IW2OuuP5k4WHzjQ+ixMMHDuatUzNraYXw3GFpkuQKBgQDCnjr5olfTduH3O6pZ
+ddjujUtl5lKkOozbQ5Oswk9I02LcNWZadK5flzzpgkz6SHd4mqeMU2j9OaJYmSEA
+h/ux9VDkffx7H191EecKcMTh93v8AUHOv1u8caxmi3ryGcqqzrQKrSx7t60Yy1qc
+c5KCUNifavg/hQk6XasJ3cxzowKBgQC8gf/Z/X5N9U6/ON3gsZKStVcJr4KG3Oun
+/kOVuh6wvgev4Ug9z5kzIxhwje9FiEUIBHZbCyiOt3/fTI0vxzBlMrDH6tEbz0sm
+Lw7h8s8aoYV75CvYx4uyYPRcXGCo5OcjxmprdNXrQRR4seDZZrFsVDbD+YlvMcMO
+CziDkQUXGQKBgQCZFdvwByosdaQTVISP8Coeo1f+pKi29DNeOg7MYt/4ugZWj06e
+so+DM7S/PTaN3TjUzlojAG1iWtZ/+JvEDjMG7Z+ezBcxRiFRNi7VwJSt5n1JYjfA
+iDeByKzC0M55553Ks+NdTpDiFD39deAllqdVCIENDRiO5ne2yH1EuoobHwKBgFv6
+6saJRFnxumzf6JO80ZI4XbHiK8R2g55DGOM0H8mJz+JoAIH4i/5Bv6kb+IZrCZPx
+6XZfKXkJ3KEujy2i+eBHLa8+yq3RJhAJoi9p9Ng/vAxJt4NdSrLNUC7I/HksyAPS
+yxaHueHCraR+1wH9c9Ex/k79savKEi0GGJtJ5bvxAoGAHMvb16uT7//TQ6d8XgrQ
+0gJvsMxtmyW9ehE+2vev1nXZy9quRGD7OnXfgMvVD9axB1fm3yua+CtjZegGYYAH
+5v4ZS64n/1WmWxJ5UmNCKjSIYnelkh6vFGnrM7a/+G4T9WK8vcc7ThrlXPMZpDR4
+IQI7esjsMFV2ufSob8ylCb0=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l1.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l1.ca.pem.crt
new file mode 100644
index 000000000..fc18bbd0c
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l1.ca.pem.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDVDCCAjygAwIBAgICUhswDQYJKoZIhvcNAQELBQAwITESMBAGA1UEAwwJVGVz
+dCBSb290MQswCQYDVQQGEwJERTAeFw0xNzA3MjUxMzI1NTFaFw0yMDA3MjcxMzI1
+NTFaMCYxFzAVBgNVBAMMDlRlc3QgU3ViIENBIEwxMQswCQYDVQQGEwJERTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMYvXC3539fBtnwA/4+GM2KJGt1o
+SYkGFdtJAhUkekxAqFE43c4ki3t6ZLf/YxlJ+Z+9rfvNFjzL+Isg0j9OuWvk8/SR
+y9Wg/chbyttoHp27hcBwbMElhNNfMp57xxUYZ+YwOQCmEr+EJxIzLc3u/5XOP0Kz
+Xe72HQHdDP8D5Zgh1/dHFY2WBH1JeRPgPfFWI+W0uT3l4E4IKLTAgrpCxEKCwfb7
+//VCqSVRAqMEPyLKi0TRfDfItm0iL+93aPIWuak1W+V4lsnVjnU8+HpTK+rQPgfA
+56iaSyoT90GfZOQosyW7Ba8FGZ5UyvyYyn/tjaspvqQzjN1XDMoOGvrGCeUCAwEA
+AaOBkDCBjTAfBgNVHSMEGDAWgBTHTxiELXyvjPyGP08IQhPZJUBqcDAdBgNVHQ4E
+FgQU5WWjyo3VblawPn6rXlc4mhYD/eEwDgYDVR0PAQH/BAQDAgEGMBMGA1UdIAEB
+/wQJMAcwBQYDKgMEMBIGA1UdEwEB/wQIMAYBAf8CAQEwEgYDVR0kAQH/BAgwBoAB
+AIEBADANBgkqhkiG9w0BAQsFAAOCAQEAcySwmOlpdXkUd3qt+Yu853UT54VPCThd
+aLqafBtV9QkLaNk/+taicJRm6ZeXrE0w+r3frh72b4YAM0+s18guzmjHJmYtzyoq
+82YV2QFFlW0QLV5M7HlFhebXSu4mzst77GYmgdcfhw9CZhb89MKCRowbgXyGFGZl
+GNcaN0oUTz/KKO/yW8I8B4aI2iKrFMD6X/yhCTYYT+8ocs/r4ZPwTzwQHfD63Yyr
+wAyhytrItnF3ecP9BfrMaKNebJUZr/vEfSVNTP60I0h0mFRpFWcVgWPTCPXGhT+z
+h2e30QB8aQSFcwV5VifvG+Jd6O3YdEN5yiF2M1sOeQSrvg4vgQqvaQ==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l1.pem b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l1.pem
new file mode 100644
index 000000000..d0af1dde0
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l1.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDGL1wt+d/XwbZ8
+AP+PhjNiiRrdaEmJBhXbSQIVJHpMQKhRON3OJIt7emS3/2MZSfmfva37zRY8y/iL
+INI/Trlr5PP0kcvVoP3IW8rbaB6du4XAcGzBJYTTXzKee8cVGGfmMDkAphK/hCcS
+My3N7v+Vzj9Cs13u9h0B3Qz/A+WYIdf3RxWNlgR9SXkT4D3xViPltLk95eBOCCi0
+wIK6QsRCgsH2+//1QqklUQKjBD8iyotE0Xw3yLZtIi/vd2jyFrmpNVvleJbJ1Y51
+PPh6Uyvq0D4HwOeomksqE/dBn2TkKLMluwWvBRmeVMr8mMp/7Y2rKb6kM4zdVwzK
+Dhr6xgnlAgMBAAECggEABI169x1p3Hl5OTEGrePd01Il+VcXdVvb7a0oLJcpbg4A
+L9l4Eu+4+o2tuaJWwvJ1lwtS71lfPOdMntmSqtyims1oI0KkJZSsr8kYCGFEbsgr
+gueyP9+eRQLHVWevg5cLb/jEnnSyMo8VHLBrSXNHkMfroRsgucgSk4Ph9AvBXvTB
+r29QcwsNa8gQ6OtGeyNjA2aKWwl7wGRmLQh/cUEGMtV26Bbfhf2xiFI5KRzgv7yO
+D+c5sVaNwpuj2fgiloSs1Q2z7/LTEerlvuXM+kkRApNII32yllKI/xVLTyi2wG3/
+Fa/7WnTHLX0xUkhZSt9SD5ZaeAkGsZIP26G+UiMRkwKBgQD1y54DsXF7dwXhxkxA
+NWSOzSrf9VUcZltUnyA9l5gvmHBW3kWIxtJtKLKjweLDB7xVCJnyzGwB6uom+FGC
+HQYIG7nRYJ8433E8vmGR7nXaH8EiinHoKzEwKfTrGH8eScgKlPfDjsBOMfCpi25f
+GAY/MgjMZzG8zCroZwMyEiC2zwKBgQDOabnseYRyGM0J1GQOU/wZbPStZi4tGQwK
+goJYu4pzXCoZNirtC19lY8qVvwfU7ww0oH5X7RArQZ6T9QZZVI2H2mvQS8FNdxuu
+2QcfdCLRIaV5ZFcPz4VHRs9Qx/FGJ00Z3jTBVDHP4laPNYlgOv4wTmCeK7+ghgid
+gnu90rqhCwKBgQDHXj9vM3Ce+q30scmLk0NbaSNLwU0l2ghenSujieDRSk5kx6mT
+BeIM1KQBm/R4yT+DoZRtkk5RR+Bhd611YmFQFl0kbcD4epT49lth6RACuxsHD1DR
+RqeBL6cPQjFpueLeYnKNVq65Ply8yPHfhDcc71KfqVx4jQqIs3WuGXIblQKBgQDC
+0PjhH2QJSC0lbOeuukfDO5nHmxxUBkLeHIWn+AHZlZBKUVy8dDJqgIAxS6a5q5FK
+jnwQwrezC/D+1pFSeMJICbgeVZGxaoyfP0lAv50o42fJphGh44x4VHXRWZT4UJmt
+o5MJMUz+VzK5YZ8ySxukPiVkxAfOGxNAjmn6JE1vNwKBgQCSmStJeyfKDsjwsLka
+WZfu4t2IRwhbhlfx9I+Zlo+W0QBp9uAgaMU2Kl5JmHRCpv5M7nOEo7mFJzqjkBAb
+/VbwD4T0IQe7VwNr1O/g5ZIcYzPo0hqieE1Te2lYvN6/NUzOTTtPxU6uROizB8UU
+bN6twW7zpQsJ6g8rF0sRNl37RA==
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l2.ca.pem.crt b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l2.ca.pem.crt
new file mode 100644
index 000000000..5d2281a41
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l2.ca.pem.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDYDCCAkigAwIBAgICVgMwDQYJKoZIhvcNAQELBQAwJjEXMBUGA1UEAwwOVGVz
+dCBTdWIgQ0EgTDExCzAJBgNVBAYTAkRFMB4XDTE3MDcyNjEzMjU1MVoXDTE5MDcy
+NzEzMjU1MVowJjEXMBUGA1UEAwwOVGVzdCBTdWIgQ0EgTDIxCzAJBgNVBAYTAkRF
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqjnbvnWP+qxoOn/Z2ipf
++8/S5tRHyyZar9pUfk6iFn+MQbJk9SNteyin5Ed/oJhaC5GRtXaEFeovqNaWjpWr
+vBJd3wMQVVJon/JirABTR/pDOdcbc4KOxi/NKTBC9UQXpsLnUUcYcOijD1FY5XLd
+tK2QLLn9ZGeN/SdoUQQrv28lMRMkAFDOc3oQ9kXRAXb1HQohd/tGQiE7Tbb1BpSl
+5tDXOKauMp5fUNq908SdE66NOxHT5ZqRjKtnP0WptMdv//WZLqiaIH+WsrWBPKnG
+r10CTGo0tBjY17yunbikAs3qag2nG0B5n7r+9CoBDtRvMGMdmW4CZiar3byvSuv6
+4wIDAQABo4GXMIGUMB8GA1UdIwQYMBaAFOVlo8qN1W5WsD5+q15XOJoWA/3hMB0G
+A1UdDgQWBBTBDdOEYV1FUMQbC54OTgbjiHQY4jAOBgNVHQ8BAf8EBAMCAQYwEwYD
+VR0gAQH/BAkwBzAFBgMqAwQwEgYDVR0TAQH/BAgwBgEB/wIBADAZBgNVHSEBAf8E
+DzANMAsGAyoDBAYELQYHCDANBgkqhkiG9w0BAQsFAAOCAQEAFa/4PazczC+cUA9m
+/HKDoOwN12P7X6sUxD7xVVUsc66/AKpHol8GitaIryCpH3RG8O2f6yAi7cpLzwed
+KSwKs/cU8PB4mxgAJx0e5gDhTFpDQm4vj4dtFdkUl0j7v9GA+ZpZcCIlTF2sKEkg
+PJxEFbXs9hjlI5wQfMUhUz3Hxts8w1HNrriYUABlYqNxENC7Wul94Rqa8qa5ON7w
+/wzN2suM2uzo/Kq11lHumAKJsrw97kRssJIvMcdeiTs8J+zx2BBcPadQBqYz30pS
+B46pHIaW8CBwTO2R3Zo7XM/ZtHQXk708vLzZjgj4TTpYLHXKGw2Hrffo/nPYtKcj
++bGWFw==
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l2.pem b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l2.pem
new file mode 100644
index 000000000..5585b32ea
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_19/cert_path_ext_19_sub_ca_l2.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqOdu+dY/6rGg6
+f9naKl/7z9Lm1EfLJlqv2lR+TqIWf4xBsmT1I217KKfkR3+gmFoLkZG1doQV6i+o
+1paOlau8El3fAxBVUmif8mKsAFNH+kM51xtzgo7GL80pMEL1RBemwudRRxhw6KMP
+UVjlct20rZAsuf1kZ439J2hRBCu/byUxEyQAUM5zehD2RdEBdvUdCiF3+0ZCITtN
+tvUGlKXm0Nc4pq4ynl9Q2r3TxJ0Tro07EdPlmpGMq2c/Ram0x2//9ZkuqJogf5ay
+tYE8qcavXQJMajS0GNjXvK6duKQCzepqDacbQHmfuv70KgEO1G8wYx2ZbgJmJqvd
+vK9K6/rjAgMBAAECggEAGxebTCxMzoIrEohvpUPSQ/MXJ2rIxGHl1BAlG3crX/ZL
+3dblL4jEb3IQiooAm5Az4Jx5+s4ShqRfknkYvDfA/e1UaF6F9nZntXEv2B0zJAUG
+Nwnv0goI7C0Gc5Q9S+ja9M0XYL22e53i+diiE96cv5lSFXRCinzawdxIQ4Cs78of
+l3eV5AOsbkMjH0cAo2+tvWgtraZXJZ24hbvSNl2LvmPTdFFoDicwKHK5uWBwgaLC
+wv0qGzIJqMWe+61bo/8qGPx2eq0BoYLHG9uw5aYwL9f1NkKXYKsXV4T0GpBOXlEf
+HFrvsW6r/lVfONcYLxWFxjC9SlCfGQQ0h7NIIyyecQKBgQDhF4GjK4nC7rKHzcRm
+jgtWqWt5ozdygPI11LLMXGMxiFPY1igfp2cKcwk/aq78ZZYC5kHewx8NEWcn/eHu
+fw9tQ7ykp1jDsAbTEG53BqEXGEkT251NAp/mfxvxNeNWLJrErtRarGrFLS9/eaAL
+yutl+/H9EboklgYoY9I5B29jsQKBgQDBmbFgWHOJkz8A7qEN6VTWnfvR/RbczMif
+dYwU4NUuUuPJCT7k8om0LW1/7f7K+pEJ6gBRaLjhLKKJXoOkZnqjOIut+aKqA+5G
+bCCcZUDbhaYDLKkUoDgdcRQBRIedEnRAI/+brK/+6XkppSm8LEUaDHXaJomUj1AN
+knB5Ey3Q0wKBgBUNz9BlWCNllEljk8VL7/+RJT5hZ+RL71vdo0O+OID/kWgsz9/2
+FotBq1HFNszg66ElzG97rMHaKN3yv1lBhT3hIhn8lS7onhrL5Kk5c4Pnf55d4l67
+qh0zMnfjZHpA/dD70V0R14LN8S1pQPEZb99AK6hSKikV50mL3LP84AxhAoGBAIew
+XcaGF+xLnHPdzFmAuSp2reFefmCg0tgYPecAMcn25JmpdkBm0SbMVBu+xb6j4XXO
+YQyt1i5T51NaP+/At6GgZx23gk+g06bd7/lNaiixwkolShgft1TDRV8iFd576ahu
+0p7caLnED1yl2tt9N61rIEqWigTqcRQiF9x0Gb9rAoGAT98G6jErKan9QIs2JPAu
+Pr6Y/10YB0u9oXTg/AtiPyrkTiiYjCmAn+InVSq8X2c/0MX8Hrt3/mqKq41UE0lD
+OLoRfFNAosy1NJMepxE7B5oBUFfotAQkp/4tO7iAQZpM1HN6rJG/w610KcVfj0eM
+UXkHny3cEbCVb3o48GZX3x8=
+-----END PRIVATE KEY----- \ No newline at end of file
diff --git a/src/tests/data/x509/bsi/cert_path_ext_19/description.txt b/src/tests/data/x509/bsi/cert_path_ext_19/description.txt
new file mode 100644
index 000000000..eb506729c
--- /dev/null
+++ b/src/tests/data/x509/bsi/cert_path_ext_19/description.txt
@@ -0,0 +1,3 @@
+Test Case: CERT_PATH_EXT_19
+
+Purpose: Checks the behaviour of an application when the first intermediate certificate in a certification path of length 3 contains a Policy Constraints extension with inhibitPolicyMapping=0 and requireExplicitPolicy=0. The next certificate in the path has a Policy Mappings extension which maps the only valid policy of the path to another policy. Every certificate has the same policy. This path is invalid because the inhibited policy mapping renders it impossible to have a valid policy.
diff --git a/src/tests/data/x509/bsi/expected.txt b/src/tests/data/x509/bsi/expected.txt
new file mode 100644
index 000000000..6b609a201
--- /dev/null
+++ b/src/tests/data/x509/bsi/expected.txt
@@ -0,0 +1,54 @@
+cert_path_algo_strength_01$Hash function used is considered too weak for security
+cert_path_algo_strength_02$Hash function used is considered too weak for security
+cert_path_algo_strength_03$Signature error
+cert_path_common_01$Verified
+cert_path_common_02$Cannot establish trust
+cert_path_common_03$Invalid argument Decoding error: CERTIFICATE decoding failed: Invalid argument Decoding error: X.509 Certificate had differing algorithm identifers in inner and outer ID fields
+cert_path_common_04$Certificate signed with unknown/unavailable algorithm
+cert_path_common_05$Invalid argument Decoding error: CERTIFICATE decoding failed: Invalid argument Decoding error: BER: Value truncated
+cert_path_common_06$Warning: Certificate serial number is negative
+cert_path_common_07$Certificate is not yet valid
+cert_path_common_08$Certificate has expired
+cert_path_common_09$Certificate is not yet valid
+cert_path_common_10$Certificate has expired
+cert_path_common_11$Invalid argument Decoding error: CERTIFICATE decoding failed: Invalid argument Decoding error: Unknown X.509 cert version 5
+cert_path_common_12$Warning: Distinguished name too long
+cert_path_common_13$Verified
+cert_path_common_14$Verified
+cert_path_CRL_01$No revocation data
+cert_path_CRL_02$Certificate is revoked
+cert_path_CRL_03$Certificate is revoked
+cert_path_CRL_04$CRL bad signature
+cert_path_CRL_05$Certificate is revoked
+cert_path_CRL_06$Certificate is revoked
+cert_path_CRL_07$Certificate is revoked
+cert_path_CRL_08$CRL response is not yet valid
+cert_path_CRL_09$CRL has expired
+cert_path_CRL_10$Certificate is revoked
+cert_path_CRL_11$Certificate is revoked
+cert_path_CRL_12$No revocation data
+cert_path_CRL_13$No CRL with matching distribution point for certificate
+cert_path_CRL_14$Invalid argument Decoding error: X509 CRL decoding failed: Invalid argument Decoding error: BER: Tag mismatch when decoding got 65280/65280 expected 3/0
+cert_path_CRL_15$No CRL with matching distribution point for certificate
+cert_path_CRL_16$Certificate is revoked
+cert_path_crypt_01$Signature error
+cert_path_crypt_02$Signature error
+cert_path_ext_01$Encountered extension in certificate with version < 3
+cert_path_ext_02$Encountered extension in certificate with version < 3
+cert_path_ext_03$Verified
+cert_path_ext_04$Unknown critical extension encountered
+cert_path_ext_05$Duplicate certificate extension encountered
+cert_path_ext_06$CA certificate not allowed to issue certs
+cert_path_ext_07$CA certificate not allowed to issue certs
+cert_path_ext_08$Certificate chain too long
+cert_path_ext_09$Verified
+cert_path_ext_10$Invalid argument Decoding error: CERTIFICATE decoding failed: Invalid argument Decoding error: Decoding X.509 extension 2.5.29.15 failed failed with exception Invalid argument Decoding error: BER: Bad tag for usage constraint: 16/32
+cert_path_ext_11$CA certificate not allowed to issue certs
+cert_path_ext_12$Certificate contains duplicate policy
+cert_path_ext_13$Unknown critical extension encountered
+cert_path_ext_14$Unknown critical extension encountered
+cert_path_ext_15$Certificate does not pass name constraint
+cert_path_ext_16$Certificate does not pass name constraint
+#cert_path_ext_17$
+cert_path_ext_18$Unknown critical extension encountered
+cert_path_ext_19$Unknown critical extension encountered
diff --git a/src/tests/data/x509/bsi/readme.txt b/src/tests/data/x509/bsi/readme.txt
new file mode 100644
index 000000000..2895eb597
--- /dev/null
+++ b/src/tests/data/x509/bsi/readme.txt
@@ -0,0 +1,14 @@
+The test cases were developed during a project with the German BSI.
+
+Each test case contains
+* An end certificate that is to be validated: contains "TC" in its certificate file name
+* A trusted CA certificate: contains "TA" in its certificate file name
+* A set of sub CA certificates that may or may not be needed to construct a patht from TC to TA
+* A description.txt file that explains what the is meant to be tested
+
+expected.txt contains the status code that is expected as the path validation
+output for each test case. The expected output may also be the message string
+of an exception.
+
+Certificate revocation lists must be checked if and only if the test directory
+has "CRL" in its filename. \ No newline at end of file
diff --git a/src/tests/data/x509/pss_certs/03/end.crt b/src/tests/data/x509/pss_certs/03/end.crt
index f6298057d..f726924f0 100644
--- a/src/tests/data/x509/pss_certs/03/end.crt
+++ b/src/tests/data/x509/pss_certs/03/end.crt
@@ -1,53 +1,53 @@
------BEGIN CERTIFICATE-----
-MIIErDCCA2CgAwIBAgIGAVyhUN7SMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUD
-BAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIDBoMQ8wDQYD
-VQQDDAZQU1MtQ0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3Rh
-bjEPMA0GA1UEBwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxEDAOBgNVBAYTB0dlcm1h
-bnkwIBcNOTkxMjMxMjMwMDAwWhgPMjA5OTEyMzEyMzAwMDBaMGoxETAPBgNVBAMM
-CFBTUy1DZXJ0MRQwEgYDVQQLDAtCb3Rhbi1UZXN0czEOMAwGA1UECgwFQm90YW4x
-DzANBgNVBAcMBkJvY2h1bTEMMAoGA1UECAwDTlJXMRAwDgYDVQQGEwdHZXJtYW55
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAodW01rU/fvHj0hzb/BbR
-uB+XW+Hu63eVygItU8qP7XJc4DSMW+uCy8BAMQ1/V+fAiKC343tTooGItmXcGrq5
-UcR9OROv5iyb5JVnwOx6Q0AZKM92ySBMuysh2TQwhuOMfPylwTC5ufOrk+Lt7KgJ
-PKPe8MTFkG5OUOhwZudcYTijE6FFSMJ0AfSlQw/BsIG1Vs55dOrsqHjHtrmpehnm
-NeET39j7nm6QZjJ2tVZr++rpy2mz5FJ7aiIxwER7Zy6QNojvAUiOj0A9LlTwZGZS
-fc3mfST4HJfiriI5zC4RrwtdJ/xwgLS5Z3Mr67afguVkAsPk7mb8q2FkqKn79M4T
-dQIDAQABo4HvMIHsMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMIGXBgNV
-HSMEgY8wgYyAFHnlihwNezCz/0+QfDeNJjPHHUlOoWykajBoMQ8wDQYDVQQDDAZQ
-U1MtQ0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3RhbjEPMA0G
-A1UEBwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxEDAOBgNVBAYTB0dlcm1hbnmCBgFc
-oKxc1DATBgNVHREEDDAKgghQU1MtQ2VydDAdBgNVHSUEFjAUBggrBgEFBQcDAQYI
-KwYBBQUHAwIwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqG
-SIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IBAQCGxhXlQLdsOi/fPED9RG4h
-0W2S6zNiAlOnCnwgw/Jo9JoPEEknKKohIc5RfRdB5oPijiVBBtBnxQIfCaPSULf4
-KDVLC8wNLFb8N1VB0N/A7Uju6+5AHMu5Yq4ka5RFxTvB1zXfCnxkezma5EHsuGBM
-nKJ6AnlvhpoPjNOgizKr06/qUoeLWPbDl2rFdtEoTjW/dpct2jBGZ3KWIcyJcW0o
-+Nunz+HlQc5Wjvpz2SqiF1B+m3ffv1Ehgrrk8nKe3KbGpxT2A40fWDGDJfsGssSH
-7y1ZSXQlofDnFMBo1k9nHlzK7+5rpBYX9rnfev9p7VghDx9KuHa6WyU7MC97r+N9
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEeTCCAy2gAwIBAgIGAVygrFzUMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUD
-BAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIDBoMQ8wDQYD
-VQQDDAZQU1MtQ0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3Rh
-bjEPMA0GA1UEBwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxEDAOBgNVBAYTB0dlcm1h
-bnkwIBcNOTkxMjMxMjMwMDAwWhgPMjA5OTEyMzEyMzAwMDBaMGgxDzANBgNVBAMM
-BlBTUy1DQTEUMBIGA1UECwwLQm90YW4tVGVzdHMxDjAMBgNVBAoMBUJvdGFuMQ8w
-DQYDVQQHDAZCb2NodW0xDDAKBgNVBAgMA05SVzEQMA4GA1UEBhMHR2VybWFueTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKZpazi/xuB2EDdsNCln3XAz
-njxyuwsGetZ4PK9OfEoxaDznFIv8Ll/MV2nO8tG5BiUzxw1KbfOFJOFKFaT1r7Y6
-/ipzOEAN+0ixx8c2PQWTs5oc1k4yJmhf8UpWHmqfyH4dXNqgJG2n3+3m8pK4D/G2
-ciE+fPaSHpJF1I0lQ+g+zKHoq2J1HR0KOz6hQBMSOxNe557GGecgKPwsnI7cJMFS
-CRUtA3njIhxcPNMix332NLz6Hi3H5TxPA+o3Y/Demfs/quauM3hb7M/DyLZ9k3no
-IUsQiSCZC8JyUkHTJAoRlL5FHPWP4CkKQ7CBF8evaiVm/RBZfI2CZ1ygTXaNOW8C
-AwEAAaOBvjCBuzAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zCBlwYD
-VR0jBIGPMIGMgBR55YocDXsws/9PkHw3jSYzxx1JTqFspGowaDEPMA0GA1UEAwwG
-UFNTLUNBMRQwEgYDVQQLDAtCb3Rhbi1UZXN0czEOMAwGA1UECgwFQm90YW4xDzAN
-BgNVBAcMBkJvY2h1bTEMMAoGA1UECAwDTlJXMRAwDgYDVQQGEwdHZXJtYW55ggYB
-XKCsXNQwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3
-DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IBAQAtcKFeatctcgDoJdx5nPK5JLrp
-cQL09M1DEDvmw+qlo9z9hUI60cD8r351jMQ2aMV+ba0NT/El2P7WWumRpW+7gkAu
-uUwlnybtBTF7J2aDoA/M+vN6AkuWlJUc3A5TnsKQE1KkLmENp8ofD8UgUZjlQP8H
-JBQ7YnPzdpCdh1yI1uOn6rxYkFq5BR+Wqj6wI9oYMTPSiZFhTnC1zYC1wJuJRR70
-imkMHZsJ3Ov4vMCBfnkf7ONte/HUcc14VW8q/vmiGONfER/JXm1D+bJHwZGBerHC
-4s369aikQMYGi3mav6GIUQOPrnPCQpOmocl0QsG/QTcKJot1K4kDR3uwAsOy
------END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEnTCCA1GgAwIBAgIGAWAB9W4PMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUD
+BAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIDBjMQ8wDQYD
+VQQDDAZQU1MtQ0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3Rh
+bjEPMA0GA1UEBwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxCzAJBgNVBAYTAkRFMCAX
+DTAwMTIzMTIzMDAwMFoYDzIwOTgxMjMxMjMwMDAwWjBlMREwDwYDVQQDDAhQU1Mt
+Q2VydDEUMBIGA1UECwwLQm90YW4tVGVzdHMxDjAMBgNVBAoMBUJvdGFuMQ8wDQYD
+VQQHDAZCb2NodW0xDDAKBgNVBAgMA05SVzELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCxW+LMi18HK+SRoKI3m2d3sMnI0GH5UbaI
+q3l5RdxFD0iUdiBVI6trbxPcDSNVovPOs2Y5C0tO1Wh6E9weU4Qck/oB3hn0XI9y
+cyWzgdj/tTfE4/2P96Mo5jRi1AsM3GXGsKmuKULCYItjuGeEbz31tMmaOCQ8o41a
+8eQrYljFWgWkEMUa1AmjoTTzR5WjkuHUtpUFvSjFk7+ZNRFv+WxvZ8KB9Zdb/HDJ
+XIKdOL5CuL+3iSQn0yZM3iU5kTxkTjCC8jcCNTe3s/VsAX/ij5+jmU8ln/sAqOGC
+lGmIlZcYi7ojw53Wvvw8duNFZPyK1PoI5UVINeK2uSW2vt33Ot9fAgMBAAGjgeow
+gecwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwgZIGA1UdIwSBijCBh4AU
+NvWUOAnGk/vcVjyy75iIFkmxn1yhZ6RlMGMxDzANBgNVBAMMBlBTUy1DQTEUMBIG
+A1UECwwLQm90YW4tVGVzdHMxDjAMBgNVBAoMBUJvdGFuMQ8wDQYDVQQHDAZCb2No
+dW0xDDAKBgNVBAgMA05SVzELMAkGA1UEBhMCREWCBgFgAfJIKTATBgNVHREEDDAK
+gghQU1MtQ2VydDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwQQYJKoZI
+hvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgB
+ZQMEAgEFAKIDAgEgA4IBAQAIvskMuvUUlpCj6aAg1p8+CuMPWTyfjayqiJ+8IDIp
+up51n4H5IpAhnp4MsXQ3oySsXSe7RmgkOFTrei8U2B9v+nf2ebCOjEl//cgEHMqC
+pVAJUcaiG/TL2RhZjzAXebk7R4Wia1ZXKiMLvFk84aVbSFfdb1S+RnwqpAMC+VAy
+Qb3GzShRSDUkk1TiuujBdKa/mnv2Qs2OBHcjD6elXVnp+bYbsvET1uizRaQ8yEOD
+DnZhzEGxWsZKsnsApJt/iEZnK5bdLeS7FCp15BgPlphNjvFV6lO75Tv4x1JGsHZl
+FFYJzCWCZd1Egp5c5zMAC/PRjRUQ04sAmynOHEs0jp2T
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEajCCAx6gAwIBAgIGAWAB8kgpMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUD
+BAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIDBjMQ8wDQYD
+VQQDDAZQU1MtQ0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3Rh
+bjEPMA0GA1UEBwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxCzAJBgNVBAYTAkRFMCAX
+DTk5MTIzMTIzMDAwMFoYDzIwOTkxMjMxMjMwMDAwWjBjMQ8wDQYDVQQDDAZQU1Mt
+Q0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3RhbjEPMA0GA1UE
+BwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxCzAJBgNVBAYTAkRFMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg6QT4bJpuTGy2+eG1h4O22XQwCWz2wAmerQd
+xK1oFeXzfOUR0cnpGBDvhIzprK7Ino0SKuV9WBDCw8wQakx45Y1YNoQJ7Y816B1d
+cu2IsRX5T+CwAC5awJIMOYKN+izb7ad5ZvOBKZbr0I0kTut7ZtKJS67IUH/RqxXY
+KsOLOkTtpiTKGMLMUPOjFgbhVxzn8z9p8zgwNbrSXlUVazsov3JfB6xVQRu6wNSw
+i1K9c3NmJPD+jN+F2Ga1Y1bhEI2GJUBsulg5nfJ9y+p5Xez8OsqM3vMZ9ukhl0l9
+UwHxebwzRKL/yad3iXiPAV7a2tluZs2WgnlHlTTMSVBDTgzVgQIDAQABo4G5MIG2
+MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MIGSBgNVHSMEgYowgYeA
+FDb1lDgJxpP73FY8su+YiBZJsZ9coWekZTBjMQ8wDQYDVQQDDAZQU1MtQ0ExFDAS
+BgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3RhbjEPMA0GA1UEBwwGQm9j
+aHVtMQwwCgYDVQQIDANOUlcxCzAJBgNVBAYTAkRFggYBYAHySCkwQQYJKoZIhvcN
+AQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQME
+AgEFAKIDAgEgA4IBAQAj45MXBTbkT7M07h+EFBnjCTZ7SriCw3nhZAjSqK35EjGH
+l66YRr/oaqgyWaL67TBDNG0yUtW42chOXmbvgwryvKganUjJsOmaYqOng1V4C6N2
+2ld+pMvQSLG1q6O1lfJLKRMKfbEuwoza8CiBXqzrKFA1LIc8RgWQ83pyGSsdK6yq
+fpExGBDk8tZI5pVLiSfINcqStr+tSt8egrkD4O437li0paALfL719jVjH3vL6L+T
+dZ89ty1Pv30bvipPe0SUGtiUiNEvdR+ia8WJtjKq18mKwklPH/DmhS5IuNawwoo5
+XXNV7igmlyKvO+yoa67HNw1w0d4tRCEQJnM38zuV
+-----END CERTIFICATE-----
diff --git a/src/tests/data/x509/pss_certs/03/root.crt b/src/tests/data/x509/pss_certs/03/root.crt
index deb03ade9..253e616bf 100644
--- a/src/tests/data/x509/pss_certs/03/root.crt
+++ b/src/tests/data/x509/pss_certs/03/root.crt
@@ -1,26 +1,26 @@
------BEGIN CERTIFICATE-----
-MIIEeTCCAy2gAwIBAgIGAVygrFzUMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUD
-BAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIDBoMQ8wDQYD
-VQQDDAZQU1MtQ0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3Rh
-bjEPMA0GA1UEBwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxEDAOBgNVBAYTB0dlcm1h
-bnkwIBcNOTkxMjMxMjMwMDAwWhgPMjA5OTEyMzEyMzAwMDBaMGgxDzANBgNVBAMM
-BlBTUy1DQTEUMBIGA1UECwwLQm90YW4tVGVzdHMxDjAMBgNVBAoMBUJvdGFuMQ8w
-DQYDVQQHDAZCb2NodW0xDDAKBgNVBAgMA05SVzEQMA4GA1UEBhMHR2VybWFueTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKZpazi/xuB2EDdsNCln3XAz
-njxyuwsGetZ4PK9OfEoxaDznFIv8Ll/MV2nO8tG5BiUzxw1KbfOFJOFKFaT1r7Y6
-/ipzOEAN+0ixx8c2PQWTs5oc1k4yJmhf8UpWHmqfyH4dXNqgJG2n3+3m8pK4D/G2
-ciE+fPaSHpJF1I0lQ+g+zKHoq2J1HR0KOz6hQBMSOxNe557GGecgKPwsnI7cJMFS
-CRUtA3njIhxcPNMix332NLz6Hi3H5TxPA+o3Y/Demfs/quauM3hb7M/DyLZ9k3no
-IUsQiSCZC8JyUkHTJAoRlL5FHPWP4CkKQ7CBF8evaiVm/RBZfI2CZ1ygTXaNOW8C
-AwEAAaOBvjCBuzAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zCBlwYD
-VR0jBIGPMIGMgBR55YocDXsws/9PkHw3jSYzxx1JTqFspGowaDEPMA0GA1UEAwwG
-UFNTLUNBMRQwEgYDVQQLDAtCb3Rhbi1UZXN0czEOMAwGA1UECgwFQm90YW4xDzAN
-BgNVBAcMBkJvY2h1bTEMMAoGA1UECAwDTlJXMRAwDgYDVQQGEwdHZXJtYW55ggYB
-XKCsXNQwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3
-DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IBAQAtcKFeatctcgDoJdx5nPK5JLrp
-cQL09M1DEDvmw+qlo9z9hUI60cD8r351jMQ2aMV+ba0NT/El2P7WWumRpW+7gkAu
-uUwlnybtBTF7J2aDoA/M+vN6AkuWlJUc3A5TnsKQE1KkLmENp8ofD8UgUZjlQP8H
-JBQ7YnPzdpCdh1yI1uOn6rxYkFq5BR+Wqj6wI9oYMTPSiZFhTnC1zYC1wJuJRR70
-imkMHZsJ3Ov4vMCBfnkf7ONte/HUcc14VW8q/vmiGONfER/JXm1D+bJHwZGBerHC
-4s369aikQMYGi3mav6GIUQOPrnPCQpOmocl0QsG/QTcKJot1K4kDR3uwAsOy
------END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEajCCAx6gAwIBAgIGAWAB8kgpMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUD
+BAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIDBjMQ8wDQYD
+VQQDDAZQU1MtQ0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3Rh
+bjEPMA0GA1UEBwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxCzAJBgNVBAYTAkRFMCAX
+DTk5MTIzMTIzMDAwMFoYDzIwOTkxMjMxMjMwMDAwWjBjMQ8wDQYDVQQDDAZQU1Mt
+Q0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3RhbjEPMA0GA1UE
+BwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxCzAJBgNVBAYTAkRFMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg6QT4bJpuTGy2+eG1h4O22XQwCWz2wAmerQd
+xK1oFeXzfOUR0cnpGBDvhIzprK7Ino0SKuV9WBDCw8wQakx45Y1YNoQJ7Y816B1d
+cu2IsRX5T+CwAC5awJIMOYKN+izb7ad5ZvOBKZbr0I0kTut7ZtKJS67IUH/RqxXY
+KsOLOkTtpiTKGMLMUPOjFgbhVxzn8z9p8zgwNbrSXlUVazsov3JfB6xVQRu6wNSw
+i1K9c3NmJPD+jN+F2Ga1Y1bhEI2GJUBsulg5nfJ9y+p5Xez8OsqM3vMZ9ukhl0l9
+UwHxebwzRKL/yad3iXiPAV7a2tluZs2WgnlHlTTMSVBDTgzVgQIDAQABo4G5MIG2
+MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MIGSBgNVHSMEgYowgYeA
+FDb1lDgJxpP73FY8su+YiBZJsZ9coWekZTBjMQ8wDQYDVQQDDAZQU1MtQ0ExFDAS
+BgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3RhbjEPMA0GA1UEBwwGQm9j
+aHVtMQwwCgYDVQQIDANOUlcxCzAJBgNVBAYTAkRFggYBYAHySCkwQQYJKoZIhvcN
+AQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQME
+AgEFAKIDAgEgA4IBAQAj45MXBTbkT7M07h+EFBnjCTZ7SriCw3nhZAjSqK35EjGH
+l66YRr/oaqgyWaL67TBDNG0yUtW42chOXmbvgwryvKganUjJsOmaYqOng1V4C6N2
+2ld+pMvQSLG1q6O1lfJLKRMKfbEuwoza8CiBXqzrKFA1LIc8RgWQ83pyGSsdK6yq
+fpExGBDk8tZI5pVLiSfINcqStr+tSt8egrkD4O437li0paALfL719jVjH3vL6L+T
+dZ89ty1Pv30bvipPe0SUGtiUiNEvdR+ia8WJtjKq18mKwklPH/DmhS5IuNawwoo5
+XXNV7igmlyKvO+yoa67HNw1w0d4tRCEQJnM38zuV
+-----END CERTIFICATE-----
diff --git a/src/tests/data/x509/pss_certs/04/end.crt b/src/tests/data/x509/pss_certs/04/end.crt
index b4269b27f..e83a40df8 100644
--- a/src/tests/data/x509/pss_certs/04/end.crt
+++ b/src/tests/data/x509/pss_certs/04/end.crt
@@ -1,54 +1,53 @@
------BEGIN CERTIFICATE-----
-MIIErzCCA2OgAwIBAgIGAVyhu3riMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUD
-BAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIDBoMQ8wDQYD
-VQQDDAZQU1MtQ0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3Rh
-bjEPMA0GA1UEBwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxEDAOBgNVBAYTB0dlcm1h
-bnkwIBcNOTkxMjMxMjMwMDAwWhgPMjA5OTEyMzEyMzAwMDBaMG8xFjAUBgNVBAMM
-DVBTUy1EaXNrLUNlcnQxFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVC
-b3RhbjEPMA0GA1UEBwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxEDAOBgNVBAYTB0dl
-cm1hbnkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCViOl2DheS1Fks
-/IJDP+IYawWWtEh7RAJRd5wz1oSoK0i4I8Yg12JzkFuhypIUOQlT92woDN+nIwc/
-+Ifl8LelowIjZNkdL+oERP++SOzQu6r1lXlIHDS9hEcNF/40YhyKKMxCwTa9KqGO
-qAWiPfXu6uFKQlPMorFwY/t3gbDdWAcNQl4XRSjQEk7fnZO2N4mSpCWxB1BuMRPE
-UAe3beuzSi5jGEDHXXNBk5imk3FfzJ7MctnYU0agWW4fuMJ/zmNLPQ/FMklST6cK
-nweA5pMuJyTw2gHTnReOR5i9J0WuHu1r3QuwBVg2eWiavIdonYTw9xqagaCv4EJO
-umkxlsJPAgMBAAGjge0wgeowDgYDVR0PAQH/BAQDAgUgMAwGA1UdEwEB/wQCMAAw
-gZcGA1UdIwSBjzCBjIAUeeWKHA17MLP/T5B8N40mM8cdSU6hbKRqMGgxDzANBgNV
-BAMMBlBTUy1DQTEUMBIGA1UECwwLQm90YW4tVGVzdHMxDjAMBgNVBAoMBUJvdGFu
-MQ8wDQYDVQQHDAZCb2NodW0xDDAKBgNVBAgMA05SVzEQMA4GA1UEBhMHR2VybWFu
-eYIGAVygrFzUMBgGA1UdEQQRMA+CDVBTUy1EaXNrLUNlcnQwFgYDVR0lBA8wDQYL
-KwYBBAGB630NAQEwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoG
-CSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IBAQB19KCooYqEpGrYD8Go
-cUlSq31F8nUWfcO2cm5qDg3D74LXfrMqIDxB7ZFkkaR72bBUsOvKlgnklPvIq/iG
-8ELCIgY13XWt9xmzkXMw08Y0CKZq5JmZDP3C9SB2l4lhDVPpqI+tOfzDBPk+g/Mp
-t6fF+j3V2ZYB0iYN/iNoyX0gldpQeJc4JE3VSOKixFW+SALFZm1aHMVEGBJwWBnp
-VAF2LRB6cVKn26eHdU9B2Cxc7puqQX/VPjoY+OtMv9IugQVAd1aeb0Fj86f2yFhc
-FVlS/4Zf7EllJtIsXJXVyhbc6AR3Phvf2Bl2PkUAKLEZ9b7WTNfXdv3cmSmsOo20
-aWDg
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEeTCCAy2gAwIBAgIGAVygrFzUMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUD
-BAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIDBoMQ8wDQYD
-VQQDDAZQU1MtQ0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3Rh
-bjEPMA0GA1UEBwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxEDAOBgNVBAYTB0dlcm1h
-bnkwIBcNOTkxMjMxMjMwMDAwWhgPMjA5OTEyMzEyMzAwMDBaMGgxDzANBgNVBAMM
-BlBTUy1DQTEUMBIGA1UECwwLQm90YW4tVGVzdHMxDjAMBgNVBAoMBUJvdGFuMQ8w
-DQYDVQQHDAZCb2NodW0xDDAKBgNVBAgMA05SVzEQMA4GA1UEBhMHR2VybWFueTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKZpazi/xuB2EDdsNCln3XAz
-njxyuwsGetZ4PK9OfEoxaDznFIv8Ll/MV2nO8tG5BiUzxw1KbfOFJOFKFaT1r7Y6
-/ipzOEAN+0ixx8c2PQWTs5oc1k4yJmhf8UpWHmqfyH4dXNqgJG2n3+3m8pK4D/G2
-ciE+fPaSHpJF1I0lQ+g+zKHoq2J1HR0KOz6hQBMSOxNe557GGecgKPwsnI7cJMFS
-CRUtA3njIhxcPNMix332NLz6Hi3H5TxPA+o3Y/Demfs/quauM3hb7M/DyLZ9k3no
-IUsQiSCZC8JyUkHTJAoRlL5FHPWP4CkKQ7CBF8evaiVm/RBZfI2CZ1ygTXaNOW8C
-AwEAAaOBvjCBuzAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zCBlwYD
-VR0jBIGPMIGMgBR55YocDXsws/9PkHw3jSYzxx1JTqFspGowaDEPMA0GA1UEAwwG
-UFNTLUNBMRQwEgYDVQQLDAtCb3Rhbi1UZXN0czEOMAwGA1UECgwFQm90YW4xDzAN
-BgNVBAcMBkJvY2h1bTEMMAoGA1UECAwDTlJXMRAwDgYDVQQGEwdHZXJtYW55ggYB
-XKCsXNQwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3
-DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IBAQAtcKFeatctcgDoJdx5nPK5JLrp
-cQL09M1DEDvmw+qlo9z9hUI60cD8r351jMQ2aMV+ba0NT/El2P7WWumRpW+7gkAu
-uUwlnybtBTF7J2aDoA/M+vN6AkuWlJUc3A5TnsKQE1KkLmENp8ofD8UgUZjlQP8H
-JBQ7YnPzdpCdh1yI1uOn6rxYkFq5BR+Wqj6wI9oYMTPSiZFhTnC1zYC1wJuJRR70
-imkMHZsJ3Ov4vMCBfnkf7ONte/HUcc14VW8q/vmiGONfER/JXm1D+bJHwZGBerHC
-4s369aikQMYGi3mav6GIUQOPrnPCQpOmocl0QsG/QTcKJot1K4kDR3uwAsOy
------END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEljCCA0qgAwIBAgIGAWAB9gf1MEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUD
+BAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIDBjMQ8wDQYD
+VQQDDAZQU1MtQ0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3Rh
+bjEPMA0GA1UEBwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxCzAJBgNVBAYTAkRFMCAX
+DTAwMTIzMTIzMDAwMFoYDzIwOTgxMjMxMjMwMDAwWjBlMREwDwYDVQQDDAhQU1Mt
+Q2VydDEUMBIGA1UECwwLQm90YW4tVGVzdHMxDjAMBgNVBAoMBUJvdGFuMQ8wDQYD
+VQQHDAZCb2NodW0xDDAKBgNVBAgMA05SVzELMAkGA1UEBhMCREUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCD9AimnF+OhedVEzGPoKdkMufi7LD9TAWH
+hmpUYe7bHEd5m5IPg3CognneOuPKSMipg2TIyuEeV8XgD/TwGJHyeoVWjqQThq0S
+vi4nQI5SS3pqTpyguPDzvUaHepbKf9/LnhWHFngFrv1GRG5dvJrwMumED5VrIEdK
+Hb2GfG6P67nOIekZfnv6JMwHOjuiJ6rlKVtPDoXqdm4knl8k064QldyWG3ZmP5Dz
+K1KouRsb1Dyf/kmiY0dUopGe7236wtYAZFj2RJByFV+QbCV6+hUk8qaiw6W3JApv
+jltztIZuz4Y63Cz6m5ROb8f0osl/3Vq4tniOvfMovUoFVjzcHAhdAgMBAAGjgeMw
+geAwDgYDVR0PAQH/BAQDAgUgMAwGA1UdEwEB/wQCMAAwgZIGA1UdIwSBijCBh4AU
+NvWUOAnGk/vcVjyy75iIFkmxn1yhZ6RlMGMxDzANBgNVBAMMBlBTUy1DQTEUMBIG
+A1UECwwLQm90YW4tVGVzdHMxDjAMBgNVBAoMBUJvdGFuMQ8wDQYDVQQHDAZCb2No
+dW0xDDAKBgNVBAgMA05SVzELMAkGA1UEBhMCREWCBgFgAfJIKTATBgNVHREEDDAK
+gghQU1MtQ2VydDAWBgNVHSUEDzANBgsrBgEEAYHrfQ0BATBBBgkqhkiG9w0BAQow
+NKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUA
+ogMCASADggEBAGcIe3q6jTKjSGrD2xi512DUnZEPhqxrU7lUiXc+Q86QUQmr070R
+jy8g5uMHGe+/UUFbA0CMpopQgk6tIB1mfm6x5dX2SaQ6wgnEUx3FaSSVDQQGab/0
+Fb142s+2I3gt28uLr40YGZuRYz4GKdgZdC4D1+KR6ef9vRNdCfgwVCAUJFmuplSf
+yQo3/rufmV7PUS8M2q+/GYehoR/h8fX1TKCpeQQMrA8LLvt+FCF6J4xrwf9F5O+p
+lIDNFHhvKeN7ORLy+Xvxy3E9CD0pqbxn7CrAd/Arl3GCGAjELfncWaP7qV72RmkG
+LHNDGT/zvvX+TU3R1Q7eI5fiIL/OJvGn5/w=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEajCCAx6gAwIBAgIGAWAB8kgpMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUD
+BAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIDBjMQ8wDQYD
+VQQDDAZQU1MtQ0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3Rh
+bjEPMA0GA1UEBwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxCzAJBgNVBAYTAkRFMCAX
+DTk5MTIzMTIzMDAwMFoYDzIwOTkxMjMxMjMwMDAwWjBjMQ8wDQYDVQQDDAZQU1Mt
+Q0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3RhbjEPMA0GA1UE
+BwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxCzAJBgNVBAYTAkRFMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg6QT4bJpuTGy2+eG1h4O22XQwCWz2wAmerQd
+xK1oFeXzfOUR0cnpGBDvhIzprK7Ino0SKuV9WBDCw8wQakx45Y1YNoQJ7Y816B1d
+cu2IsRX5T+CwAC5awJIMOYKN+izb7ad5ZvOBKZbr0I0kTut7ZtKJS67IUH/RqxXY
+KsOLOkTtpiTKGMLMUPOjFgbhVxzn8z9p8zgwNbrSXlUVazsov3JfB6xVQRu6wNSw
+i1K9c3NmJPD+jN+F2Ga1Y1bhEI2GJUBsulg5nfJ9y+p5Xez8OsqM3vMZ9ukhl0l9
+UwHxebwzRKL/yad3iXiPAV7a2tluZs2WgnlHlTTMSVBDTgzVgQIDAQABo4G5MIG2
+MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MIGSBgNVHSMEgYowgYeA
+FDb1lDgJxpP73FY8su+YiBZJsZ9coWekZTBjMQ8wDQYDVQQDDAZQU1MtQ0ExFDAS
+BgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3RhbjEPMA0GA1UEBwwGQm9j
+aHVtMQwwCgYDVQQIDANOUlcxCzAJBgNVBAYTAkRFggYBYAHySCkwQQYJKoZIhvcN
+AQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQME
+AgEFAKIDAgEgA4IBAQAj45MXBTbkT7M07h+EFBnjCTZ7SriCw3nhZAjSqK35EjGH
+l66YRr/oaqgyWaL67TBDNG0yUtW42chOXmbvgwryvKganUjJsOmaYqOng1V4C6N2
+2ld+pMvQSLG1q6O1lfJLKRMKfbEuwoza8CiBXqzrKFA1LIc8RgWQ83pyGSsdK6yq
+fpExGBDk8tZI5pVLiSfINcqStr+tSt8egrkD4O437li0paALfL719jVjH3vL6L+T
+dZ89ty1Pv30bvipPe0SUGtiUiNEvdR+ia8WJtjKq18mKwklPH/DmhS5IuNawwoo5
+XXNV7igmlyKvO+yoa67HNw1w0d4tRCEQJnM38zuV
+-----END CERTIFICATE-----
diff --git a/src/tests/data/x509/pss_certs/04/root.crt b/src/tests/data/x509/pss_certs/04/root.crt
index deb03ade9..253e616bf 100644
--- a/src/tests/data/x509/pss_certs/04/root.crt
+++ b/src/tests/data/x509/pss_certs/04/root.crt
@@ -1,26 +1,26 @@
------BEGIN CERTIFICATE-----
-MIIEeTCCAy2gAwIBAgIGAVygrFzUMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUD
-BAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIDBoMQ8wDQYD
-VQQDDAZQU1MtQ0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3Rh
-bjEPMA0GA1UEBwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxEDAOBgNVBAYTB0dlcm1h
-bnkwIBcNOTkxMjMxMjMwMDAwWhgPMjA5OTEyMzEyMzAwMDBaMGgxDzANBgNVBAMM
-BlBTUy1DQTEUMBIGA1UECwwLQm90YW4tVGVzdHMxDjAMBgNVBAoMBUJvdGFuMQ8w
-DQYDVQQHDAZCb2NodW0xDDAKBgNVBAgMA05SVzEQMA4GA1UEBhMHR2VybWFueTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKZpazi/xuB2EDdsNCln3XAz
-njxyuwsGetZ4PK9OfEoxaDznFIv8Ll/MV2nO8tG5BiUzxw1KbfOFJOFKFaT1r7Y6
-/ipzOEAN+0ixx8c2PQWTs5oc1k4yJmhf8UpWHmqfyH4dXNqgJG2n3+3m8pK4D/G2
-ciE+fPaSHpJF1I0lQ+g+zKHoq2J1HR0KOz6hQBMSOxNe557GGecgKPwsnI7cJMFS
-CRUtA3njIhxcPNMix332NLz6Hi3H5TxPA+o3Y/Demfs/quauM3hb7M/DyLZ9k3no
-IUsQiSCZC8JyUkHTJAoRlL5FHPWP4CkKQ7CBF8evaiVm/RBZfI2CZ1ygTXaNOW8C
-AwEAAaOBvjCBuzAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zCBlwYD
-VR0jBIGPMIGMgBR55YocDXsws/9PkHw3jSYzxx1JTqFspGowaDEPMA0GA1UEAwwG
-UFNTLUNBMRQwEgYDVQQLDAtCb3Rhbi1UZXN0czEOMAwGA1UECgwFQm90YW4xDzAN
-BgNVBAcMBkJvY2h1bTEMMAoGA1UECAwDTlJXMRAwDgYDVQQGEwdHZXJtYW55ggYB
-XKCsXNQwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3
-DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IBAQAtcKFeatctcgDoJdx5nPK5JLrp
-cQL09M1DEDvmw+qlo9z9hUI60cD8r351jMQ2aMV+ba0NT/El2P7WWumRpW+7gkAu
-uUwlnybtBTF7J2aDoA/M+vN6AkuWlJUc3A5TnsKQE1KkLmENp8ofD8UgUZjlQP8H
-JBQ7YnPzdpCdh1yI1uOn6rxYkFq5BR+Wqj6wI9oYMTPSiZFhTnC1zYC1wJuJRR70
-imkMHZsJ3Ov4vMCBfnkf7ONte/HUcc14VW8q/vmiGONfER/JXm1D+bJHwZGBerHC
-4s369aikQMYGi3mav6GIUQOPrnPCQpOmocl0QsG/QTcKJot1K4kDR3uwAsOy
------END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEajCCAx6gAwIBAgIGAWAB8kgpMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUD
+BAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIDBjMQ8wDQYD
+VQQDDAZQU1MtQ0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3Rh
+bjEPMA0GA1UEBwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxCzAJBgNVBAYTAkRFMCAX
+DTk5MTIzMTIzMDAwMFoYDzIwOTkxMjMxMjMwMDAwWjBjMQ8wDQYDVQQDDAZQU1Mt
+Q0ExFDASBgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3RhbjEPMA0GA1UE
+BwwGQm9jaHVtMQwwCgYDVQQIDANOUlcxCzAJBgNVBAYTAkRFMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg6QT4bJpuTGy2+eG1h4O22XQwCWz2wAmerQd
+xK1oFeXzfOUR0cnpGBDvhIzprK7Ino0SKuV9WBDCw8wQakx45Y1YNoQJ7Y816B1d
+cu2IsRX5T+CwAC5awJIMOYKN+izb7ad5ZvOBKZbr0I0kTut7ZtKJS67IUH/RqxXY
+KsOLOkTtpiTKGMLMUPOjFgbhVxzn8z9p8zgwNbrSXlUVazsov3JfB6xVQRu6wNSw
+i1K9c3NmJPD+jN+F2Ga1Y1bhEI2GJUBsulg5nfJ9y+p5Xez8OsqM3vMZ9ukhl0l9
+UwHxebwzRKL/yad3iXiPAV7a2tluZs2WgnlHlTTMSVBDTgzVgQIDAQABo4G5MIG2
+MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MIGSBgNVHSMEgYowgYeA
+FDb1lDgJxpP73FY8su+YiBZJsZ9coWekZTBjMQ8wDQYDVQQDDAZQU1MtQ0ExFDAS
+BgNVBAsMC0JvdGFuLVRlc3RzMQ4wDAYDVQQKDAVCb3RhbjEPMA0GA1UEBwwGQm9j
+aHVtMQwwCgYDVQQIDANOUlcxCzAJBgNVBAYTAkRFggYBYAHySCkwQQYJKoZIhvcN
+AQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQME
+AgEFAKIDAgEgA4IBAQAj45MXBTbkT7M07h+EFBnjCTZ7SriCw3nhZAjSqK35EjGH
+l66YRr/oaqgyWaL67TBDNG0yUtW42chOXmbvgwryvKganUjJsOmaYqOng1V4C6N2
+2ld+pMvQSLG1q6O1lfJLKRMKfbEuwoza8CiBXqzrKFA1LIc8RgWQ83pyGSsdK6yq
+fpExGBDk8tZI5pVLiSfINcqStr+tSt8egrkD4O437li0paALfL719jVjH3vL6L+T
+dZ89ty1Pv30bvipPe0SUGtiUiNEvdR+ia8WJtjKq18mKwklPH/DmhS5IuNawwoo5
+XXNV7igmlyKvO+yoa67HNw1w0d4tRCEQJnM38zuV
+-----END CERTIFICATE-----
diff --git a/src/tests/test_certstor.cpp b/src/tests/test_certstor.cpp
index 9b3848f21..ea69e05c2 100644
--- a/src/tests/test_certstor.cpp
+++ b/src/tests/test_certstor.cpp
@@ -216,6 +216,73 @@ Test::Result test_certstor_sqlite3_all_subjects_test(const std::vector<Certifica
}
}
+Test::Result test_certstor_sqlite3_find_all_certs_test(const std::vector<CertificateAndKey>& certsandkeys)
+ {
+ Test::Result result("Certificate Store SQLITE3 - Find all certs");
+ try
+ {
+ auto& rng = Test::rng();
+ const std::string passwd(reinterpret_cast<const char*>(rng.random_vec(8).data()), 8);
+ // Just create a database in memory for testing (https://sqlite.org/inmemorydb.html)
+ Botan::Certificate_Store_In_SQLite store(":memory:", passwd, rng);
+
+ for(const auto& a : certsandkeys)
+ {
+ store.insert_cert(a.certificate);
+ }
+
+ for(const auto& a : certsandkeys)
+ {
+ auto res_vec = store.find_all_certs(a.certificate.subject_dn(), a.certificate.subject_key_id());
+ if(res_vec.size() != 1)
+ {
+ result.test_failure("SQLITE all lookup error");
+ return result;
+ }
+ else
+ {
+ std::stringstream a_ss;
+ a_ss << a.certificate.subject_dn();
+ std::stringstream res_ss;
+ res_ss << res_vec.at(0)->subject_dn();
+ result.test_eq("Check subject " + a_ss.str(), a_ss.str(), res_ss.str());
+ }
+ }
+
+ Botan::X509_Certificate same_dn_1 = Botan::X509_Certificate(
+ "./src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_sub_ca.ca.pem.crt");
+ Botan::X509_Certificate same_dn_2 = Botan::X509_Certificate(
+ "./src/tests/data/x509/bsi/cert_path_common_14/cert_path_common_14_wrong_sub_ca.ca.pem.crt");
+
+ store.insert_cert(same_dn_1);
+ store.insert_cert(same_dn_2);
+ auto res_vec = store.find_all_certs(same_dn_1.subject_dn(), {});
+
+ if(res_vec.size() != 2)
+ {
+ result.test_failure("SQLITE all lookup error (duplicate) " + std::to_string(res_vec.size()));
+ return result;
+ }
+ else
+ {
+ std::stringstream cert_ss;
+ cert_ss << same_dn_1.subject_dn();
+ std::stringstream res_ss;
+ res_ss << res_vec.at(0)->subject_dn();
+ result.test_eq("Check subject " + cert_ss.str(), cert_ss.str(), res_ss.str());
+ res_ss.str("");
+ res_ss << res_vec.at(1)->subject_dn();
+ result.test_eq("Check subject " + cert_ss.str(), cert_ss.str(), res_ss.str());
+ }
+ }
+ catch(const std::exception& e)
+ {
+ result.test_failure(e.what());
+ return result;
+ }
+ return result;
+ }
+
#endif
Test::Result test_certstor_find_hash_subject(const std::vector<CertificateAndKey>& certsandkeys)
@@ -329,6 +396,7 @@ class Certstor_Tests final : public Test
results.push_back(test_certstor_sqlite3_insert_find_remove_test(certsandkeys));
results.push_back(test_certstor_sqlite3_crl_test(certsandkeys));
results.push_back(test_certstor_sqlite3_all_subjects_test(certsandkeys));
+ results.push_back(test_certstor_sqlite3_find_all_certs_test(certsandkeys));
#endif
return results;
}
diff --git a/src/tests/test_x509_path.cpp b/src/tests/test_x509_path.cpp
index 2ac4a3fce..7ea0f5b04 100644
--- a/src/tests/test_x509_path.cpp
+++ b/src/tests/test_x509_path.cpp
@@ -16,10 +16,13 @@
#include <botan/pkcs10.h>
#endif
+#include <botan/exceptn.h>
+
#include <fstream>
#include <string>
#include <vector>
#include <map>
+#include <algorithm>
namespace Botan_Tests {
@@ -27,7 +30,7 @@ namespace {
#if defined(BOTAN_HAS_X509_CERTIFICATES) && defined(BOTAN_HAS_RSA) && defined(BOTAN_TARGET_OS_HAS_FILESYSTEM)
-std::map<std::string, std::string> read_results(const std::string& results_file)
+std::map<std::string, std::string> read_results(const std::string& results_file, const char delim = ':')
{
std::ifstream in(results_file);
if(!in.good())
@@ -49,7 +52,7 @@ std::map<std::string, std::string> read_results(const std::string& results_file)
continue;
}
- std::vector<std::string> parts = Botan::split_on(line, ':');
+ std::vector<std::string> parts = Botan::split_on(line, delim);
if(parts.size() != 2)
{
@@ -451,6 +454,177 @@ std::vector<Test::Result> PSS_Path_Validation_Tests::run()
BOTAN_REGISTER_TEST("x509_path_rsa_pss", PSS_Path_Validation_Tests);
+// The certificates in this test suite are signed using EMSA_PKCS1
+#ifdef BOTAN_HAS_EMSA_PKCS1
+
+class BSI_Path_Validation_Tests final : public Test
+ {
+ public:
+ std::vector<Test::Result> run() override;
+ };
+
+std::vector<Test::Result> BSI_Path_Validation_Tests::run()
+ {
+ std::vector<Test::Result> results;
+
+ const std::string bsi_test_dir = Test::data_dir() + "/x509/bsi";
+
+ try
+ {
+ // Do nothing, just test filesystem access
+ Botan::get_files_recursive(bsi_test_dir);
+ }
+ catch (Botan::No_Filesystem_Access&)
+ {
+ Test::Result result("BSI path validation");
+ result.test_note("Skipping due to missing filesystem access");
+ results.push_back(result);
+ return results;
+ }
+
+ std::map<std::string, std::string> expected = read_results(
+ Test::data_file("/x509/bsi/expected.txt"), '$');
+
+ for (auto& i : expected)
+ {
+ const std::string test_name = i.first;
+ const std::string expected_result = i.second;
+
+ const std::string test_dir = bsi_test_dir + "/" + test_name;
+
+ Test::Result result("BSI path validation");
+ result.start_timer();
+
+ const std::vector<std::string> all_files =
+ Botan::get_files_recursive(test_dir);
+
+ if (all_files.empty())
+ {
+ result.test_failure("No test files found in " + test_dir);
+ results.push_back(result);
+ continue;
+ }
+
+ Botan::Certificate_Store_In_Memory trusted;
+ std::vector<Botan::X509_Certificate> certs;
+
+ auto validation_time =
+ Botan::calendar_point(2017, 8, 19, 12, 0, 0).to_std_timepoint();
+
+ // By convention: if CRL is a substring if the directory name,
+ // we need to check the CRLs
+ bool use_crl = false;
+ if (test_dir.find("CRL") != std::string::npos)
+ {
+ use_crl = true;
+ }
+
+ try
+ {
+ for (auto const& file : all_files)
+ {
+ // found a trust anchor
+ if (file.find("TA") != std::string::npos)
+ {
+ trusted.add_certificate(Botan::X509_Certificate(file));
+ }
+ // found the target certificate. It needs to be at the front of certs
+ else if (file.find("TC") != std::string::npos)
+ {
+ certs.insert(certs.begin(), Botan::X509_Certificate(file));
+ }
+ // found a certificate that might be part of a valid certificate chain to the trust anchor
+ else if (file.find(".crt") != std::string::npos)
+ {
+ certs.push_back(Botan::X509_Certificate(file));
+ }
+ else if (file.find(".crl") != std::string::npos)
+ {
+ trusted.add_crl(Botan::X509_CRL(file));
+ }
+ }
+
+ Botan::Path_Validation_Restrictions restrictions(use_crl, 79,
+ use_crl);
+
+ /*
+ * Following the test document, the test are executed 16 times with
+ * randomly chosen order of the available certificates. However, the target
+ * certificate needs to stay in front.
+ * For certain test, the order in which the certificates are given to
+ * the validation function may be relevant, i.e. if issuer DNs are
+ * ambiguous.
+ */
+ for (int i = 0; i < 16; i++)
+ {
+ std::random_shuffle(++(certs.begin()), certs.end());
+
+ Botan::Path_Validation_Result validation_result =
+ Botan::x509_path_validate(certs, restrictions, trusted, "",
+ Botan::Usage_Type::UNSPECIFIED, validation_time);
+
+ // We expect to be warned
+ if(expected_result.find("Warning: ") == 0)
+ {
+ std::string stripped = expected_result.substr(std::string("Warning: ").size());
+ bool found_warning = false;
+ for(const auto& warning_set : validation_result.warnings())
+ {
+ for(const auto& warning : warning_set)
+ {
+ std::string warning_str(Botan::to_string(warning));
+ if(stripped == warning_str)
+ {
+ result.test_eq(test_name + " path validation result",
+ warning_str, stripped);
+ found_warning = true;
+ }
+ }
+ }
+ if(!found_warning)
+ {
+ result.test_failure(test_name,"Did not receive the expected warning: " + stripped);
+ }
+ }
+ else
+ {
+ result.test_eq(test_name + " path validation result",
+ validation_result.result_string(), expected_result);
+ }
+
+
+ }
+ }
+
+ /* Some certificates are rejected when executing the X509_Certificate constructor
+ * by throwing a Decoding_Error exception.
+ */
+ catch (const Botan::Decoding_Error& d)
+ {
+ result.test_eq(test_name + " path validation result", d.what(),
+ expected_result);
+ }
+ catch (const Botan::X509_CRL::X509_CRL_Error& e)
+ {
+ result.test_eq(test_name + " path validation result", e.what(),
+ expected_result);
+ }
+ catch (const std::exception& e)
+ {
+ result.test_failure(test_name, e.what());
+ }
+
+ result.end_timer();
+ results.push_back(result);
+ }
+
+ return results;
+ }
+
+BOTAN_REGISTER_TEST("x509_path_bsi", BSI_Path_Validation_Tests);
+
+#endif
+
#endif
}
diff --git a/src/tests/unit_x509.cpp b/src/tests/unit_x509.cpp
index da5439a05..97411a6cb 100644
--- a/src/tests/unit_x509.cpp
+++ b/src/tests/unit_x509.cpp
@@ -127,7 +127,11 @@ Test::Result test_cert_status_strings()
Botan::Certificate_Status_Code::VALID_CRL_CHECKED,
Botan::Certificate_Status_Code::OCSP_NO_HTTP,
+ Botan::Certificate_Status_Code::CERT_SERIAL_NEGATIVE,
+ Botan::Certificate_Status_Code::DN_TOO_LONG,
+
Botan::Certificate_Status_Code::SIGNATURE_METHOD_TOO_WEAK,
+ Botan::Certificate_Status_Code::NO_MATCHING_CRLDP,
Botan::Certificate_Status_Code::UNTRUSTED_HASH,
Botan::Certificate_Status_Code::NO_REVOCATION_DATA,
Botan::Certificate_Status_Code::CERT_NOT_YET_VALID,
@@ -142,6 +146,7 @@ Test::Result test_cert_status_strings()
Botan::Certificate_Status_Code::CHAIN_LACKS_TRUST_ROOT,
Botan::Certificate_Status_Code::CHAIN_NAME_MISMATCH,
Botan::Certificate_Status_Code::POLICY_ERROR,
+ Botan::Certificate_Status_Code::DUPLICATE_CERT_POLICY,
Botan::Certificate_Status_Code::INVALID_USAGE,
Botan::Certificate_Status_Code::CERT_CHAIN_TOO_LONG,
Botan::Certificate_Status_Code::CA_CERT_NOT_FOR_CERT_ISSUER,
@@ -151,6 +156,8 @@ Test::Result test_cert_status_strings()
Botan::Certificate_Status_Code::OCSP_BAD_STATUS,
Botan::Certificate_Status_Code::CERT_NAME_NOMATCH,
Botan::Certificate_Status_Code::UNKNOWN_CRITICAL_EXTENSION,
+ Botan::Certificate_Status_Code::DUPLICATE_CERT_EXTENSION,
+ Botan::Certificate_Status_Code::EXT_IN_V1_V2_CERT,
Botan::Certificate_Status_Code::OCSP_SIGNATURE_ERROR,
Botan::Certificate_Status_Code::OCSP_ISSUER_NOT_FOUND,
Botan::Certificate_Status_Code::OCSP_RESPONSE_MISSING_KEYUSAGE,
@@ -159,6 +166,8 @@ Test::Result test_cert_status_strings()
Botan::Certificate_Status_Code::CRL_BAD_SIGNATURE,
Botan::Certificate_Status_Code::SIGNATURE_ERROR,
Botan::Certificate_Status_Code::CERT_PUBKEY_INVALID,
+ Botan::Certificate_Status_Code::SIGNATURE_ALGO_UNKNOWN,
+ Botan::Certificate_Status_Code::SIGNATURE_ALGO_BAD_PARAMS,
};
for(const auto code : codes)