rampart_context.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 2004,2005 The Apache Software Foundation.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #ifndef RAMPART_CONTEXT_H
00018 #define RAMPART_CONTEXT_H
00019 
00031 #include <rp_includes.h>
00032 #include <rp_secpolicy.h>
00033 #include <rampart_authn_provider.h>
00034 #include <rampart_util.h>
00035 #include <axutil_property.h>
00036 #include <rampart_constants.h>
00037 #include <rampart_callback.h>
00038 #include <rampart_authn_provider.h>
00039 #include <axis2_key_type.h>
00040 #include <axis2_msg_ctx.h>
00041 #include <oxs_key.h>
00042 
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif
00047 
00048     typedef struct rampart_context_t rampart_context_t;
00049 
00050     typedef axis2_char_t *(AXIS2_CALL*
00051                            password_callback_fn)(const axutil_env_t *env,
00052                                                  const axis2_char_t *username,
00053                                                  void *ctx);
00054 
00055     typedef axis2_status_t (AXIS2_CALL*
00056                             rampart_is_replayed_fn)(const axutil_env_t *env,
00057                                                     axis2_msg_ctx_t* msg_ctx,
00058                                                     rampart_context_t *rampart_context);
00059 
00060     typedef rampart_authn_provider_status_t (AXIS2_CALL*
00061             auth_password_func)(const axutil_env_t* env,
00062                                 const axis2_char_t *username,
00063                                 const axis2_char_t *password);
00064 
00065     typedef rampart_authn_provider_status_t (AXIS2_CALL*
00066             auth_digest_func)(const axutil_env_t* env,
00067                               const axis2_char_t *username,
00068                               const axis2_char_t *nonce,
00069                               const axis2_char_t *created,
00070                               const char *digest);
00071 
00072 
00073 
00081     AXIS2_EXTERN rampart_context_t *AXIS2_CALL
00082     rampart_context_create(const axutil_env_t *env);
00083 
00084 
00091     AXIS2_EXTERN void AXIS2_CALL
00092     rampart_context_free(rampart_context_t *rampart_context,
00093                          const axutil_env_t *env);
00094 
00095 
00096     /****************************************************************/
00097 
00107     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00108     rampart_context_set_policy_node(rampart_context_t *rampart_context,
00109                                     const axutil_env_t *env,
00110                                     axiom_node_t *policy_node);
00111 
00121     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00122     rampart_context_set_prv_key(rampart_context_t *rampart_context,
00123                                 const axutil_env_t *env,
00124                                 void *prv_key);
00125 
00126     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00127     rampart_context_set_prv_key_type(rampart_context_t *rampart_context,
00128                                      const axutil_env_t *env,
00129                                      axis2_key_type_t type);
00130 
00131     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00132     rampart_context_set_certificate(rampart_context_t *rampart_context,
00133                                     const axutil_env_t *env,
00134                                     void *certificate);
00135 
00136     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00137     rampart_context_set_certificate_type(rampart_context_t *rampart_context,
00138                                          const axutil_env_t *env,
00139                                          axis2_key_type_t type);
00140 
00141     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00142     rampart_context_set_receiver_certificate(rampart_context_t *rampart_context,
00143             const axutil_env_t *env,
00144             void *receiver_certificate);
00145 
00146     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00147     rampart_context_set_receiver_certificate_type(rampart_context_t *rampart_context,
00148             const axutil_env_t *env,
00149             axis2_key_type_t type);
00150 
00151     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00152     rampart_context_set_user(rampart_context_t *rampart_context,
00153                              const axutil_env_t *env,
00154                              axis2_char_t *user);
00155 
00156     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00157     rampart_context_set_password(rampart_context_t *rampart_context,
00158                                  const axutil_env_t *env,
00159                                  axis2_char_t *password);
00160 
00161     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00162     rampart_context_set_prv_key_password(rampart_context_t *rampart_context,
00163                                          const axutil_env_t *env,
00164                                          axis2_char_t *prv_key_password);
00165 
00166     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00167     rampart_context_set_pwcb_function(rampart_context_t *rampart_context,
00168                                       const axutil_env_t *env,
00169                                       password_callback_fn pwcb_function,
00170                                       void *ctx);
00171     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00172     rampart_context_set_replay_detect_function(rampart_context_t *rampart_context,
00173             const axutil_env_t *env,
00174             rampart_is_replayed_fn is_replayed_function);
00175 
00176 
00177     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00178     rampart_context_set_password_type(rampart_context_t *rampart_context,
00179                                       const axutil_env_t *env,
00180                                       axis2_char_t *password_type);
00181 
00182     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00183     rampart_context_set_ttl(rampart_context_t *rampart_context,
00184                             const axutil_env_t *env,
00185                             int ttl);
00186 
00187     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00188     rampart_context_set_rd_val(rampart_context_t *rampart_context,
00189                                const axutil_env_t *env,
00190                                axis2_char_t *rd_val);
00191 
00192     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00193     rampart_context_set_private_key_file(rampart_context_t *rampart_context,
00194                                          const axutil_env_t *env,
00195                                          axis2_char_t *private_key_file);
00196 
00197     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00198     rampart_context_set_certificate_file(rampart_context_t *rampart_context,
00199                                          const axutil_env_t *env,
00200                                          axis2_char_t *certificate_file);
00201 
00202     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00203     rampart_context_set_reciever_certificate_file(rampart_context_t *rampart_context,
00204             const axutil_env_t *env,
00205             axis2_char_t *reciever_certificate_file);
00206 
00207 
00208 
00209     /**********************************************************8*/
00210 
00211     /*Getters of the above set functions*/
00212 
00213     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00214     rampart_context_get_policy_node(
00215         rampart_context_t *rampart_context,
00216         const axutil_env_t *env);
00217 
00218     AXIS2_EXTERN void *AXIS2_CALL
00219     rampart_context_get_prv_key(
00220         rampart_context_t *rampart_context,
00221         const axutil_env_t *env);
00222 
00223     AXIS2_EXTERN axis2_key_type_t AXIS2_CALL
00224     rampart_context_get_prv_key_type(
00225         rampart_context_t *rampart_context,
00226         const axutil_env_t *env);
00227 
00228     AXIS2_EXTERN void *AXIS2_CALL
00229     rampart_context_get_certificate(
00230         rampart_context_t *rampart_context,
00231         const axutil_env_t *env);
00232 
00233     AXIS2_EXTERN axis2_key_type_t AXIS2_CALL
00234     rampart_context_get_certificate_type(
00235         rampart_context_t *rampart_context,
00236         const axutil_env_t *env);
00237 
00238     AXIS2_EXTERN void *AXIS2_CALL
00239     rampart_context_get_receiver_certificate(
00240         rampart_context_t *rampart_context,
00241         const axutil_env_t *env);
00242 
00243     AXIS2_EXTERN axis2_key_type_t AXIS2_CALL
00244     rampart_context_get_receiver_certificate_type(
00245         rampart_context_t *rampart_context,
00246         const axutil_env_t *env);
00247 
00248     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00249     rampart_context_get_user(
00250         rampart_context_t *rampart_context,
00251         const axutil_env_t *env);
00252 
00253     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00254     rampart_context_get_password(
00255         rampart_context_t *rampart_context,
00256         const axutil_env_t *env);
00257 
00258     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00259     rampart_context_get_prv_key_password(
00260         rampart_context_t *rampart_context,
00261         const axutil_env_t *env);
00262 
00263     AXIS2_EXTERN password_callback_fn AXIS2_CALL
00264     rampart_context_get_pwcb_function(
00265         rampart_context_t *rampart_context,
00266         const axutil_env_t *env);
00267 
00268     AXIS2_EXTERN rampart_is_replayed_fn AXIS2_CALL
00269     rampart_context_get_replay_detect_function(
00270         rampart_context_t *rampart_context,
00271         const axutil_env_t *env);
00272 
00273     AXIS2_EXTERN void* AXIS2_CALL
00274     rampart_context_get_ctx(
00275         rampart_context_t *rampart_context,
00276         const axutil_env_t *env);
00277 
00278     AXIS2_EXTERN int AXIS2_CALL
00279     rampart_context_get_ttl(
00280         rampart_context_t *rampart_context,
00281         const axutil_env_t *env);
00282 
00283     AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00284     rampart_context_get_rd_val(
00285         rampart_context_t *rampart_context,
00286         const axutil_env_t *env);
00287 
00288 
00289     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00290     rampart_context_get_password_type(
00291         rampart_context_t *rampart_context,
00292         const axutil_env_t *env);
00293 
00294     /*End of Getters */
00295 
00296     /*Rampart specific functions */
00297     AXIS2_EXTERN rp_secpolicy_t *AXIS2_CALL
00298     rampart_context_get_secpolicy(
00299         rampart_context_t *rampart_context,
00300         const axutil_env_t *env);
00301 
00302     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00303     rampart_context_set_secpolicy(rampart_context_t *rampart_context,
00304                                   const axutil_env_t *env,
00305                                   rp_secpolicy_t *secpolicy);
00306 
00307     AXIS2_EXTERN rampart_callback_t *AXIS2_CALL
00308     rampart_context_get_password_callback(
00309         rampart_context_t *rampart_context,
00310         const axutil_env_t *env);
00311 
00312     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00313     rampart_context_set_password_callback(rampart_context_t *rampart_context,
00314                                           const axutil_env_t *env,
00315                                           rampart_callback_t *password_callback_module);
00316 
00317     AXIS2_EXTERN auth_password_func AXIS2_CALL
00318     rampart_context_get_auth_password_function(
00319         rampart_context_t *rampart_context,
00320         const axutil_env_t *env);
00321 
00322     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00323     rampart_context_set_auth_password_function(rampart_context_t *rampart_context,
00324             const axutil_env_t *env,
00325             auth_password_func authenticate_with_password);
00326 
00327     AXIS2_EXTERN auth_digest_func AXIS2_CALL
00328     rampart_context_get_auth_digest_function(
00329         rampart_context_t *rampart_context,
00330         const axutil_env_t *env);
00331 
00332     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00333     rampart_context_set_auth_digest_function(rampart_context_t *rampart_context,
00334             const axutil_env_t *env,
00335             auth_digest_func authenticate_with_digest);
00336 
00337     AXIS2_EXTERN rampart_authn_provider_t *AXIS2_CALL
00338     rampart_context_get_authn_provider(
00339         rampart_context_t *rampart_context,
00340         const axutil_env_t *env);
00341 
00342     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00343     rampart_context_set_authn_provider(rampart_context_t *rampart_context,
00344                                        const axutil_env_t *env,
00345                                        rampart_authn_provider_t *authn_provider);
00346 
00347     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00348     rampart_context_get_require_timestamp(
00349         rampart_context_t *rampart_context,
00350         const axutil_env_t *env);
00351 
00352     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00353     rampart_context_get_require_ut(
00354         rampart_context_t *rampart_context,
00355         const axutil_env_t *env);
00356 
00357     AXIS2_EXTERN rp_property_type_t AXIS2_CALL
00358     rampart_context_get_binding_type(
00359         rampart_context_t *rampart_context,
00360         const axutil_env_t *env);
00361 
00362     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00363     rampart_context_is_include_timestamp(
00364         rampart_context_t *rampart_context,
00365         const axutil_env_t *env);
00366 
00367     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00368     rampart_context_is_include_username_token(
00369         rampart_context_t *rampart_context,
00370         const axutil_env_t *env);
00371 
00372     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00373     rampart_context_get_password_callback_class(
00374         rampart_context_t *rampart_context,
00375         const axutil_env_t *env);
00376 
00377     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00378     rampart_context_get_authn_module_name(
00379         rampart_context_t *rampart_context,
00380         const axutil_env_t *env);
00381 
00382     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00383     rampart_context_is_encrypt_before_sign(
00384         rampart_context_t *rampart_context,
00385         const axutil_env_t *env);
00386 
00387     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00388     rampart_context_is_encrypt_signature(
00389         rampart_context_t *rampart_context,
00390         const axutil_env_t *env);
00391 
00392     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00393     rampart_context_get_nodes_to_encrypt(
00394         rampart_context_t *rampart_context,
00395         const axutil_env_t *env,
00396         axiom_soap_envelope_t *soap_envelope,
00397         axutil_array_list_t *nodes_to_encrypt);
00398 
00399     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00400     rampart_context_get_nodes_to_sign(
00401         rampart_context_t *rampart_context,
00402         const axutil_env_t *env,
00403         axiom_soap_envelope_t *soap_envelope,
00404         axutil_array_list_t *nodes_to_sign);
00405 
00406     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00407     rampart_context_get_elements_to_encrypt(
00408         rampart_context_t *rampart_context,
00409         const axutil_env_t *env,
00410         axiom_soap_envelope_t *soap_envelope,
00411         axutil_array_list_t *nodes_to_encrypt);
00412 
00413     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00414     rampart_context_get_elements_to_sign(
00415         rampart_context_t *rampart_context,
00416         const axutil_env_t *env,
00417         axiom_soap_envelope_t *soap_envelope,
00418         axutil_array_list_t *nodes_to_sign);
00419 
00420     AXIS2_EXTERN rp_property_t *AXIS2_CALL
00421     rampart_context_get_token(
00422         rampart_context_t *rampart_context,
00423         const axutil_env_t *env,
00424         axis2_bool_t for_encryption,
00425         axis2_bool_t server_side,
00426         axis2_bool_t is_inpath);
00427 
00428     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00429     rampart_context_check_is_derived_keys(
00430         const axutil_env_t *env,
00431         rp_property_t *token);
00432 
00433     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00434     rampart_context_get_enc_sym_algo(
00435         rampart_context_t *rampart_context,
00436         const axutil_env_t *env);
00437 
00438     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00439     rampart_context_get_enc_asym_algo(
00440         rampart_context_t *rampart_context,
00441         const axutil_env_t *env);
00442 
00443     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00444     rampart_context_get_asym_sig_algo(
00445         rampart_context_t *rampart_context,
00446         const axutil_env_t *env);
00447 
00448     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00449     rampart_context_get_digest_mtd(
00450         rampart_context_t *rampart_context,
00451         const axutil_env_t *env);
00452 
00453     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00454     rampart_context_get_encryption_user(
00455         rampart_context_t *rampart_context,
00456         const axutil_env_t *env);
00457 
00458     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00459     rampart_context_is_token_include(
00460         rampart_context_t *rampart_context,
00461         rp_property_t *token,
00462         rp_property_type_t token_type,
00463         axis2_bool_t server_side,
00464         axis2_bool_t is_inpath,
00465         const axutil_env_t *env);
00466     /*
00467         AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00468         rampart_context_get_enc_key_identifier(
00469                 rampart_context_t *rampart_context,
00470                 rp_property_t *token,
00471                 axis2_bool_t server_side,
00472                 const axutil_env_t *env);
00473     */
00474     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00475     rampart_context_get_key_identifier(
00476         rampart_context_t *rampart_context,
00477         rp_property_t *token,
00478         const axutil_env_t *env);
00479 
00480     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00481     rampart_context_is_token_type_supported(
00482         rp_property_type_t token_type,
00483         const axutil_env_t *env);
00484 
00485     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00486     rampart_context_is_key_identifier_type_supported(
00487         rampart_context_t *rampart_context,
00488         rp_property_t *token,
00489         axis2_char_t *identifier,
00490         const axutil_env_t *env);
00491 
00492     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00493     rampart_context_get_layout(
00494         rampart_context_t *rampart_context,
00495         const axutil_env_t *env);
00496 
00497     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00498     rampart_context_check_whether_to_encrypt(
00499         rampart_context_t *rampart_context,
00500         const axutil_env_t *env);
00501 
00502     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00503     rampart_context_check_whether_to_sign(
00504         rampart_context_t *rampart_context,
00505         const axutil_env_t *env);
00506 
00507     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00508     rampart_context_set_user_from_file(
00509         rampart_context_t *rampart_context,
00510         const axutil_env_t *env);
00511 
00512     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00513     rampart_context_set_password_type_from_file(
00514         rampart_context_t *rampart_context,
00515         const axutil_env_t *env);
00516 
00517     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00518     rampart_context_get_certificate_file(
00519         rampart_context_t *rampart_context,
00520         const axutil_env_t *env);
00521 
00522     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00523     rampart_context_get_receiver_certificate_file(
00524         rampart_context_t *rampart_context,
00525         const axutil_env_t *env);
00526 
00527     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00528     rampart_context_get_private_key_file(
00529         rampart_context_t *rampart_context,
00530         const axutil_env_t *env);
00531 
00532     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00533     rampart_context_set_ttl_from_file(
00534         rampart_context_t *rampart_context,
00535         const axutil_env_t *env);
00536 
00537     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00538     rampart_context_set_rd_val_from_file(
00539         rampart_context_t *rampart_context,
00540         const axutil_env_t *env);
00541 
00542     AXIS2_EXTERN oxs_key_t *AXIS2_CALL
00543     rampart_context_get_session_key(
00544         rampart_context_t *rampart_context,
00545         const axutil_env_t *env);
00546 
00547     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00548     rampart_context_set_session_key(
00549         rampart_context_t *rampart_context,
00550         const axutil_env_t *env,
00551         oxs_key_t *session_key);
00552 
00553     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00554     rampart_context_increment_ref(
00555         rampart_context_t *rampart_context,
00556         const axutil_env_t *env);
00557 
00558 
00559 #ifdef __cplusplus
00560 }
00561 #endif
00562 #endif

Generated on Thu Oct 4 17:37:07 2007 for Rampart/C by  doxygen 1.4.7