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_NL_SSL_H
00030 #define GWEN_NL_SSL_H
00031
00032
00033 #define GWEN_NL_SSL_NAME "SSL"
00034
00035 #include <gwenhywfar/netlayer.h>
00036 #include <gwenhywfar/db.h>
00037 #include <gwenhywfar/ssl_cipher.h>
00038 #include <gwenhywfar/ssl_cert_descr.h>
00039
00040
00041 typedef enum {
00043 GWEN_NetLayerSsl_AskAddCertResult_Error=0,
00045 GWEN_NetLayerSsl_AskAddCertResult_No,
00047 GWEN_NetLayerSsl_AskAddCertResult_Tmp,
00049 GWEN_NetLayerSsl_AskAddCertResult_Perm,
00051 GWEN_NetLayerSsl_AskAddCertResult_Incoming
00052 } GWEN_NL_SSL_ASKADDCERT_RESULT;
00053
00054
00055 typedef GWEN_NL_SSL_ASKADDCERT_RESULT
00056 (*GWEN_NL_SSL_ASKADDCERT_FN)(GWEN_NETLAYER *nl,
00057 const GWEN_SSLCERTDESCR *cert,
00058 void *user_data);
00059
00060 GWENHYWFAR_API
00061 void GWEN_NetLayerSsl_SetAskAddCertFn(GWEN_NETLAYER *nl,
00062 GWEN_NL_SSL_ASKADDCERT_FN fn,
00063 void *user_data);
00064
00065
00066 GWENHYWFAR_API
00067 GWEN_NL_SSL_ASKADDCERT_RESULT
00068 GWEN_NetLayerSsl_AskAddCert(GWEN_NETLAYER *nl,
00069 const GWEN_SSLCERTDESCR *cd);
00070
00071
00072 GWENHYWFAR_API
00073 GWEN_NETLAYER *GWEN_NetLayerSsl_new(GWEN_NETLAYER *baseLayer,
00074 const char *capath,
00075 const char *newcapath,
00076 const char *ownCertFile,
00077 const char *dhFolder,
00078 int secure);
00079
00080 GWENHYWFAR_API
00081 const GWEN_SSLCERTDESCR*
00082 GWEN_NetLayerSsl_GetPeerCertificate(const GWEN_NETLAYER *nl);
00083
00084 GWENHYWFAR_API
00085 int GWEN_NetLayerSsl_GetIsSecure(const GWEN_NETLAYER *nl);
00086
00087 GWENHYWFAR_API
00088 void GWEN_NetLayerSsl_SetCiphers(GWEN_NETLAYER *nl, const char *ciphers);
00089
00090 GWENHYWFAR_API
00091 GWEN_SSLCIPHER_LIST *GWEN_NetLayerSsl_GetCipherList();
00092
00093 GWENHYWFAR_API
00094 int GWEN_NetLayerSsl_GenerateDhFile(const char *fname, int bits);
00095
00096 GWENHYWFAR_API
00097 int GWEN_NetLayerSsl_GenerateCertAndKeyFile(const char *fname,
00098 int bits,
00099 int serial,
00100 int days,
00101 const GWEN_SSLCERTDESCR *cd);
00102
00112 GWENHYWFAR_API
00113 int GWEN_NetLayerSsl_ImportCertFile(const char *fname,
00114 const char *dname,
00115 int overwrite);
00116
00117
00118
00119 #endif
00120
00121