hssl.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef HV_SSL_H_
  2. #define HV_SSL_H_
  3. #include "hexport.h"
  4. typedef void* hssl_ctx_t; ///> SSL_CTX
  5. typedef void* hssl_t; ///> SSL
  6. enum {
  7. HSSL_OK = 0,
  8. HSSL_WANT_READ = 2,
  9. HSSL_WANT_WRITE = 3,
  10. };
  11. typedef struct {
  12. const char* crt_file;
  13. const char* key_file;
  14. const char* ca_file;
  15. int verify_peer;
  16. } hssl_ctx_init_param_t;
  17. BEGIN_EXTERN_C
  18. HV_EXPORT hssl_ctx_t hssl_ctx_init(hssl_ctx_init_param_t* param);
  19. HV_EXPORT void hssl_ctx_destory(hssl_ctx_t ssl_ctx);
  20. HV_EXPORT hssl_ctx_t hssl_ctx_instance();
  21. HV_EXPORT hssl_t hssl_new(hssl_ctx_t ssl_ctx, int fd);
  22. HV_EXPORT void hssl_free(hssl_t ssl);
  23. HV_EXPORT int hssl_connect(hssl_t ssl);
  24. HV_EXPORT int hssl_accept(hssl_t ssl);
  25. HV_EXPORT int hssl_read(hssl_t ssl, void* buf, int len);
  26. HV_EXPORT int hssl_write(hssl_t ssl, const void* buf, int len);
  27. HV_EXPORT int hssl_close(hssl_t ssl);
  28. HV_EXPORT int hssl_set_accept_state(hssl_t ssl);
  29. HV_EXPORT int hssl_set_connect_state(hssl_t ssl);
  30. HV_EXPORT int hssl_do_handshark(hssl_t ssl);
  31. END_EXTERN_C
  32. #endif // HV_SSL_H_