tests for loading certs and keys from metadata

This commit is contained in:
Damien Laniel 2006-11-07 10:24:44 +00:00
parent 76e8b09760
commit e528469110
8 changed files with 257 additions and 2 deletions

View File

@ -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

View File

@ -0,0 +1,38 @@
<?xml version="1.0"?>
<EntityDescriptor
providerID="http://test.local/liberty/metadata"
xmlns="urn:liberty:metadata:2003-08">
<SPDescriptor protocolSupportEnumeration="urn:liberty:iff:2003-08">
<KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>
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
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</KeyDescriptor>
</SPDescriptor>
</EntityDescriptor>

View File

@ -0,0 +1,39 @@
<?xml version="1.0"?>
<EntityDescriptor
providerID="http://test.local/liberty/metadata"
xmlns="urn:liberty:metadata:2003-08">
<SPDescriptor protocolSupportEnumeration="urn:liberty:iff:2003-08">
<KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>
-----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-----
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</KeyDescriptor>
</SPDescriptor>
</EntityDescriptor>

View File

@ -0,0 +1,23 @@
<?xml version="1.0"?>
<EntityDescriptor
providerID="http://test.local/liberty/metadata"
xmlns="urn:liberty:metadata:2003-08">
<SPDescriptor protocolSupportEnumeration="urn:liberty:iff:2003-08">
<KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyValue>
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzTofHpWAdhH3BR/+1lVV
NGRVY2qH3H4+8cDaofg5gy6oazgB/qVTZixm+euZF1wVa/T5SR0CBeFF4JYBmC0H
Wl39b2bqoNGV0ILLKyjDrE88pHP+k5PBFeb98zRAY95fPDOPfgFc4g64W76fvri8
qfXx3665UATOTXnvqnFOnilA/Ml900ust5Dy/IKyGgVT4xgm2nVQD6HYmg7Rjyga
/LBtTEeKgc3k++fM5t8AzhdoNCiGZ/Ez1RztanjEoBzWdSrmHAGsemMUxFLPpQJ8
yglIYiL7fEkyQ0KMvRcTDk0pVzmNEqTNKQ3mPwpMz+TWM8+wMc9FjNtZaGc213om
WQIDAQAB
</ds:KeyValue>
</ds:KeyInfo>
</KeyDescriptor>
</SPDescriptor>
</EntityDescriptor>

View File

@ -0,0 +1,25 @@
<?xml version="1.0"?>
<EntityDescriptor
providerID="http://test.local/liberty/metadata"
xmlns="urn:liberty:metadata:2003-08">
<SPDescriptor protocolSupportEnumeration="urn:liberty:iff:2003-08">
<KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyValue>
-----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-----
</ds:KeyValue>
</ds:KeyInfo>
</KeyDescriptor>
</SPDescriptor>
</EntityDescriptor>

View File

@ -0,0 +1,25 @@
<?xml version="1.0"?>
<EntityDescriptor
providerID="http://test.local/liberty/metadata"
xmlns="urn:liberty:metadata:2003-08">
<SPDescriptor protocolSupportEnumeration="urn:liberty:iff:2003-08">
<KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzTofHpWAdhH3BR/+1lVV
NGRVY2qH3H4+8cDaofg5gy6oazgB/qVTZixm+euZF1wVa/T5SR0CBeFF4JYBmC0H
Wl39b2bqoNGV0ILLKyjDrE88pHP+k5PBFeb98zRAY95fPDOPfgFc4g64W76fvri8
qfXx3665UATOTXnvqnFOnilA/Ml900ust5Dy/IKyGgVT4xgm2nVQD6HYmg7Rjyga
/LBtTEeKgc3k++fM5t8AzhdoNCiGZ/Ez1RztanjEoBzWdSrmHAGsemMUxFLPpQJ8
yglIYiL7fEkyQ0KMvRcTDk0pVzmNEqTNKQ3mPwpMz+TWM8+wMc9FjNtZaGc213om
WQIDAQAB
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</KeyDescriptor>
</SPDescriptor>
</EntityDescriptor>

103
tests/metadata_tests.c Normal file
View File

@ -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 <stdlib.h>
#include <string.h>
#include <check.h>
#include <lasso/lasso.h>
#include <lasso/id-ff/provider.h>
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 <ds:X509Certificate>");
}
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 <ds:X509Certificate>");
}
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 <ds:KeyValue>");
}
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 <ds:KeyValue>");
}
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 <ds:X509Certificate>");
}
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 <ds:KeyValue>");
TCase *tc_metadata_load_pem_public_key_from_keyvalue =
tcase_create("Load PEM public key from <ds:KeyValue>");
TCase *tc_metadata_load_public_key_from_x509_cert =
tcase_create("Load DER public key from <ds:X509Certificate>");
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;
}

View File

@ -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
};