You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by pi...@apache.org on 2007/09/06 12:49:17 UTC
svn commit: r573215 [16/22] - in /webservices/rampart/tags/c/0.90: ./ build/
build/linux/ build/win32/ include/ samples/ samples/authn_provider/
samples/callback/ samples/callback/htpasswd_callback/ samples/client/
samples/client/sec_echo/ samples/clie...
Added: webservices/rampart/tags/c/0.90/src/secpolicy/builder/token_builder.c
URL: http://svn.apache.org/viewvc/webservices/rampart/tags/c/0.90/src/secpolicy/builder/token_builder.c?rev=573215&view=auto
==============================================================================
--- webservices/rampart/tags/c/0.90/src/secpolicy/builder/token_builder.c (added)
+++ webservices/rampart/tags/c/0.90/src/secpolicy/builder/token_builder.c Thu Sep 6 03:48:44 2007
@@ -0,0 +1,139 @@
+/*
+ * 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_token_builder.h>
+
+AXIS2_EXTERN rp_property_t *AXIS2_CALL
+rp_token_builder_build(
+ const axutil_env_t *env,
+ axiom_node_t *token)
+{
+ rp_property_t *property = NULL;
+ axiom_node_t *policy = NULL;
+ axiom_node_t *token_name = NULL;
+ axiom_element_t *token_name_ele = NULL;
+ axis2_char_t *token_value = NULL;
+ axis2_status_t status = AXIS2_SUCCESS;
+
+ AXIS2_ENV_CHECK(env,NULL);
+
+ if(token)
+ {
+ property = rp_property_create(env);
+ if(!property)
+ return NULL;
+ policy = axiom_node_get_first_element(token,env);
+ if(policy)
+ {
+ token_name = axiom_node_get_first_element(policy,env);
+ if(token_name)
+ {
+ if(axiom_node_get_node_type(token_name,env) == AXIOM_ELEMENT)
+ {
+ token_name_ele = (axiom_element_t*)axiom_node_get_data_element(token_name, env);
+ if(token_name_ele)
+ {
+ token_value = axiom_element_get_localname(token_name_ele, env);
+ if(token_value)
+ {
+ status = rp_token_builder_set_token(token_name,token_name_ele,token_value,property,env);
+ if(status!=AXIS2_SUCCESS)
+ {
+ rp_property_free(property,env);
+ property = NULL;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return property;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_token_builder_set_token(
+ axiom_node_t *node,
+ axiom_element_t *element,
+ axis2_char_t *value,
+ rp_property_t *token,
+ const axutil_env_t *env)
+
+{
+ AXIS2_ENV_CHECK(env,AXIS2_FAILURE);
+
+ if(axutil_strcmp(value,RP_USERNAME_TOKEN)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_USERNAME_TOKEN,node,element))
+ {
+ rp_username_token_t *username_token = NULL;
+ username_token = rp_username_token_builder_build(env,node,element);
+ if(!username_token)
+ return AXIS2_FAILURE;
+
+ return rp_property_set_value(token,env,username_token,RP_TOKEN_USERNAME);
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(axutil_strcmp(value,RP_X509_TOKEN)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_X509_TOKEN,node,element))
+ {
+ rp_x509_token_t *x509_token = NULL;
+ x509_token = rp_x509_token_builder_build(env,node,element);
+ if(!x509_token)
+ return AXIS2_FAILURE;
+
+ return rp_property_set_value(token,env,x509_token,RP_TOKEN_X509);
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(axutil_strcmp(value,RP_SECURITY_CONTEXT_TOKEN)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_SECURITY_CONTEXT_TOKEN,node,element))
+ {
+ rp_security_context_token_t *security_context_token = NULL;
+ security_context_token = rp_security_context_token_builder_build(env,node,element);
+ if(!security_context_token)
+ return AXIS2_FAILURE;
+
+ return rp_property_set_value(token,env,security_context_token,RP_TOKEN_SECURITY_CONTEXT);
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(axutil_strcmp(value,RP_HTTPS_TOKEN)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_HTTPS_TOKEN,node,element))
+ {
+ rp_https_token_t *https_token = NULL;
+ https_token = rp_https_token_builder_build(env,node,element);
+ if(!https_token)
+ return AXIS2_FAILURE;
+
+ return rp_property_set_value(token,env,https_token,RP_TOKEN_HTTPS);
+
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else
+ return AXIS2_FAILURE;
+}
Added: webservices/rampart/tags/c/0.90/src/secpolicy/builder/transport_binding_builder.c
URL: http://svn.apache.org/viewvc/webservices/rampart/tags/c/0.90/src/secpolicy/builder/transport_binding_builder.c?rev=573215&view=auto
==============================================================================
--- webservices/rampart/tags/c/0.90/src/secpolicy/builder/transport_binding_builder.c (added)
+++ webservices/rampart/tags/c/0.90/src/secpolicy/builder/transport_binding_builder.c Thu Sep 6 03:48:44 2007
@@ -0,0 +1,128 @@
+/*
+ * 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_binding_commons_builder.h>
+#include <rp_transport_binding_builder.h>
+#include <rp_qname_matcher.h>
+#include <rp_token_builder.h>
+
+AXIS2_EXTERN rp_transport_binding_t *AXIS2_CALL
+rp_transport_binding_builder_build(const axutil_env_t *env, axiom_node_t *transport)
+{
+ rp_transport_binding_t *transport_binding = NULL;
+ rp_binding_commons_t *commons = NULL;
+ axiom_element_t *pol_ele = NULL;
+ axiom_node_t *policy = NULL;
+
+ AXIS2_ENV_CHECK(env, NULL);
+
+ if(transport)
+ {
+ policy = axiom_node_get_first_element(transport,env);
+
+ if(axiom_node_get_node_type(policy, env) == AXIOM_ELEMENT)
+ {
+ pol_ele = (axiom_element_t*)axiom_node_get_data_element(policy, env);
+
+ transport_binding = rp_transport_binding_create(env);
+ if(!transport_binding)
+ return NULL;
+
+ commons = rp_binding_commons_create(env);
+ if(!commons)
+ return NULL;
+
+ if(pol_ele)
+ {
+ axiom_children_iterator_t *children_iter = NULL;
+ children_iter = axiom_element_get_children(pol_ele, env, policy);
+ if(children_iter )
+ {
+ while(axiom_children_iterator_has_next(children_iter, env))
+ {
+ axiom_node_t *node = NULL;
+ axiom_element_t *ele = NULL;
+ axis2_char_t *local_name = NULL;
+ node = axiom_children_iterator_next(children_iter, env);
+ if(node)
+ {
+ if(axiom_node_get_node_type(node, env) == AXIOM_ELEMENT)
+ {
+ ele = (axiom_element_t*)axiom_node_get_data_element(node, env);
+ if(ele)
+ {
+ local_name = axiom_element_get_localname(ele,env);
+ if(local_name)
+ {
+ if(rp_transport_binding_builder_istoken(env,local_name))
+ rp_transport_binding_builder_set_token_type(env,transport_binding,node,ele,local_name);
+ else
+ rp_binding_commons_builder_build(env,node,ele,local_name,commons);
+ }
+ }
+ }
+ }
+ }
+ }
+ rp_transport_binding_set_binding_commons(transport_binding,env,commons);
+ }
+ }
+ }
+ return transport_binding;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_transport_binding_builder_set_token_type(
+ const axutil_env_t *env,
+ rp_transport_binding_t *transport_binding,
+ axiom_node_t *node,
+ axiom_element_t *element,
+ axis2_char_t *local_name)
+{
+ AXIS2_ENV_CHECK(env,AXIS2_FAILURE);
+
+ if(axutil_strcmp(local_name,RP_TRANSPORT_TOKEN)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_TRANSPORT_TOKEN,node,element))
+ {
+ rp_property_t *transport_token = NULL;
+ transport_token = rp_token_builder_build(env,node);
+ if(!transport_token)
+ return AXIS2_FAILURE;
+
+ return rp_transport_binding_set_transport_token(transport_binding,env,transport_token);
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else
+ return AXIS2_FAILURE;
+}
+
+AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+rp_transport_binding_builder_istoken(
+ const axutil_env_t *env,
+ axis2_char_t *local_name)
+{
+ AXIS2_ENV_CHECK(env,AXIS2_FALSE);
+
+ if(axutil_strcmp(local_name,RP_TRANSPORT_TOKEN)==0)
+ return AXIS2_TRUE;
+
+ else
+ return AXIS2_FALSE;
+}
Added: webservices/rampart/tags/c/0.90/src/secpolicy/builder/username_token_builder.c
URL: http://svn.apache.org/viewvc/webservices/rampart/tags/c/0.90/src/secpolicy/builder/username_token_builder.c?rev=573215&view=auto
==============================================================================
--- webservices/rampart/tags/c/0.90/src/secpolicy/builder/username_token_builder.c (added)
+++ webservices/rampart/tags/c/0.90/src/secpolicy/builder/username_token_builder.c Thu Sep 6 03:48:44 2007
@@ -0,0 +1,158 @@
+/*
+ * 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_username_token_builder.h>
+
+AXIS2_EXTERN rp_username_token_t *AXIS2_CALL
+rp_username_token_builder_build(
+ const axutil_env_t *env,
+ axiom_node_t *username,
+ axiom_element_t *username_ele)
+{
+ rp_username_token_t *username_token = NULL;
+ axiom_node_t *policy = NULL;
+ axiom_element_t *pol_ele = NULL;
+ axis2_status_t status = AXIS2_SUCCESS;
+
+ AXIS2_ENV_CHECK(env,NULL);
+
+ username_token = rp_username_token_create(env);
+ if(!username_token)
+ return NULL;
+
+ status = rp_username_token_builder_set_inclusion_value(env,username_token,username_ele);
+ if(status != AXIS2_SUCCESS )
+ {
+ rp_username_token_free(username_token,env);
+ username_token = NULL;
+ return NULL;
+ }
+ policy = axiom_node_get_first_element(username,env);
+ if(!policy)
+ return username_token;
+
+ if(axiom_node_get_node_type(policy, env) == AXIOM_ELEMENT)
+ {
+ pol_ele = (axiom_element_t*)axiom_node_get_data_element(policy, env);
+ if(pol_ele)
+ {
+ axiom_children_iterator_t *children_iter = NULL;
+ children_iter = axiom_element_get_children(pol_ele, env, policy);
+ if(children_iter )
+ {
+ while(axiom_children_iterator_has_next(children_iter, env))
+ {
+ axiom_node_t *node = NULL;
+ axiom_element_t *ele = NULL;
+ axis2_char_t *local_name = NULL;
+ node = axiom_children_iterator_next(children_iter, env);
+ if(node)
+ {
+ if(axiom_node_get_node_type(node, env) == AXIOM_ELEMENT)
+ {
+ ele = (axiom_element_t*)axiom_node_get_data_element(node, env);
+ if(ele)
+ {
+ local_name = axiom_element_get_localname(ele,env);
+ if(local_name)
+ {
+ status = rp_username_token_builder_set_properties(node,ele,local_name,username_token,env);
+ if(status != AXIS2_SUCCESS)
+ {
+ rp_username_token_free(username_token,env);
+ username_token = NULL;
+ break;
+ }
+ }
+ }
+
+ }
+ }
+ }
+ }
+ }
+ }
+ return username_token;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_username_token_builder_set_inclusion_value(
+ const axutil_env_t *env,
+ rp_username_token_t *token,
+ axiom_element_t *element)
+{
+ axis2_char_t *inclusion_value = NULL;
+ axutil_qname_t *qname = NULL;
+
+ AXIS2_ENV_CHECK(env,AXIS2_FAILURE);
+
+ qname = axutil_qname_create(env,RP_INCLUDE_TOKEN,RP_SP_NS,RP_SP_PREFIX);
+ if(!qname)
+ return AXIS2_FAILURE;
+
+ inclusion_value = axiom_element_get_attribute_value(element,env,qname);
+
+ axutil_qname_free(qname,env);
+ qname = NULL;
+
+ return rp_username_token_set_inclusion(token,env,inclusion_value);
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_username_token_builder_set_properties(
+ axiom_node_t *node,
+ axiom_element_t *element,
+ axis2_char_t *local_name,
+ rp_username_token_t *username_token,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env,AXIS2_FAILURE);
+
+ if(strcmp(local_name,RP_WSS_USERNAME_TOKEN_10)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_WSS_USERNAME_TOKEN_10,node,element))
+ {
+ rp_username_token_set_useUTprofile10(username_token,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_WSS_USERNAME_TOKEN_11)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_WSS_USERNAME_TOKEN_11,node,element))
+ {
+ rp_username_token_set_useUTprofile11(username_token,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_REQUIRE_DERIVED_KEYS)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_REQUIRE_DERIVED_KEYS,node,element))
+ {
+ rp_username_token_set_derivedkeys(username_token,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else
+ return AXIS2_FAILURE;
+}
Added: webservices/rampart/tags/c/0.90/src/secpolicy/builder/wss10_builder.c
URL: http://svn.apache.org/viewvc/webservices/rampart/tags/c/0.90/src/secpolicy/builder/wss10_builder.c?rev=573215&view=auto
==============================================================================
--- webservices/rampart/tags/c/0.90/src/secpolicy/builder/wss10_builder.c (added)
+++ webservices/rampart/tags/c/0.90/src/secpolicy/builder/wss10_builder.c Thu Sep 6 03:48:44 2007
@@ -0,0 +1,135 @@
+/*
+ * 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_wss10_builder.h>
+
+AXIS2_EXTERN rp_wss10_t *AXIS2_CALL
+rp_wss10_builder_build(
+ const axutil_env_t *env,
+ axiom_node_t *wss)
+{
+ rp_wss10_t *wss10 = NULL;
+ axis2_status_t status = AXIS2_SUCCESS;
+ axiom_node_t *policy = NULL;
+ axiom_element_t *pol_ele = NULL;
+
+ AXIS2_ENV_CHECK(env,NULL);
+
+ wss10 = rp_wss10_create(env);
+ if(!wss10)
+ return NULL;
+
+ policy = axiom_node_get_first_element(wss,env);
+
+ if(axiom_node_get_node_type(policy, env) == AXIOM_ELEMENT)
+ {
+ pol_ele = (axiom_element_t*)axiom_node_get_data_element(policy, env);
+ if(pol_ele)
+ {
+ axiom_children_iterator_t *children_iter = NULL;
+ children_iter = axiom_element_get_children(pol_ele, env, policy);
+ if(children_iter )
+ {
+ while(axiom_children_iterator_has_next(children_iter, env))
+ {
+ axiom_node_t *node = NULL;
+ axiom_element_t *ele = NULL;
+ axis2_char_t *local_name = NULL;
+ node = axiom_children_iterator_next(children_iter, env);
+ if(node)
+ {
+ if(axiom_node_get_node_type(node, env) == AXIOM_ELEMENT)
+ {
+ ele = (axiom_element_t*)axiom_node_get_data_element(node, env);
+ if(ele)
+ {
+ local_name = axiom_element_get_localname(ele,env);
+ if(local_name)
+ {
+ status = rp_wss10_builder_set_properties(node,ele,local_name,wss10,env);
+ if(status!=AXIS2_SUCCESS)
+ {
+ rp_wss10_free(wss10,env);
+ wss10 = NULL;
+ }
+ }
+ }
+
+ }
+ }
+ }
+ }
+ }
+ }
+ return wss10;
+}
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_wss10_builder_set_properties(
+ axiom_node_t *node,
+ axiom_element_t *element,
+ axis2_char_t *local_name,
+ rp_wss10_t *wss10,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env,AXIS2_FAILURE);
+
+ if(strcmp(local_name,RP_MUST_SUPPORT_REF_KEY_IDENTIFIER)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_MUST_SUPPORT_REF_KEY_IDENTIFIER,node,element))
+ {
+ rp_wss10_set_must_support_ref_key_identifier(wss10,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_MUST_SUPPORT_REF_ISSUER_SERIAL)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_MUST_SUPPORT_REF_ISSUER_SERIAL,node,element))
+ {
+ rp_wss10_set_must_support_ref_issuer_serial(wss10,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_MUST_SUPPORT_REF_EXTERNAL_URI)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_MUST_SUPPORT_REF_EXTERNAL_URI,node,element))
+ {
+ rp_wss10_set_must_support_ref_external_uri(wss10,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_MUST_SUPPORT_REF_EMBEDDED_TOKEN)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_MUST_SUPPORT_REF_EMBEDDED_TOKEN,node,element))
+ {
+ rp_wss10_set_must_support_ref_embedded_token(wss10,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else
+ return AXIS2_FAILURE;
+}
Added: webservices/rampart/tags/c/0.90/src/secpolicy/builder/wss11_builder.c
URL: http://svn.apache.org/viewvc/webservices/rampart/tags/c/0.90/src/secpolicy/builder/wss11_builder.c?rev=573215&view=auto
==============================================================================
--- webservices/rampart/tags/c/0.90/src/secpolicy/builder/wss11_builder.c (added)
+++ webservices/rampart/tags/c/0.90/src/secpolicy/builder/wss11_builder.c Thu Sep 6 03:48:44 2007
@@ -0,0 +1,167 @@
+/*
+ * 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_wss11_builder.h>
+
+AXIS2_EXTERN rp_wss11_t *AXIS2_CALL
+rp_wss11_builder_build(
+ const axutil_env_t *env,
+ axiom_node_t *wss)
+{
+ rp_wss11_t *wss11 = NULL;
+ axis2_status_t status = AXIS2_SUCCESS;
+ axiom_node_t *policy = NULL;
+ axiom_element_t *pol_ele = NULL;
+
+ AXIS2_ENV_CHECK(env,NULL);
+
+ wss11 = rp_wss11_create(env);
+ if(!wss11)
+ return NULL;
+
+ policy = axiom_node_get_first_element(wss,env);
+
+ if(axiom_node_get_node_type(policy, env) == AXIOM_ELEMENT)
+ {
+ pol_ele = (axiom_element_t*)axiom_node_get_data_element(policy, env);
+ if(pol_ele)
+ {
+ axiom_children_iterator_t *children_iter = NULL;
+ children_iter = axiom_element_get_children(pol_ele,env,policy);
+ if(children_iter )
+ {
+ while(axiom_children_iterator_has_next(children_iter, env))
+ {
+ axiom_node_t *node = NULL;
+ axiom_element_t *ele = NULL;
+ axis2_char_t *local_name = NULL;
+ node = axiom_children_iterator_next(children_iter, env);
+ if(node)
+ {
+ if(axiom_node_get_node_type(node, env) == AXIOM_ELEMENT)
+ {
+ ele = (axiom_element_t*)axiom_node_get_data_element(node, env);
+ if(ele)
+ {
+ local_name = axiom_element_get_localname(ele,env);
+ if(local_name)
+ {
+ status = rp_wss11_builder_set_properties(node,ele,local_name,wss11,env);
+ if(status!=AXIS2_SUCCESS)
+ {
+ rp_wss11_free(wss11,env);
+ wss11 = NULL;
+ }
+ }
+ }
+
+ }
+ }
+ }
+ }
+ }
+ }
+ return wss11;
+}
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_wss11_builder_set_properties(
+ axiom_node_t *node,
+ axiom_element_t *element,
+ axis2_char_t *local_name,
+ rp_wss11_t *wss11,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env,AXIS2_FAILURE);
+
+ if(strcmp(local_name,RP_MUST_SUPPORT_REF_KEY_IDENTIFIER)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_MUST_SUPPORT_REF_KEY_IDENTIFIER,node,element))
+ {
+ rp_wss11_set_must_support_ref_key_identifier(wss11,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_MUST_SUPPORT_REF_ISSUER_SERIAL)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_MUST_SUPPORT_REF_ISSUER_SERIAL,node,element))
+ {
+ rp_wss11_set_must_support_ref_issuer_serial(wss11,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_MUST_SUPPORT_REF_EXTERNAL_URI)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_MUST_SUPPORT_REF_EXTERNAL_URI,node,element))
+ {
+ rp_wss11_set_must_support_ref_external_uri(wss11,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_MUST_SUPPORT_REF_EMBEDDED_TOKEN)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_MUST_SUPPORT_REF_EMBEDDED_TOKEN,node,element))
+ {
+ rp_wss11_set_must_support_ref_embedded_token(wss11,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ /* else if(strcmp(local_name,RP_MUST_SUPPORT_REF_THUMBPRINT)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_MUST_SUPPORT_REF_THUMBPRINT,node,element))
+ {
+ rp_wss11_set_must_support_ref_thumbprint(wss11,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ */ else if(strcmp(local_name,RP_MUST_SUPPORT_REF_ENCRYPTED_KEY)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_MUST_SUPPORT_REF_ENCRYPTED_KEY,node,element))
+ {
+ rp_wss11_set_must_support_ref_encryptedkey(wss11,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_REQUIRE_SIGNATURE_CONFIRMATION)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_REQUIRE_SIGNATURE_CONFIRMATION,node,element))
+ {
+ rp_wss11_set_require_signature_confirmation(wss11,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else
+ return AXIS2_FAILURE;
+
+}
Added: webservices/rampart/tags/c/0.90/src/secpolicy/builder/x509_token_builder.c
URL: http://svn.apache.org/viewvc/webservices/rampart/tags/c/0.90/src/secpolicy/builder/x509_token_builder.c?rev=573215&view=auto
==============================================================================
--- webservices/rampart/tags/c/0.90/src/secpolicy/builder/x509_token_builder.c (added)
+++ webservices/rampart/tags/c/0.90/src/secpolicy/builder/x509_token_builder.c Thu Sep 6 03:48:44 2007
@@ -0,0 +1,256 @@
+/*
+ * 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_x509_token_builder.h>
+
+AXIS2_EXTERN rp_x509_token_t *AXIS2_CALL
+rp_x509_token_builder_build(
+ const axutil_env_t *env,
+ axiom_node_t *x509,
+ axiom_element_t *x509_ele)
+{
+ rp_x509_token_t *x509_token = NULL;
+ axiom_node_t *policy = NULL;
+ axiom_element_t *pol_ele = NULL;
+ axis2_status_t status = AXIS2_SUCCESS;
+
+ AXIS2_ENV_CHECK(env,NULL);
+
+ x509_token = rp_x509_token_create(env);
+ if(!x509_token)
+ return NULL;
+
+ status = rp_x509_token_builder_set_inclusion_value(env,x509_token,x509_ele);
+ if(status != AXIS2_SUCCESS )
+ {
+ rp_x509_token_free(x509_token,env);
+ x509_token = NULL;
+ return NULL;
+ }
+ policy = axiom_node_get_first_element(x509,env);
+ if(axiom_node_get_node_type(policy, env) == AXIOM_ELEMENT)
+ {
+ pol_ele = (axiom_element_t*)axiom_node_get_data_element(policy, env);
+ if(pol_ele)
+ {
+ axiom_children_iterator_t *children_iter = NULL;
+ children_iter = axiom_element_get_children(pol_ele, env, policy);
+ if(children_iter )
+ {
+ while(axiom_children_iterator_has_next(children_iter, env))
+ {
+ axiom_node_t *node = NULL;
+ axiom_element_t *ele = NULL;
+ axis2_char_t *local_name = NULL;
+ node = axiom_children_iterator_next(children_iter, env);
+ if(node)
+ {
+ if(axiom_node_get_node_type(node, env) == AXIOM_ELEMENT)
+ {
+ ele = (axiom_element_t*)axiom_node_get_data_element(node, env);
+ if(ele)
+ {
+ local_name = axiom_element_get_localname(ele,env);
+ if(local_name)
+ {
+ status = rp_x509_token_builder_set_properties(node,ele,local_name,x509_token,env);
+ if(status != AXIS2_SUCCESS)
+ {
+ rp_x509_token_free(x509_token,env);
+ x509_token = NULL;
+ break;
+ }
+ }
+ }
+
+ }
+ }
+ }
+ }
+ }
+ }
+ return x509_token;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_x509_token_builder_set_inclusion_value(
+ const axutil_env_t *env,
+ rp_x509_token_t *token,
+ axiom_element_t *element)
+{
+
+ axis2_char_t *inclusion_value = NULL;
+ axutil_qname_t *qname = NULL;
+
+ AXIS2_ENV_CHECK(env,AXIS2_FAILURE);
+ qname = axutil_qname_create(env,RP_INCLUDE_TOKEN,RP_SP_NS,RP_SP_PREFIX);
+ if(!qname)
+ return AXIS2_FAILURE;
+
+ inclusion_value = axiom_element_get_attribute_value(element,env,qname);
+
+ axutil_qname_free(qname,env);
+ qname = NULL;
+
+ return rp_x509_token_set_inclusion(token,env,inclusion_value);
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_x509_token_builder_set_properties(
+ axiom_node_t *node,
+ axiom_element_t *element,
+ axis2_char_t *local_name,
+ rp_x509_token_t *x509_token,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env,RP_AXIS2_FAILURE);
+
+ if(strcmp(local_name,RP_REQUIRE_KEY_IDENTIFIRE_REFERENCE)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_REQUIRE_KEY_IDENTIFIRE_REFERENCE,node,element))
+ {
+ rp_x509_token_set_require_key_identifier_reference(x509_token,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_REQUIRE_ISSUER_SERIAL_REFERENCE)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_REQUIRE_ISSUER_SERIAL_REFERENCE,node,element))
+ {
+ rp_x509_token_set_require_issuer_serial_reference(x509_token,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_REQUIRE_EMBEDDED_TOKEN_REFERENCE)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_REQUIRE_EMBEDDED_TOKEN_REFERENCE,node,element))
+ {
+ rp_x509_token_set_require_embedded_token_reference(x509_token,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_REQUIRE_THUMBPRINT_REFERENCE)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_REQUIRE_THUMBPRINT_REFERENCE,node,element))
+ {
+ rp_x509_token_set_require_thumb_print_reference(x509_token,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_REQUIRE_DERIVED_KEYS)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_REQUIRE_DERIVED_KEYS,node,element))
+ {
+ rp_x509_token_set_derivedkeys(x509_token,env,AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_WSS_X509_V1_TOKEN_10)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_WSS_X509_V1_TOKEN_10,node,element))
+ {
+ rp_x509_token_set_token_version_and_type(x509_token,env,local_name);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_WSS_X509_V3_TOKEN_10)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_WSS_X509_V3_TOKEN_10,node,element))
+ {
+ rp_x509_token_set_token_version_and_type(x509_token,env,local_name);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_WSS_X509_PKCS7_TOKEN_10)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_WSS_X509_PKCS7_TOKEN_10,node,element))
+ {
+ rp_x509_token_set_token_version_and_type(x509_token,env,local_name);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_WSS_X509_PKI_PATH_V1_TOKEN_10)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_WSS_X509_PKI_PATH_V1_TOKEN_10,node,element))
+ {
+ rp_x509_token_set_token_version_and_type(x509_token,env,local_name);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_WSS_X509_V1_TOKEN_11)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_WSS_X509_V1_TOKEN_11,node,element))
+ {
+ rp_x509_token_set_token_version_and_type(x509_token,env,local_name);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_WSS_X509_V3_TOKEN_11)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_WSS_X509_V3_TOKEN_11,node,element))
+ {
+ rp_x509_token_set_token_version_and_type(x509_token,env,local_name);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_WSS_X509_PKCS7_TOKEN_11)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_WSS_X509_PKCS7_TOKEN_11,node,element))
+ {
+ rp_x509_token_set_token_version_and_type(x509_token,env,local_name);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(strcmp(local_name,RP_WSS_X509_PKI_PATH_V1_TOKEN_11)==0)
+ {
+ if(rp_match_secpolicy_qname(env,RP_WSS_X509_PKI_PATH_V1_TOKEN_11,node,element))
+ {
+ rp_x509_token_set_token_version_and_type(x509_token,env,local_name);
+ return AXIS2_SUCCESS;
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else
+ return AXIS2_FAILURE;
+}
Added: webservices/rampart/tags/c/0.90/src/secpolicy/model/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/rampart/tags/c/0.90/src/secpolicy/model/Makefile.am?rev=573215&view=auto
==============================================================================
--- webservices/rampart/tags/c/0.90/src/secpolicy/model/Makefile.am (added)
+++ webservices/rampart/tags/c/0.90/src/secpolicy/model/Makefile.am Thu Sep 6 03:48:44 2007
@@ -0,0 +1,18 @@
+TESTS =
+
+noinst_LTLIBRARIES = librp_model.la
+
+librp_model_la_SOURCES = algorithmsuite.c asymmetric_binding.c \
+ binding_commons.c header.c element.c https_token.c layout.c \
+ property.c rampart_config.c secpolicy.c security_context_token.c \
+ signed_encrypted_elements.c signed_encrypted_parts.c signed_encrypted_items.c \
+ supporting_tokens.c symmetric_asymmetric_binding_commons.c \
+ symmetric_binding.c transport_binding.c ut.c wss10.c wss11.c x509_token.c
+
+
+librp_model_la_LIBADD = ${AXIS2C_HOME}/lib
+
+
+INCLUDES = -I$(top_builddir)/include \
+ -I ../../../include \
+ @AXIS2INC@
Added: webservices/rampart/tags/c/0.90/src/secpolicy/model/algorithmsuite.c
URL: http://svn.apache.org/viewvc/webservices/rampart/tags/c/0.90/src/secpolicy/model/algorithmsuite.c?rev=573215&view=auto
==============================================================================
--- webservices/rampart/tags/c/0.90/src/secpolicy/model/algorithmsuite.c (added)
+++ webservices/rampart/tags/c/0.90/src/secpolicy/model/algorithmsuite.c Thu Sep 6 03:48:44 2007
@@ -0,0 +1,614 @@
+/*
+ * 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 min_symmetric_keylength;
+ axis2_char_t *c14n;
+ axis2_char_t *soap_normalization;
+ axis2_char_t *str_transformation;
+ axis2_char_t *xpath;
+
+};
+
+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);
+ 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->min_symmetric_keylength = 0;;
+ algorithmsuite->c14n = RP_EX_C14N;
+ algorithmsuite->soap_normalization = NULL;
+ algorithmsuite->str_transformation = NULL;
+ algorithmsuite->xpath = NULL;
+
+ return algorithmsuite;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_algorithmsuite_free(rp_algorithmsuite_t *algorithmsuite,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ if(algorithmsuite)
+ {
+ AXIS2_FREE(env->allocator, algorithmsuite);
+ algorithmsuite = NULL;
+ }
+ return AXIS2_SUCCESS;
+}
+
+
+/* Implementations */
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_algorithmsuite_get_algosuite_string(rp_algorithmsuite_t *algorithmsuite,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ if(!algorithmsuite)
+ return NULL;
+ else
+ return algorithmsuite->algosuite_string;
+
+}
+/* Set different algorithm for enryption and signing etc. depending on the algorithm suite.
+ * The suites are defined in section 7.1 of WS-Security Policy specification
+ * Algorithm Suite [Dig] [Enc] [Sym KW] [Asym KW] [Enc KD] [Sig KD] [Min SKL]
+ * Basic256 Sha1 Aes256 KwAes256 KwRsaOaep PSha1L256 PSha1L192 256
+ * Basic192 Sha1 Aes192 KwAes192 KwRsaOaep PSha1L192 PSha1L192 192
+ * Basic128 Sha1 Aes128 KwAes128 KwRsaOaep PSha1L128 PSha1L128 128
+ * TripleDes Sha1 TripleDes KwTripleDes KwRsaOaep PSha1L192 PSha1L192 192
+ * Basic256Rsa15 Sha1 Aes256 KwAes256 KwRsa15 PSha1L256 PSha1L192 256
+ * Basic192Rsa15 Sha1 Aes192 KwAes192 KwRsa15 PSha1L192 PSha1L192 192
+ * Basic128Rsa15 Sha1 Aes128 KwAes128 KwRsa15 PSha1L128 PSha1L128 128
+ * TripleDesRsa15 Sha1 TripleDes KwTripleDes KwRsa15 PSha1L192 PSha1L192 192
+ * Basic256Sha256 Sha256 Aes256 KwAes256 KwRsaOaep PSha1L256 PSha1L192 256
+ * Basic192Sha256 Sha256 Aes192 KwAes192 KwRsaOaep PSha1L192 PSha1L192 192
+ * Basic128Sha256 Sha256 Aes128 KwAes128 KwRsaOaep PSha1L128 PSha1L128 128
+ * TripleDesSha256 Sha256 TripleDes KwTripleDes KwRsaOaep PSha1L192 PSha1L192 192
+ * Basic256Sha256Rsa15 Sha256 Aes256 KwAes256 KwRsa15 PSha1L256 PSha1L192 256
+ * Basic192Sha256Rsa15 Sha256 Aes192 KwAes192 KwRsa15 PSha1L192 PSha1L192 192
+ * Basic128Sha256Rsa15 Sha256 Aes128 KwAes128 KwRsa15 PSha1L128 PSha1L128 128
+ * TripleDesSha256Rsa15 Sha256 TripleDes KwTripleDes KwRsa15 PSha1L192 PSha1L192 192
+ **/
+
+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_ENV_CHECK(env, AXIS2_FAILURE);
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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_ENV_CHECK(env, AXIS2_FAILURE);
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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_ENV_CHECK(env, AXIS2_FAILURE);
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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_ENV_CHECK(env, AXIS2_FAILURE);
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return algorithmsuite->digest;
+}
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_algorithmsuite_get_encryption(rp_algorithmsuite_t *algorithmsuite,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return algorithmsuite->encryption;
+}
+
+AXIS2_EXTERN int AXIS2_CALL
+rp_algorithmsuite_get_max_symmetric_keylength(rp_algorithmsuite_t *algorithmsuite,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return algorithmsuite->min_symmetric_keylength;
+}
+
+AXIS2_EXTERN int AXIS2_CALL
+rp_algorithmsuite_get_max_asymmetric_keylength(rp_algorithmsuite_t *algorithmsuite,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return algorithmsuite->symmetrickeywrap;
+}
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_algorithmsuite_get_asymmetrickeywrap(rp_algorithmsuite_t *algorithmsuite,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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_ENV_CHECK(env, AXIS2_FAILURE);
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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_ENV_CHECK(env, AXIS2_FAILURE);
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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_ENV_CHECK(env, AXIS2_FAILURE);
+ 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)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ 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_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,xpath,AXIS2_FAILURE);
+
+ algorithmsuite->xpath = xpath;
+ return AXIS2_SUCCESS;
+}
Added: webservices/rampart/tags/c/0.90/src/secpolicy/model/asymmetric_binding.c
URL: http://svn.apache.org/viewvc/webservices/rampart/tags/c/0.90/src/secpolicy/model/asymmetric_binding.c?rev=573215&view=auto
==============================================================================
--- webservices/rampart/tags/c/0.90/src/secpolicy/model/asymmetric_binding.c (added)
+++ webservices/rampart/tags/c/0.90/src/secpolicy/model/asymmetric_binding.c Thu Sep 6 03:48:44 2007
@@ -0,0 +1,156 @@
+/*
+ * 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_asymmetric_binding.h>
+
+struct rp_asymmetric_binding_t
+{
+ rp_symmetric_asymmetric_binding_commons_t *symmetric_asymmetric_binding_commons;
+ rp_property_t *initiator_token;
+ rp_property_t *recipient_token;
+};
+
+AXIS2_EXTERN rp_asymmetric_binding_t *AXIS2_CALL
+rp_asymmetric_binding_create(const axutil_env_t *env)
+{
+ rp_asymmetric_binding_t *asymmetric_binding = NULL;
+
+ AXIS2_ENV_CHECK(env, NULL);
+
+ asymmetric_binding = (rp_asymmetric_binding_t *) AXIS2_MALLOC (env->allocator,
+ sizeof (rp_asymmetric_binding_t));
+
+ if(asymmetric_binding == NULL)
+ {
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+ asymmetric_binding->symmetric_asymmetric_binding_commons = NULL;
+ asymmetric_binding->initiator_token = NULL;
+ asymmetric_binding->recipient_token = NULL;
+
+ return asymmetric_binding;
+
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_asymmetric_binding_free(
+ rp_asymmetric_binding_t *asymmetric_binding,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ if(asymmetric_binding)
+ {
+ if(asymmetric_binding->symmetric_asymmetric_binding_commons)
+ {
+ rp_symmetric_asymmetric_binding_commons_free(
+ asymmetric_binding->symmetric_asymmetric_binding_commons,
+ env);
+ asymmetric_binding->symmetric_asymmetric_binding_commons=NULL;
+ }
+ if(asymmetric_binding->initiator_token)
+ {
+ rp_property_free(asymmetric_binding->initiator_token,env);
+ asymmetric_binding->initiator_token = NULL;
+ }
+ if(asymmetric_binding->recipient_token)
+ {
+ rp_property_free(asymmetric_binding->recipient_token,env);
+ asymmetric_binding->recipient_token = NULL;
+ }
+ AXIS2_FREE(env->allocator,asymmetric_binding);
+ }
+
+ return AXIS2_SUCCESS;
+}
+
+
+/* Implementations */
+
+AXIS2_EXTERN rp_symmetric_asymmetric_binding_commons_t *AXIS2_CALL
+rp_asymmetric_binding_get_symmetric_asymmetric_binding_commons(
+ rp_asymmetric_binding_t *asymmetric_binding,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return asymmetric_binding->symmetric_asymmetric_binding_commons;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_asymmetric_binding_set_symmetric_asymmetric_binding_commons(
+ rp_asymmetric_binding_t *asymmetric_binding,
+ const axutil_env_t *env,
+ rp_symmetric_asymmetric_binding_commons_t *symmetric_asymmetric_binding_commons)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,symmetric_asymmetric_binding_commons,AXIS2_FAILURE);
+
+ asymmetric_binding->symmetric_asymmetric_binding_commons
+ =symmetric_asymmetric_binding_commons;
+ return AXIS2_SUCCESS;
+}
+
+
+AXIS2_EXTERN rp_property_t *AXIS2_CALL
+rp_asymmetric_binding_get_initiator_token(
+ rp_asymmetric_binding_t *asymmetric_binding,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return asymmetric_binding->initiator_token;
+}
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_asymmetric_binding_set_initiator_token(rp_asymmetric_binding_t *asymmetric_binding,
+ const axutil_env_t *env,
+ rp_property_t *initiator_token)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,initiator_token,AXIS2_FAILURE);
+ asymmetric_binding->initiator_token =initiator_token;
+ return AXIS2_SUCCESS;
+
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_asymmetric_binding_set_recipient_token(
+ rp_asymmetric_binding_t *asymmetric_binding,
+ const axutil_env_t *env,
+ rp_property_t *recipient_token)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,recipient_token,AXIS2_FAILURE);
+
+ asymmetric_binding->recipient_token = recipient_token;
+ return AXIS2_SUCCESS;
+
+}
+
+AXIS2_EXTERN rp_property_t *AXIS2_CALL
+rp_asymmetric_binding_get_recipient_token(
+ rp_asymmetric_binding_t *asymmetric_binding,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return asymmetric_binding->recipient_token;
+}
Added: webservices/rampart/tags/c/0.90/src/secpolicy/model/binding_commons.c
URL: http://svn.apache.org/viewvc/webservices/rampart/tags/c/0.90/src/secpolicy/model/binding_commons.c?rev=573215&view=auto
==============================================================================
--- webservices/rampart/tags/c/0.90/src/secpolicy/model/binding_commons.c (added)
+++ webservices/rampart/tags/c/0.90/src/secpolicy/model/binding_commons.c Thu Sep 6 03:48:44 2007
@@ -0,0 +1,265 @@
+/*
+ * 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_binding_commons.h>
+
+struct rp_binding_commons_t
+{
+ rp_algorithmsuite_t *algorithmsuite;
+ axis2_bool_t include_timestamp;
+ rp_layout_t *layout;
+ rp_supporting_tokens_t *signed_supporting_tokens;
+ rp_supporting_tokens_t *signed_endorsing_supporting_tokens;
+ rp_supporting_tokens_t *endorsing_supporting_tokens;
+ rp_supporting_tokens_t *supporting_tokens;
+};
+
+AXIS2_EXTERN rp_binding_commons_t *AXIS2_CALL
+rp_binding_commons_create(const axutil_env_t *env)
+{
+ rp_binding_commons_t *binding_commons = NULL;
+
+ AXIS2_ENV_CHECK(env, NULL);
+
+ binding_commons = (rp_binding_commons_t *) AXIS2_MALLOC (env->allocator,
+ sizeof (rp_binding_commons_t));
+
+ if(binding_commons == NULL)
+ {
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+ binding_commons->algorithmsuite = NULL;
+ binding_commons->include_timestamp = AXIS2_FALSE;
+ binding_commons->layout = NULL;
+ binding_commons->signed_supporting_tokens = NULL;
+ binding_commons->signed_endorsing_supporting_tokens = NULL;
+ binding_commons->endorsing_supporting_tokens = NULL;
+ binding_commons->supporting_tokens = NULL;
+
+ return binding_commons;
+
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_binding_commons_free(rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ if(binding_commons)
+ {
+
+ if(binding_commons->algorithmsuite)
+ {
+ rp_algorithmsuite_free(binding_commons->algorithmsuite,env);
+ binding_commons->algorithmsuite = NULL;
+ }
+ if(binding_commons->layout)
+ {
+ rp_layout_free(binding_commons->layout,env);
+ binding_commons->layout = NULL;
+ }
+ if(binding_commons->signed_supporting_tokens)
+ {
+ rp_supporting_tokens_free(binding_commons->signed_supporting_tokens,env);
+ binding_commons->signed_supporting_tokens = NULL;
+ }
+ if(binding_commons->signed_endorsing_supporting_tokens)
+ {
+ rp_supporting_tokens_free(binding_commons->signed_endorsing_supporting_tokens,env);
+ binding_commons->signed_endorsing_supporting_tokens = NULL;
+ }
+ if(binding_commons->endorsing_supporting_tokens)
+ {
+ rp_supporting_tokens_free(binding_commons->endorsing_supporting_tokens,env);
+ binding_commons->endorsing_supporting_tokens = NULL;
+ }
+ if(binding_commons->supporting_tokens)
+ {
+ rp_supporting_tokens_free(binding_commons->supporting_tokens,env);
+ binding_commons->supporting_tokens = NULL;
+ }
+ AXIS2_FREE(env->allocator,binding_commons);
+ binding_commons = NULL;
+
+ }
+ return AXIS2_SUCCESS;
+}
+
+
+/* Implementations */
+
+AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+rp_binding_commons_get_include_timestamp(rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return binding_commons->include_timestamp;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_binding_commons_set_include_timestamp(rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env,
+ axis2_bool_t include_timestamp)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,include_timestamp,AXIS2_FAILURE);
+
+ binding_commons->include_timestamp = include_timestamp;
+
+ return AXIS2_SUCCESS;
+
+}
+
+AXIS2_EXTERN rp_algorithmsuite_t *AXIS2_CALL
+rp_binding_commons_get_algorithmsuite(
+ rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return binding_commons->algorithmsuite;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_binding_commons_set_algorithmsuite(rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env,
+ rp_algorithmsuite_t *algorithmsuite)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,algorithmsuite,AXIS2_FAILURE);
+
+ binding_commons->algorithmsuite = algorithmsuite;
+ return AXIS2_SUCCESS;
+}
+
+
+AXIS2_EXTERN rp_layout_t *AXIS2_CALL
+rp_binding_commons_get_layout(
+ rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return binding_commons->layout;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_binding_commons_set_layout(rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env,
+ rp_layout_t *layout)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,layout,AXIS2_FAILURE);
+
+ binding_commons->layout = layout;
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN rp_supporting_tokens_t *AXIS2_CALL
+rp_binding_commons_get_signed_supporting_tokens(
+ rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return binding_commons->signed_supporting_tokens;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_binding_commons_set_signed_supporting_tokens(
+ rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env,
+ rp_supporting_tokens_t *signed_supporting_tokens)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,signed_supporting_tokens,AXIS2_FAILURE);
+
+ binding_commons->signed_supporting_tokens = signed_supporting_tokens;
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN rp_supporting_tokens_t *AXIS2_CALL
+rp_binding_commons_get_signed_endorsing_supporting_tokens(
+ rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return binding_commons->signed_endorsing_supporting_tokens;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_binding_commons_set_signed_endorsing_supporting_tokens(
+ rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env,
+ rp_supporting_tokens_t *signed_endorsing_supporting_tokens)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,signed_endorsing_supporting_tokens,AXIS2_FAILURE);
+
+ binding_commons->signed_endorsing_supporting_tokens = signed_endorsing_supporting_tokens;
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN rp_supporting_tokens_t *AXIS2_CALL
+rp_binding_commons_get_endorsing_supporting_tokens(
+ rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return binding_commons->endorsing_supporting_tokens;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_binding_commons_set_endorsing_supporting_tokens(
+ rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env,
+ rp_supporting_tokens_t *endorsing_supporting_tokens)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,endorsing_supporting_tokens,AXIS2_FAILURE);
+ binding_commons->endorsing_supporting_tokens = endorsing_supporting_tokens;
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN rp_supporting_tokens_t *AXIS2_CALL
+rp_binding_commons_get_supporting_tokens(
+ rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return binding_commons->supporting_tokens;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_binding_commons_set_supporting_tokens(
+ rp_binding_commons_t *binding_commons,
+ const axutil_env_t *env,
+ rp_supporting_tokens_t *supporting_tokens)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,supporting_tokens,AXIS2_FAILURE);
+
+ binding_commons->supporting_tokens = supporting_tokens;
+ return AXIS2_SUCCESS;
+}
Added: webservices/rampart/tags/c/0.90/src/secpolicy/model/element.c
URL: http://svn.apache.org/viewvc/webservices/rampart/tags/c/0.90/src/secpolicy/model/element.c?rev=573215&view=auto
==============================================================================
--- webservices/rampart/tags/c/0.90/src/secpolicy/model/element.c (added)
+++ webservices/rampart/tags/c/0.90/src/secpolicy/model/element.c Thu Sep 6 03:48:44 2007
@@ -0,0 +1,112 @@
+/*
+ * 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_element.h>
+
+struct rp_element_t
+{
+ axis2_char_t *name;
+ axis2_char_t *namespace;
+};
+
+AXIS2_EXTERN rp_element_t *AXIS2_CALL
+rp_element_create(const axutil_env_t *env)
+{
+ rp_element_t *element = NULL;
+
+ AXIS2_ENV_CHECK(env, NULL);
+
+ element = (rp_element_t *) AXIS2_MALLOC (env->allocator,
+ sizeof (rp_element_t));
+
+ if(element == NULL)
+ {
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+ element->name = NULL;
+ element->namespace = NULL;
+
+ return element;
+
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_element_free(rp_element_t *element,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ if(element)
+ {
+ AXIS2_FREE(env->allocator, element);
+ element = NULL;
+ }
+ return AXIS2_SUCCESS;
+}
+
+
+/* Implementations */
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_element_get_name(rp_element_t *element,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return element->name;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_element_set_name(rp_element_t *element,
+ const axutil_env_t *env,
+ axis2_char_t *name)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,name,AXIS2_FAILURE);
+
+ element->name = name;
+ return AXIS2_SUCCESS;
+}
+
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_element_get_namespace(rp_element_t *element,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return element->namespace;
+
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_element_set_namespace(rp_element_t *element,
+ const axutil_env_t *env,
+ axis2_char_t *namespace)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,namespace,AXIS2_FAILURE);
+
+ element->namespace = namespace;
+
+ return AXIS2_SUCCESS;
+
+}
+
+
Added: webservices/rampart/tags/c/0.90/src/secpolicy/model/header.c
URL: http://svn.apache.org/viewvc/webservices/rampart/tags/c/0.90/src/secpolicy/model/header.c?rev=573215&view=auto
==============================================================================
--- webservices/rampart/tags/c/0.90/src/secpolicy/model/header.c (added)
+++ webservices/rampart/tags/c/0.90/src/secpolicy/model/header.c Thu Sep 6 03:48:44 2007
@@ -0,0 +1,112 @@
+/*
+ * 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_header.h>
+
+struct rp_header_t
+{
+ axis2_char_t *name;
+ axis2_char_t *namespace;
+};
+
+AXIS2_EXTERN rp_header_t *AXIS2_CALL
+rp_header_create(const axutil_env_t *env)
+{
+ rp_header_t *header = NULL;
+
+ AXIS2_ENV_CHECK(env, NULL);
+
+ header = (rp_header_t *) AXIS2_MALLOC (env->allocator,
+ sizeof (rp_header_t));
+
+ if(header == NULL)
+ {
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+ header->name = NULL;
+ header->namespace = NULL;
+
+ return header;
+
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_header_free(rp_header_t *header,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ if(header)
+ {
+ AXIS2_FREE(env->allocator, header);
+ header = NULL;
+ }
+ return AXIS2_SUCCESS;
+}
+
+
+/* Implementations */
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_header_get_name(rp_header_t *header,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return header->name;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_header_set_name(rp_header_t *header,
+ const axutil_env_t *env,
+ axis2_char_t *name)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,name,AXIS2_FAILURE);
+
+ header->name = name;
+ return AXIS2_SUCCESS;
+}
+
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_header_get_namespace(rp_header_t *header,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return header->namespace;
+
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_header_set_namespace(rp_header_t *header,
+ const axutil_env_t *env,
+ axis2_char_t *namespace)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,namespace,AXIS2_FAILURE);
+
+ header->namespace = namespace;
+
+ return AXIS2_SUCCESS;
+
+}
+
+
Added: webservices/rampart/tags/c/0.90/src/secpolicy/model/https_token.c
URL: http://svn.apache.org/viewvc/webservices/rampart/tags/c/0.90/src/secpolicy/model/https_token.c?rev=573215&view=auto
==============================================================================
--- webservices/rampart/tags/c/0.90/src/secpolicy/model/https_token.c (added)
+++ webservices/rampart/tags/c/0.90/src/secpolicy/model/https_token.c Thu Sep 6 03:48:44 2007
@@ -0,0 +1,133 @@
+/*
+ * 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_https_token.h>
+
+struct rp_https_token_t
+{
+ axis2_char_t *inclusion;
+ axis2_bool_t derivedkeys;
+ axis2_bool_t require_client_certificate;
+};
+
+AXIS2_EXTERN rp_https_token_t *AXIS2_CALL
+rp_https_token_create(const axutil_env_t *env)
+{
+ rp_https_token_t *https_token = NULL;
+
+ AXIS2_ENV_CHECK(env, NULL);
+
+ https_token = (rp_https_token_t *) AXIS2_MALLOC (env->allocator,
+ sizeof (rp_https_token_t));
+
+ if(https_token == NULL)
+ {
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+ https_token->inclusion = RP_INCLUDE_ALWAYS;
+ https_token->derivedkeys = AXIS2_FALSE;
+ https_token->require_client_certificate = AXIS2_FALSE;
+
+ return https_token;
+
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_https_token_free(rp_https_token_t *https_token,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ if(https_token)
+ {
+ AXIS2_FREE(env->allocator, https_token);
+ https_token = NULL;
+ }
+ return AXIS2_SUCCESS;
+}
+
+
+/* Implementations */
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_https_token_get_inclusion(rp_https_token_t *https_token,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return https_token->inclusion;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_https_token_set_inclusion(rp_https_token_t *https_token,
+ const axutil_env_t *env,
+ axis2_char_t *inclusion)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,inclusion,AXIS2_FAILURE);
+
+ https_token->inclusion = inclusion;
+
+ return AXIS2_SUCCESS;
+}
+
+
+AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+rp_https_token_get_derivedkeys(rp_https_token_t *https_token,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FALSE);
+
+ return https_token->derivedkeys;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_https_token_set_derivedkeys(rp_https_token_t *https_token,
+ const axutil_env_t *env,
+ axis2_bool_t derivedkeys)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,derivedkeys,AXIS2_FAILURE);
+
+ https_token->derivedkeys = derivedkeys;
+
+ return AXIS2_SUCCESS;
+
+}
+
+AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+rp_https_token_get_require_client_certificate(rp_https_token_t *https_token,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return https_token->require_client_certificate;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_https_token_set_require_client_certificate(rp_https_token_t *https_token,
+ const axutil_env_t *env,
+ axis2_bool_t require_client_certificate)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,require_client_certificate,AXIS2_FAILURE)
+ https_token->require_client_certificate = require_client_certificate;
+
+ return AXIS2_SUCCESS;
+}