const DEFAULT_BUF_SIZE = 64 # TODO: Add here the missing related to those three const SSL_FILETYPE_PEM = 1 const SSL_OP_NO_SSLv3 = 0x02000000 const EVP_MAX_MD_SIZE = 64 const BIO_FLAGS_READ = 0x01 const BIO_FLAGS_WRITE = 0x02 const BIO_FLAGS_IO_SPECIAL = 0x03 const BIO_FLAGS_RWS = (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL) const BIO_FLAGS_SHOULD_RETRY = 0x08 const BIO_FLAGS_MEM_RDONLY = 0x200 const BIO_FLAGS_NONCLEAR_RST = 0x400 const BIO_FLAGS_IN_EOF = 0x800 @enum SSL_ERRORS begin SSL_ERROR = 1 SSL_WANT_READ = 2 SSL_WANT_WRITE = 3 SSL_SYSCALL = 5 SSL_ZERO_RETURN = 6 end @enum SSL_VERIFY begin VERIFY_NONE = 0x00 VERIFY_PEER = 0x01 VERIFY_FAIL_IF_NO_PEER_CERT = 0x02 VERIFY_CLIENT_ONCE = 0x04 VERIFY_POST_HANDSHAKE = 0x08 end @enum SSL_VERSION begin SSL3_VERSION = 0x0300 TLS1_VERSION TLS1_1_VERSION TLS1_2_VERSION TLS1_3_VERSION end @enum SSL_CTRL begin SSL_CERT_SET_FIRST = 1 SSL_CERT_SET_NEXT = 2 SSL_CERT_SET_SERVER = 3 # SSL_CTRL_SET_TMP_DH = 3 SSL_CTRL_SET_TMP_ECDH = 4 SSL_CTRL_SET_TMP_DH_CB = 6 SSL_CTRL_GET_CLIENT_CERT_REQUEST = 9 SSL_CTRL_GET_NUM_RENEGOTIATIONS = 10 SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS = 11 SSL_CTRL_GET_TOTAL_RENEGOTIATIONS = 12 SSL_CTRL_GET_FLAGS = 13 SSL_CTRL_EXTRA_CHAIN_CERT = 14 SSL_CTRL_SET_MSG_CALLBACK = 15 SSL_CTRL_SET_MSG_CALLBACK_ARG = 16 SSL_CTRL_SET_MTU = 17 SSL_CTRL_SESS_NUMBER = 20 SSL_CTRL_SESS_CONNECT = 21 SSL_CTRL_SESS_CONNECT_GOOD = 22 SSL_CTRL_SESS_CONNECT_RENEGOTIATE = 23 SSL_CTRL_SESS_ACCEPT = 24 SSL_CTRL_SESS_ACCEPT_GOOD = 25 SSL_CTRL_SESS_ACCEPT_RENEGOTIATE = 26 SSL_CTRL_SESS_HIT = 27 SSL_CTRL_SESS_CB_HIT = 28 SSL_CTRL_SESS_MISSES = 29 SSL_CTRL_SESS_TIMEOUTS = 30 SSL_CTRL_SESS_CACHE_FULL = 31 SSL_CTRL_MODE = 33 SSL_CTRL_GET_READ_AHEAD = 40 SSL_CTRL_SET_READ_AHEAD = 41 SSL_CTRL_SET_SESS_CACHE_SIZE = 42 SSL_CTRL_GET_SESS_CACHE_SIZE = 43 SSL_CTRL_SET_SESS_CACHE_MODE = 44 SSL_CTRL_GET_SESS_CACHE_MODE = 45 SSL_CTRL_GET_MAX_CERT_LIST = 50 SSL_CTRL_SET_MAX_CERT_LIST = 51 SSL_CTRL_SET_MAX_SEND_FRAGMENT = 52 SSL_CTRL_SET_TLSEXT_SERVERNAME_CB = 53 SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG = 54 SSL_CTRL_SET_TLSEXT_HOSTNAME = 55 SSL_CTRL_SET_TLSEXT_DEBUG_CB = 56 SSL_CTRL_SET_TLSEXT_DEBUG_ARG = 57 SSL_CTRL_GET_TLSEXT_TICKET_KEYS = 58 SSL_CTRL_SET_TLSEXT_TICKET_KEYS = 59 SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB = 63 SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG = 64 SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE = 65 SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS = 66 SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS = 67 SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS = 68 SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS = 69 SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP = 70 SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP = 71 SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB = 75 SSL_CTRL_SET_SRP_VERIFY_PARAM_CB = 76 SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB = 77 SSL_CTRL_SET_SRP_ARG = 78 SSL_CTRL_SET_TLS_EXT_SRP_USERNAME = 79 SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH = 80 SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD = 81 DTLS_CTRL_GET_TIMEOUT = 73 DTLS_CTRL_HANDLE_TIMEOUT = 74 # SSL_CTRL_GET_RI_SUPPORT = 76 # SSL_CTRL_CLEAR_MODE = 78 # SSL_CTRL_SET_NOT_RESUMABLE_SESS_CB = 79 SSL_CTRL_GET_EXTRA_CHAIN_CERTS = 82 SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS = 83 SSL_CTRL_CHAIN = 88 SSL_CTRL_CHAIN_CERT = 89 SSL_CTRL_GET_GROUPS = 90 SSL_CTRL_SET_GROUPS = 91 SSL_CTRL_SET_GROUPS_LIST = 92 SSL_CTRL_GET_SHARED_GROUP = 93 SSL_CTRL_SET_SIGALGS = 97 SSL_CTRL_SET_SIGALGS_LIST = 98 SSL_CTRL_CERT_FLAGS = 99 SSL_CTRL_CLEAR_CERT_FLAGS = 100 SSL_CTRL_SET_CLIENT_SIGALGS = 101 SSL_CTRL_SET_CLIENT_SIGALGS_LIST = 102 SSL_CTRL_GET_CLIENT_CERT_TYPES = 103 SSL_CTRL_SET_CLIENT_CERT_TYPES = 104 SSL_CTRL_BUILD_CERT_CHAIN = 105 SSL_CTRL_SET_VERIFY_CERT_STORE = 106 SSL_CTRL_SET_CHAIN_CERT_STORE = 107 SSL_CTRL_GET_PEER_SIGNATURE_NID = 108 SSL_CTRL_GET_PEER_TMP_KEY = 109 SSL_CTRL_GET_RAW_CIPHERLIST = 110 SSL_CTRL_GET_EC_POINT_FORMATS = 111 SSL_CTRL_GET_CHAIN_CERTS = 115 SSL_CTRL_SELECT_CURRENT_CERT = 116 SSL_CTRL_SET_CURRENT_CERT = 117 SSL_CTRL_SET_DH_AUTO = 118 DTLS_CTRL_SET_LINK_MTU = 120 DTLS_CTRL_GET_LINK_MIN_MTU = 121 SSL_CTRL_GET_EXTMS_SUPPORT = 122 SSL_CTRL_SET_MIN_PROTO_VERSION = 123 SSL_CTRL_SET_MAX_PROTO_VERSION = 124 SSL_CTRL_SET_SPLIT_SEND_FRAGMENT = 125 SSL_CTRL_SET_MAX_PIPELINES = 126 SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE = 127 SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB = 128 SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG = 129 SSL_CTRL_GET_MIN_PROTO_VERSION = 130 SSL_CTRL_GET_MAX_PROTO_VERSION = 131 SSL_CTRL_GET_SIGNATURE_NID = 132 SSL_CTRL_GET_TMP_KEY = 133 SSL_CTRL_GET_NEGOTIATED_GROUP = 134 end