| /* |
| * 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 OXS_TOKENS_H |
| #define OXS_TOKENS_H |
| |
| #include <axis2_util.h> |
| #include <stdio.h> |
| #include <axutil_qname.h> |
| #include <axis2_defines.h> |
| #include <axutil_env.h> |
| #include <axiom_node.h> |
| #include <axiom_element.h> |
| #include <axiom_attribute.h> |
| #include <oxs_constants.h> |
| #include <rampart_constants.h> |
| #include <oxs_utility.h> |
| #include <oxs_axiom.h> |
| #include <axutil_array_list.h> |
| |
| /** |
| * @file oxs_tokens.h |
| * @brief includes all tokens of OMXMLSecurity. |
| */ |
| #ifdef __cplusplus |
| extern "C" |
| { |
| #endif |
| /** |
| * @defgroup oxs_token OMXMLSecurity Tokens |
| * @ingroup oxs |
| * @{ |
| */ |
| |
| /** |
| * Creates <wsse:BinarySecurityToken> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_binary_security_token_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * id, |
| axis2_char_t * encoding_type, |
| axis2_char_t * value_type, |
| axis2_char_t * data); |
| |
| /** |
| * Creates <ds:CanonicalizationMethod> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_c14n_method_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * algorithm); |
| |
| /** |
| * Gets algorithm from <ds:CanonicalizationMethod> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_c14n_method( |
| const axutil_env_t * env, |
| axiom_node_t * c14n_mtd_node); |
| |
| /** |
| * Creates <xenc:CipherData> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_cipher_data_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent); |
| |
| /** |
| * Gets cipher value from <xenc:CipherData> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_cipher_value_from_cipher_data( |
| const axutil_env_t * env, |
| axiom_node_t * cd_node); |
| |
| /** |
| * Creates <xenc:CipherValue> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_cipher_value_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * cipher_val); |
| |
| /** |
| * Gets value from <xenc:CipherValue> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_cipher_value( |
| const axutil_env_t * env, |
| axiom_node_t * cv_node); |
| |
| /** |
| * Creates <xenc:DataReference> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_data_reference_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * data_ref); |
| |
| /** |
| * Gets URI reference from <xenc:DataReference> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_data_reference( |
| const axutil_env_t * env, |
| axiom_node_t * data_ref_node); |
| |
| /** |
| * Creates <ds:DigestMethod> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_digest_method_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * algorithm); |
| |
| /** |
| * Gets the algorithm from <ds:DigestMethod> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_digest_method( |
| const axutil_env_t * env, |
| axiom_node_t * enc_mtd_node); |
| |
| /** |
| * Creates <ds:DigestValue> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_digest_value_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * digest_val); |
| |
| /** |
| * Gets the value from <ds:DigestValue> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_digest_value( |
| const axutil_env_t * env, |
| axiom_node_t * sv_node); |
| |
| /** |
| * Creates <ds:Reference> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_ds_reference_element( |
| const axutil_env_t *env, |
| axiom_node_t *parent, |
| axis2_char_t *id, |
| axis2_char_t *uri, |
| axis2_char_t *type); |
| |
| /** |
| * Gets URI reference from <ds:Reference> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_ds_reference( |
| const axutil_env_t * env, |
| axiom_node_t * ref_node); |
| |
| /** |
| * Creates <wsse:Embedded> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_embedded_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * id); |
| |
| /** |
| * Gets id from <wsse:Embedded> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_embedded_id( |
| const axutil_env_t * env, |
| axiom_node_t * embedded_node); |
| |
| /** |
| * Creates <xenc:EncryptedData> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_encrypted_data_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * type_attribute, |
| axis2_char_t * id); |
| |
| /** |
| * Creates <xenc:EncryptedKey> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_encrypted_key_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent ); |
| |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_get_encrypted_key_node( |
| const axutil_env_t * env, |
| axiom_node_t * parent); |
| |
| /** |
| * Creates <xenc:EncryptionMethod> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_encryption_method_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * algorithm); |
| |
| /** |
| * Gets algorithm from <xenc:EncryptionMethod> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_encryption_method( |
| const axutil_env_t * env, |
| axiom_node_t * enc_mtd_node); |
| |
| /** |
| * Creates <wsse:KeyIdentifier> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_key_identifier_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * encoding_type, |
| axis2_char_t * value_type, |
| axis2_char_t * value); |
| |
| /** |
| * Creates <ds:KeyInfo> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_key_info_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent); |
| |
| /** |
| * Creates <ds:KeyName> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_key_name_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * key_name_val); |
| |
| /** |
| * Creates <wsse:Reference> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_reference_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * ref, |
| axis2_char_t * value_type); |
| |
| /** |
| * Gets URI reference from <wsse:Reference> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_reference( |
| const axutil_env_t * env, |
| axiom_node_t * ref_node); |
| |
| /** |
| * Gets value type from <wsse:Reference> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_reference_value_type( |
| const axutil_env_t * env, |
| axiom_node_t * ref_node); |
| |
| /** |
| * Creates <xenc:ReferenceList> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_reference_list_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent); |
| |
| /** |
| * Creates <xenc:DataReference> elements under <xenc:ReferenceList> element |
| */ |
| AXIS2_EXTERN axiom_node_t* AXIS2_CALL |
| oxs_token_build_data_reference_list( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axutil_array_list_t * id_list); |
| |
| /** |
| * Gets URI references from <xenc:DataReference> elements under <xenc:ReferenceList> element |
| */ |
| AXIS2_EXTERN axutil_array_list_t * AXIS2_CALL |
| oxs_token_get_reference_list_data( |
| const axutil_env_t * env, |
| axiom_node_t * ref_list_node); |
| |
| /** |
| * Creates <wsse:SecurityTokenReference> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_security_token_reference_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent); |
| |
| /** |
| * Creates <ds:Signature> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_signature_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * id); |
| |
| /** |
| * Creates <wss11:EncryptedHeader> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_enc_header_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * id); |
| |
| /** |
| * Creates <ds:SignatureMethod> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_signature_method_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * algorithm); |
| |
| /** |
| * Gets algorithm from <ds:SignatureMethod> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_signature_method( |
| const axutil_env_t * env, |
| axiom_node_t * enc_mtd_node); |
| |
| /** |
| * Creates <ds:SignatureValue> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_signature_value_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * signature_val); |
| |
| /** |
| * Gets signature value from <ds:SignatureValue> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_signature_value( |
| const axutil_env_t * env, |
| axiom_node_t * sv_node); |
| |
| /** |
| * Creates <ds:SignedInfo> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_signed_info_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent); |
| |
| /** |
| * Creates <ds:Transform> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_transform_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * algorithm); |
| |
| /** |
| * Gets algorithm from <ds:Transform> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_transform( |
| const axutil_env_t * env, |
| axiom_node_t * transform_node); |
| |
| /** |
| * Creates <ds:Transforms> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_transforms_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent); |
| |
| /** |
| * Creates <ds:X509Certificate> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_x509_certificate_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * cert_data); |
| |
| /** |
| * Gets data from <ds:X509Certificate> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_x509_certificate( |
| const axutil_env_t * env, |
| axiom_node_t * sv_node); |
| |
| /** |
| * Creates <ds:X509Data> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_x509_data_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent); |
| |
| /** |
| * Creates <ds:X509IssuerName> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_issuer_name_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * value ); |
| |
| /** |
| * Gets issuer name from <ds:X509IssuerName> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_issuer_name( |
| const axutil_env_t * env, |
| axiom_node_t * issuer_name_node); |
| |
| /** |
| * Creates <ds:X509IssuerSerial> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_x509_issuer_serial_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent); |
| |
| /** |
| * Creates <ds:X509IssuerSerial> element with issuer name and serial number |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_x509_issuer_serial_with_data( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * issuer_name, |
| axis2_char_t * serial_number); |
| |
| /** |
| * Creates <ds:X509SerialNumber> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_serial_number_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * value ); |
| |
| /** |
| * Gets serial number from <ds:X509SerialNumber> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_serial_number( |
| const axutil_env_t * env, |
| axiom_node_t * serial_number_node); |
| |
| /** |
| * Creates <wsse11:SignatureConfirmation> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_signature_confirmation_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * id, |
| axis2_char_t * val); |
| |
| /** |
| * Gets value from <wsse11:SignatureConfirmation> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_signature_confirmation_value( |
| const axutil_env_t * env, |
| axiom_node_t * signature_confirmation_node); |
| |
| /** |
| * Gets id from <wsse11:SignatureConfirmation> element |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| oxs_token_get_signature_confirmation_id( |
| const axutil_env_t * env, |
| axiom_node_t * signature_confirmation_node); |
| |
| /** |
| * Creates <wsc:DerivedKeyToken> element |
| */ |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| oxs_token_build_derived_key_token_element( |
| const axutil_env_t * env, |
| axiom_node_t * parent, |
| axis2_char_t * id, |
| axis2_char_t * algo, |
| axis2_char_t* wsc_ns_uri); |
| |
| /** |
| * Creates <wsc:Length> element |
| */ |
| AXIS2_EXTERN axiom_node_t* AXIS2_CALL |
| oxs_token_build_length_element( |
| const axutil_env_t *env, |
| axiom_node_t *parent, |
| int length, |
| axis2_char_t *wsc_ns_uri); |
| |
| /** |
| * Gets value from <wsc:Length> element |
| */ |
| AXIS2_EXTERN int AXIS2_CALL |
| oxs_token_get_length_value( |
| const axutil_env_t *env, |
| axiom_node_t *length_node); |
| |
| /** |
| * Creates <wsc:Offset> element |
| */ |
| AXIS2_EXTERN axiom_node_t* AXIS2_CALL |
| oxs_token_build_offset_element( |
| const axutil_env_t *env, |
| axiom_node_t *parent, |
| int offset, |
| axis2_char_t *wsc_ns_uri); |
| |
| /** |
| * Gets value from <wsc:Offset> element |
| */ |
| AXIS2_EXTERN int AXIS2_CALL |
| oxs_token_get_offset_value( |
| const axutil_env_t *env, |
| axiom_node_t *offset_node); |
| |
| /** |
| * Creates <wsc:Nonce> element |
| */ |
| AXIS2_EXTERN axiom_node_t* AXIS2_CALL |
| oxs_token_build_nonce_element( |
| const axutil_env_t *env, |
| axiom_node_t *parent, |
| axis2_char_t *nonce_val, |
| axis2_char_t *wsc_ns_uri); |
| |
| /** |
| * Gets value from <wsc:Nonce> element |
| */ |
| AXIS2_EXTERN axis2_char_t* AXIS2_CALL |
| oxs_token_get_nonce_value( |
| const axutil_env_t *env, |
| axiom_node_t *nonce_node); |
| |
| /** |
| * Creates <wsc:Label> element |
| */ |
| AXIS2_EXTERN axiom_node_t* AXIS2_CALL |
| oxs_token_build_label_element( |
| const axutil_env_t *env, |
| axiom_node_t *parent, |
| axis2_char_t *label, |
| axis2_char_t *wsc_ns_uri); |
| |
| /** |
| * Gets value from <wsc:Label> element |
| */ |
| AXIS2_EXTERN axis2_char_t* AXIS2_CALL |
| oxs_token_get_label_value( |
| const axutil_env_t *env, |
| axiom_node_t *label_node); |
| |
| /** |
| * Creates <wsc:Properties> element |
| */ |
| AXIS2_EXTERN axiom_node_t* AXIS2_CALL |
| oxs_token_build_properties_element( |
| const axutil_env_t *env, |
| axiom_node_t *parent, |
| axis2_char_t* properties_val, |
| axis2_char_t *wsc_ns_uri); |
| |
| /** |
| * Gets value from <wsc:Properties> element |
| */ |
| AXIS2_EXTERN axis2_char_t* AXIS2_CALL |
| oxs_token_get_properties_value( |
| const axutil_env_t *env, |
| axiom_node_t *properties_node); |
| |
| /** |
| * Creates <wsc:Generation> element |
| */ |
| AXIS2_EXTERN axiom_node_t* AXIS2_CALL |
| oxs_token_build_generation_element( |
| const axutil_env_t *env, |
| axiom_node_t *parent, |
| axis2_char_t *generation_val, |
| axis2_char_t *wsc_ns_uri); |
| |
| /** |
| * Gets value from <wsc:Generation> element |
| */ |
| AXIS2_EXTERN axis2_char_t* AXIS2_CALL |
| oxs_token_get_generation_value( |
| const axutil_env_t *env, |
| axiom_node_t *generation_node); |
| |
| /** @} */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /*OXS_TOKENS_H */ |