blob: 98c47531e16d9f27f9cad081756a1752e31290a5 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef TRUST_RST_H
#define TRUST_RST_H
#include <stdio.h>
#include <stdlib.h>
#include <axutil_utils.h>
#include <axutil_base64.h>
#include <axiom_soap.h>
#include <axiom.h>
#include <trust_constants.h>
#include <trust_entropy.h>
#include <trust_claims.h>
#include <trust_life_time.h>
#include <rp_issued_token.h>
#ifdef __cplusplus
extern "C"
{
#endif
typedef struct trust_rst trust_rst_t;
/* Create RST Context*/
AXIS2_EXTERN trust_rst_t * AXIS2_CALL
trust_rst_create(
const axutil_env_t *env);
/* Populate RST Context from axiom_node*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_populate_rst(
trust_rst_t *rst,
const axutil_env_t *env,
axiom_node_t *rst_node);
/*Build RST message from the created RST Context */
AXIS2_EXTERN axiom_node_t * AXIS2_CALL
trust_rst_build_rst(
trust_rst_t *rst,
const axutil_env_t *env,
axiom_node_t *parent);
/*Automated RST building with RelyingParty's policy*/
AXIS2_EXTERN axiom_node_t * AXIS2_CALL
trust_rst_build_rst_with_issued_token_assertion(
trust_rst_t *rst,
const axutil_env_t *env,
rp_issued_token_t *issued_token);
/* Getters & Setters */
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
trust_rst_get_attr_context(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_attr_context(
trust_rst_t *rst,
const axutil_env_t *env,
axis2_char_t *attr_context);
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
trust_rst_get_token_type(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_token_type(
trust_rst_t *rst,
const axutil_env_t *env,
axis2_char_t *token_type);
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
trust_rst_get_request_type(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_request_type(
trust_rst_t *rst,
const axutil_env_t *env,
axis2_char_t *request_type);
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
trust_rst_get_wsa_action(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_wsa_action(
trust_rst_t *rst,
const axutil_env_t *env,
axis2_char_t *wsa_action);
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
trust_rst_get_applies_to_addr(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_appliesto(
trust_rst_t *rst,
const axutil_env_t *env,
axis2_char_t *applies_to_addr);
AXIS2_EXTERN trust_claims_t * AXIS2_CALL
trust_rst_get_claims(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_claims(
trust_rst_t *rst,
const axutil_env_t *env,
trust_claims_t *claims);
AXIS2_EXTERN trust_entropy_t * AXIS2_CALL
trust_rst_get_entropy(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_entropy(
trust_rst_t *rst,
const axutil_env_t *env,
trust_entropy_t *entropy);
AXIS2_EXTERN trust_life_time_t * AXIS2_CALL
trust_rst_get_life_time(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_life_time(
trust_rst_t *rst,
const axutil_env_t *env,
trust_life_time_t *life_time);
/*Key and Token Parameter Extensions*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_key_type(
trust_rst_t *rst,
const axutil_env_t *env,
axis2_char_t *key_type);
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
trust_rst_get_key_type(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_key_size(
trust_rst_t *rst,
const axutil_env_t *env,
int key_size);
AXIS2_EXTERN int AXIS2_CALL
trust_rst_get_key_size(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_authentication_type(
trust_rst_t *rst,
const axutil_env_t *env,
axis2_char_t *authentication_type);
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
trust_rst_get_authentication_type(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_signature_algorithm(
trust_rst_t *rst,
const axutil_env_t *env,
axis2_char_t *signature_algorithm);
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
trust_rst_get_signature_algorithm(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_encryption_algorithm(
trust_rst_t *rst,
const axutil_env_t *env,
axis2_char_t *encryption_algorithm);
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
trust_rst_get_encryption_algorithm(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_canonicalization_algorithm(
trust_rst_t *rst,
const axutil_env_t *env,
axis2_char_t *canonicalization_algorithm);
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
trust_rst_get_canonicalization_algorithm(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_computedkey_algorithm(
trust_rst_t *rst,
const axutil_env_t *env,
axis2_char_t *computedkey_algorithm);
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
trust_rst_get_computedkey_algorithm(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_desired_encryption(
trust_rst_t *rst,
const axutil_env_t *env,
axiom_node_t *desired_encryption_key);
AXIS2_EXTERN axiom_node_t * AXIS2_CALL
trust_rst_get_desired_encryption(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_proof_encryption(
trust_rst_t *rst,
const axutil_env_t *env,
axiom_node_t *proof_encryption_key);
AXIS2_EXTERN axiom_node_t * AXIS2_CALL
trust_rst_get_proof_encryption(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_usekey(
trust_rst_t *rst,
const axutil_env_t *env,
axiom_node_t *usekey_key);
AXIS2_EXTERN axiom_node_t * AXIS2_CALL
trust_rst_get_usekey(
trust_rst_t *rst,
const axutil_env_t *env);
/*FIX Usekey attr @Sig*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_signwith(
trust_rst_t *rst,
const axutil_env_t *env,
axis2_char_t *signwith);
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
trust_rst_get_signwith(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_encryptwith(
trust_rst_t *rst,
const axutil_env_t *env,
axis2_char_t *encryptwith);
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
trust_rst_get_encryptwith(
trust_rst_t *rst,
const axutil_env_t *env);
/*Trust Version 1 -2005/02 - http://schemas.xmlsoap.org/ws/2005/02/trust */
/*Trust Version 2 -2005/12 - http://docs.oasis-open.org/ws-sx/ws-trust/200512 */
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
trust_rst_get_wst_ns_uri(
trust_rst_t *rst,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_rst_set_wst_ns_uri(
trust_rst_t *rst,
const axutil_env_t *env,
axis2_char_t *wst_ns_uri);
AXIS2_EXTERN void AXIS2_CALL
trust_rst_free(
trust_rst_t *rst,
const axutil_env_t *env);
#ifdef __cplusplus
}
#endif
#endif