in src/omxmlsec/saml/response.c [622:651]
AXIS2_EXTERN int AXIS2_CALL saml_response_sign(saml_response_t *response, axiom_node_t *node, const axutil_env_t *env)
{
axiom_node_t *n= NULL;
axis2_char_t *id = NULL;
oxs_sign_part_t* sig_part = NULL;
axutil_array_list_t *sig_parts = NULL;
int size = 0, i = 0;
sig_parts = oxs_sign_ctx_get_sign_parts(response->sig_ctx, env);
if(sig_parts)
{
size = axutil_array_list_size(sig_parts, env);
for(i = 0; i < size; i++)
{
sig_part = axutil_array_list_get(sig_parts, env, i);
if(sig_part)
{
oxs_sign_part_set_node(sig_part, env, node);
}
}
}
id = axiom_node_to_string(node, env);
oxs_xml_sig_sign(env, response->sig_ctx, node, &n);
id = axiom_node_to_string(node, env);
id = axiom_node_to_string(n, env);
/*Finally build KeyInfo*/
oxs_xml_key_info_build(env, n, oxs_sign_ctx_get_certificate(response->sig_ctx, env), OXS_KIBP_X509DATA_X509CERTIFICATE);
return AXIS2_SUCCESS;
}