blob: e2d49a7ba0df9fc0b14ce998e117ea8005db10a3 [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 RAMPART_CONTEXT_H
#define RAMPART_CONTEXT_H
/**
* @file rampart_context.h
* @brief The Rampart Context, in which configurations are stored
*/
/**
* @defgroup rampart_context Rampart Context
* @ingroup rampart_utils
* @{
*/
#include <rp_includes.h>
#include <rp_secpolicy.h>
#include <rampart_authn_provider.h>
#include <axutil_property.h>
#include <rampart_constants.h>
#include <rampart_callback.h>
#include <rampart_authn_provider.h>
#include <axis2_key_type.h>
#include <axis2_msg_ctx.h>
#include <oxs_key.h>
#include <axutil_array_list.h>
#include <rampart_saml_token.h>
#include <rampart_issued_token.h>
#include <oxs_key_mgr.h>
#ifdef __cplusplus
extern "C"
{
#endif
typedef struct rampart_context_t rampart_context_t;
typedef axis2_char_t *(AXIS2_CALL*
password_callback_fn)(
const axutil_env_t *env,
const axis2_char_t *username,
void *user_params);
typedef axis2_status_t (AXIS2_CALL*
rampart_is_replayed_fn)(
const axutil_env_t *env,
axis2_msg_ctx_t* msg_ctx,
rampart_context_t *rampart_context,
void *user_params);
typedef rampart_authn_provider_status_t (AXIS2_CALL*
auth_password_func)(
const axutil_env_t* env,
const axis2_char_t *username,
const axis2_char_t *password,
void *ctx);
typedef rampart_authn_provider_status_t (AXIS2_CALL*
auth_digest_func)(
const axutil_env_t* env,
const axis2_char_t *username,
const axis2_char_t *nonce,
const axis2_char_t *created,
const char *digest,
void *ctx);
/* This function will be used to store sct. Global id, local id will be given so function
* writer can store them in anyway. Get or Delete method will use any of the Global id or local
* id, so Store function writer should be ready for that.
*/
typedef axis2_status_t (AXIS2_CALL*
store_security_context_token_fn)(
const axutil_env_t *env,
axis2_msg_ctx_t* msg_ctx,
axis2_char_t *sct_global_id,
axis2_char_t *sct_local_id,
void *sct,
void *user_params);
/* This function will be called to get previously stored sct. If secure conversation token is
* referred by this method, then sct_id will be not null. However, if security context token
* (pre-agreed and established offline) is refered then sct_id might be NULL. is_encryption is
* passed, so that if pre-agreed sct is different for encryption and signature, then it could be
* accessed. sct_id_type will be RAMPART_SCT_ID_TYPE_LOCAL or RAMPART_SCT_ID_TYPE_GLOBAL if
* sct_id is NOT NULL. If sct_id is NULL, then sct_id_type will be RAMPART_SCT_ID_TYPE_UNKNOWN
*/
typedef void* (AXIS2_CALL*
obtain_security_context_token_fn)(
const axutil_env_t *env,
axis2_bool_t is_encryption,
axis2_msg_ctx_t* msg_ctx,
axis2_char_t *sct_id,
int sct_id_type,
void* user_params);
/* This function will be called to delete previously stored sct. sct_id_type can be
* RAMPART_SCT_ID_TYPE_LOCAL or RAMPART_SCT_ID_TYPE_GLOBAL
*/
typedef axis2_status_t (AXIS2_CALL*
delete_security_context_token_fn)(
const axutil_env_t *env,
axis2_msg_ctx_t* msg_ctx,
axis2_char_t *sct_id,
int sct_id_type,
void* user_params);
/* Validates whether security context token is valid or not. Normally, we can directly send
* true as response. But if syntax of security context token is altered/added by using
* extensible mechanism (e.g having sessions, etc.) then user can implement this method.
* Axiom representation of the sct will be given as the parameter, because if sct is
* extended, we don't know the syntax. Method writer can implement whatever needed.
*/
typedef axis2_status_t (AXIS2_CALL*
validate_security_context_token_fn)(
const axutil_env_t *env,
axiom_node_t *sct_node,
axis2_msg_ctx_t *msg_ctx,
void *user_params);
/**
* Create a rampart_context.rampart_context is the wrapper
* of secpolicy and the main configuration for rampart.
* @param env pointer to environment struct,Must not be NULL.
* @return ramaprt_context_t* on successful creation.Else NULL;
*/
AXIS2_EXTERN rampart_context_t *AXIS2_CALL
rampart_context_create(
const axutil_env_t *env);
/**
* Frees a rampart_context.
* @param rampart_context the rampart_context
* @env pointer to environment struct,Must not be NULL.
*/
AXIS2_EXTERN void AXIS2_CALL
rampart_context_free(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/****************************************************************/
/**
* Sets the policy node which is an om_node containing policy.This om_node
* can be build outside rampart.
* @param rampart_context the rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param policy_node is an axiom_node.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_policy_node(rampart_context_t *rampart_context,
const axutil_env_t *env,
axiom_node_t *policy_node);
/**
* Sets private key of sender as a buffer.This can be
* set from outside rampart.
* @param rampart_context the rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param prv_key is a void buffer.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_prv_key(rampart_context_t *rampart_context,
const axutil_env_t *env,
void *prv_key);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @type
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_prv_key_type(rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_key_type_t type);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param certificate
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_certificate(rampart_context_t *rampart_context,
const axutil_env_t *env,
void *certificate);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param type
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_certificate_type(rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_key_type_t type);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* @param receiver_certificate
* returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_receiver_certificate(rampart_context_t *rampart_context,
const axutil_env_t *env,
void *receiver_certificate);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param type
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_receiver_certificate_type(rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_key_type_t type);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param user
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_user(rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_char_t *user);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param password
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_password(rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_char_t *password);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param prv_key_password
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_prv_key_password(rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_char_t *prv_key_password);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param pwcb_function
* @param ctx
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_pwcb_function(rampart_context_t *rampart_context,
const axutil_env_t *env,
password_callback_fn pwcb_function,
void *user_params);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param is_replayed_function
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_replay_detect_function(rampart_context_t *rampart_context,
const axutil_env_t *env,
rampart_is_replayed_fn is_replayed_function,
void *user_params);
/**
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns user parameters for replay detector function or NULL
*/
AXIS2_EXTERN void * AXIS2_CALL
rampart_context_get_rd_user_params(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param password_type
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_password_type(rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_char_t *password_type);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param ttl
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_ttl(
rampart_context_t *rampart_context,
const axutil_env_t *env,
int ttl);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_need_millisecond_precision(
rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_bool_t need_millisecond_precision);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_clock_skew_buffer(
rampart_context_t *rampart_context,
const axutil_env_t *env,
int skew_buffer);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param rd_val
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_rd_val(rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_char_t *rd_val);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param private_key_file
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_private_key_file(rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_char_t *private_key_file);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param cerficate_file
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_certificate_file(rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_char_t *certificate_file);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param key
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_add_key(rampart_context_t *rampart_context,
const axutil_env_t *env,
oxs_key_t *key);
/**********************************************************8*/
/*Getters of the above set functions*/
/**
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axiom_node_t *AXIS2_CALL
rampart_context_get_policy_node(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN void *AXIS2_CALL
rampart_context_get_prv_key(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_key_type_t AXIS2_CALL
rampart_context_get_prv_key_type(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN void *AXIS2_CALL
rampart_context_get_certificate(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_key_type_t AXIS2_CALL
rampart_context_get_certificate_type(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN void *AXIS2_CALL
rampart_context_get_receiver_certificate(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_key_type_t AXIS2_CALL
rampart_context_get_receiver_certificate_type(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_user(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_password(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_prv_key_password(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN password_callback_fn AXIS2_CALL
rampart_context_get_pwcb_function(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN rampart_is_replayed_fn AXIS2_CALL
rampart_context_get_replay_detect_function(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN void * AXIS2_CALL
rampart_context_get_pwcb_user_params(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN int AXIS2_CALL
rampart_context_get_ttl(
rampart_context_t *rampart_context,
const axutil_env_t *env);
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_get_need_millisecond_precision(
rampart_context_t *rampart_context,
const axutil_env_t *env);
AXIS2_EXTERN int AXIS2_CALL
rampart_context_get_clock_skew_buffer(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t* AXIS2_CALL
rampart_context_get_rd_val(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_password_type(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axutil_array_list_t* AXIS2_CALL
rampart_context_get_keys(rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param key_id
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN oxs_key_t* AXIS2_CALL
rampart_context_get_key(rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_char_t* key_id);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param hash
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN oxs_key_t* AXIS2_CALL
rampart_context_get_key_using_hash(rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_char_t* hash);
/*End of Getters */
/*Rampart specific functions */
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN rp_secpolicy_t *AXIS2_CALL
rampart_context_get_secpolicy(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param secpolicy
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_secpolicy(rampart_context_t *rampart_context,
const axutil_env_t *env,
rp_secpolicy_t *secpolicy);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN rampart_callback_t *AXIS2_CALL
rampart_context_get_password_callback(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_password_callback(rampart_context_t *rampart_context,
const axutil_env_t *env,
rampart_callback_t *password_callback_module);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param password_callback_module
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN auth_password_func AXIS2_CALL
rampart_context_get_auth_password_function(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param authentication_with_password
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_auth_password_function(rampart_context_t *rampart_context,
const axutil_env_t *env,
auth_password_func authenticate_with_password);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN auth_digest_func AXIS2_CALL
rampart_context_get_auth_digest_function(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param authentication_with_digest
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_auth_digest_function(rampart_context_t *rampart_context,
const axutil_env_t *env,
auth_digest_func authenticate_with_digest);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN rampart_authn_provider_t *AXIS2_CALL
rampart_context_get_authn_provider(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN void *AXIS2_CALL
rampart_context_get_replay_detector(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN void *AXIS2_CALL
rampart_context_get_sct_provider(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param authn_provider
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_authn_provider(rampart_context_t *rampart_context,
const axutil_env_t *env,
rampart_authn_provider_t *authn_provider);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param replay_detector
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_replay_detector(rampart_context_t *rampart_context,
const axutil_env_t *env,
void *replay_detector);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param sct_module
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_sct_provider(rampart_context_t *rampart_context,
const axutil_env_t *env,
void *sct_module);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_get_require_timestamp(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_get_require_ut(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN rp_property_type_t AXIS2_CALL
rampart_context_get_binding_type(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_is_include_timestamp(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_is_include_username_token(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param server_side
* @param is_inpath
* @param token_type
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_is_include_supporting_token(
rampart_context_t *rampart_context, const axutil_env_t *env,
axis2_bool_t server_side, axis2_bool_t is_inpath,
rp_property_type_t token_type);
/**
*
* @param rampart_context
* @param server_side
* @param is_inpath
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_is_include_protection_saml_token(
rampart_context_t *rampart_context, axis2_bool_t server_side,
axis2_bool_t is_inpath, const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param token_type
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN rp_property_t * AXIS2_CALL
rampart_context_get_supporting_token(
rampart_context_t *rampart_context,
const axutil_env_t *env, rp_property_type_t token_type);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_password_callback_class(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_authn_module_name(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_replay_detector_name(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_sct_provider_name(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_is_encrypt_before_sign(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_is_encrypt_signature(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param soap_envelope
* @param nodes_to_encrypt
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_get_nodes_to_encrypt(
rampart_context_t *rampart_context,
const axutil_env_t *env,
axiom_soap_envelope_t *soap_envelope,
axutil_array_list_t *nodes_to_encrypt);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param soap_envelope
* @param nodes_to_sign
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_get_nodes_to_sign(
rampart_context_t *rampart_context,
const axutil_env_t *env,
axiom_soap_envelope_t *soap_envelope,
axutil_array_list_t *nodes_to_sign);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param soap_envelope
* @param nodes_to_encrypt
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_get_elements_to_encrypt(
rampart_context_t *rampart_context,
const axutil_env_t *env,
axiom_soap_envelope_t *soap_envelope,
axutil_array_list_t *nodes_to_encrypt);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param soap_envelope
* @param nodes_to_sign
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_get_elements_to_sign(
rampart_context_t *rampart_context,
const axutil_env_t *env,
axiom_soap_envelope_t *soap_envelope,
axutil_array_list_t *nodes_to_sign);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* @param for_encryption
* @param sever_side
* @param is_inpath
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN rp_property_t *AXIS2_CALL
rampart_context_get_token(
rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_bool_t for_encryption,
axis2_bool_t server_side,
axis2_bool_t is_inpath);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN rp_property_t *AXIS2_CALL
rampart_context_get_endorsing_token(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param env pointer to environment struct,Must not be NULL.
* @param token
* @returns whether derived key needed or not
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_check_is_derived_keys(
const axutil_env_t *env,
rp_property_t *token);
/**
* @param env pointer to environment struct,Must not be NULL.
* @param token
* @returns derived key version. NULL on error.
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_derived_key_version(
const axutil_env_t *env,
rp_property_t *token);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_enc_sym_algo(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_enc_asym_algo(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_asym_sig_algo(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_sym_sig_algo(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_digest_mtd(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_encryption_user(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param token
* @param token_type
* @param server_side
* @param is_inpath
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_is_token_include(
rampart_context_t *rampart_context,
rp_property_t *token,
rp_property_type_t token_type,
axis2_bool_t server_side,
axis2_bool_t is_inpath,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param token
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_key_identifier(
rampart_context_t *rampart_context,
rp_property_t *token,
const axutil_env_t *env);
/**
*
* @param token_type
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_is_token_type_supported(
rp_property_type_t token_type,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param token
* @param identifier
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_is_key_identifier_type_supported(
rampart_context_t *rampart_context,
rp_property_t *token,
axis2_char_t *identifier,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_layout(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_check_whether_to_encrypt(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_check_whether_to_sign(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_user_from_file(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_password_type_from_file(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_certificate_file(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_receiver_certificate_file(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_private_key_file(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_ttl_from_file(
rampart_context_t *rampart_context,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_clock_skew_buffer_from_file(
rampart_context_t *rampart_context,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_need_millisecond_precision_from_file(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_rd_val_from_file(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN oxs_key_t *AXIS2_CALL
rampart_context_get_encryption_session_key(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param session_key
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_encryption_session_key(
rampart_context_t *rampart_context,
const axutil_env_t *env,
oxs_key_t *session_key);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN oxs_key_t *AXIS2_CALL
rampart_context_get_signature_session_key(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param session_key
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_signature_session_key(
rampart_context_t *rampart_context,
const axutil_env_t *env,
oxs_key_t *session_key);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_increment_ref(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_is_sig_confirmation_reqd(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_encryption_token_id(
rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_msg_ctx_t* msg_ctx);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_signature_token_id(
rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_msg_ctx_t* msg_ctx);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param sct_id
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_encryption_token_id(
rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_char_t *sct_id,
axis2_msg_ctx_t* msg_ctx);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param sct_id
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_signature_token_id(
rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_char_t *sct_id,
axis2_msg_ctx_t* msg_ctx);
/* Return the saml token of token type set in the rampart context */
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param token_type
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN rampart_saml_token_t * AXIS2_CALL
rampart_context_get_saml_token(rampart_context_t *rampart_context,
const axutil_env_t *env,
rampart_st_type_t token_type);
/* Add a saml token */
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param token
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_add_saml_token(rampart_context_t *rampart_context,
const axutil_env_t *env,
rampart_saml_token_t *token);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param tokens
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_saml_tokens(
rampart_context_t *rampart_context,
const axutil_env_t *env,
axutil_array_list_t *tokens);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN issued_token_callback_func AXIS2_CALL
rampart_context_get_issued_token_aquire_function(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param issued_token_aquire
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_issued_token_aquire_function(
rampart_context_t *rampart_context,
const axutil_env_t *env,
issued_token_callback_func issued_token_aquire);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN int AXIS2_CALL
rampart_context_get_encryption_derived_key_len(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN int AXIS2_CALL
rampart_context_get_signature_derived_key_len(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
*
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN rp_algorithmsuite_t *AXIS2_CALL
rampart_context_get_algorithmsuite(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
* Get the key manager from rampart context.
* @param rampart_context Pointer to rampart context struct.
* @param Pointer to environment struct
* @returns pointer Key manager struct
*/
AXIS2_EXTERN oxs_key_mgr_t * AXIS2_CALL
rampart_context_get_key_mgr(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
* Set the key manager to rampart context.
* @param rampart_context Pointer to rampart context struct.
* @param Pointer to environment struct
* @param key_mgr Pointer to key manager struct.
* @returns status of the operation. AXIS2_SUCCESS on success AXIS2_FAILURE otherwise.
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_key_mgr(
rampart_context_t *rampart_context,
const axutil_env_t *env,
oxs_key_mgr_t *key_mgr);
/**
* Get the pkcs12 file name from rampart context.
* @param rampart_context Pointer to rampart context struct.
* @param Pointer to environment struct
* @returns PKCS12 file name
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_pkcs12_file_name(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
* Set the a node list to the context. These nodes will be append to
* the Security header
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @param tokens the token list as an array
* @returns status of the op.
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_custom_tokens(rampart_context_t *rampart_context,
const axutil_env_t *env,
axutil_array_list_t *tokens);
/**
* Get the node or the token list as an array. If the size is 0
* that means there are no custom tokens specified by the client
* @param rampart_context
* @param env pointer to environment struct,Must not be NULL.
* @returns the custom tokens list
*/
AXIS2_EXTERN axutil_array_list_t* AXIS2_CALL
rampart_context_get_custom_tokens(rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
* Get the receiver certificate file name from rampart context.
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @returns Receiver certificate file name
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_receiver_certificate_file(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
* Get the found_cert_in_shp from rampart context.
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @returns axis2_bool_t
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_get_found_cert_in_shp(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
* Set the certificate found status to rampart context.
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @param found_cert_in_shp boolean value which specify the certificate found status
* @returns status of the operation
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_found_cert_in_shp(
rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_bool_t found_cert_in_shp);
/**
* Get the certificate found in shp from rampart context.
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @returns oxs_x509_cert_t Client certificate found when processing sec header, otherwise NULL
*/
AXIS2_EXTERN oxs_x509_cert_t *AXIS2_CALL
rampart_context_get_receiver_cert_found_in_shp(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
* Set the found_cert_in_shp to rampart context.
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @param cert pointer to the certficate
* @returns status of the operation
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_receiver_cert_found_in_shp(
rampart_context_t *rampart_context,
const axutil_env_t *env,
oxs_x509_cert_t *cert);
AXIS2_EXTERN void * AXIS2_CALL
rampart_context_get_key_store_buff(
rampart_context_t *rampart_context,
const axutil_env_t *env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_key_store_buff(
rampart_context_t *rampart_context,
const axutil_env_t *env,
void *key_store_buf,
int length);
/**
* Set the function used to store security context token
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @param store_fn funtion pointer used to store sct
* @returns status of the operation
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_store_security_context_token_fn(
rampart_context_t *rampart_context,
const axutil_env_t *env,
store_security_context_token_fn store_fn);
/**
* Set the function used to get security context token
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @param get_fn funtion pointer used to get stored sct
* @returns status of the operation
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_obtain_security_context_token_fn(
rampart_context_t *rampart_context,
const axutil_env_t *env,
obtain_security_context_token_fn get_fn);
/**
* Set the function used to delete security context token
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @param delete_fn funtion pointer used to delete stored sct
* @returns status of the operation
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_delete_security_context_token_fn(
rampart_context_t *rampart_context,
const axutil_env_t *env,
delete_security_context_token_fn delete_fn);
/**
* Set the user parameters used to invoke security context token related funtions
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @param user_params pointer to user params
* @returns status of the operation
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_security_context_token_user_params(
rampart_context_t *rampart_context,
const axutil_env_t *env,
void* user_params);
/**
* Set the function used to validate security context token
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @param validate_fn funtion pointer used to validate sct
* @returns status of the operation
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_validate_security_context_token_fn(
rampart_context_t *rampart_context,
const axutil_env_t *env,
validate_security_context_token_fn validate_fn);
/**
* Get the function used to store security context token
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @returns untion pointer used to store sct
*/
AXIS2_EXTERN store_security_context_token_fn AXIS2_CALL
rampart_context_get_store_security_context_token_fn(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
* Get the function used to get security context token
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @returns funtion pointer used to get stored sct
*/
AXIS2_EXTERN obtain_security_context_token_fn AXIS2_CALL
rampart_context_get_obtain_security_context_token_fn(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
* Get the function used to delete security context token
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @returns funtion pointer used to delete stored sct
*/
AXIS2_EXTERN delete_security_context_token_fn AXIS2_CALL
rampart_context_get_delete_security_context_token_fn(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
* Get the user parameters used to invoke security context token related funtions
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @param user_params pointer to user params
* @returns pointer to user parameter.
*/
AXIS2_EXTERN void* AXIS2_CALL
rampart_context_get_security_context_token_user_params(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
* Get the function used to validate security context token
* @param rampart_context Pointer to rampart context struct.
* @param env Pointer to environment struct
* @returns funtion pointer used to validate sct
*/
AXIS2_EXTERN validate_security_context_token_fn AXIS2_CALL
rampart_context_get_validate_security_context_token_fn(
rampart_context_t *rampart_context,
const axutil_env_t *env);
/**
* check whether different keys are needed for encryption and signature
* @param env pointer to environment struct
* @param rampart_context rampart context
* @return AXIS2_TRUE if different keys are needed. AXIS2_FALSE otherwise.
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rampart_context_is_different_session_key_for_enc_and_sign(
const axutil_env_t *env,
rampart_context_t *rampart_context);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rampart_context_set_receiver_certificate_file(
rampart_context_t *rampart_context,
const axutil_env_t *env,
axis2_char_t *receiver_certificate_file);
#ifdef __cplusplus
}
#endif
#endif