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 <openssl/rsa.h>
00027 #include <openssl/x509.h>
00028 #include <openssl_pkcs12.h>
00029 #include <oxs_error.h>
00030 #include <oxs_x509_cert.h>
00031 #include <openssl_pkey.h>
00032 #include <openssl_x509.h>
00033 
00034 
00039 #ifndef OPENSSL_PKCS12_KEYSTORE_H
00040 #define OPENSSL_PKCS12_KEYSTORE_H
00041 
00042 #ifdef __cplusplus
00043 extern "C" {
00044 #endif
00045     
00046     typedef struct pkcs12_keystore pkcs12_keystore_t;
00047     
00048     AXIS2_EXTERN pkcs12_keystore_t * AXIS2_CALL pkcs12_keystore_create(
00049         const axutil_env_t *env, 
00050         axis2_char_t *filename, 
00051         axis2_char_t *password);
00052     
00053     axutil_array_list_t * AXIS2_CALL pkcs12_keystore_populate_cert_array(
00054         const axutil_env_t *env,
00055         STACK_OF(X509) *other_certs);
00056     
00057     oxs_x509_cert_t * AXIS2_CALL pkcs12_keystore_populate_oxs_cert(
00058         const axutil_env_t *env, 
00059         X509 *cert_in);
00060     
00061     AXIS2_EXTERN openssl_pkey_t * AXIS2_CALL pkcs12_keystore_get_owner_private_key(
00062         pkcs12_keystore_t *keystore,
00063         const axutil_env_t *env);
00064     
00065     AXIS2_EXTERN oxs_x509_cert_t * AXIS2_CALL pkcs12_keystore_get_owner_certificate(
00066         pkcs12_keystore_t *keystore, 
00067         const axutil_env_t *env);
00068     
00069     AXIS2_EXTERN oxs_x509_cert_t * AXIS2_CALL pkcs12_keystore_get_certificate_for_issuer_serial(
00070         pkcs12_keystore_t *keystore,
00071         const axutil_env_t *env,
00072         axis2_char_t *issuer,
00073         int serial_number);
00074     
00075     AXIS2_EXTERN oxs_x509_cert_t * AXIS2_CALL pkcs12_keystore_get_certificate_for_thumbprint(
00076         pkcs12_keystore_t *keystore, 
00077         const axutil_env_t *env, 
00078         axis2_char_t *thumbprint);
00079     
00080     AXIS2_EXTERN oxs_x509_cert_t * AXIS2_CALL pkcs12_keystore_get_certificate_for_subject_key_id(
00081         pkcs12_keystore_t *keystore,
00082         const axutil_env_t *env,
00083         axis2_char_t *ski);
00084 
00085     AXIS2_EXTERN oxs_x509_cert_t * AXIS2_CALL 
00086     pkcs12_keystore_get_other_certificate(
00087         pkcs12_keystore_t *keystore,
00088         const axutil_env_t *env);
00089      
00090     AXIS2_EXTERN pkcs12_keystore_t * AXIS2_CALL
00091     pkcs12_keystore_create_from_buffer(
00092         const axutil_env_t *env,
00093         axis2_char_t *buffer,
00094         axis2_char_t *password,
00095         int len);
00096 
00097     
00098         
00099 #ifdef __cplusplus
00100 }
00101 #endif
00102 
00103 #endif