00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef GWEN_NETTRANSPORTSSL_H
00030 #define GWEN_NETTRANSPORTSSL_H
00031
00032 #include <gwenhywfar/nettransport.h>
00033 #include <gwenhywfar/db.h>
00034
00035 #ifdef __cplusplus
00036 extern "C" {
00037 #endif
00038
00039
00044
00055 typedef int (*GWEN_NETTRANSPORTSSL_GETPASSWD_FN)(GWEN_NETTRANSPORT *tr,
00056 char *buffer, int num,
00057 int rwflag);
00061 GWENHYWFAR_API
00062 void
00063 GWEN_NetTransportSSL_SetGetPasswordFn(GWEN_NETTRANSPORTSSL_GETPASSWD_FN fn);
00064
00068 GWENHYWFAR_API
00069 GWEN_NETTRANSPORTSSL_GETPASSWD_FN
00070 GWEN_NetTransportSSL_GetGetPasswordFn();
00078 typedef enum {
00080 GWEN_NetTransportSSL_AskAddCertResultError=0,
00082 GWEN_NetTransportSSL_AskAddCertResultNo,
00084 GWEN_NetTransportSSL_AskAddCertResultTmp,
00086 GWEN_NetTransportSSL_AskAddCertResultPerm,
00088 GWEN_NetTransportSSL_AskAddCertResultIncoming
00089 } GWEN_NETTRANSPORTSSL_ASKADDCERT_RESULT;
00090
00097 typedef GWEN_NETTRANSPORTSSL_ASKADDCERT_RESULT
00098 (*GWEN_NETTRANSPORTSSL_ASKADDCERT_FN)(GWEN_NETTRANSPORT *tr,
00099 GWEN_DB_NODE *cert);
00100
00101 typedef GWEN_NETTRANSPORTSSL_ASKADDCERT_RESULT
00102 (*GWEN_NETTRANSPORTSSL_ASKADDCERT_FN2)(GWEN_NETTRANSPORT *tr,
00103 GWEN_DB_NODE *cert,
00104 void *user_data);
00105
00110 GWENHYWFAR_API
00111 void
00112 GWEN_NetTransportSSL_SetAskAddCertFn(GWEN_NETTRANSPORTSSL_ASKADDCERT_FN fn);
00113
00117 GWENHYWFAR_API
00118 GWEN_NETTRANSPORTSSL_ASKADDCERT_FN
00119 GWEN_NetTransportSSL_GetAskAddCertFn();
00120
00121
00122 GWENHYWFAR_API
00123 void
00124 GWEN_NetTransportSSL_SetAskAddCertFn2(GWEN_NETTRANSPORTSSL_ASKADDCERT_FN2 fn,
00125 void *user_data);
00126
00138 GWENHYWFAR_API
00139 GWEN_NETTRANSPORT *GWEN_NetTransportSSL_new(GWEN_SOCKET *sk,
00140 const char *capath,
00141 const char *newcapath,
00142 const char *ownCertFile,
00143 const char *dhfile,
00144 int secure,
00145 int takeOver);
00146
00156 GWENHYWFAR_API
00157 void GWEN_NetTransportSSL_SetCipherList(GWEN_NETTRANSPORT *tr,
00158 const char *ciphers);
00159
00171 GWENHYWFAR_API
00172 GWEN_DB_NODE *GWEN_NetTransportSSL_GetCipherList();
00173
00198 GWENHYWFAR_API
00199 int GWEN_NetTransportSSL_GenerateCertAndKeyFile(const char *fname,
00200 int bits,
00201 int serial,
00202 int days,
00203 GWEN_DB_NODE *db);
00204
00218 GWENHYWFAR_API
00219 int GWEN_NetTransportSSL_GenerateDhFile(const char *fname, int bits);
00220
00226 GWENHYWFAR_API
00227 GWEN_DB_NODE*
00228 GWEN_NetTransportSSL_GetPeerCertificate(const GWEN_NETTRANSPORT *tr);
00229
00230 GWENHYWFAR_API
00231 int GWEN_NetTransportSSL_IsSecure(const GWEN_NETTRANSPORT *tr);
00232
00233 GWENHYWFAR_API
00234 int GWEN_NetTransportSSL_IsOfType(GWEN_NETTRANSPORT *tr);
00235
00239 #ifdef __cplusplus
00240 }
00241 #endif
00242
00243
00244 #endif
00245
00246