1 #ifndef __TCPCRYPT_TCPCRYPT_H__ 2 #define __TCPCRYPT_TCPCRYPT_H__ 3 4 #ifdef __cplusplus 5 extern "C" { 6 #pragma GCC visibility push(default) 7 #endif 8 9 #ifndef __WIN32__ 10 #include <sys/socket.h> 11 #include <stdint.h> 12 #else 13 #include <winsock2.h> 14 #include <ws2tcpip.h> /* TODO: needed? */ 15 #endif 16 17 #define TCPCRYPT_SID_MAXLEN 32 18 19 /* tcpcrypt get/setsockopt optnames */ 20 enum { 21 TCP_CRYPT_ENABLE = 0, 22 TCP_CRYPT_CMODE, 23 TCP_CRYPT_SESSID, 24 TCP_CRYPT_RSA_KEY = 3, 25 26 TCP_CRYPT_APP_SUPPORT = 15, 27 28 /* non standard options */ 29 TCP_CRYPT_RESET = 100, 30 TCP_CRYPT_NOCACHE, 31 TCP_CRYPT_NETSTAT, 32 }; 33 34 enum { 35 TCPCRYPT_PARAM_CTLPATH = 0, 36 }; 37 38 extern void tcpcrypt_setparam(int param, void *val); 39 40 extern int tcpcrypt_getsockopt(int s, int level, int optname, void *optval, 41 socklen_t *optlen); 42 extern int tcpcrypt_setsockopt(int s, int level, int optname, 43 const void *optval, socklen_t optlen); 44 45 extern char *tcpcrypt_getsessid(char *remote_ip, uint16_t remote_port, 46 char *local_ip, uint16_t local_port); 47 48 #ifdef __cplusplus 49 } 50 #pragma GCC visibility pop 51 #endif 52 53 54 #endif // __TCPCRYPT_TCPCRYPT_H__ 55