Safe Haskell | None |
---|---|
Language | GHC2021 |
Rustls.Internal.FFI
Description
Internal module, not subject to PVP.
Synopsis
- newtype ConstPtr a = ConstPtr {
- unConstPtr :: Ptr a
- type ConstCString = ConstPtr CChar
- data ClientConfig
- data ClientConfigBuilder
- clientConfigBuilderNewCustom :: ConstPtr CryptoProvider -> ConstPtr TLSVersion -> CSize -> Ptr (Ptr ClientConfigBuilder) -> IO Result
- clientConfigBuilderFree :: Ptr ClientConfigBuilder -> IO ()
- clientConfigBuilderBuild :: Ptr ClientConfigBuilder -> Ptr (ConstPtr ClientConfig) -> IO Result
- clientConfigFree :: FinalizerPtr ClientConfig
- clientConfigBuilderSetALPNProtocols :: Ptr ClientConfigBuilder -> ConstPtr SliceBytes -> CSize -> IO Result
- clientConfigBuilderSetEnableSNI :: Ptr ClientConfigBuilder -> CBool -> IO ()
- clientConfigBuilderSetCertifiedKey :: Ptr ClientConfigBuilder -> ConstPtr (ConstPtr CertifiedKey) -> CSize -> IO Result
- data WebPkiServerCertVerifierBuilder
- data ServerCertVerifier
- webPkiServerCertVerifierBuilderNewWithProvider :: ConstPtr CryptoProvider -> ConstPtr RootCertStore -> IO (Ptr WebPkiServerCertVerifierBuilder)
- webPkiServerCertVerifierBuilderAddCrl :: Ptr WebPkiServerCertVerifierBuilder -> ConstPtr Word8 -> CSize -> IO Result
- webPkiServerCertVerifierBuilderFree :: Ptr WebPkiServerCertVerifierBuilder -> IO ()
- webPkiServerCertVerifierBuilderBuild :: Ptr WebPkiServerCertVerifierBuilder -> Ptr (Ptr ServerCertVerifier) -> IO Result
- platformServerCertVerifierWithProvider :: ConstPtr CryptoProvider -> IO (Ptr ServerCertVerifier)
- serverCertVerifierFree :: Ptr ServerCertVerifier -> IO ()
- clientConfigBuilderSetServerVerifier :: Ptr ClientConfigBuilder -> ConstPtr ServerCertVerifier -> IO ()
- clientConnectionNew :: ConstPtr ClientConfig -> ConstCString -> Ptr (Ptr Connection) -> IO Result
- serverConnectionNew :: ConstPtr ServerConfig -> Ptr (Ptr Connection) -> IO Result
- data ServerConfig
- data ServerConfigBuilder
- serverConfigBuilderNewCustom :: ConstPtr CryptoProvider -> ConstPtr TLSVersion -> CSize -> Ptr (Ptr ServerConfigBuilder) -> IO Result
- serverConfigBuilderFree :: Ptr ServerConfigBuilder -> IO ()
- serverConfigBuilderBuild :: Ptr ServerConfigBuilder -> Ptr (ConstPtr ServerConfig) -> IO Result
- serverConfigFree :: FinalizerPtr ServerConfig
- serverConfigBuilderSetALPNProtocols :: Ptr ServerConfigBuilder -> ConstPtr SliceBytes -> CSize -> IO Result
- serverConfigBuilderSetIgnoreClientOrder :: Ptr ServerConfigBuilder -> CBool -> IO Result
- serverConfigBuilderSetCertifiedKeys :: Ptr ServerConfigBuilder -> ConstPtr (ConstPtr CertifiedKey) -> CSize -> IO Result
- data WebPkiClientCertVerifierBuilder
- data ClientCertVerifier
- webPkiClientCertVerifierBuilderNewWithProvider :: ConstPtr CryptoProvider -> ConstPtr RootCertStore -> IO (Ptr WebPkiClientCertVerifierBuilder)
- webPkiClientCertVerifierBuilderAddCrl :: Ptr WebPkiClientCertVerifierBuilder -> ConstPtr Word8 -> CSize -> IO Result
- webPkiClientCertVerifierBuilderAllowUnauthenticated :: Ptr WebPkiClientCertVerifierBuilder -> IO Result
- webPkiClientCertVerifierBuilderFree :: Ptr WebPkiClientCertVerifierBuilder -> IO ()
- webPkiClientCertVerifierBuilderBuild :: Ptr WebPkiClientCertVerifierBuilder -> Ptr (Ptr ClientCertVerifier) -> IO Result
- clientCertVerifierFree :: Ptr ClientCertVerifier -> IO ()
- serverConfigBuilderSetClientVerifier :: Ptr ServerConfigBuilder -> ConstPtr ClientCertVerifier -> IO ()
- data CertifiedKey
- certifiedKeyBuild :: ConstPtr Word8 -> CSize -> ConstPtr Word8 -> CSize -> Ptr (ConstPtr CertifiedKey) -> IO Result
- certifiedKeyFree :: ConstPtr CertifiedKey -> IO ()
- data Certificate
- certificateGetDER :: ConstPtr Certificate -> Ptr (ConstPtr Word8) -> Ptr CSize -> IO Result
- data Connection
- connectionFree :: Ptr Connection -> IO ()
- type ReadCallback = Ptr Userdata -> Ptr Word8 -> CSize -> Ptr CSize -> IO IOResult
- mkReadCallback :: ReadCallback -> IO (FunPtr ReadCallback)
- connectionWantsRead :: ConstPtr Connection -> IO CBool
- connectionRead :: Ptr Connection -> Ptr Word8 -> CSize -> Ptr CSize -> IO Result
- connectionReadTls :: Ptr Connection -> FunPtr ReadCallback -> Ptr Userdata -> Ptr CSize -> IO IOResult
- type WriteCallback = Ptr Userdata -> ConstPtr Word8 -> CSize -> Ptr CSize -> IO IOResult
- mkWriteCallback :: WriteCallback -> IO (FunPtr WriteCallback)
- connectionWantsWrite :: ConstPtr Connection -> IO CBool
- connectionWrite :: Ptr Connection -> Ptr Word8 -> CSize -> Ptr CSize -> IO Result
- connectionWriteTls :: Ptr Connection -> FunPtr WriteCallback -> Ptr Userdata -> Ptr CSize -> IO IOResult
- connectionProcessNewPackets :: Ptr Connection -> IO Result
- connectionIsHandshaking :: ConstPtr Connection -> IO CBool
- connectionSendCloseNotify :: Ptr Connection -> IO ()
- connectionSetBufferLimit :: Ptr Connection -> CSize -> IO ()
- connectionGetALPNProtocol :: ConstPtr Connection -> Ptr (ConstPtr Word8) -> Ptr CSize -> IO ()
- connectionGetProtocolVersion :: ConstPtr Connection -> IO TLSVersion
- connectionGetNegotiatedCipherSuite :: ConstPtr Connection -> IO Word16
- connectionGetNegotiatedCipherSuiteName :: ConstPtr Connection -> Ptr Str -> IO ()
- serverConnectionGetSNIHostname :: ConstPtr Connection -> Ptr Word8 -> CSize -> Ptr CSize -> IO Result
- connectionGetPeerCertificate :: ConstPtr Connection -> CSize -> IO (ConstPtr Certificate)
- connectionSetLogCallback :: Ptr Connection -> FunPtr LogCallback -> IO ()
- type LogCallback = Ptr Userdata -> ConstPtr LogParams -> IO ()
- mkLogCallback :: LogCallback -> IO (FunPtr LogCallback)
- data LogParams = LogParams {}
- newtype LogLevel = LogLevel CSize
- data Str = Str CString CSize
- data SliceBytes = SliceBytes (Ptr Word8) CSize
- hsVersion :: Ptr Str -> IO ()
- data Userdata
- newtype Result = Result Word32
- resultIsCertError :: Result -> CBool
- errorMsg :: Result -> CString -> CSize -> Ptr CSize -> IO ()
- resultOk :: Result
- resultInsufficientSize :: Result
- newtype IOResult = IOResult CInt
- ioResultOk :: IOResult
- ioResultErr :: IOResult
- data SupportedCipherSuite
- supportedCipherSuiteGetSuite :: ConstPtr SupportedCipherSuite -> Word16
- hsSupportedCipherSuiteGetName :: ConstPtr SupportedCipherSuite -> Ptr Str -> IO ()
- hsSupportedCiphersuiteProtocolVersion :: ConstPtr SupportedCipherSuite -> IO TLSVersion
- newtype TLSVersion = TLSVersion {}
- pattern TLS12 :: TLSVersion
- pattern TLS13 :: TLSVersion
- data CryptoProvider
- data CryptoProviderBuilder
- cryptoProviderBuilderNewFromDefault :: Ptr (Ptr CryptoProviderBuilder) -> IO Result
- cryptoProviderBuilderNewWithBase :: ConstPtr CryptoProvider -> IO (Ptr CryptoProviderBuilder)
- cryptoProviderBuilderSetCipherSuites :: Ptr CryptoProviderBuilder -> ConstPtr (ConstPtr SupportedCipherSuite) -> CSize -> IO Result
- cryptoProviderBuilderBuild :: Ptr CryptoProviderBuilder -> Ptr (ConstPtr CryptoProvider) -> IO Result
- cryptoProviderBuilderFree :: Ptr CryptoProviderBuilder -> IO ()
- cryptoProviderFree :: FinalizerPtr CryptoProvider
- cryptoProviderCiphersuitesLen :: ConstPtr CryptoProvider -> CSize
- cryptoProviderCiphersuitesGet :: ConstPtr CryptoProvider -> CSize -> ConstPtr SupportedCipherSuite
- data RootCertStoreBuilder
- data RootCertStore
- rootCertStoreBuilderNew :: IO (Ptr RootCertStoreBuilder)
- rootCertStoreBuilderAddPem :: Ptr RootCertStoreBuilder -> ConstPtr Word8 -> CSize -> CBool -> IO Result
- rootCertStoreBuilderLoadRootsFromFile :: Ptr RootCertStoreBuilder -> ConstCString -> CBool -> IO Result
- rootCertStoreBuilderFree :: Ptr RootCertStoreBuilder -> IO ()
- rootCertStoreBuilderBuild :: Ptr RootCertStoreBuilder -> Ptr (ConstPtr RootCertStore) -> IO Result
- rootCertStoreFree :: ConstPtr RootCertStore -> IO ()
Documentation
A pointer with the C const
qualifier. For instance, an argument of type
ConstPtr CInt
would be marshalled as const int*
.
While const
-ness generally does not matter for ccall
imports (since
const
and non-const
pointers typically have equivalent calling
conventions), it does matter for capi
imports. See GHC #22043.
@since base-4.18.0.0
Constructors
ConstPtr | |
Fields
|
Instances
Storable (ConstPtr a) | |
Defined in GHC.Internal.Foreign.Storable Methods alignment :: ConstPtr a -> Int # peekElemOff :: Ptr (ConstPtr a) -> Int -> IO (ConstPtr a) # pokeElemOff :: Ptr (ConstPtr a) -> Int -> ConstPtr a -> IO () # peekByteOff :: Ptr b -> Int -> IO (ConstPtr a) # pokeByteOff :: Ptr b -> Int -> ConstPtr a -> IO () # | |
Show (ConstPtr a) | |
Eq (ConstPtr a) | |
Ord (ConstPtr a) | |
Defined in GHC.Internal.Foreign.C.ConstPtr |
type ConstCString = ConstPtr CChar Source #
Client
Config
data ClientConfig Source #
data ClientConfigBuilder Source #
clientConfigBuilderNewCustom :: ConstPtr CryptoProvider -> ConstPtr TLSVersion -> CSize -> Ptr (Ptr ClientConfigBuilder) -> IO Result Source #
clientConfigBuilderFree :: Ptr ClientConfigBuilder -> IO () Source #
clientConfigBuilderBuild :: Ptr ClientConfigBuilder -> Ptr (ConstPtr ClientConfig) -> IO Result Source #
clientConfigBuilderSetALPNProtocols :: Ptr ClientConfigBuilder -> ConstPtr SliceBytes -> CSize -> IO Result Source #
clientConfigBuilderSetEnableSNI :: Ptr ClientConfigBuilder -> CBool -> IO () Source #
clientConfigBuilderSetCertifiedKey :: Ptr ClientConfigBuilder -> ConstPtr (ConstPtr CertifiedKey) -> CSize -> IO Result Source #
data ServerCertVerifier Source #
webPkiServerCertVerifierBuilderNewWithProvider :: ConstPtr CryptoProvider -> ConstPtr RootCertStore -> IO (Ptr WebPkiServerCertVerifierBuilder) Source #
webPkiServerCertVerifierBuilderAddCrl :: Ptr WebPkiServerCertVerifierBuilder -> ConstPtr Word8 -> CSize -> IO Result Source #
webPkiServerCertVerifierBuilderBuild :: Ptr WebPkiServerCertVerifierBuilder -> Ptr (Ptr ServerCertVerifier) -> IO Result Source #
platformServerCertVerifierWithProvider :: ConstPtr CryptoProvider -> IO (Ptr ServerCertVerifier) Source #
serverCertVerifierFree :: Ptr ServerCertVerifier -> IO () Source #
clientConfigBuilderSetServerVerifier :: Ptr ClientConfigBuilder -> ConstPtr ServerCertVerifier -> IO () Source #
Connection
Arguments
:: ConstPtr ClientConfig | |
-> ConstCString | Hostname. |
-> Ptr (Ptr Connection) | |
-> IO Result |
serverConnectionNew :: ConstPtr ServerConfig -> Ptr (Ptr Connection) -> IO Result Source #
Server
Config
data ServerConfig Source #
data ServerConfigBuilder Source #
serverConfigBuilderNewCustom :: ConstPtr CryptoProvider -> ConstPtr TLSVersion -> CSize -> Ptr (Ptr ServerConfigBuilder) -> IO Result Source #
serverConfigBuilderFree :: Ptr ServerConfigBuilder -> IO () Source #
serverConfigBuilderBuild :: Ptr ServerConfigBuilder -> Ptr (ConstPtr ServerConfig) -> IO Result Source #
serverConfigBuilderSetALPNProtocols :: Ptr ServerConfigBuilder -> ConstPtr SliceBytes -> CSize -> IO Result Source #
serverConfigBuilderSetCertifiedKeys :: Ptr ServerConfigBuilder -> ConstPtr (ConstPtr CertifiedKey) -> CSize -> IO Result Source #
data ClientCertVerifier Source #
webPkiClientCertVerifierBuilderNewWithProvider :: ConstPtr CryptoProvider -> ConstPtr RootCertStore -> IO (Ptr WebPkiClientCertVerifierBuilder) Source #
webPkiClientCertVerifierBuilderAddCrl :: Ptr WebPkiClientCertVerifierBuilder -> ConstPtr Word8 -> CSize -> IO Result Source #
webPkiClientCertVerifierBuilderAllowUnauthenticated :: Ptr WebPkiClientCertVerifierBuilder -> IO Result Source #
webPkiClientCertVerifierBuilderBuild :: Ptr WebPkiClientCertVerifierBuilder -> Ptr (Ptr ClientCertVerifier) -> IO Result Source #
clientCertVerifierFree :: Ptr ClientCertVerifier -> IO () Source #
serverConfigBuilderSetClientVerifier :: Ptr ServerConfigBuilder -> ConstPtr ClientCertVerifier -> IO () Source #
Certificate stuff
data CertifiedKey Source #
certifiedKeyBuild :: ConstPtr Word8 -> CSize -> ConstPtr Word8 -> CSize -> Ptr (ConstPtr CertifiedKey) -> IO Result Source #
certifiedKeyFree :: ConstPtr CertifiedKey -> IO () Source #
data Certificate Source #
certificateGetDER :: ConstPtr Certificate -> Ptr (ConstPtr Word8) -> Ptr CSize -> IO Result Source #
Connection
data Connection Source #
connectionFree :: Ptr Connection -> IO () Source #
Read/write
Read
mkReadCallback :: ReadCallback -> IO (FunPtr ReadCallback) Source #
connectionReadTls :: Ptr Connection -> FunPtr ReadCallback -> Ptr Userdata -> Ptr CSize -> IO IOResult Source #
Write
mkWriteCallback :: WriteCallback -> IO (FunPtr WriteCallback) Source #
connectionWriteTls :: Ptr Connection -> FunPtr WriteCallback -> Ptr Userdata -> Ptr CSize -> IO IOResult Source #
Misc
connectionSendCloseNotify :: Ptr Connection -> IO () Source #
connectionSetBufferLimit :: Ptr Connection -> CSize -> IO () Source #
connectionGetALPNProtocol :: ConstPtr Connection -> Ptr (ConstPtr Word8) -> Ptr CSize -> IO () Source #
connectionGetNegotiatedCipherSuiteName :: ConstPtr Connection -> Ptr Str -> IO () Source #
serverConnectionGetSNIHostname :: ConstPtr Connection -> Ptr Word8 -> CSize -> Ptr CSize -> IO Result Source #
Logging
connectionSetLogCallback :: Ptr Connection -> FunPtr LogCallback -> IO () Source #
mkLogCallback :: LogCallback -> IO (FunPtr LogCallback) Source #
Constructors
LogParams | |
Fields |
Instances
Instances
Storable LogLevel Source # | |
Defined in Rustls.Internal.FFI | |
Show LogLevel Source # | |
Eq LogLevel Source # | |
Misc
Instances
GStorable Str Source # | |||||
Defined in Rustls.Internal.FFI | |||||
Generic Str Source # | |||||
Defined in Rustls.Internal.FFI Associated Types
| |||||
type Rep Str Source # | |||||
Defined in Rustls.Internal.FFI type Rep Str = D1 ('MetaData "Str" "Rustls.Internal.FFI" "rustls-0.2.0.0-inplace" 'False) (C1 ('MetaCons "Str" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CString) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CSize))) |
data SliceBytes Source #
Constructors
SliceBytes (Ptr Word8) CSize |
Instances
GStorable SliceBytes Source # | |||||
Defined in Rustls.Internal.FFI Methods gsizeOf :: SliceBytes -> Int galignment :: SliceBytes -> Int gpeekByteOff :: Ptr b -> Int -> IO SliceBytes gpokeByteOff :: Ptr b -> Int -> SliceBytes -> IO () | |||||
Generic SliceBytes Source # | |||||
Defined in Rustls.Internal.FFI Associated Types
| |||||
type Rep SliceBytes Source # | |||||
Defined in Rustls.Internal.FFI type Rep SliceBytes = D1 ('MetaData "SliceBytes" "Rustls.Internal.FFI" "rustls-0.2.0.0-inplace" 'False) (C1 ('MetaCons "SliceBytes" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Ptr Word8)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CSize))) |
Result
resultIsCertError :: Result -> CBool Source #
Some values
IOResult
TLS params
data SupportedCipherSuite Source #
hsSupportedCipherSuiteGetName :: ConstPtr SupportedCipherSuite -> Ptr Str -> IO () Source #
newtype TLSVersion Source #
A TLS protocol version supported by Rustls.
Constructors
TLSVersion | |
Fields |
Instances
Storable TLSVersion Source # | |
Defined in Rustls.Internal.FFI Methods sizeOf :: TLSVersion -> Int # alignment :: TLSVersion -> Int # peekElemOff :: Ptr TLSVersion -> Int -> IO TLSVersion # pokeElemOff :: Ptr TLSVersion -> Int -> TLSVersion -> IO () # peekByteOff :: Ptr b -> Int -> IO TLSVersion # pokeByteOff :: Ptr b -> Int -> TLSVersion -> IO () # peek :: Ptr TLSVersion -> IO TLSVersion # poke :: Ptr TLSVersion -> TLSVersion -> IO () # | |
Show TLSVersion Source # | |
Defined in Rustls.Internal.FFI Methods showsPrec :: Int -> TLSVersion -> ShowS # show :: TLSVersion -> String # showList :: [TLSVersion] -> ShowS # | |
Eq TLSVersion Source # | |
Defined in Rustls.Internal.FFI | |
Ord TLSVersion Source # | |
Defined in Rustls.Internal.FFI Methods compare :: TLSVersion -> TLSVersion -> Ordering # (<) :: TLSVersion -> TLSVersion -> Bool # (<=) :: TLSVersion -> TLSVersion -> Bool # (>) :: TLSVersion -> TLSVersion -> Bool # (>=) :: TLSVersion -> TLSVersion -> Bool # max :: TLSVersion -> TLSVersion -> TLSVersion # min :: TLSVersion -> TLSVersion -> TLSVersion # |
pattern TLS12 :: TLSVersion Source #
pattern TLS13 :: TLSVersion Source #
Crypto provider
data CryptoProvider Source #
data CryptoProviderBuilder Source #
cryptoProviderBuilderNewWithBase :: ConstPtr CryptoProvider -> IO (Ptr CryptoProviderBuilder) Source #
cryptoProviderBuilderSetCipherSuites :: Ptr CryptoProviderBuilder -> ConstPtr (ConstPtr SupportedCipherSuite) -> CSize -> IO Result Source #
cryptoProviderBuilderBuild :: Ptr CryptoProviderBuilder -> Ptr (ConstPtr CryptoProvider) -> IO Result Source #
cryptoProviderCiphersuitesGet :: ConstPtr CryptoProvider -> CSize -> ConstPtr SupportedCipherSuite Source #
Root cert store
data RootCertStoreBuilder Source #
data RootCertStore Source #
rootCertStoreBuilderAddPem :: Ptr RootCertStoreBuilder -> ConstPtr Word8 -> CSize -> CBool -> IO Result Source #
rootCertStoreBuilderLoadRootsFromFile :: Ptr RootCertStoreBuilder -> ConstCString -> CBool -> IO Result Source #
rootCertStoreBuilderFree :: Ptr RootCertStoreBuilder -> IO () Source #
rootCertStoreBuilderBuild :: Ptr RootCertStoreBuilder -> Ptr (ConstPtr RootCertStore) -> IO Result Source #
rootCertStoreFree :: ConstPtr RootCertStore -> IO () Source #