00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
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
00210
00211
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
00295
00296
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
00468
00469
00470
00471
00472
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