AXIS2_EXTERN int AXIS2_CALL saml_request_sign()

in src/omxmlsec/saml/request.c [692:718]


AXIS2_EXTERN int AXIS2_CALL saml_request_sign(saml_request_t *request, axiom_node_t *node, const axutil_env_t *env)
{
	axiom_node_t *n= NULL;
	oxs_sign_part_t* sig_part = NULL;
	axutil_array_list_t *sig_parts = NULL;
	int size = 0, i = 0;
	/*Get the sign parts defined in saml request sign context*/
	sig_parts = oxs_sign_ctx_get_sign_parts(request->sig_ctx, env);
	if(sig_parts)
	{
		/* for each sign part, set the node to be signed*/
		size = axutil_array_list_size(sig_parts, env);
		for(i = 0; i < size; i++)
		{
			sig_part = axutil_array_list_get(sig_parts, env, i);
			oxs_sign_part_set_node(sig_part, env, node);
		}
	}
	/*sign the node with the saml request sign info*/
	oxs_xml_sig_sign(env, request->sig_ctx, node, &n);
    /*Finally build KeyInfo*/
	oxs_xml_key_info_build(env, n, oxs_sign_ctx_get_certificate(request->sig_ctx, env), OXS_KIBP_X509DATA_X509CERTIFICATE);

	return AXIS2_SUCCESS;


}