AXIS2_EXTERN int AXIS2_CALL saml_response_sign()

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