00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __nanohttp_ssl_h
00025 #define __nanohttp_ssl_h
00026
00239 #define NHTTPD_ARG_HTTPS "-NHTTPS"
00240
00246 #define HSSL_ERROR 1700
00247 #define HSSL_ERROR_CA_LIST (HSSL_ERROR + 10)
00248 #define HSSL_ERROR_CONTEXT (HSSL_ERROR + 20)
00249 #define HSSL_ERROR_CERTIFICATE (HSSL_ERROR + 30)
00250 #define HSSL_ERROR_PEM (HSSL_ERROR + 40)
00251 #define HSSL_ERROR_CLIENT (HSSL_ERROR + 50)
00252 #define HSSL_ERROR_SERVER (HSSL_ERROR + 60)
00253 #define HSSL_ERROR_CONNECT (HSSL_ERROR + 70)
00254
00255 #define HSSL_ERROR_SSLCLOSE (HSSL_ERROR + 80)
00256 #define HSSL_ERROR_SSLCTX (HSSL_ERROR + 90)
00257
00260 #ifdef __cplusplus
00261 extern "C" {
00262 #endif
00263
00270 extern herror_t hssl_module_init(int argc, char **argv);
00271
00276 extern void hssl_module_destroy(void);
00277
00280 extern void hssl_set_certificate(const char *filename);
00281
00286 extern void hssl_set_certpass(const char *password);
00287
00291 extern void hssl_set_ca_list(const char *filename);
00292
00296 extern void hssl_enable(void);
00297
00302 extern int hssl_enabled(void);
00303
00310 extern herror_t hssl_client_ssl(struct hsocket_t * sock);
00311
00318 extern herror_t hssl_server_ssl(struct hsocket_t * sock);
00319
00325 extern void hssl_cleanup(struct hsocket_t * sock);
00326
00333 extern int verify_sn(X509 * cert, int who, int nid, char *str);
00334
00340 extern void hssl_set_user_verify(int func(X509 * cert));
00341
00346 extern herror_t hssl_read(struct hsocket_t * sock, char *buf, size_t len, size_t * received);
00347
00352 extern herror_t hssl_write(struct hsocket_t * sock, const char *buf, size_t len, size_t * sent);
00353
00354 #ifdef __cplusplus
00355 }
00356 #endif
00357
00360 #endif