blob: 638c3497e22be11c2318ea3c98dbf1e0fbcc5a37 [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.
*/
#include <rp_algorithmsuite.h>
struct rp_algorithmsuite_t
{
axis2_char_t *algosuite_string;
axis2_char_t *symmetric_signature;
axis2_char_t *asymmetric_signature;
axis2_char_t *computed_key;
int max_symmetric_keylength;
int min_asymmetric_keylength;
int max_asymmetric_keylength;
axis2_char_t *digest;
axis2_char_t *encryption;
axis2_char_t *symmetrickeywrap;
axis2_char_t *asymmetrickeywrap;
axis2_char_t *encryption_key_derivation;
axis2_char_t *signature_key_derivation;
int encryption_key_derivation_keylength;
int signature_key_derivation_keylength;
int min_symmetric_keylength;
axis2_char_t *c14n;
axis2_char_t *soap_normalization;
axis2_char_t *str_transformation;
axis2_char_t *xpath;
int ref;
};
AXIS2_EXTERN rp_algorithmsuite_t *AXIS2_CALL
rp_algorithmsuite_create(
const axutil_env_t *env)
{
rp_algorithmsuite_t *algorithmsuite = NULL;
AXIS2_ENV_CHECK(env, NULL);
algorithmsuite = (rp_algorithmsuite_t *) AXIS2_MALLOC(env->allocator,
sizeof
(rp_algorithmsuite_t));
if (algorithmsuite == NULL)
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
return NULL;
}
algorithmsuite->algosuite_string = NULL;
algorithmsuite->symmetric_signature = RP_HMAC_SHA1;
algorithmsuite->asymmetric_signature = RP_RSA_SHA1;
algorithmsuite->computed_key = RP_P_SHA1;
algorithmsuite->max_symmetric_keylength = 256;
algorithmsuite->min_asymmetric_keylength = 1024;
algorithmsuite->max_asymmetric_keylength = 4096;
algorithmsuite->digest = NULL;
algorithmsuite->encryption = NULL;
algorithmsuite->symmetrickeywrap = NULL;
algorithmsuite->asymmetrickeywrap = NULL;
algorithmsuite->encryption_key_derivation = NULL;
algorithmsuite->signature_key_derivation = NULL;
algorithmsuite->encryption_key_derivation_keylength = 192;
algorithmsuite->signature_key_derivation_keylength = 192;
algorithmsuite->min_symmetric_keylength = 0;;
algorithmsuite->c14n = RP_EX_C14N;
algorithmsuite->soap_normalization = NULL;
algorithmsuite->str_transformation = NULL;
algorithmsuite->xpath = NULL;
algorithmsuite->ref = 0;
return algorithmsuite;
}
AXIS2_EXTERN void AXIS2_CALL
rp_algorithmsuite_free(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
if (algorithmsuite)
{
if (--(algorithmsuite->ref) > 0)
{
return;
}
AXIS2_FREE(env->allocator, algorithmsuite);
algorithmsuite = NULL;
}
return;
}
/* Implementations */
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_algorithmsuite_get_algosuite_string(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
if (!algorithmsuite)
return NULL;
else
return algorithmsuite->algosuite_string;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_algorithmsuite_set_algosuite(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env,
axis2_char_t *algosuite_string)
{
AXIS2_PARAM_CHECK(env->error, algosuite_string, AXIS2_FAILURE);
algorithmsuite->algosuite_string = algosuite_string;
if (axutil_strcmp(algosuite_string, RP_ALGO_SUITE_BASIC256) == 0)
{
algorithmsuite->digest = RP_SHA1;
algorithmsuite->encryption = RP_AES256;
algorithmsuite->symmetrickeywrap = RP_KW_AES256;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA_OAEP;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L256;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L192;
algorithmsuite->min_symmetric_keylength = 256;
algorithmsuite->encryption_key_derivation_keylength = 256;
algorithmsuite->signature_key_derivation_keylength = 192;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp(algosuite_string, RP_ALGO_SUITE_BASIC192) == 0)
{
algorithmsuite->digest = RP_SHA1;
algorithmsuite->encryption = RP_AES192;
algorithmsuite->symmetrickeywrap = RP_KW_AES192;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA_OAEP;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L192;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L192;
algorithmsuite->min_symmetric_keylength = 192;
algorithmsuite->encryption_key_derivation_keylength = 192;
algorithmsuite->signature_key_derivation_keylength = 192;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp(algosuite_string, RP_ALGO_SUITE_BASIC128) == 0)
{
algorithmsuite->digest = RP_SHA1;
algorithmsuite->encryption = RP_AES128;
algorithmsuite->symmetrickeywrap = RP_KW_AES128;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA_OAEP;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L128;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L128;
algorithmsuite->min_symmetric_keylength = 128;
algorithmsuite->encryption_key_derivation_keylength = 128;
algorithmsuite->signature_key_derivation_keylength = 128;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp(algosuite_string, RP_ALGO_SUITE_TRIPLE_DES) == 0)
{
algorithmsuite->digest = RP_SHA1;
algorithmsuite->encryption = RP_TRIPLE_DES;
algorithmsuite->symmetrickeywrap = RP_KW_TRIPLE_DES;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA_OAEP;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L192;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L192;
algorithmsuite->min_symmetric_keylength = 192;
algorithmsuite->encryption_key_derivation_keylength = 192;
algorithmsuite->signature_key_derivation_keylength = 192;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp(algosuite_string, RP_ALGO_SUITE_BASIC256_RSA15) == 0)
{
algorithmsuite->digest = RP_SHA1;
algorithmsuite->encryption = RP_AES256;
algorithmsuite->symmetrickeywrap = RP_KW_AES256;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA15;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L256;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L192;
algorithmsuite->min_symmetric_keylength = 256;
algorithmsuite->encryption_key_derivation_keylength = 256;
algorithmsuite->signature_key_derivation_keylength = 192;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp(algosuite_string, RP_ALGO_SUITE_BASIC192_RSA15) == 0)
{
algorithmsuite->digest = RP_SHA1;
algorithmsuite->encryption = RP_AES192;
algorithmsuite->symmetrickeywrap = RP_KW_AES192;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA15;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L192;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L192;
algorithmsuite->min_symmetric_keylength = 192;
algorithmsuite->encryption_key_derivation_keylength = 192;
algorithmsuite->signature_key_derivation_keylength = 192;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp(algosuite_string, RP_ALGO_SUITE_BASIC128_RSA15) == 0)
{
algorithmsuite->digest = RP_SHA1;
algorithmsuite->encryption = RP_AES128;
algorithmsuite->symmetrickeywrap = RP_KW_AES128;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA15;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L128;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L128;
algorithmsuite->min_symmetric_keylength = 128;
algorithmsuite->encryption_key_derivation_keylength = 128;
algorithmsuite->signature_key_derivation_keylength = 128;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp(algosuite_string, RP_ALGO_SUITE_TRIPLE_DES_RSA15) ==
0)
{
algorithmsuite->digest = RP_SHA1;
algorithmsuite->encryption = RP_TRIPLE_DES;
algorithmsuite->symmetrickeywrap = RP_KW_TRIPLE_DES;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA15;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L192;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L192;
algorithmsuite->min_symmetric_keylength = 192;
algorithmsuite->encryption_key_derivation_keylength = 192;
algorithmsuite->signature_key_derivation_keylength = 192;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp(algosuite_string, RP_ALGO_SUITE_BASIC256_SHA256) ==
0)
{
algorithmsuite->digest = RP_SHA256;
algorithmsuite->encryption = RP_AES256;
algorithmsuite->symmetrickeywrap = RP_KW_AES256;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA_OAEP;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L256;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L192;
algorithmsuite->min_symmetric_keylength = 256;
algorithmsuite->encryption_key_derivation_keylength = 256;
algorithmsuite->signature_key_derivation_keylength = 192;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp(algosuite_string, RP_ALGO_SUITE_BASIC192_SHA256) ==
0)
{
algorithmsuite->digest = RP_SHA256;
algorithmsuite->encryption = RP_AES192;
algorithmsuite->symmetrickeywrap = RP_KW_AES192;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA_OAEP;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L192;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L192;
algorithmsuite->min_symmetric_keylength = 192;
algorithmsuite->encryption_key_derivation_keylength = 192;
algorithmsuite->signature_key_derivation_keylength = 192;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp(algosuite_string, RP_ALGO_SUITE_BASIC128_SHA256) ==
0)
{
algorithmsuite->digest = RP_SHA256;
algorithmsuite->encryption = RP_AES128;
algorithmsuite->symmetrickeywrap = RP_KW_AES128;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA_OAEP;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L128;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L128;
algorithmsuite->min_symmetric_keylength = 128;
algorithmsuite->encryption_key_derivation_keylength = 128;
algorithmsuite->signature_key_derivation_keylength = 128;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp(algosuite_string, RP_ALGO_SUITE_TRIPLE_DES_SHA256) ==
0)
{
algorithmsuite->digest = RP_SHA256;
algorithmsuite->encryption = RP_TRIPLE_DES;
algorithmsuite->symmetrickeywrap = RP_KW_TRIPLE_DES;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA_OAEP;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L192;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L192;
algorithmsuite->min_symmetric_keylength = 192;
algorithmsuite->encryption_key_derivation_keylength = 192;
algorithmsuite->signature_key_derivation_keylength = 192;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp
(algosuite_string, RP_ALGO_SUITE_BASIC256_SHA256_RSA15) == 0)
{
algorithmsuite->digest = RP_SHA256;
algorithmsuite->encryption = RP_AES256;
algorithmsuite->symmetrickeywrap = RP_KW_AES256;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA15;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L256;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L192;
algorithmsuite->min_symmetric_keylength = 256;
algorithmsuite->encryption_key_derivation_keylength = 256;
algorithmsuite->signature_key_derivation_keylength = 192;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp
(algosuite_string, RP_ALGO_SUITE_BASIC192_SHA256_RSA15) == 0)
{
algorithmsuite->digest = RP_SHA256;
algorithmsuite->encryption = RP_AES192;
algorithmsuite->symmetrickeywrap = RP_KW_AES192;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA15;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L192;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L192;
algorithmsuite->min_symmetric_keylength = 192;
algorithmsuite->encryption_key_derivation_keylength = 192;
algorithmsuite->signature_key_derivation_keylength = 192;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp
(algosuite_string, RP_ALGO_SUITE_BASIC128_SHA256_RSA15) == 0)
{
algorithmsuite->digest = RP_SHA256;
algorithmsuite->encryption = RP_AES128;
algorithmsuite->symmetrickeywrap = RP_KW_AES128;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA15;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L128;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L128;
algorithmsuite->min_symmetric_keylength = 128;
algorithmsuite->encryption_key_derivation_keylength = 128;
algorithmsuite->signature_key_derivation_keylength = 128;
return AXIS2_SUCCESS;
}
else if (axutil_strcmp
(algosuite_string, RP_ALGO_SUITE_TRIPLE_DES_SHA256_RSA15) == 0)
{
algorithmsuite->digest = RP_SHA256;
algorithmsuite->encryption = RP_TRIPLE_DES;
algorithmsuite->symmetrickeywrap = RP_KW_TRIPLE_DES;
algorithmsuite->asymmetrickeywrap = RP_KW_RSA15;
algorithmsuite->encryption_key_derivation = RP_P_SHA1_L192;
algorithmsuite->signature_key_derivation = RP_P_SHA1_L192;
algorithmsuite->min_symmetric_keylength = 192;
algorithmsuite->encryption_key_derivation_keylength = 192;
algorithmsuite->signature_key_derivation_keylength = 192;
return AXIS2_SUCCESS;
}
else
return AXIS2_FAILURE;
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_algorithmsuite_get_symmetric_signature(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->symmetric_signature;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_algorithmsuite_set_symmetric_signature(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env,
axis2_char_t *symmetric_signature)
{
AXIS2_PARAM_CHECK(env->error, symmetric_signature, AXIS2_FAILURE);
algorithmsuite->symmetric_signature = symmetric_signature;
return AXIS2_SUCCESS;
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_algorithmsuite_get_asymmetric_signature(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->asymmetric_signature;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_algorithmsuite_set_asymmetric_signature(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env,
axis2_char_t *asymmetric_signature)
{
AXIS2_PARAM_CHECK(env->error, asymmetric_signature, AXIS2_FAILURE);
algorithmsuite->asymmetric_signature = asymmetric_signature;
return AXIS2_SUCCESS;
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_algorithmsuite_get_computed_key(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->computed_key;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_algorithmsuite_set_computed_key(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env,
axis2_char_t *computed_key)
{
AXIS2_PARAM_CHECK(env->error, computed_key, AXIS2_FAILURE);
algorithmsuite->computed_key = computed_key;
return AXIS2_SUCCESS;
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_algorithmsuite_get_digest(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->digest;
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_algorithmsuite_get_encryption(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->encryption;
}
AXIS2_EXTERN int AXIS2_CALL
rp_algorithmsuite_get_max_symmetric_keylength(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->max_symmetric_keylength;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_algorithmsuite_set_max_symmetric_keylength(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env,
int max_symmetric_keylength)
{
algorithmsuite->max_symmetric_keylength = max_symmetric_keylength;
return AXIS2_SUCCESS;
}
AXIS2_EXTERN int AXIS2_CALL
rp_algorithmsuite_get_min_symmetric_keylength(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->min_symmetric_keylength;
}
AXIS2_EXTERN int AXIS2_CALL
rp_algorithmsuite_get_encryption_derivation_keylength(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->encryption_key_derivation_keylength;
}
AXIS2_EXTERN int AXIS2_CALL
rp_algorithmsuite_get_signature_derivation_keylength(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->signature_key_derivation_keylength;
}
AXIS2_EXTERN int AXIS2_CALL
rp_algorithmsuite_get_max_asymmetric_keylength(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->max_asymmetric_keylength;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_algorithmsuite_set_max_asymmetric_keylength(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env,
int max_asymmetric_keylength)
{
algorithmsuite->max_asymmetric_keylength = max_asymmetric_keylength;
return AXIS2_SUCCESS;
}
AXIS2_EXTERN int AXIS2_CALL
rp_algorithmsuite_get_min_asymmetric_keylength(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->min_asymmetric_keylength;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_algorithmsuite_set_min_asymmetric_keylength(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env,
int min_asymmetric_keylength)
{
algorithmsuite->min_asymmetric_keylength = min_asymmetric_keylength;
return AXIS2_SUCCESS;
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_algorithmsuite_get_symmetrickeywrap(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->symmetrickeywrap;
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_algorithmsuite_get_asymmetrickeywrap(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->asymmetrickeywrap;
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_algorithmsuite_get_signature_key_derivation(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->signature_key_derivation;
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_algorithmsuite_get_encryption_key_derivation(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->encryption_key_derivation;
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_algorithmsuite_get_soap_normalization(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->soap_normalization;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_algorithmsuite_set_soap_normalization(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env,
axis2_char_t *soap_normalization)
{
AXIS2_PARAM_CHECK(env->error, soap_normalization, AXIS2_FAILURE);
algorithmsuite->soap_normalization = soap_normalization;
return AXIS2_SUCCESS;
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_algorithmsuite_get_str_transformation(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->str_transformation;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_algorithmsuite_set_str_transformation(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env,
axis2_char_t *str_transformation)
{
AXIS2_PARAM_CHECK(env->error, str_transformation, AXIS2_FAILURE);
algorithmsuite->str_transformation = str_transformation;
return AXIS2_SUCCESS;
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_algorithmsuite_get_c14n(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->c14n;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_algorithmsuite_set_c14n(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env,
axis2_char_t *c14n)
{
AXIS2_PARAM_CHECK(env->error, c14n, AXIS2_FAILURE);
algorithmsuite->c14n = c14n;
return AXIS2_SUCCESS;
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_algorithmsuite_get_xpath(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
return algorithmsuite->xpath;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_algorithmsuite_set_xpath(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env,
axis2_char_t *xpath)
{
AXIS2_PARAM_CHECK(env->error, xpath, AXIS2_FAILURE);
algorithmsuite->xpath = xpath;
return AXIS2_SUCCESS;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_algorithmsuite_increment_ref(
rp_algorithmsuite_t *algorithmsuite,
const axutil_env_t *env)
{
algorithmsuite->ref++;
return AXIS2_SUCCESS;
}