-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | libtls bindings -- -- A thin wrapper about the libtls wrapper of libressl @package libretls @version 0.0.0.0 module Network.Libre.TLS.FFI.Internal newtype CastedStablePtr a CastedStablePtr :: Ptr () -> CastedStablePtr a newtype TlsReadCallback b TLSReadCB :: (TLSPtr -> Ptr Word8 -> CSize -> CastedStablePtr b -> IO CSsize) -> TlsReadCallback b mkReadCB :: (TLSPtr -> Ptr Word8 -> CSize -> CastedStablePtr b -> IO CSsize) -> IO (FunPtr (TlsReadCallback b)) newtype TlsWriteCallback b TLSWriteCB :: (TLSPtr -> CString -> CSize -> CastedStablePtr b -> IO CSsize) -> TlsWriteCallback b mkWriteCB :: (TLSPtr -> CString -> CSize -> CastedStablePtr b -> IO CSsize) -> IO (FunPtr (TlsWriteCallback b)) primWriteCallback :: (TLSPtr -> CString -> CSize -> CastedStablePtr b -> IO CSsize) -> IO (FunPtr (TlsWriteCallback b)) primReadCallback :: (TLSPtr -> Ptr Word8 -> CSize -> CastedStablePtr b -> IO CSsize) -> IO (FunPtr (TlsReadCallback b)) data LibTLSContext newtype TLSPtr TheTLSPTR :: Ptr LibTLSContext -> TLSPtr data LibTLSConfig newtype TLSConfigPtr TheTLSConfigPtr :: Ptr LibTLSConfig -> TLSConfigPtr newtype LibreFD LibreFD :: CInt -> LibreFD [unLibreFD] :: LibreFD -> CInt newtype LibreSocket LibreSocket :: CInt -> LibreSocket [unLibreSocket] :: LibreSocket -> CInt newtype FilePathPtr FilePathPtr :: CString -> FilePathPtr -- | tls_accept_cbs(struct tls *_ctx, struct tls **_cctx, tls_read_cb -- _read_cb, tls_write_cb _write_cb, void *_cb_arg) -> int ; tls_accept_cbs_c :: TLSPtr -> Ptr TLSPtr -> FunPtr (TlsReadCallback a) -> FunPtr (TlsWriteCallback a) -> Ptr a -> IO CInt -- | tls_accept_fds(struct tls *_ctx, struct tls **_cctx, int _fd_read, int -- _fd_write)-> int ; tls_accept_fds_c :: TLSPtr -> Ptr TLSPtr -> LibreFD -> LibreFD -> IO CInt -- | tls_accept_socket(struct tls *_ctx, struct tls **_cctx, int -- _socket)-> int ; tls_accept_socket_c :: TLSPtr -> Ptr (Ptr LibTLSContext) -> LibreSocket -> IO CInt -- | tls_client(void)-> struct tls *; allocate_fresh_tls_client_context_c :: IO TLSPtr -- | tls_close(struct tls *_ctx)-> int ; tls_close_c :: TLSPtr -> IO CInt -- | tls_config_add_keypair_file(struct tls_config *_config, const char -- *_cert_file, const char*_key_file ) -> int ; tls_config_add_keypair_file_c :: TLSConfigPtr -> FilePathPtr -> FilePathPtr -> IO CInt -- | tls_config_add_keypair_mem(struct tls_config *_config, const uint8_t -- *_cert, size_t _cert_len, const uint8_t *_key, size_t _key_len) -> -- int ; tls_config_add_keypair_mem_c :: TLSConfigPtr -> Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> IO CInt -- | tls_config_add_keypair_ocsp_file(struct tls_config *_config, const -- char *_cert_file, const char *_key_file, const char -- *_ocsp_staple_file) -> int ; tls_config_add_keypair_ocsp_file_c :: TLSConfigPtr -> FilePathPtr -> FilePathPtr -> FilePathPtr -> IO CInt -- | tls_config_add_keypair_ocsp_mem(struct tls_config *_config, const -- uint8_t *_cert, size_t _cert_len, const uint8_t *_key, size_t -- _key_len, const uint8_t *_staple, size_t _staple_len) -> int ; tls_config_add_keypair_ocsp_mem_c :: TLSConfigPtr -> Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> IO CInt -- | tls_config_add_ticket_key(struct tls_config *_config, uint32_t -- _keyrev, unsigned char *_key, size_t _keylen) -> int ; tls_config_add_ticket_key_c :: TLSPtr -> Word32 -> Ptr Word8 -> CSize -> IO Int -- | tls_config_clear_keys(struct tls_config *_config)-> void ; tls_config_clear_keys_c :: TLSConfigPtr -> IO () -- | tls_config_error(struct tls_config *_config) -> const char *; tls_config_free_c :: TLSConfigPtr -> IO () -- | these given foot gun at the end in mutually inconsistent styles -- because you shouldn't use them outside of testing tls_config_insecure_noverifycert_foot_gun_testingOnly_c :: TLSConfigPtr -> IO () tls_config_insecure_noverifyname_Foot_gun_testingOnly_c :: TLSConfigPtr -> IO () tls_config_insecure_noverifytime_footGun_testing_only_C :: TLSConfigPtr -> IO () -- | tls_config_new(void) -> struct tls_config * ; tls_config_new_c :: IO TLSConfigPtr -- | tls_config_ocsp_require_stapling(struct tls_config *_config)-> void -- ; tls_config_ocsp_require_stapling_c :: TLSConfigPtr -> IO () -- | tls_config_parse_protocols(uint32_t *_protocols, const char -- *_protostr) -> int ; tls_config_parse_protocols_c :: CString -> CString -> IO CInt -- | tls_config_prefer_ciphers_client(struct tls_config *_config)-> void -- ; tls_config_prefer_ciphers_client_c :: TLSConfigPtr -> IO () -- | tls_config_prefer_ciphers_server(struct tls_config *_config)-> void -- ; tls_config_prefer_ciphers_server_c :: TLSConfigPtr -> IO () -- | tls_config_set_alpn(struct tls_config *_config, const char *_alpn) -- -> int ; tls_config_set_alpn_c :: TLSConfigPtr -> CString -> IO CInt -- | tls_config_set_ca_file(struct tls_config *_config, const char -- *_ca_file) -> int ; tls_config_set_ca_file_c :: TLSConfigPtr -> CString -> IO CInt -- | tls_config_set_ca_mem(struct tls_config *_config, const uint8_t *_ca, -- size_t _len) -> int ; tls_config_set_ca_mem_c :: TLSConfigPtr -> Ptr Word8 -> CSize -> IO CInt -- | tls_config_set_ca_path(struct tls_config *_config, const char -- *_ca_path) -> int ; tls_config_set_ca_path_c :: TLSConfigPtr -> CString -> IO CInt -- | tls_config_set_cert_file(struct tls_config *_config, const char -- *_cert_file) -> int ; tls_config_set_cert_file_c :: TLSConfigPtr -> CString -> IO CInt -- | tls_config_set_cert_mem(struct tls_config *_config, const uint8_t -- *_cert, size_t _len) -> int ; tls_config_set_cert_mem_c :: TLSConfigPtr -> Ptr Word8 -> CSize -> IO CInt -- | tls_config_set_ciphers(struct tls_config *_config, const char -- *_ciphers) -> int ; tls_config_set_ciphers_c :: TLSConfigPtr -> CString -> IO CInt -- | tls_config_set_dheparams(struct tls_config *_config, const char -- *_params) -> int ; tls_config_set_dheparams_c :: TLSConfigPtr -> CString -> IO CInt -- | tls_config_set_ecdhecurve(struct tls_config *_config, const char -- *_curve) -> int ; tls_config_set_ecdhecurve_c :: TLSConfigPtr -> CString -> IO CInt -- | tls_config_set_ecdhecurves(struct tls_config *_config, const char -- *_curves) -> int ; tls_config_set_key_file_c :: TLSConfigPtr -> CString -> IO CInt -- | tls_config_set_key_mem(struct tls_config *_config, const uint8_t -- *_key, size_t _len) -> int ; tls_config_set_key_mem_c :: TLSConfigPtr -> Ptr CChar -> CSize -> IO CInt -- | tls_config_set_keypair_file(struct tls_config *_config, const char -- *_cert_file, const char *_key_file) -> int ; tls_config_set_keypair_file_c :: TLSConfigPtr -> CString -> CString -> IO CInt tls_config_set_protocols_c :: TLSConfigPtr -> Word32 -> IO () tls_config_set_verify_depth_c :: TLSConfigPtr -> CInt -> IO () tls_config_verify_c :: TLSConfigPtr -> IO () tls_config_verify_client_c :: TLSConfigPtr -> IO () tls_config_verify_client_optional_c :: TLSConfigPtr -> IO () tls_configure_c :: TLSPtr -> TLSConfigPtr -> IO CInt tls_conn_alpn_selected_c :: TLSPtr -> CString tls_conn_cipher_c :: TLSPtr -> IO CString tls_conn_version_c :: TLSPtr -> IO CString tls_connect_c :: TLSPtr -> CString -> CString -> IO CInt tls_connect_fds_c :: TLSPtr -> LibreFD -> LibreFD -> CString -> IO CInt tls_connect_servername_c :: TLSPtr -> CString -> CString -> CString -> IO CInt tls_connect_socket_c :: TLSPtr -> LibreSocket -> CString -> IO CInt tls_error_c :: TLSPtr -> IO CString tls_free_c :: TLSPtr -> IO () tls_handshake_c :: TLSPtr -> IO CInt tls_init_c :: IO CInt tls_load_file_c :: CString -> CSize -> CString -> IO CString tls_peer_cert_contains_name_c :: TLSPtr -> CString -> IO CInt tls_peer_cert_hash_c :: TLSPtr -> IO CString tls_peer_cert_issuer_c :: TLSPtr -> IO CString tls_peer_cert_notafter_c :: TLSPtr -> IO CTime tls_peer_cert_notbefore_c :: TLSPtr -> IO CTime tls_peer_cert_provided_c :: TLSPtr -> IO CInt tls_peer_cert_subject_c :: TLSPtr -> IO CString tls_read_c :: TLSPtr -> CString -> CSize -> IO CSsize allocate_fresh_tls_server_context_c :: IO TLSPtr tls_write_c :: TLSPtr -> CString -> CSize -> IO CSsize module Network.Libre.TLS