00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 #include <openssl/rand.h>
00018 #include <openssl/evp.h>
00019 #include <openssl/pem.h>
00020 #include <openssl/bio.h>
00021 #include <openssl/rand.h>
00022 #include <openssl_constants.h>
00023 #include <openssl_pkey.h>
00024 #include <axis2_util.h>
00025 #include <openssl/pkcs12.h>
00026 #include <oxs_error.h>
00031 #ifndef OPENSSL_PEM_H
00032 #define OPENSSL_PEM_H
00033 
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037 
00043     typedef enum {
00044         OPENSSL_PEM_PKEY_TYPE_PRIVATE_KEY = 0,
00045         OPENSSL_PEM_PKEY_TYPE_PUBLIC_KEY,
00046         OPENSSL_PEM_PKEY_TYPE_UNKNOWN
00047     } openssl_pem_pkey_type_t;
00048 
00049     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00050     openssl_pem_buf_read_pkey(const axutil_env_t *env,
00051                               axis2_char_t *b64_encoded_buf,
00052                               axis2_char_t *password,
00053                               openssl_pem_pkey_type_t type,
00054                               EVP_PKEY **pkey);
00055 
00056     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00057     openssl_pem_read_pkey(const axutil_env_t *env,
00058                           axis2_char_t *filename,
00059                           axis2_char_t *password,
00060                           openssl_pem_pkey_type_t type,
00061                           EVP_PKEY **pkey);
00062 
00064 #ifdef __cplusplus
00065 }
00066 #endif
00067 
00068 #endif