include/trust_rst.h (233 lines of code) (raw):

/* * 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