oxs_ctx.h

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #ifndef OXS_CTX_H
00019 #define OXS_CTX_H
00020 
00021 
00027 #include <axis2_defines.h>
00028 #include <axis2_env.h>
00029 #include <axiom_node.h>
00030 #include <oxs_buffer.h>
00031 #include <oxs_key.h>
00032 
00033 #ifdef __cplusplus
00034 extern "C"
00035 {
00036 #endif
00037 
00044     typedef enum  {
00045         OXS_CTX_OPERATION_NONE = 0,
00046         OXS_CTX_OPERATION_SIGN,
00047         OXS_CTX_OPERATION_VERIFY,
00048         OXS_CTX_OPERATION_ENCRYPT,
00049         OXS_CTX_OPERATION_DECRYPT
00050     } oxs_ctx_operation_t;
00051 
00052     typedef enum {
00053         OXS_CTX_MODE_ENCRYPTED_DATA = 0,
00054         OXS_CTX_MODE_ENCRYPTED_KEY
00055     } oxs_ctx_mode_t;
00056 
00058     typedef struct oxs_ctx_ops oxs_ctx_ops_t;
00060     typedef struct oxs_ctx oxs_ctx_t;
00061 
00062 
00063     struct oxs_ctx_ops
00064     {
00065 
00066         axis2_status_t (AXIS2_CALL *
00067         free)(
00068                     oxs_ctx_t *ctx,
00069                     const axis2_env_t *env
00070                     );
00071 
00072         oxs_ctx_mode_t (AXIS2_CALL *
00073         get_mode)(
00074                     oxs_ctx_t *ctx,
00075                     const axis2_env_t *env
00076                     );
00077 
00078         oxs_ctx_operation_t (AXIS2_CALL *
00079         get_operation)(
00080                     oxs_ctx_t *ctx,
00081                     const axis2_env_t *env
00082                     );
00083 
00084         oxs_key_t *(AXIS2_CALL *
00085         get_key)(
00086                     oxs_ctx_t *ctx,
00087                     const axis2_env_t *env
00088                     );
00089 
00090         axis2_char_t *(AXIS2_CALL *
00091         get_id)(
00092                     oxs_ctx_t *ctx,
00093                     const axis2_env_t *env
00094                     );
00095 
00096         axis2_char_t *(AXIS2_CALL *
00097         get_type)(
00098                     oxs_ctx_t *ctx,
00099                     const axis2_env_t *env
00100                     );
00101         axis2_char_t *(AXIS2_CALL *
00102         get_mime_type)(
00103                     oxs_ctx_t *ctx,
00104                     const axis2_env_t *env
00105                     );
00106 
00107         axis2_char_t *(AXIS2_CALL *
00108         get_encoding)(
00109                     oxs_ctx_t *ctx,
00110                     const axis2_env_t *env
00111                     );
00112 
00113         axis2_char_t *(AXIS2_CALL *
00114         get_recipient)(
00115                     oxs_ctx_t *ctx,
00116                     const axis2_env_t *env
00117                     );
00118 
00119         axis2_char_t *(AXIS2_CALL *
00120         get_carried_key_name)(
00121                     oxs_ctx_t *ctx,
00122                     const axis2_env_t *env
00123                     );
00124 
00125         axis2_char_t *(AXIS2_CALL *
00126         get_enc_mtd_algorithm)(
00127                     oxs_ctx_t *ctx,
00128                     const axis2_env_t *env
00129                     );
00130 
00131         axis2_char_t *(AXIS2_CALL *
00132         get_input_data)(
00133                     oxs_ctx_t *ctx,
00134                     const axis2_env_t *env
00135                     );
00136 
00137         axiom_node_t *(AXIS2_CALL *
00138         get_enc_data_node)(
00139                     oxs_ctx_t *ctx,
00140                     const axis2_env_t *env
00141                     );
00142 
00143         axiom_node_t *(AXIS2_CALL *
00144         get_enc_method_node)(
00145                     oxs_ctx_t *ctx,
00146                     const axis2_env_t *env
00147                     );
00148 
00149         axiom_node_t *(AXIS2_CALL *
00150         get_key_info_node)(
00151                     oxs_ctx_t *ctx,
00152                     const axis2_env_t *env
00153                     );
00154 
00155         axiom_node_t *(AXIS2_CALL *
00156         get_cipher_value_node)(
00157                     oxs_ctx_t *ctx,
00158                     const axis2_env_t *env
00159                     );
00160 
00161         axis2_status_t (AXIS2_CALL *
00162         set_mode)(
00163                     oxs_ctx_t *ctx,
00164                     const axis2_env_t *env,
00165                     oxs_ctx_mode_t mode
00166                     );
00167 
00168         axis2_status_t (AXIS2_CALL *
00169         set_operation)(
00170                     oxs_ctx_t *ctx,
00171                     const axis2_env_t *env,
00172                     oxs_ctx_operation_t operation
00173                     );
00174 
00175         axis2_status_t (AXIS2_CALL *
00176         set_key)(
00177                     oxs_ctx_t *ctx,
00178                     const axis2_env_t *env,
00179                     oxs_key_t *key
00180                     );
00181         axis2_status_t (AXIS2_CALL *
00182         set_id)(
00183                     oxs_ctx_t *ctx,
00184                     const axis2_env_t *env,
00185                     axis2_char_t *id
00186                     );
00187 
00188         axis2_status_t (AXIS2_CALL *
00189         set_type)(
00190                     oxs_ctx_t *ctx,
00191                     const axis2_env_t *env,
00192                     axis2_char_t *type
00193                     );
00194 
00195         axis2_status_t (AXIS2_CALL *
00196         set_mime_type)(
00197                     oxs_ctx_t *ctx,
00198                     const axis2_env_t *env,
00199                     axis2_char_t *mime_type
00200                     );
00201 
00202         axis2_status_t (AXIS2_CALL *
00203         set_encoding)(
00204                     oxs_ctx_t *ctx,
00205                     const axis2_env_t *env,
00206                     axis2_char_t *encoding
00207                     );
00208 
00209         axis2_status_t (AXIS2_CALL *
00210         set_recipient)(
00211                     oxs_ctx_t *ctx,
00212                     const axis2_env_t *env,
00213                     axis2_char_t *recipient
00214                     );
00215 
00216         axis2_status_t (AXIS2_CALL *
00217         set_carried_key_name)(
00218                     oxs_ctx_t *ctx,
00219                     const axis2_env_t *env,
00220                     axis2_char_t *carried_key_name
00221                     );
00222 
00223         axis2_status_t (AXIS2_CALL *
00224         set_enc_mtd_algorithm)(
00225                     oxs_ctx_t *ctx,
00226                     const axis2_env_t *env,
00227                     axis2_char_t *enc_mtd_algorithm
00228                     );
00229 
00230         axis2_status_t (AXIS2_CALL *
00231         set_input_data)(
00232                     oxs_ctx_t *ctx,
00233                     const axis2_env_t *env,
00234                     axis2_char_t *input_data
00235                     );
00236 
00237         axis2_status_t (AXIS2_CALL *
00238         set_enc_data_node)(
00239                     oxs_ctx_t *ctx,
00240                     const axis2_env_t *env,
00241                     axiom_node_t *enc_data_node
00242                     );
00243 
00244         axis2_status_t (AXIS2_CALL *
00245         set_enc_method_node)(
00246                     oxs_ctx_t *ctx,
00247                     const axis2_env_t *env,
00248                     axiom_node_t *enc_method_node
00249                     );
00250 
00251         axis2_status_t (AXIS2_CALL *
00252         set_key_info_node)(
00253                     oxs_ctx_t *ctx,
00254                     const axis2_env_t *env,
00255                     axiom_node_t *key_info_node
00256                     );
00257 
00258         axis2_status_t (AXIS2_CALL *
00259         set_cipher_value_node)(
00260                     oxs_ctx_t *ctx,
00261                     const axis2_env_t *env,
00262                     axiom_node_t *cipher_value_node
00263                     );
00264 
00265     };
00266     
00267     struct oxs_ctx
00268     {
00270         oxs_ctx_ops_t *ops;
00271     };
00272 
00273     /*Create function*/
00274     AXIS2_EXTERN oxs_ctx_t *AXIS2_CALL
00275     oxs_ctx_create(const axis2_env_t *env);
00276 
00277 
00278 /**********************Macros******************************************/
00279 #define OXS_CTX_FREE(ctx, env) \
00280         ((ctx)->ops->free(ctx, env) )
00281     
00282 #define OXS_CTX_GET_MODE(ctx, env) \
00283         ((ctx)->ops->get_mode(ctx, env) )
00284     
00285 #define OXS_CTX_GET_OPERATION(ctx, env) \
00286         ((ctx)->ops->get_operation(ctx, env) )
00287     
00288 #define OXS_CTX_GET_KEY(ctx, env) \
00289         ((ctx)->ops->get_key(ctx, env) )
00290     
00291 #define OXS_CTX_GET_ID(ctx, env) \
00292         ((ctx)->ops->get_id(ctx, env) )
00293     
00294 #define OXS_CTX_GET_TYPE(ctx, env) \
00295         ((ctx)->ops->get_type(ctx, env) )
00296     
00297 #define OXS_CTX_GET_MIME_TYPE(ctx, env) \
00298         ((ctx)->ops->get_mime_type(ctx, env) )
00299     
00300 #define OXS_CTX_GET_ENCODING(ctx, env) \
00301         ((ctx)->ops->get_encoding(ctx, env) )
00302     
00303 #define OXS_CTX_GET_RECIPIENT(ctx, env) \
00304         ((ctx)->ops->get_recipient(ctx, env) )
00305     
00306 #define OXS_CTX_GET_CARRIED_KEY_NAME(ctx, env) \
00307         ((ctx)->ops->get_carried_key_name(ctx, env) )
00308     
00309 #define OXS_CTX_GET_ENC_MTD_ALGORITHM(ctx, env) \
00310         ((ctx)->ops->get_enc_mtd_algorithm(ctx, env) )
00311     
00312 #define OXS_CTX_GET_INPUT_DATA(ctx, env) \
00313         ((ctx)->ops->get_input_data(ctx, env) )
00314     
00315 #define OXS_CTX_GET_ENC_DATA_NODE(ctx, env) \
00316         ((ctx)->ops->get_enc_data_node(ctx, env) )
00317     
00318 #define OXS_CTX_GET_ENC_METHOD_NODE(ctx, env) \
00319         ((ctx)->ops->get_enc_method_node(ctx, env) )
00320     
00321 #define OXS_CTX_GET_KEY_INFO_NODE(ctx, env) \
00322         ((ctx)->ops->get_key_info_node(ctx, env) )
00323     
00324 #define OXS_CTX_GET_CIPHER_VALUE_NODE(ctx, env) \
00325         ((ctx)->ops->get_cipher_value_node(ctx, env) )
00326     
00327 #define OXS_CTX_SET_MODE(ctx, env, mode) \
00328         ((ctx)->ops->set_mode(ctx, env, mode) )
00329     
00330 #define OXS_CTX_SET_OPERATION(ctx, env, operation) \
00331         ((ctx)->ops->set_operation(ctx, env, operation) )
00332     
00333 #define OXS_CTX_SET_KEY(ctx, env, key) \
00334         ((ctx)->ops->set_key(ctx, env, key) )
00335     
00336 #define OXS_CTX_SET_ID(ctx, env, id) \
00337         ((ctx)->ops->set_id(ctx, env, id) )
00338     
00339 #define OXS_CTX_SET_TYPE(ctx, env, type) \
00340         ((ctx)->ops->set_type(ctx, env, type) )
00341     
00342 #define OXS_CTX_SET_MIME_TYPE(ctx, env, mime_type) \
00343         ((ctx)->ops->set_mime_type(ctx, env, mime_type) )
00344     
00345 #define OXS_CTX_SET_ENCODING(ctx, env, encoding) \
00346         ((ctx)->ops->set_encoding(ctx, env, encoding) )
00347     
00348 #define OXS_CTX_SET_RECIPIENT(ctx, env, recipient) \
00349         ((ctx)->ops->set_recipient(ctx, env, recipient) )
00350     
00351 #define OXS_CTX_SET_CARRIED_KEY_NAME(ctx, env, key_name) \
00352         ((ctx)->ops->set_carried_key_name(ctx, env, key_name) )
00353     
00354 #define OXS_CTX_SET_ENC_MTD_ALGORITHM(ctx, env, enc_mtd_algorithm) \
00355         ((ctx)->ops->set_enc_mtd_algorithm(ctx, env, enc_mtd_algorithm) )
00356     
00357 #define OXS_CTX_SET_INPUT_DATA(ctx, env, input_data) \
00358         ((ctx)->ops->set_input_data(ctx, env, input_data) )
00359     
00360 #define OXS_CTX_SET_ENC_DATA_NODE(ctx, env, enc_data_node) \
00361         ((ctx)->ops->set_enc_data_node(ctx, env, enc_data_node) )
00362     
00363 #define OXS_CTX_SET_ENC_METHOD_NODE(ctx, env, enc_method_node) \
00364         ((ctx)->ops->set_enc_method_node(ctx, env, enc_method_node) )
00365     
00366 #define OXS_CTX_SET_KEY_INFO_NODE(ctx, env, key_info_node) \
00367         ((ctx)->ops->set_key_info_node(ctx, env, key_info_node) )
00368     
00369 #define OXS_CTX_SET_CIPHER_VALUE_NODE(ctx, env, cipher_value_node) \
00370         ((ctx)->ops->set_cipher_value_node(ctx, env, cipher_value_node) )
00371     
00372 
00403 #ifdef __cplusplus
00404 }
00405 #endif
00406 
00407 #endif                          /* OXS_CTX_H */

Generated on Wed Dec 20 20:14:10 2006 for Axis2/C by  doxygen 1.5.1