From e528469110bc72903e244f58ba2b79b341975836 Mon Sep 17 00:00:00 2001 From: Damien Laniel Date: Tue, 7 Nov 2006 10:24:44 +0000 Subject: [PATCH] tests for loading certs and keys from metadata --- tests/Makefile.am | 4 +- tests/metadata/metadata_01.xml | 38 ++++++++++++ tests/metadata/metadata_02.xml | 39 +++++++++++++ tests/metadata/metadata_03.xml | 23 ++++++++ tests/metadata/metadata_04.xml | 25 ++++++++ tests/metadata/metadata_05.xml | 25 ++++++++ tests/metadata_tests.c | 103 +++++++++++++++++++++++++++++++++ tests/tests.c | 2 + 8 files changed, 257 insertions(+), 2 deletions(-) create mode 100644 tests/metadata/metadata_01.xml create mode 100644 tests/metadata/metadata_02.xml create mode 100644 tests/metadata/metadata_03.xml create mode 100644 tests/metadata/metadata_04.xml create mode 100644 tests/metadata/metadata_05.xml create mode 100644 tests/metadata_tests.c diff --git a/tests/Makefile.am b/tests/Makefile.am index 4cb1b628..230460bc 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -11,7 +11,7 @@ INCLUDES = \ $(LASSO_CFLAGS) \ $(CHECK_CFLAGS) -tests_SOURCES = tests.c login_tests.c basic_tests.c random_tests.c +tests_SOURCES = tests.c login_tests.c basic_tests.c random_tests.c metadata_tests.c tests_LDADD = \ $(top_builddir)/lasso/liblasso.la \ $(LASSO_LIBS) \ @@ -22,7 +22,7 @@ perfs_LDADD = $(top_builddir)/lasso/liblasso.la $(LASSO_LIBS) endif -EXTRA_DIST = tests.c login_tests.c basic_tests.c random_tests.c +EXTRA_DIST = tests.c login_tests.c basic_tests.c random_tests.c metadata_tests.c SUBDIRS = data diff --git a/tests/metadata/metadata_01.xml b/tests/metadata/metadata_01.xml new file mode 100644 index 00000000..5deacba1 --- /dev/null +++ b/tests/metadata/metadata_01.xml @@ -0,0 +1,38 @@ + + + + + + + + + +MIIDnjCCAoagAwIBAgIBATANBgkqhkiG9w0BAQUFADBUMQswCQYDVQQGEwJGUjEP +MA0GA1UECBMGRnJhbmNlMQ4wDAYDVQQHEwVQYXJpczETMBEGA1UEChMKRW50cm91 +dmVydDEPMA0GA1UEAxMGRGFtaWVuMB4XDTA2MTAyNzA5MDc1NFoXDTExMTAyNjA5 +MDc1NFowVDELMAkGA1UEBhMCRlIxDzANBgNVBAgTBkZyYW5jZTEOMAwGA1UEBxMF +UGFyaXMxEzARBgNVBAoTCkVudHJvdXZlcnQxDzANBgNVBAMTBkRhbWllbjCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM06Hx6VgHYR9wUf/tZVVTRkVWNq +h9x+PvHA2qH4OYMuqGs4Af6lU2YsZvnrmRdcFWv0+UkdAgXhReCWAZgtB1pd/W9m +6qDRldCCyysow6xPPKRz/pOTwRXm/fM0QGPeXzwzj34BXOIOuFu+n764vKn18d+u +uVAEzk1576pxTp4pQPzJfdNLrLeQ8vyCshoFU+MYJtp1UA+h2JoO0Y8oGvywbUxH +ioHN5PvnzObfAM4XaDQohmfxM9Uc7Wp4xKAc1nUq5hwBrHpjFMRSz6UCfMoJSGIi ++3xJMkNCjL0XEw5NKVc5jRKkzSkN5j8KTM/k1jPPsDHPRYzbWWhnNtd6JlkCAwEA +AaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0 +ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFP2WWMDShux3iF74+SoO1xf6qhqaMB8G +A1UdIwQYMBaAFGjl6TRXbQDHzSlZu+e8VeBaZMB5MA0GCSqGSIb3DQEBBQUAA4IB +AQAZ/imK7UMognXbs5RfSB8cMW6iNAI+JZqe9XWjvtmLfIIPbHM96o953SiFvrvQ +BZjGmmPMK3UH29cjzDx1R/RQaYTyMrHyTePLh3BMd5mpJ/9eeJCSxPzE2ECqWRUa +pkjukecFXqmRItwgTxSIUE9QkpzvuQRb268PwmgroE0mwtiREADnvTFkLkdiEMew +fiYxZfJJLPBqwlkw/7f1SyzXoPXnz5QbNwDmrHelga6rKSprYKb3pueqaIe8j/AP +NC1/bzp8cGOcJ88BD5+Ny6qgPVCrMLE5twQumJ12V3SvjGNtzFBvg2c/9S5OmVqR +LlTxKnCrWAXftSm1rNtewTsF + + + + + + + diff --git a/tests/metadata/metadata_02.xml b/tests/metadata/metadata_02.xml new file mode 100644 index 00000000..3fa9a86e --- /dev/null +++ b/tests/metadata/metadata_02.xml @@ -0,0 +1,39 @@ + + + + + + + + + +-----BEGIN CERTIFICATE----- MIIDnjCCAoagAwIBAgIBATANBgkqhkiG9w0BAQUFADBUMQswCQYDVQQGEwJGUjEP +MA0GA1UECBMGRnJhbmNlMQ4wDAYDVQQHEwVQYXJpczETMBEGA1UEChMKRW50cm91 +dmVydDEPMA0GA1UEAxMGRGFtaWVuMB4XDTA2MTAyNzA5MDc1NFoXDTExMTAyNjA5 +MDc1NFowVDELMAkGA1UEBhMCRlIxDzANBgNVBAgTBkZyYW5jZTEOMAwGA1UEBxMF +UGFyaXMxEzARBgNVBAoTCkVudHJvdXZlcnQxDzANBgNVBAMTBkRhbWllbjCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM06Hx6VgHYR9wUf/tZVVTRkVWNq +h9x+PvHA2qH4OYMuqGs4Af6lU2YsZvnrmRdcFWv0+UkdAgXhReCWAZgtB1pd/W9m +6qDRldCCyysow6xPPKRz/pOTwRXm/fM0QGPeXzwzj34BXOIOuFu+n764vKn18d+u +uVAEzk1576pxTp4pQPzJfdNLrLeQ8vyCshoFU+MYJtp1UA+h2JoO0Y8oGvywbUxH +ioHN5PvnzObfAM4XaDQohmfxM9Uc7Wp4xKAc1nUq5hwBrHpjFMRSz6UCfMoJSGIi ++3xJMkNCjL0XEw5NKVc5jRKkzSkN5j8KTM/k1jPPsDHPRYzbWWhnNtd6JlkCAwEA +AaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0 +ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFP2WWMDShux3iF74+SoO1xf6qhqaMB8G +A1UdIwQYMBaAFGjl6TRXbQDHzSlZu+e8VeBaZMB5MA0GCSqGSIb3DQEBBQUAA4IB +AQAZ/imK7UMognXbs5RfSB8cMW6iNAI+JZqe9XWjvtmLfIIPbHM96o953SiFvrvQ +BZjGmmPMK3UH29cjzDx1R/RQaYTyMrHyTePLh3BMd5mpJ/9eeJCSxPzE2ECqWRUa +pkjukecFXqmRItwgTxSIUE9QkpzvuQRb268PwmgroE0mwtiREADnvTFkLkdiEMew +fiYxZfJJLPBqwlkw/7f1SyzXoPXnz5QbNwDmrHelga6rKSprYKb3pueqaIe8j/AP +NC1/bzp8cGOcJ88BD5+Ny6qgPVCrMLE5twQumJ12V3SvjGNtzFBvg2c/9S5OmVqR +LlTxKnCrWAXftSm1rNtewTsF +-----END CERTIFICATE----- + + + + + + + diff --git a/tests/metadata/metadata_03.xml b/tests/metadata/metadata_03.xml new file mode 100644 index 00000000..e06ea631 --- /dev/null +++ b/tests/metadata/metadata_03.xml @@ -0,0 +1,23 @@ + + + + + + + + +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzTofHpWAdhH3BR/+1lVV +NGRVY2qH3H4+8cDaofg5gy6oazgB/qVTZixm+euZF1wVa/T5SR0CBeFF4JYBmC0H +Wl39b2bqoNGV0ILLKyjDrE88pHP+k5PBFeb98zRAY95fPDOPfgFc4g64W76fvri8 +qfXx3665UATOTXnvqnFOnilA/Ml900ust5Dy/IKyGgVT4xgm2nVQD6HYmg7Rjyga +/LBtTEeKgc3k++fM5t8AzhdoNCiGZ/Ez1RztanjEoBzWdSrmHAGsemMUxFLPpQJ8 +yglIYiL7fEkyQ0KMvRcTDk0pVzmNEqTNKQ3mPwpMz+TWM8+wMc9FjNtZaGc213om +WQIDAQAB + + + + + + diff --git a/tests/metadata/metadata_04.xml b/tests/metadata/metadata_04.xml new file mode 100644 index 00000000..46caf80a --- /dev/null +++ b/tests/metadata/metadata_04.xml @@ -0,0 +1,25 @@ + + + + + + + + +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzTofHpWAdhH3BR/+1lVV +NGRVY2qH3H4+8cDaofg5gy6oazgB/qVTZixm+euZF1wVa/T5SR0CBeFF4JYBmC0H +Wl39b2bqoNGV0ILLKyjDrE88pHP+k5PBFeb98zRAY95fPDOPfgFc4g64W76fvri8 +qfXx3665UATOTXnvqnFOnilA/Ml900ust5Dy/IKyGgVT4xgm2nVQD6HYmg7Rjyga +/LBtTEeKgc3k++fM5t8AzhdoNCiGZ/Ez1RztanjEoBzWdSrmHAGsemMUxFLPpQJ8 +yglIYiL7fEkyQ0KMvRcTDk0pVzmNEqTNKQ3mPwpMz+TWM8+wMc9FjNtZaGc213om +WQIDAQAB +-----END PUBLIC KEY----- + + + + + + diff --git a/tests/metadata/metadata_05.xml b/tests/metadata/metadata_05.xml new file mode 100644 index 00000000..13f3b85f --- /dev/null +++ b/tests/metadata/metadata_05.xml @@ -0,0 +1,25 @@ + + + + + + + + + +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzTofHpWAdhH3BR/+1lVV +NGRVY2qH3H4+8cDaofg5gy6oazgB/qVTZixm+euZF1wVa/T5SR0CBeFF4JYBmC0H +Wl39b2bqoNGV0ILLKyjDrE88pHP+k5PBFeb98zRAY95fPDOPfgFc4g64W76fvri8 +qfXx3665UATOTXnvqnFOnilA/Ml900ust5Dy/IKyGgVT4xgm2nVQD6HYmg7Rjyga +/LBtTEeKgc3k++fM5t8AzhdoNCiGZ/Ez1RztanjEoBzWdSrmHAGsemMUxFLPpQJ8 +yglIYiL7fEkyQ0KMvRcTDk0pVzmNEqTNKQ3mPwpMz+TWM8+wMc9FjNtZaGc213om +WQIDAQAB + + + + + + + diff --git a/tests/metadata_tests.c b/tests/metadata_tests.c new file mode 100644 index 00000000..5f5e7cd2 --- /dev/null +++ b/tests/metadata_tests.c @@ -0,0 +1,103 @@ +/* + * Lasso library C unit tests + * + * Copyright (C) 2006 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: See AUTHORS file in top-level directory. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include + +#include + +#include +#include + +START_TEST(test01_metadata_load_der_certificate_from_x509_cert) +{ + LassoProvider *provider = lasso_provider_new(LASSO_PROVIDER_ROLE_SP, + "metadata/metadata_01.xml", NULL, NULL); + fail_unless(provider != NULL, "Can't load DER certificate from "); +} +END_TEST + +START_TEST(test02_metadata_load_pem_certificate_from_x509_cert) +{ + LassoProvider *provider = lasso_provider_new(LASSO_PROVIDER_ROLE_SP, + "metadata/metadata_02.xml", NULL, NULL); + fail_unless(provider != NULL, "Can't load PEM certificate from "); +} +END_TEST + +START_TEST(test03_metadata_load_der_public_key_from_keyvalue) +{ + LassoProvider *provider = lasso_provider_new(LASSO_PROVIDER_ROLE_SP, + "metadata/metadata_03.xml", NULL, NULL); + fail_unless(provider != NULL, "Can't load DER public key from "); +} +END_TEST + +START_TEST(test04_metadata_load_pem_public_key_from_keyvalue) +{ + LassoProvider *provider = lasso_provider_new(LASSO_PROVIDER_ROLE_SP, + "metadata/metadata_04.xml", NULL, NULL); + fail_unless(provider != NULL, "Can't load PEM public key from "); +} +END_TEST + +START_TEST(test05_metadata_load_public_key_from_x509_cert) +{ + LassoProvider *provider = lasso_provider_new(LASSO_PROVIDER_ROLE_SP, + "metadata/metadata_05.xml", NULL, NULL); + fail_unless(provider != NULL, "Can't load DER public key from "); +} +END_TEST + + +Suite* +metadata_suite() +{ + Suite *s = suite_create("Metadata"); + TCase *tc_metadata_load_der_certificate_from_x509_cert = + tcase_create("Load DER certificate from metadata"); + TCase *tc_metadata_load_pem_certificate_from_x509_cert = + tcase_create("Load PEM certificate from metadata"); + TCase *tc_metadata_load_der_public_key_from_keyvalue = + tcase_create("Load DER public key from "); + TCase *tc_metadata_load_pem_public_key_from_keyvalue = + tcase_create("Load PEM public key from "); + TCase *tc_metadata_load_public_key_from_x509_cert = + tcase_create("Load DER public key from "); + suite_add_tcase(s, tc_metadata_load_der_certificate_from_x509_cert); + suite_add_tcase(s, tc_metadata_load_pem_certificate_from_x509_cert); + suite_add_tcase(s, tc_metadata_load_der_public_key_from_keyvalue); + suite_add_tcase(s, tc_metadata_load_pem_public_key_from_keyvalue); + suite_add_tcase(s, tc_metadata_load_public_key_from_x509_cert); + tcase_add_test(tc_metadata_load_der_certificate_from_x509_cert, + test01_metadata_load_der_certificate_from_x509_cert); + tcase_add_test(tc_metadata_load_pem_certificate_from_x509_cert, + test02_metadata_load_pem_certificate_from_x509_cert); + tcase_add_test(tc_metadata_load_der_public_key_from_keyvalue, + test03_metadata_load_der_public_key_from_keyvalue); + tcase_add_test(tc_metadata_load_pem_public_key_from_keyvalue, + test04_metadata_load_pem_public_key_from_keyvalue); + tcase_add_test(tc_metadata_load_public_key_from_x509_cert, + test05_metadata_load_public_key_from_x509_cert); + return s; +} diff --git a/tests/tests.c b/tests/tests.c index b92844a0..64f45f01 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -31,6 +31,7 @@ extern Suite* basic_suite(); extern Suite* login_suite(); extern Suite* random_suite(); +extern Suite* metadata_suite(); typedef Suite* (*SuiteFunction) (); @@ -38,6 +39,7 @@ SuiteFunction suites[] = { basic_suite, login_suite, random_suite, + metadata_suite, NULL };