module GI.Gio.Interfaces.TlsClientConnection
(
TlsClientConnection(..) ,
noTlsClientConnection ,
TlsClientConnectionK ,
toTlsClientConnection ,
tlsClientConnectionGetAcceptedCas ,
tlsClientConnectionGetServerIdentity ,
tlsClientConnectionGetUseSsl3 ,
tlsClientConnectionGetValidationFlags ,
tlsClientConnectionSetServerIdentity ,
tlsClientConnectionSetUseSsl3 ,
tlsClientConnectionSetValidationFlags ,
TlsClientConnectionAcceptedCasPropertyInfo,
getTlsClientConnectionAcceptedCas ,
TlsClientConnectionServerIdentityPropertyInfo,
constructTlsClientConnectionServerIdentity,
getTlsClientConnectionServerIdentity ,
setTlsClientConnectionServerIdentity ,
TlsClientConnectionUseSsl3PropertyInfo ,
constructTlsClientConnectionUseSsl3 ,
getTlsClientConnectionUseSsl3 ,
setTlsClientConnectionUseSsl3 ,
TlsClientConnectionValidationFlagsPropertyInfo,
constructTlsClientConnectionValidationFlags,
getTlsClientConnectionValidationFlags ,
setTlsClientConnectionValidationFlags ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Gio.Types
import GI.Gio.Callbacks
import qualified GI.GObject as GObject
newtype TlsClientConnection = TlsClientConnection (ForeignPtr TlsClientConnection)
noTlsClientConnection :: Maybe TlsClientConnection
noTlsClientConnection = Nothing
getTlsClientConnectionAcceptedCas :: (MonadIO m, TlsClientConnectionK o) => o -> m [Ptr ()]
getTlsClientConnectionAcceptedCas obj = liftIO $ getObjectPropertyPtrGList obj "accepted-cas"
data TlsClientConnectionAcceptedCasPropertyInfo
instance AttrInfo TlsClientConnectionAcceptedCasPropertyInfo where
type AttrAllowedOps TlsClientConnectionAcceptedCasPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint TlsClientConnectionAcceptedCasPropertyInfo = (~) ()
type AttrBaseTypeConstraint TlsClientConnectionAcceptedCasPropertyInfo = TlsClientConnectionK
type AttrGetType TlsClientConnectionAcceptedCasPropertyInfo = ([Ptr ()])
type AttrLabel TlsClientConnectionAcceptedCasPropertyInfo = "TlsClientConnection::accepted-cas"
attrGet _ = getTlsClientConnectionAcceptedCas
attrSet _ = undefined
attrConstruct _ = undefined
getTlsClientConnectionServerIdentity :: (MonadIO m, TlsClientConnectionK o) => o -> m SocketConnectable
getTlsClientConnectionServerIdentity obj = liftIO $ getObjectPropertyObject obj "server-identity" SocketConnectable
setTlsClientConnectionServerIdentity :: (MonadIO m, TlsClientConnectionK o, SocketConnectableK a) => o -> a -> m ()
setTlsClientConnectionServerIdentity obj val = liftIO $ setObjectPropertyObject obj "server-identity" val
constructTlsClientConnectionServerIdentity :: (SocketConnectableK a) => a -> IO ([Char], GValue)
constructTlsClientConnectionServerIdentity val = constructObjectPropertyObject "server-identity" val
data TlsClientConnectionServerIdentityPropertyInfo
instance AttrInfo TlsClientConnectionServerIdentityPropertyInfo where
type AttrAllowedOps TlsClientConnectionServerIdentityPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint TlsClientConnectionServerIdentityPropertyInfo = SocketConnectableK
type AttrBaseTypeConstraint TlsClientConnectionServerIdentityPropertyInfo = TlsClientConnectionK
type AttrGetType TlsClientConnectionServerIdentityPropertyInfo = SocketConnectable
type AttrLabel TlsClientConnectionServerIdentityPropertyInfo = "TlsClientConnection::server-identity"
attrGet _ = getTlsClientConnectionServerIdentity
attrSet _ = setTlsClientConnectionServerIdentity
attrConstruct _ = constructTlsClientConnectionServerIdentity
getTlsClientConnectionUseSsl3 :: (MonadIO m, TlsClientConnectionK o) => o -> m Bool
getTlsClientConnectionUseSsl3 obj = liftIO $ getObjectPropertyBool obj "use-ssl3"
setTlsClientConnectionUseSsl3 :: (MonadIO m, TlsClientConnectionK o) => o -> Bool -> m ()
setTlsClientConnectionUseSsl3 obj val = liftIO $ setObjectPropertyBool obj "use-ssl3" val
constructTlsClientConnectionUseSsl3 :: Bool -> IO ([Char], GValue)
constructTlsClientConnectionUseSsl3 val = constructObjectPropertyBool "use-ssl3" val
data TlsClientConnectionUseSsl3PropertyInfo
instance AttrInfo TlsClientConnectionUseSsl3PropertyInfo where
type AttrAllowedOps TlsClientConnectionUseSsl3PropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint TlsClientConnectionUseSsl3PropertyInfo = (~) Bool
type AttrBaseTypeConstraint TlsClientConnectionUseSsl3PropertyInfo = TlsClientConnectionK
type AttrGetType TlsClientConnectionUseSsl3PropertyInfo = Bool
type AttrLabel TlsClientConnectionUseSsl3PropertyInfo = "TlsClientConnection::use-ssl3"
attrGet _ = getTlsClientConnectionUseSsl3
attrSet _ = setTlsClientConnectionUseSsl3
attrConstruct _ = constructTlsClientConnectionUseSsl3
getTlsClientConnectionValidationFlags :: (MonadIO m, TlsClientConnectionK o) => o -> m [TlsCertificateFlags]
getTlsClientConnectionValidationFlags obj = liftIO $ getObjectPropertyFlags obj "validation-flags"
setTlsClientConnectionValidationFlags :: (MonadIO m, TlsClientConnectionK o) => o -> [TlsCertificateFlags] -> m ()
setTlsClientConnectionValidationFlags obj val = liftIO $ setObjectPropertyFlags obj "validation-flags" val
constructTlsClientConnectionValidationFlags :: [TlsCertificateFlags] -> IO ([Char], GValue)
constructTlsClientConnectionValidationFlags val = constructObjectPropertyFlags "validation-flags" val
data TlsClientConnectionValidationFlagsPropertyInfo
instance AttrInfo TlsClientConnectionValidationFlagsPropertyInfo where
type AttrAllowedOps TlsClientConnectionValidationFlagsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint TlsClientConnectionValidationFlagsPropertyInfo = (~) [TlsCertificateFlags]
type AttrBaseTypeConstraint TlsClientConnectionValidationFlagsPropertyInfo = TlsClientConnectionK
type AttrGetType TlsClientConnectionValidationFlagsPropertyInfo = [TlsCertificateFlags]
type AttrLabel TlsClientConnectionValidationFlagsPropertyInfo = "TlsClientConnection::validation-flags"
attrGet _ = getTlsClientConnectionValidationFlags
attrSet _ = setTlsClientConnectionValidationFlags
attrConstruct _ = constructTlsClientConnectionValidationFlags
type instance AttributeList TlsClientConnection = TlsClientConnectionAttributeList
type TlsClientConnectionAttributeList = ('[ '("accepted-cas", TlsClientConnectionAcceptedCasPropertyInfo), '("base-io-stream", TlsConnectionBaseIoStreamPropertyInfo), '("certificate", TlsConnectionCertificatePropertyInfo), '("closed", IOStreamClosedPropertyInfo), '("database", TlsConnectionDatabasePropertyInfo), '("input-stream", IOStreamInputStreamPropertyInfo), '("interaction", TlsConnectionInteractionPropertyInfo), '("output-stream", IOStreamOutputStreamPropertyInfo), '("peer-certificate", TlsConnectionPeerCertificatePropertyInfo), '("peer-certificate-errors", TlsConnectionPeerCertificateErrorsPropertyInfo), '("rehandshake-mode", TlsConnectionRehandshakeModePropertyInfo), '("require-close-notify", TlsConnectionRequireCloseNotifyPropertyInfo), '("server-identity", TlsClientConnectionServerIdentityPropertyInfo), '("use-ssl3", TlsClientConnectionUseSsl3PropertyInfo), '("use-system-certdb", TlsConnectionUseSystemCertdbPropertyInfo), '("validation-flags", TlsClientConnectionValidationFlagsPropertyInfo)] :: [(Symbol, *)])
type instance SignalList TlsClientConnection = TlsClientConnectionSignalList
type TlsClientConnectionSignalList = ('[ '("accept-certificate", TlsConnectionAcceptCertificateSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "g_tls_client_connection_get_type"
c_g_tls_client_connection_get_type :: IO GType
type instance ParentTypes TlsClientConnection = TlsClientConnectionParentTypes
type TlsClientConnectionParentTypes = '[TlsConnection, IOStream, GObject.Object]
instance GObject TlsClientConnection where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_g_tls_client_connection_get_type
class GObject o => TlsClientConnectionK o
instance (GObject o, IsDescendantOf TlsClientConnection o) => TlsClientConnectionK o
toTlsClientConnection :: TlsClientConnectionK o => o -> IO TlsClientConnection
toTlsClientConnection = unsafeCastTo TlsClientConnection
foreign import ccall "g_tls_client_connection_get_accepted_cas" g_tls_client_connection_get_accepted_cas ::
Ptr TlsClientConnection ->
IO (Ptr (GList (Ptr GByteArray)))
tlsClientConnectionGetAcceptedCas ::
(MonadIO m, TlsClientConnectionK a) =>
a ->
m [ByteString]
tlsClientConnectionGetAcceptedCas _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_tls_client_connection_get_accepted_cas _obj'
checkUnexpectedReturnNULL "g_tls_client_connection_get_accepted_cas" result
result' <- unpackGList result
result'' <- mapM unpackGByteArray result'
mapGList unrefGByteArray result
g_list_free result
touchManagedPtr _obj
return result''
foreign import ccall "g_tls_client_connection_get_server_identity" g_tls_client_connection_get_server_identity ::
Ptr TlsClientConnection ->
IO (Ptr SocketConnectable)
tlsClientConnectionGetServerIdentity ::
(MonadIO m, TlsClientConnectionK a) =>
a ->
m SocketConnectable
tlsClientConnectionGetServerIdentity _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_tls_client_connection_get_server_identity _obj'
checkUnexpectedReturnNULL "g_tls_client_connection_get_server_identity" result
result' <- (newObject SocketConnectable) result
touchManagedPtr _obj
return result'
foreign import ccall "g_tls_client_connection_get_use_ssl3" g_tls_client_connection_get_use_ssl3 ::
Ptr TlsClientConnection ->
IO CInt
tlsClientConnectionGetUseSsl3 ::
(MonadIO m, TlsClientConnectionK a) =>
a ->
m Bool
tlsClientConnectionGetUseSsl3 _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_tls_client_connection_get_use_ssl3 _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
foreign import ccall "g_tls_client_connection_get_validation_flags" g_tls_client_connection_get_validation_flags ::
Ptr TlsClientConnection ->
IO CUInt
tlsClientConnectionGetValidationFlags ::
(MonadIO m, TlsClientConnectionK a) =>
a ->
m [TlsCertificateFlags]
tlsClientConnectionGetValidationFlags _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_tls_client_connection_get_validation_flags _obj'
let result' = wordToGFlags result
touchManagedPtr _obj
return result'
foreign import ccall "g_tls_client_connection_set_server_identity" g_tls_client_connection_set_server_identity ::
Ptr TlsClientConnection ->
Ptr SocketConnectable ->
IO ()
tlsClientConnectionSetServerIdentity ::
(MonadIO m, TlsClientConnectionK a, SocketConnectableK b) =>
a ->
b ->
m ()
tlsClientConnectionSetServerIdentity _obj identity = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let identity' = unsafeManagedPtrCastPtr identity
g_tls_client_connection_set_server_identity _obj' identity'
touchManagedPtr _obj
touchManagedPtr identity
return ()
foreign import ccall "g_tls_client_connection_set_use_ssl3" g_tls_client_connection_set_use_ssl3 ::
Ptr TlsClientConnection ->
CInt ->
IO ()
tlsClientConnectionSetUseSsl3 ::
(MonadIO m, TlsClientConnectionK a) =>
a ->
Bool ->
m ()
tlsClientConnectionSetUseSsl3 _obj use_ssl3 = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let use_ssl3' = (fromIntegral . fromEnum) use_ssl3
g_tls_client_connection_set_use_ssl3 _obj' use_ssl3'
touchManagedPtr _obj
return ()
foreign import ccall "g_tls_client_connection_set_validation_flags" g_tls_client_connection_set_validation_flags ::
Ptr TlsClientConnection ->
CUInt ->
IO ()
tlsClientConnectionSetValidationFlags ::
(MonadIO m, TlsClientConnectionK a) =>
a ->
[TlsCertificateFlags] ->
m ()
tlsClientConnectionSetValidationFlags _obj flags = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let flags' = gflagsToWord flags
g_tls_client_connection_set_validation_flags _obj' flags'
touchManagedPtr _obj
return ()