00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 #ifndef OXS_DERIVATION_H
00019 #define OXS_DERIVATION_H
00020 
00021 
00032 #include <axis2_defines.h>
00033 #include <axutil_env.h>
00034 #include <oxs_key.h>
00035 #include <oxs_buffer.h>
00036 
00037 #ifdef __cplusplus
00038 extern "C"
00039 {
00040 #endif
00041 
00042 
00056     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00057     oxs_derivation_derive_key(
00058         const axutil_env_t *env,
00059         oxs_key_t *secret,
00060         oxs_key_t *derived_key,
00061         axis2_bool_t build_fresh);
00062 
00074     AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00075     oxs_derivation_build_derived_key_token(
00076         const axutil_env_t *env,
00077         oxs_key_t *derived_key,
00078         axiom_node_t *parent,
00079         axis2_char_t *stref_uri,
00080         axis2_char_t *stref_val_type, 
00081         axis2_char_t *wsc_ns_uri);
00082 
00093     AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00094     oxs_derivation_build_derived_key_token_with_stre(
00095         const axutil_env_t *env,
00096         oxs_key_t *derived_key,
00097         axiom_node_t *parent,    
00098         axiom_node_t *stre,
00099         axis2_char_t *wsc_ns_uri);
00100 
00111     AXIS2_EXTERN oxs_key_t * AXIS2_CALL
00112     oxs_derivation_extract_derived_key_from_token(
00113         const axutil_env_t *env,
00114         axiom_node_t *dk_token,
00115         axiom_node_t *root_node,
00116         oxs_key_t *session_key);
00117 
00119 #ifdef __cplusplus
00120 }
00121 #endif
00122 
00123 #endif