summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2013-09-08 21:18:55 +0200
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2013-09-08 21:31:52 +0200
commitb6faccae0fabfd7e47fc6b86a06fc78367446526 (patch)
tree0b7b140cae2b422f62ea5039d00cbb4ef5c7bfcc
parent72e1558b2149df0057cfbc8fc697e7d04d22a5a9 (diff)
downloadlasso-b6faccae0fabfd7e47fc6b86a06fc78367446526.tar.gz
lasso-b6faccae0fabfd7e47fc6b86a06fc78367446526.tar.xz
lasso-b6faccae0fabfd7e47fc6b86a06fc78367446526.zip
fix warnings about unused but set variables
-rw-r--r--lasso/id-ff/login.c2
-rw-r--r--lasso/id-ff/logout.c5
-rw-r--r--lasso/id-ff/name_registration.c8
-rw-r--r--lasso/saml-2.0/login.c7
-rw-r--r--lasso/saml-2.0/name_id_management.c2
-rw-r--r--lasso/saml-2.0/profile.c12
-rw-r--r--lasso/saml-2.0/saml2_helper.c9
-rw-r--r--lasso/xml/tools.c5
-rw-r--r--lasso/xml/xml.c5
-rw-r--r--tests/basic_tests.c3
-rw-r--r--tests/data/idp13-artifact-resolution-service-indexed/metadata.xml70
-rw-r--r--tests/data/idp13-artifact-resolution-service-indexed/password1
-rw-r--r--tests/data/idp13-artifact-resolution-service-indexed/private-key.pem30
13 files changed, 115 insertions, 44 deletions
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c
index 9191e033..601cf125 100644
--- a/lasso/id-ff/login.c
+++ b/lasso/id-ff/login.c
@@ -2251,7 +2251,6 @@ gint
lasso_login_process_response_msg(LassoLogin *login, gchar *response_msg)
{
LassoProfile *profile;
- LassoSamlpResponse *response;
g_return_val_if_fail(LASSO_IS_LOGIN(login), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
g_return_val_if_fail(response_msg != NULL, LASSO_PARAM_ERROR_INVALID_VALUE);
@@ -2269,7 +2268,6 @@ lasso_login_process_response_msg(LassoLogin *login, gchar *response_msg)
lasso_release_gobject(profile->response);
return critical_error(LASSO_PROFILE_ERROR_INVALID_MSG);
}
- response = LASSO_SAMLP_RESPONSE(profile->response);
/* Validate RequestID and InResponseTo */
if (profile->request || lasso_flag_strict_checking) {
diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c
index 51f82f4c..1feca4af 100644
--- a/lasso/id-ff/logout.c
+++ b/lasso/id-ff/logout.c
@@ -956,7 +956,6 @@ lasso_logout_validate_request(LassoLogout *logout)
LassoFederation *federation = NULL;
LassoProvider *remote_provider;
LassoSamlNameIdentifier *nameIdentifier;
- LassoSamlAssertion *assertion;
LassoNode *assertion_n;
LassoLibLogoutRequest *logout_request = NULL;
@@ -1039,8 +1038,6 @@ lasso_logout_validate_request(LassoLogout *logout)
return LASSO_PROFILE_ERROR_MISSING_ASSERTION;
}
- assertion = LASSO_SAML_ASSERTION(assertion_n);
-
/* If name identifier is federated, then verify federation */
if (strcmp(nameIdentifier->Format, LASSO_LIB_NAME_IDENTIFIER_FORMAT_FEDERATED) == 0) {
if (LASSO_IS_IDENTITY(profile->identity) == FALSE) {
@@ -1128,7 +1125,6 @@ static void
check_soap_support(G_GNUC_UNUSED gchar *key, LassoProvider *provider, LassoProfile *profile)
{
const GList *supported_profiles;
- LassoSamlAssertion *assertion;
LassoNode *assertion_n;
if (strcmp(provider->ProviderID, profile->remote_providerID) == 0)
@@ -1138,7 +1134,6 @@ check_soap_support(G_GNUC_UNUSED gchar *key, LassoProvider *provider, LassoProfi
if (LASSO_IS_SAML_ASSERTION(assertion_n) == FALSE) {
return; /* not authenticated with this provider */
}
- assertion = LASSO_SAML_ASSERTION(assertion_n);
supported_profiles = lasso_provider_get_metadata_list(provider,
"SingleLogoutProtocolProfile");
diff --git a/lasso/id-ff/name_registration.c b/lasso/id-ff/name_registration.c
index 7d554902..ab325c89 100644
--- a/lasso/id-ff/name_registration.c
+++ b/lasso/id-ff/name_registration.c
@@ -378,7 +378,6 @@ gint lasso_name_registration_process_request_msg(LassoNameRegistration *name_reg
LassoProfile *profile;
LassoProvider *remote_provider;
LassoMessageFormat format;
- LassoSamlNameIdentifier *nameIdentifier;
LassoLibRegisterNameIdentifierRequest *request;
g_return_val_if_fail(LASSO_IS_NAME_REGISTRATION(name_registration),
@@ -411,8 +410,6 @@ gint lasso_name_registration_process_request_msg(LassoNameRegistration *name_reg
request = LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(profile->request);
- nameIdentifier = LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(
- profile->request)->SPProvidedNameIdentifier;
name_registration->oldNameIdentifier = NULL;
if (remote_provider->role == LASSO_PROVIDER_ROLE_IDP) {
/* IdP initiated */
@@ -452,7 +449,6 @@ lasso_name_registration_process_response_msg(LassoNameRegistration *name_registr
LassoProvider *remote_provider;
LassoFederation *federation;
LassoSamlNameIdentifier *nameIdentifier = NULL;
- LassoHttpMethod response_method;
LassoLibStatusResponse *response;
LassoMessageFormat format;
int rc = 0;
@@ -470,10 +466,6 @@ lasso_name_registration_process_response_msg(LassoNameRegistration *name_registr
if (format == LASSO_MESSAGE_FORMAT_UNKNOWN || format == LASSO_MESSAGE_FORMAT_ERROR) {
return critical_error(LASSO_PROFILE_ERROR_INVALID_MSG);
}
- if (format == LASSO_MESSAGE_FORMAT_SOAP)
- response_method = LASSO_HTTP_METHOD_SOAP;
- if (format == LASSO_MESSAGE_FORMAT_QUERY)
- response_method = LASSO_HTTP_METHOD_REDIRECT;
remote_provider = lasso_server_get_provider(profile->server,
LASSO_LIB_STATUS_RESPONSE(profile->response)->ProviderID);
diff --git a/lasso/saml-2.0/login.c b/lasso/saml-2.0/login.c
index 7b96868d..02a659f6 100644
--- a/lasso/saml-2.0/login.c
+++ b/lasso/saml-2.0/login.c
@@ -200,11 +200,6 @@ _lasso_login_must_verify_authn_request_signature(LassoProfile *profile) {
static gboolean
_lasso_login_must_verify_signature(LassoProfile *profile) {
- LassoProvider *remote_provider;
-
- remote_provider = lasso_server_get_provider(profile->server,
- profile->remote_providerID);
-
switch (lasso_profile_get_signature_verify_hint(profile)) {
case LASSO_PROFILE_SIGNATURE_VERIFY_HINT_MAYBE:
return lasso_flag_verify_signature;
@@ -227,10 +222,8 @@ lasso_saml20_login_build_authn_request_msg(LassoLogin *login)
LassoProfile *profile;
LassoSamlp2AuthnRequest *authn_request;
int rc = 0;
- LassoHttpMethod http_method;
profile = &login->parent;
- http_method = login->http_method;
lasso_extract_node_or_fail(authn_request, profile->request, SAMLP2_AUTHN_REQUEST,
LASSO_PROFILE_ERROR_INVALID_REQUEST);
diff --git a/lasso/saml-2.0/name_id_management.c b/lasso/saml-2.0/name_id_management.c
index 26fcfdc9..f633b561 100644
--- a/lasso/saml-2.0/name_id_management.c
+++ b/lasso/saml-2.0/name_id_management.c
@@ -124,7 +124,7 @@ lasso_name_id_management_init_request(LassoNameIdManagement *name_id_management,
cleanup:
lasso_release_gobject(request);
- return 0;
+ return rc;
}
diff --git a/lasso/saml-2.0/profile.c b/lasso/saml-2.0/profile.c
index b98bb85e..09556f64 100644
--- a/lasso/saml-2.0/profile.c
+++ b/lasso/saml-2.0/profile.c
@@ -74,9 +74,9 @@ static char* lasso_saml20_profile_generate_artifact(LassoProfile *profile, int p
static int
get_provider(LassoProfile *profile, LassoProvider **provider_out)
{
- int rc = 0;
LassoProvider *provider;
LassoServer *server;
+ int rc = 0;
lasso_bad_param(PROFILE, profile);
@@ -89,7 +89,7 @@ get_provider(LassoProfile *profile, LassoProvider **provider_out)
*provider_out = provider;
cleanup:
- return 0;
+ return rc;
}
static char *
@@ -637,7 +637,6 @@ lasso_saml20_profile_process_any_request(LassoProfile *profile,
const char *request_msg)
{
int rc = 0;
- LassoSaml2NameID *name_id = NULL;
LassoProvider *remote_provider = NULL;
LassoSamlp2RequestAbstract *request_abstract = NULL;
LassoMessageFormat format;
@@ -676,7 +675,7 @@ lasso_saml20_profile_process_any_request(LassoProfile *profile,
lasso_extract_node_or_fail(request_abstract, profile->request, SAMLP2_REQUEST_ABSTRACT,
LASSO_PROFILE_ERROR_INVALID_MSG);
- lasso_extract_node_or_fail(name_id, request_abstract->Issuer, SAML2_NAME_ID,
+ goto_cleanup_if_fail_with_rc(LASSO_IS_SAML2_NAME_ID(request_abstract->Issuer),
LASSO_PROFILE_ERROR_MISSING_ISSUER);
lasso_assign_string(profile->remote_providerID, request_abstract->Issuer->content);
@@ -1030,7 +1029,6 @@ lasso_saml20_profile_validate_request(LassoProfile *profile, gboolean needs_iden
int rc = 0;
LassoSamlp2RequestAbstract *request_abstract = NULL;
LassoSaml2NameID *issuer = NULL;
- LassoIdentity *identity = NULL;
LassoProvider *provider = NULL;
lasso_bad_param(PROFILE, profile);
@@ -1040,7 +1038,7 @@ lasso_saml20_profile_validate_request(LassoProfile *profile, gboolean needs_iden
LASSO_PROFILE_ERROR_MISSING_REQUEST);
/* look for identity object */
if (needs_identity) {
- lasso_extract_node_or_fail(identity, profile->identity, IDENTITY,
+ goto_cleanup_if_fail_with_rc(LASSO_IS_IDENTITY(profile->identity),
LASSO_PROFILE_ERROR_IDENTITY_NOT_FOUND);
}
@@ -1304,7 +1302,6 @@ lasso_saml20_profile_process_any_response(LassoProfile *profile,
LassoSamlp2StatusCode *status_code1 = NULL;
LassoMessageFormat format;
gboolean missing_issuer = FALSE;
- LassoProfileSignatureVerifyHint signature_verify_hint;
xmlDoc *doc = NULL;
xmlNode *content = NULL;
@@ -1312,7 +1309,6 @@ lasso_saml20_profile_process_any_response(LassoProfile *profile,
lasso_bad_param(PROFILE, profile);
lasso_bad_param(SAMLP2_STATUS_RESPONSE, status_response);
- signature_verify_hint = lasso_profile_get_signature_verify_hint(profile);
/* reset signature_status */
profile->signature_status = 0;
format = lasso_node_init_from_message_with_format((LassoNode*)status_response,
diff --git a/lasso/saml-2.0/saml2_helper.c b/lasso/saml-2.0/saml2_helper.c
index c49cbc3b..2fb3e919 100644
--- a/lasso/saml-2.0/saml2_helper.c
+++ b/lasso/saml-2.0/saml2_helper.c
@@ -310,11 +310,10 @@ void
lasso_saml2_assertion_set_basic_conditions(LassoSaml2Assertion *saml2_assertion, time_t tolerance,
time_t length, gboolean one_time_use)
{
- LassoSaml2Conditions *saml2_conditions;
-
g_return_if_fail (LASSO_IS_SAML2_ASSERTION (saml2_assertion));
- saml2_conditions = lasso_saml2_assertion_get_conditions (saml2_assertion, TRUE);
+ /* ensure conditions exists */
+ lasso_saml2_assertion_get_conditions (saml2_assertion, TRUE);
set_notbefore_and_notonorafter (saml2_assertion->Conditions, tolerance, length);
lasso_saml2_assertion_set_one_time_use(saml2_assertion, one_time_use);
}
@@ -380,11 +379,11 @@ void
lasso_saml2_assertion_add_proxy_limit (LassoSaml2Assertion *saml2_assertion, int proxy_count,
GList *proxy_audiences)
{
- LassoSaml2Conditions *saml2_conditions;
LassoSaml2ProxyRestriction *saml2_proxy_restriction;
g_return_if_fail (LASSO_IS_SAML2_ASSERTION (saml2_assertion));
- saml2_conditions = lasso_saml2_assertion_get_conditions (saml2_assertion, TRUE);
+ /* ensure conditions exists */
+ lasso_saml2_assertion_get_conditions (saml2_assertion, TRUE);
saml2_proxy_restriction = (LassoSaml2ProxyRestriction*)lasso_saml2_proxy_restriction_new ();
if (proxy_count >= 0) {
saml2_proxy_restriction->Count = g_strdup_printf("%i", proxy_count);
diff --git a/lasso/xml/tools.c b/lasso/xml/tools.c
index 08c3eb1a..f73cb1f2 100644
--- a/lasso/xml/tools.c
+++ b/lasso/xml/tools.c
@@ -1916,7 +1916,6 @@ lasso_url_add_parameters(char *url,
{
char *old_url = url, *new_url;
xmlChar *encoded_key, *encoded_value;
- int rc = 0;
va_list ap;
va_start(ap, free);
@@ -1930,7 +1929,7 @@ lasso_url_add_parameters(char *url,
break;
}
encoded_key = xmlURIEscapeStr((xmlChar*)key, NULL);
- goto_cleanup_if_fail_with_rc(encoded_key, 0);
+ goto_cleanup_if_fail(encoded_key);
value = va_arg(ap, char*);
if (! value) {
@@ -1938,7 +1937,7 @@ lasso_url_add_parameters(char *url,
break;
}
encoded_value = xmlURIEscapeStr((xmlChar*)value, NULL);
- goto_cleanup_if_fail_with_rc(encoded_value, 0);
+ goto_cleanup_if_fail(encoded_value);
if (old_url) {
new_url = g_strdup_printf("%s&%s=%s", old_url, (char*)encoded_key, (char*)encoded_value);
diff --git a/lasso/xml/xml.c b/lasso/xml/xml.c
index b7b29f95..e3ac905d 100644
--- a/lasso/xml/xml.c
+++ b/lasso/xml/xml.c
@@ -1745,7 +1745,6 @@ lasso_node_impl_init_from_xml(LassoNode *node, xmlNode *xmlnode)
/* Collect signature parameters */
{
LassoSignatureMethod method = 0;
- LassoSignatureType type = 0;
xmlChar *private_key = NULL;
xmlChar *private_key_password = NULL;
xmlChar *certificate = NULL;
@@ -3253,7 +3252,7 @@ lasso_node_init_from_saml2_query_fields(LassoNode *node, char **query_fields, G_
static void
xmlDeclareNs(xmlNode *root_node, xmlNode *node)
{
- xmlNs *ns, *ns2;
+ xmlNs *ns;
xmlNode *t;
if (strcmp((char*)node->name, "Signature") == 0)
@@ -3261,7 +3260,7 @@ xmlDeclareNs(xmlNode *root_node, xmlNode *node)
for (ns = node->nsDef; ns; ns = ns->next) {
if (ns->prefix && strcmp((char*)ns->prefix, "xsi") != 0) {
- ns2 = xmlNewNs(root_node, ns->href, ns->prefix);
+ xmlNewNs(root_node, ns->href, ns->prefix);
}
}
for (t = node->children; t; t = t->next) {
diff --git a/tests/basic_tests.c b/tests/basic_tests.c
index 27218177..23ce4313 100644
--- a/tests/basic_tests.c
+++ b/tests/basic_tests.c
@@ -155,7 +155,6 @@ class_init(LassoNodeClass *klass)
START_TEST(test08_test_new_from_xmlNode)
{
- static GType this_type = 0;
gint r;
LassoNode *node = NULL;
@@ -172,7 +171,7 @@ START_TEST(test08_test_new_from_xmlNode)
NULL
};
- this_type = g_type_register_static(LASSO_TYPE_NODE,
+ g_type_register_static(LASSO_TYPE_NODE,
"LassoTest", &this_info, 0);
r = lasso_registry_default_add_direct_mapping("http://example.com", "Test1", LASSO_LASSO_HREF, "LassoTest");
fail_unless(r == 0, "no mapping for http://example.com:Test1 should exist");
diff --git a/tests/data/idp13-artifact-resolution-service-indexed/metadata.xml b/tests/data/idp13-artifact-resolution-service-indexed/metadata.xml
new file mode 100644
index 00000000..02f24f7e
--- /dev/null
+++ b/tests/data/idp13-artifact-resolution-service-indexed/metadata.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
+ xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+ xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+ entityID="http://idp5/metadata">
+<IDPSSODescriptor
+ WantAuthnRequestsSigned="true"
+ protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
+<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>
+<KeyDescriptor use="encryption">
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyValue>
+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:KeyValue>
+ </ds:KeyInfo>
+ </KeyDescriptor>
+
+ <ArtifactResolutionService isDefault="true" index="7"
+ Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
+ Location="http://idp5/artifact" />
+</IDPSSODescriptor>
+<Organization>
+ <OrganizationName xml:lang="en">Entr'ouvert</OrganizationName>
+</Organization>
+
+</EntityDescriptor>
diff --git a/tests/data/idp13-artifact-resolution-service-indexed/password b/tests/data/idp13-artifact-resolution-service-indexed/password
new file mode 100644
index 00000000..fcde4cdb
--- /dev/null
+++ b/tests/data/idp13-artifact-resolution-service-indexed/password
@@ -0,0 +1 @@
+geronimo \ No newline at end of file
diff --git a/tests/data/idp13-artifact-resolution-service-indexed/private-key.pem b/tests/data/idp13-artifact-resolution-service-indexed/private-key.pem
new file mode 100644
index 00000000..45578541
--- /dev/null
+++ b/tests/data/idp13-artifact-resolution-service-indexed/private-key.pem
@@ -0,0 +1,30 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,41BE9422FBDF1769BFEF03F9116F7A86
+
+qKrThgVCsCb5Lx/7RIpwuvDZi6gvxEFb33QEjIEWdZ+ad0dkGRvxrIqqj+XvHEeW
+V57oPO1sFAlgb+zBrGZpqItCAJEqC4NU55SwKZpKUtT0XdlHFRyfORlBwzb0qW/3
+dZbyhsEm+164MdXsCZiUYS/VAm8b1pYmBIkoPSZMMnPljNYVigRpYttF9dwMYgTQ
+u/FwRS696qGSyo7ko00P8UbtTLgM+ufkCFNld6uxYphSNXAQyRQz4vQs97emNE58
+4JB5//0agCOa9qUz14ZQSpM2JyoevMHUOHyjbGJOLsCMPnQEboKvgj0gsZcgP2Ys
+K4Nf/EQKadBbXpK4olxz50e6ybR0i7nylYsu7YVFyFR9GWbra29OAYEPvQxvBll7
+RIoZ4hI0ZgBY0qFFcyZbKH94Pqk5w0QSjfkHPcH/WL0UjLb+n59KsIUnmZ3dtiF9
+9mdE71wq94jOcqibjVmUy3Gyw4COZKTTjq9ptuLBC6fEPxGh6dfpSSV431Wpvpxy
+OE15vfeT1i/ymH0ckWsQXgUqZ6QTuaTvlu5JpD94Blu7p6Rzj5fxEnLhOtwjXWpq
+k6MAlS9bKhGbPbnzAqm5HkRypgDaNBPRXZhb9LClB5ysfjZRNdxCWrWusEGEtioQ
+TdkPsUZ78d8m3u+FvOM2mTVkQBa6sAEl1l8fuOITuaNCYLBIIhyAvJfXRHhOC+zs
+nvS6DX+3bZupxFJFcMi9fqlmz0QSXj4tKlbHY/xo3dGqQj5BWyibo8tDVhVIYy99
+zo/t8J0LTfSSCIvoV2gFHSoC7RIJ9Q25L0AV6TQiB2F/7FTeznfd7Tk9ZHokmiED
+5VAKGRjDmPCZIJr2pbeEmwzs3r/p53JfLyNProv+ljTJLgdFtG1en5A3MsmymR0c
+LTIxHWZjAwl7ai1yGghzqVYllm+OFjo6LsSusbuQwKs+Bo9qZPCBb10gQGur+ZR8
+r9Vfd3WV/WMJfi8Ciogd+uXhPzVxf5PyBvZh9vwqXHSB9YLxe+NpAxLxF5OuZmJx
+VBdTA5y19XUvyucOOxjcJZaZTP6BYADsaUxhQIQHfyUtk6Y7Iwk2Abf4TQIuC5x6
+XEeRSmbKPCkuKh9L0H4KcK6hmFSyh7AICpUEW7tcMtK9HaZT/K5jsHPkG5q/3GXh
+ed7e0QaA2Qc0uAvoFgGTPkgE6Nym30R6NUlnHl2T3gK9Ei6fQKdTYPYgRXAKmbNO
+Wp0cjQ7w1zUNjoxkACX2Br2xm3DhnLVFPj6AWpnCsTtQA3ecgIzvSZugxpr0muP0
+SIPpBuyko+t0YQjP3DOZxeiLQ5o+3VxI749KfDuaNZsDN7ZPso7Pt1oG34uGgsFl
+UypVEv+CgzTkepPPqJTWgK5VfNrSK3ev7Is90bpiyjwqywlwYaZUOXBm+wBwUmtH
+T+lLtw00R5JGolA4I2MCd4PTauzbj30jLYJWLLW8sZcfMgpwnKUNtVwRaDMnOXIA
+eX0cesfIbMiYF1sgR2Lqar/uqSJf1Kx8xIFdvqYZWsudF0ij4fva4xtCc0bgrnSy
+lz91YgfF95hTd/qcCiO5GQxScG7umtUZLYmZKqtYKDjCkvtvnGFhqB5Ie21DK6OX
+-----END RSA PRIVATE KEY-----