/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef NEETHI_ASSERTION_H #define NEETHI_ASSERTION_H /** * @file neethi_assertion.h * @common struct for policy assertions. */ #include #include #include #include #ifdef __cplusplus extern "C" { #endif typedef enum { ASSERTION_TYPE_TRANSPORT_BINDING = 0, ASSERTION_TYPE_TRANSPORT_TOKEN, ASSERTION_TYPE_ALGORITHM_SUITE, ASSERTION_TYPE_INCLUDE_TIMESTAMP, ASSERTION_TYPE_LAYOUT, ASSERTION_TYPE_SUPPORTING_TOKENS, ASSERTION_TYPE_HTTPS_TOKEN, ASSERTION_TYPE_WSS_USERNAME_TOKEN_10, ASSERTION_TYPE_WSS_USERNAME_TOKEN_11, ASSERTION_TYPE_USERNAME_TOKEN, ASSERTION_TYPE_X509_TOKEN, ASSERTION_TYPE_SAML_TOKEN, ASSERTION_TYPE_ISSUED_TOKEN, ASSERTION_TYPE_SECURITY_CONTEXT_TOKEN, ASSERTION_TYPE_REQUIRE_EXTERNAL_URI, ASSERTION_TYPE_SC10_SECURITY_CONTEXT_TOKEN, ASSERTION_TYPE_SC13_SECURITY_CONTEXT_TOKEN, ASSERTION_TYPE_ISSUER, ASSERTION_TYPE_BOOTSTRAP_POLICY, ASSERTION_TYPE_MUST_SUPPORT_REF_KEY_IDENTIFIER, ASSERTION_TYPE_MUST_SUPPORT_REF_ISSUER_SERIAL, ASSERTION_TYPE_MUST_SUPPORT_REF_EXTERNAL_URI, ASSERTION_TYPE_MUST_SUPPORT_REF_EMBEDDED_TOKEN, ASSERTION_TYPE_WSS10, ASSERTION_TYPE_WSS11, ASSERTION_TYPE_TRUST10, ASSERTION_TYPE_RAMPART_CONFIG, ASSERTION_TYPE_ASSYMMETRIC_BINDING, ASSERTION_TYPE_SYMMETRIC_BINDING, ASSERTION_TYPE_INITIATOR_TOKEN, ASSERTION_TYPE_RECIPIENT_TOKEN, ASSERTION_TYPE_PROTECTION_TOKEN, ASSERTION_TYPE_ENCRYPTION_TOKEN, ASSERTION_TYPE_SIGNATURE_TOKEN, ASSERTION_TYPE_ENCRYPT_BEFORE_SIGNING, ASSERTION_TYPE_SIGN_BEFORE_ENCRYPTING, ASSERTION_TYPE_ENCRYPT_SIGNATURE, ASSERTION_TYPE_PROTECT_TOKENS, ASSERTION_TYPE_ONLY_SIGN_ENTIRE_HEADERS_AND_BODY, ASSERTION_TYPE_REQUIRE_KEY_IDENTIFIRE_REFERENCE, ASSERTION_TYPE_REQUIRE_ISSUER_SERIAL_REFERENCE, ASSERTION_TYPE_REQUIRE_EMBEDDED_TOKEN_REFERENCE, ASSERTION_TYPE_REQUIRE_THUMBPRINT_REFERENCE, ASSERTION_TYPE_REQUIRE_EXTERNAL_REFERENCE, ASSERTION_TYPE_REQUIRE_INTERNAL_REFERENCE, ASSERTION_TYPE_MUST_SUPPORT_REF_THUMBPRINT, ASSERTION_TYPE_MUST_SUPPORT_REF_ENCRYPTED_KEY, ASSERTION_TYPE_REQUIRE_SIGNATURE_CONFIRMATION, ASSERTION_TYPE_WSS_X509_V1_TOKEN_10, ASSERTION_TYPE_WSS_X509_V3_TOKEN_10, ASSERTION_TYPE_WSS_SAML_V10_TOKEN_V10, ASSERTION_TYPE_WSS_SAML_V10_TOKEN_V11, ASSERTION_TYPE_WSS_SAML_V11_TOKEN_V10, ASSERTION_TYPE_WSS_SAML_V11_TOKEN_V11, ASSERTION_TYPE_WSS_SAML_V20_TOKEN_V11, ASSERTION_TYPE_SIGNED_ENCRYPTED_PARTS, ASSERTION_TYPE_REQUIRE_DERIVED_KEYS_SC10, ASSERTION_TYPE_REQUIRE_DERIVED_KEYS_SC13, ASSERTION_TYPE_MUST_SUPPORT_CLIENT_CHALLENGE, ASSERTION_TYPE_MUST_SUPPORT_SERVER_CHALLENGE, ASSERTION_TYPE_REQUIRE_CLIENT_ENTROPY, ASSERTION_TYPE_REQUIRE_SERVER_ENTROPHY, ASSERTION_TYPE_MUST_SUPPORT_ISSUED_TOKENS, ASSERTION_TYPE_OPTIMIZED_MIME_SERIALIZATION, ASSERTION_TYPE_RM_ASSERTION, ASSERTION_TYPE_UNKNOWN } neethi_assertion_type_t; typedef struct neethi_assertion_t neethi_assertion_t; AXIS2_EXTERN neethi_assertion_t *AXIS2_CALL neethi_assertion_create( const axutil_env_t * env); neethi_assertion_t *AXIS2_CALL neethi_assertion_create_with_args( const axutil_env_t * env, AXIS2_FREE_VOID_ARG free_func, void *value, neethi_assertion_type_t type); AXIS2_EXTERN void AXIS2_CALL neethi_assertion_free( neethi_assertion_t * neethi_assertion, const axutil_env_t * env); AXIS2_EXTERN neethi_assertion_type_t AXIS2_CALL neethi_assertion_get_type( neethi_assertion_t * neethi_assertion, const axutil_env_t * env); AXIS2_EXTERN void *AXIS2_CALL neethi_assertion_get_value( neethi_assertion_t * neethi_assertion, const axutil_env_t * env); AXIS2_EXTERN axis2_status_t AXIS2_CALL neethi_assertion_set_value( neethi_assertion_t * neethi_assertion, const axutil_env_t * env, void *value, neethi_assertion_type_t type); AXIS2_EXTERN axiom_element_t *AXIS2_CALL neethi_assertion_get_element( neethi_assertion_t * neethi_assertion, const axutil_env_t * env); AXIS2_EXTERN axis2_status_t AXIS2_CALL neethi_assertion_set_element( neethi_assertion_t * neethi_assertion, const axutil_env_t * env, axiom_element_t * element); AXIS2_EXTERN axis2_bool_t AXIS2_CALL neethi_assertion_get_is_optional( neethi_assertion_t * neethi_assertion, const axutil_env_t * env); AXIS2_EXTERN axis2_status_t AXIS2_CALL neethi_assertion_set_is_optional( neethi_assertion_t * neethi_assertion, const axutil_env_t * env, axis2_bool_t is_optional); AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL neethi_assertion_get_policy_components( neethi_assertion_t * neethi_assertion, const axutil_env_t * env); AXIS2_EXTERN axis2_status_t AXIS2_CALL neethi_assertion_add_policy_components( neethi_assertion_t * neethi_assertion, axutil_array_list_t * arraylist, const axutil_env_t * env); AXIS2_EXTERN axis2_status_t AXIS2_CALL neethi_assertion_add_operator( neethi_assertion_t * neethi_assertion, const axutil_env_t * env, neethi_operator_t * op); AXIS2_EXTERN axis2_bool_t AXIS2_CALL neethi_assertion_is_empty( neethi_assertion_t * neethi_assertion, const axutil_env_t * env); AXIS2_EXTERN axiom_node_t *AXIS2_CALL neethi_assertion_get_node( neethi_assertion_t * neethi_assertion, const axutil_env_t * env); AXIS2_EXTERN axis2_status_t AXIS2_CALL neethi_assertion_set_node( neethi_assertion_t * neethi_assertion, const axutil_env_t * env, axiom_node_t * node); AXIS2_EXTERN axis2_status_t AXIS2_CALL neethi_assertion_serialize( neethi_assertion_t * assertion, axiom_node_t * parent, const axutil_env_t * env); /** @} */ #ifdef __cplusplus } #endif #endif /* NEETHI_ASSERTION_H */