module GI.Gio.Objects.TlsCertificate
(
TlsCertificate(..) ,
TlsCertificateK ,
toTlsCertificate ,
noTlsCertificate ,
tlsCertificateGetIssuer ,
tlsCertificateIsSame ,
tlsCertificateListNewFromFile ,
tlsCertificateNewFromFile ,
tlsCertificateNewFromFiles ,
tlsCertificateNewFromPem ,
tlsCertificateVerify ,
TlsCertificateCertificatePropertyInfo ,
constructTlsCertificateCertificate ,
getTlsCertificateCertificate ,
TlsCertificateCertificatePemPropertyInfo,
constructTlsCertificateCertificatePem ,
getTlsCertificateCertificatePem ,
TlsCertificateIssuerPropertyInfo ,
constructTlsCertificateIssuer ,
getTlsCertificateIssuer ,
TlsCertificatePrivateKeyPropertyInfo ,
constructTlsCertificatePrivateKey ,
TlsCertificatePrivateKeyPemPropertyInfo ,
constructTlsCertificatePrivateKeyPem ,
) 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 TlsCertificate = TlsCertificate (ForeignPtr TlsCertificate)
foreign import ccall "g_tls_certificate_get_type"
c_g_tls_certificate_get_type :: IO GType
type instance ParentTypes TlsCertificate = TlsCertificateParentTypes
type TlsCertificateParentTypes = '[GObject.Object]
instance GObject TlsCertificate where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_g_tls_certificate_get_type
class GObject o => TlsCertificateK o
instance (GObject o, IsDescendantOf TlsCertificate o) => TlsCertificateK o
toTlsCertificate :: TlsCertificateK o => o -> IO TlsCertificate
toTlsCertificate = unsafeCastTo TlsCertificate
noTlsCertificate :: Maybe TlsCertificate
noTlsCertificate = Nothing
getTlsCertificateCertificate :: (MonadIO m, TlsCertificateK o) => o -> m ByteString
getTlsCertificateCertificate obj = liftIO $ getObjectPropertyByteArray obj "certificate"
constructTlsCertificateCertificate :: ByteString -> IO ([Char], GValue)
constructTlsCertificateCertificate val = constructObjectPropertyByteArray "certificate" val
data TlsCertificateCertificatePropertyInfo
instance AttrInfo TlsCertificateCertificatePropertyInfo where
type AttrAllowedOps TlsCertificateCertificatePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint TlsCertificateCertificatePropertyInfo = (~) ByteString
type AttrBaseTypeConstraint TlsCertificateCertificatePropertyInfo = TlsCertificateK
type AttrGetType TlsCertificateCertificatePropertyInfo = ByteString
type AttrLabel TlsCertificateCertificatePropertyInfo = "TlsCertificate::certificate"
attrGet _ = getTlsCertificateCertificate
attrSet _ = undefined
attrConstruct _ = constructTlsCertificateCertificate
getTlsCertificateCertificatePem :: (MonadIO m, TlsCertificateK o) => o -> m T.Text
getTlsCertificateCertificatePem obj = liftIO $ getObjectPropertyString obj "certificate-pem"
constructTlsCertificateCertificatePem :: T.Text -> IO ([Char], GValue)
constructTlsCertificateCertificatePem val = constructObjectPropertyString "certificate-pem" val
data TlsCertificateCertificatePemPropertyInfo
instance AttrInfo TlsCertificateCertificatePemPropertyInfo where
type AttrAllowedOps TlsCertificateCertificatePemPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint TlsCertificateCertificatePemPropertyInfo = (~) T.Text
type AttrBaseTypeConstraint TlsCertificateCertificatePemPropertyInfo = TlsCertificateK
type AttrGetType TlsCertificateCertificatePemPropertyInfo = T.Text
type AttrLabel TlsCertificateCertificatePemPropertyInfo = "TlsCertificate::certificate-pem"
attrGet _ = getTlsCertificateCertificatePem
attrSet _ = undefined
attrConstruct _ = constructTlsCertificateCertificatePem
getTlsCertificateIssuer :: (MonadIO m, TlsCertificateK o) => o -> m TlsCertificate
getTlsCertificateIssuer obj = liftIO $ getObjectPropertyObject obj "issuer" TlsCertificate
constructTlsCertificateIssuer :: (TlsCertificateK a) => a -> IO ([Char], GValue)
constructTlsCertificateIssuer val = constructObjectPropertyObject "issuer" val
data TlsCertificateIssuerPropertyInfo
instance AttrInfo TlsCertificateIssuerPropertyInfo where
type AttrAllowedOps TlsCertificateIssuerPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint TlsCertificateIssuerPropertyInfo = TlsCertificateK
type AttrBaseTypeConstraint TlsCertificateIssuerPropertyInfo = TlsCertificateK
type AttrGetType TlsCertificateIssuerPropertyInfo = TlsCertificate
type AttrLabel TlsCertificateIssuerPropertyInfo = "TlsCertificate::issuer"
attrGet _ = getTlsCertificateIssuer
attrSet _ = undefined
attrConstruct _ = constructTlsCertificateIssuer
constructTlsCertificatePrivateKey :: ByteString -> IO ([Char], GValue)
constructTlsCertificatePrivateKey val = constructObjectPropertyByteArray "private-key" val
data TlsCertificatePrivateKeyPropertyInfo
instance AttrInfo TlsCertificatePrivateKeyPropertyInfo where
type AttrAllowedOps TlsCertificatePrivateKeyPropertyInfo = '[ 'AttrConstruct]
type AttrSetTypeConstraint TlsCertificatePrivateKeyPropertyInfo = (~) ByteString
type AttrBaseTypeConstraint TlsCertificatePrivateKeyPropertyInfo = TlsCertificateK
type AttrGetType TlsCertificatePrivateKeyPropertyInfo = ()
type AttrLabel TlsCertificatePrivateKeyPropertyInfo = "TlsCertificate::private-key"
attrGet _ = undefined
attrSet _ = undefined
attrConstruct _ = constructTlsCertificatePrivateKey
constructTlsCertificatePrivateKeyPem :: T.Text -> IO ([Char], GValue)
constructTlsCertificatePrivateKeyPem val = constructObjectPropertyString "private-key-pem" val
data TlsCertificatePrivateKeyPemPropertyInfo
instance AttrInfo TlsCertificatePrivateKeyPemPropertyInfo where
type AttrAllowedOps TlsCertificatePrivateKeyPemPropertyInfo = '[ 'AttrConstruct]
type AttrSetTypeConstraint TlsCertificatePrivateKeyPemPropertyInfo = (~) T.Text
type AttrBaseTypeConstraint TlsCertificatePrivateKeyPemPropertyInfo = TlsCertificateK
type AttrGetType TlsCertificatePrivateKeyPemPropertyInfo = ()
type AttrLabel TlsCertificatePrivateKeyPemPropertyInfo = "TlsCertificate::private-key-pem"
attrGet _ = undefined
attrSet _ = undefined
attrConstruct _ = constructTlsCertificatePrivateKeyPem
type instance AttributeList TlsCertificate = TlsCertificateAttributeList
type TlsCertificateAttributeList = ('[ '("certificate", TlsCertificateCertificatePropertyInfo), '("certificate-pem", TlsCertificateCertificatePemPropertyInfo), '("issuer", TlsCertificateIssuerPropertyInfo), '("private-key", TlsCertificatePrivateKeyPropertyInfo), '("private-key-pem", TlsCertificatePrivateKeyPemPropertyInfo)] :: [(Symbol, *)])
type instance SignalList TlsCertificate = TlsCertificateSignalList
type TlsCertificateSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "g_tls_certificate_new_from_file" g_tls_certificate_new_from_file ::
CString ->
Ptr (Ptr GError) ->
IO (Ptr TlsCertificate)
tlsCertificateNewFromFile ::
(MonadIO m) =>
T.Text ->
m TlsCertificate
tlsCertificateNewFromFile file = liftIO $ do
file' <- textToCString file
onException (do
result <- propagateGError $ g_tls_certificate_new_from_file file'
checkUnexpectedReturnNULL "g_tls_certificate_new_from_file" result
result' <- (wrapObject TlsCertificate) result
freeMem file'
return result'
) (do
freeMem file'
)
foreign import ccall "g_tls_certificate_new_from_files" g_tls_certificate_new_from_files ::
CString ->
CString ->
Ptr (Ptr GError) ->
IO (Ptr TlsCertificate)
tlsCertificateNewFromFiles ::
(MonadIO m) =>
T.Text ->
T.Text ->
m TlsCertificate
tlsCertificateNewFromFiles cert_file key_file = liftIO $ do
cert_file' <- textToCString cert_file
key_file' <- textToCString key_file
onException (do
result <- propagateGError $ g_tls_certificate_new_from_files cert_file' key_file'
checkUnexpectedReturnNULL "g_tls_certificate_new_from_files" result
result' <- (wrapObject TlsCertificate) result
freeMem cert_file'
freeMem key_file'
return result'
) (do
freeMem cert_file'
freeMem key_file'
)
foreign import ccall "g_tls_certificate_new_from_pem" g_tls_certificate_new_from_pem ::
CString ->
Int64 ->
Ptr (Ptr GError) ->
IO (Ptr TlsCertificate)
tlsCertificateNewFromPem ::
(MonadIO m) =>
T.Text ->
Int64 ->
m TlsCertificate
tlsCertificateNewFromPem data_ length_ = liftIO $ do
data_' <- textToCString data_
onException (do
result <- propagateGError $ g_tls_certificate_new_from_pem data_' length_
checkUnexpectedReturnNULL "g_tls_certificate_new_from_pem" result
result' <- (wrapObject TlsCertificate) result
freeMem data_'
return result'
) (do
freeMem data_'
)
foreign import ccall "g_tls_certificate_get_issuer" g_tls_certificate_get_issuer ::
Ptr TlsCertificate ->
IO (Ptr TlsCertificate)
tlsCertificateGetIssuer ::
(MonadIO m, TlsCertificateK a) =>
a ->
m TlsCertificate
tlsCertificateGetIssuer _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_tls_certificate_get_issuer _obj'
checkUnexpectedReturnNULL "g_tls_certificate_get_issuer" result
result' <- (newObject TlsCertificate) result
touchManagedPtr _obj
return result'
foreign import ccall "g_tls_certificate_is_same" g_tls_certificate_is_same ::
Ptr TlsCertificate ->
Ptr TlsCertificate ->
IO CInt
tlsCertificateIsSame ::
(MonadIO m, TlsCertificateK a, TlsCertificateK b) =>
a ->
b ->
m Bool
tlsCertificateIsSame _obj cert_two = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let cert_two' = unsafeManagedPtrCastPtr cert_two
result <- g_tls_certificate_is_same _obj' cert_two'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr cert_two
return result'
foreign import ccall "g_tls_certificate_verify" g_tls_certificate_verify ::
Ptr TlsCertificate ->
Ptr SocketConnectable ->
Ptr TlsCertificate ->
IO CUInt
tlsCertificateVerify ::
(MonadIO m, TlsCertificateK a, SocketConnectableK b, TlsCertificateK c) =>
a ->
Maybe (b) ->
Maybe (c) ->
m [TlsCertificateFlags]
tlsCertificateVerify _obj identity trusted_ca = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
maybeIdentity <- case identity of
Nothing -> return nullPtr
Just jIdentity -> do
let jIdentity' = unsafeManagedPtrCastPtr jIdentity
return jIdentity'
maybeTrusted_ca <- case trusted_ca of
Nothing -> return nullPtr
Just jTrusted_ca -> do
let jTrusted_ca' = unsafeManagedPtrCastPtr jTrusted_ca
return jTrusted_ca'
result <- g_tls_certificate_verify _obj' maybeIdentity maybeTrusted_ca
let result' = wordToGFlags result
touchManagedPtr _obj
whenJust identity touchManagedPtr
whenJust trusted_ca touchManagedPtr
return result'
foreign import ccall "g_tls_certificate_list_new_from_file" g_tls_certificate_list_new_from_file ::
CString ->
Ptr (Ptr GError) ->
IO (Ptr (GList (Ptr TlsCertificate)))
tlsCertificateListNewFromFile ::
(MonadIO m) =>
T.Text ->
m [TlsCertificate]
tlsCertificateListNewFromFile file = liftIO $ do
file' <- textToCString file
onException (do
result <- propagateGError $ g_tls_certificate_list_new_from_file file'
checkUnexpectedReturnNULL "g_tls_certificate_list_new_from_file" result
result' <- unpackGList result
result'' <- mapM (wrapObject TlsCertificate) result'
g_list_free result
freeMem file'
return result''
) (do
freeMem file'
)