gi-gio-0.2.46.13: GI/Gio/Objects/TlsCertificate.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}
module GI.Gio.Objects.TlsCertificate
(
-- * Exported types
TlsCertificate(..) ,
TlsCertificateK ,
toTlsCertificate ,
noTlsCertificate ,
-- * Methods
-- ** tlsCertificateGetIssuer
TlsCertificateGetIssuerMethodInfo ,
tlsCertificateGetIssuer ,
-- ** tlsCertificateIsSame
TlsCertificateIsSameMethodInfo ,
tlsCertificateIsSame ,
-- ** tlsCertificateListNewFromFile
tlsCertificateListNewFromFile ,
-- ** tlsCertificateNewFromFile
tlsCertificateNewFromFile ,
-- ** tlsCertificateNewFromFiles
tlsCertificateNewFromFiles ,
-- ** tlsCertificateNewFromPem
tlsCertificateNewFromPem ,
-- ** tlsCertificateVerify
TlsCertificateVerifyMethodInfo ,
tlsCertificateVerify ,
-- * Properties
-- ** Certificate
TlsCertificateCertificatePropertyInfo ,
constructTlsCertificateCertificate ,
getTlsCertificateCertificate ,
-- ** CertificatePem
TlsCertificateCertificatePemPropertyInfo,
constructTlsCertificateCertificatePem ,
getTlsCertificateCertificatePem ,
-- ** Issuer
TlsCertificateIssuerPropertyInfo ,
constructTlsCertificateIssuer ,
getTlsCertificateIssuer ,
-- ** PrivateKey
TlsCertificatePrivateKeyPropertyInfo ,
constructTlsCertificatePrivateKey ,
-- ** PrivateKeyPem
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
type family ResolveTlsCertificateMethod (t :: Symbol) (o :: *) :: * where
ResolveTlsCertificateMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
ResolveTlsCertificateMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
ResolveTlsCertificateMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
ResolveTlsCertificateMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
ResolveTlsCertificateMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
ResolveTlsCertificateMethod "isSame" o = TlsCertificateIsSameMethodInfo
ResolveTlsCertificateMethod "notify" o = GObject.ObjectNotifyMethodInfo
ResolveTlsCertificateMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
ResolveTlsCertificateMethod "ref" o = GObject.ObjectRefMethodInfo
ResolveTlsCertificateMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
ResolveTlsCertificateMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
ResolveTlsCertificateMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
ResolveTlsCertificateMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
ResolveTlsCertificateMethod "stealData" o = GObject.ObjectStealDataMethodInfo
ResolveTlsCertificateMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
ResolveTlsCertificateMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
ResolveTlsCertificateMethod "unref" o = GObject.ObjectUnrefMethodInfo
ResolveTlsCertificateMethod "verify" o = TlsCertificateVerifyMethodInfo
ResolveTlsCertificateMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
ResolveTlsCertificateMethod "getData" o = GObject.ObjectGetDataMethodInfo
ResolveTlsCertificateMethod "getIssuer" o = TlsCertificateGetIssuerMethodInfo
ResolveTlsCertificateMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
ResolveTlsCertificateMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
ResolveTlsCertificateMethod "setData" o = GObject.ObjectSetDataMethodInfo
ResolveTlsCertificateMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
ResolveTlsCertificateMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveTlsCertificateMethod t TlsCertificate, MethodInfo info TlsCertificate p) => IsLabelProxy t (TlsCertificate -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveTlsCertificateMethod t TlsCertificate, MethodInfo info TlsCertificate p) => IsLabel t (TlsCertificate -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif
-- VVV Prop "certificate"
-- Type: TByteArray
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
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 = "certificate"
attrGet _ = getTlsCertificateCertificate
attrSet _ = undefined
attrConstruct _ = constructTlsCertificateCertificate
-- VVV Prop "certificate-pem"
-- Type: TBasicType TUTF8
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
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 = "certificate-pem"
attrGet _ = getTlsCertificateCertificatePem
attrSet _ = undefined
attrConstruct _ = constructTlsCertificateCertificatePem
-- VVV Prop "issuer"
-- Type: TInterface "Gio" "TlsCertificate"
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
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 = "issuer"
attrGet _ = getTlsCertificateIssuer
attrSet _ = undefined
attrConstruct _ = constructTlsCertificateIssuer
-- VVV Prop "private-key"
-- Type: TByteArray
-- Flags: [PropertyWritable,PropertyConstructOnly]
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 = "private-key"
attrGet _ = undefined
attrSet _ = undefined
attrConstruct _ = constructTlsCertificatePrivateKey
-- VVV Prop "private-key-pem"
-- Type: TBasicType TUTF8
-- Flags: [PropertyWritable,PropertyConstructOnly]
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 = "private-key-pem"
attrGet _ = undefined
attrSet _ = undefined
attrConstruct _ = constructTlsCertificatePrivateKeyPem
type instance AttributeList TlsCertificate = TlsCertificateAttributeList
type TlsCertificateAttributeList = ('[ '("certificate", TlsCertificateCertificatePropertyInfo), '("certificatePem", TlsCertificateCertificatePemPropertyInfo), '("issuer", TlsCertificateIssuerPropertyInfo), '("privateKey", TlsCertificatePrivateKeyPropertyInfo), '("privateKeyPem", TlsCertificatePrivateKeyPemPropertyInfo)] :: [(Symbol, *)])
type instance SignalList TlsCertificate = TlsCertificateSignalList
type TlsCertificateSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
-- method TlsCertificate::new_from_file
-- method type : Constructor
-- Args : [Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "TlsCertificate"
-- throws : True
-- Skip return : False
foreign import ccall "g_tls_certificate_new_from_file" g_tls_certificate_new_from_file ::
CString -> -- file : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO (Ptr TlsCertificate)
tlsCertificateNewFromFile ::
(MonadIO m) =>
T.Text -- file
-> m TlsCertificate -- result
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'
)
-- method TlsCertificate::new_from_files
-- method type : Constructor
-- Args : [Arg {argCName = "cert_file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "TlsCertificate"
-- throws : True
-- Skip return : False
foreign import ccall "g_tls_certificate_new_from_files" g_tls_certificate_new_from_files ::
CString -> -- cert_file : TBasicType TUTF8
CString -> -- key_file : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO (Ptr TlsCertificate)
tlsCertificateNewFromFiles ::
(MonadIO m) =>
T.Text -- certFile
-> T.Text -- keyFile
-> m TlsCertificate -- result
tlsCertificateNewFromFiles certFile keyFile = liftIO $ do
certFile' <- textToCString certFile
keyFile' <- textToCString keyFile
onException (do
result <- propagateGError $ g_tls_certificate_new_from_files certFile' keyFile'
checkUnexpectedReturnNULL "g_tls_certificate_new_from_files" result
result' <- (wrapObject TlsCertificate) result
freeMem certFile'
freeMem keyFile'
return result'
) (do
freeMem certFile'
freeMem keyFile'
)
-- method TlsCertificate::new_from_pem
-- method type : Constructor
-- Args : [Arg {argCName = "data", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "TlsCertificate"
-- throws : True
-- Skip return : False
foreign import ccall "g_tls_certificate_new_from_pem" g_tls_certificate_new_from_pem ::
CString -> -- data : TBasicType TUTF8
Int64 -> -- length : TBasicType TInt64
Ptr (Ptr GError) -> -- error
IO (Ptr TlsCertificate)
tlsCertificateNewFromPem ::
(MonadIO m) =>
T.Text -- data_
-> Int64 -- length_
-> m TlsCertificate -- result
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_'
)
-- method TlsCertificate::get_issuer
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "TlsCertificate", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "TlsCertificate"
-- throws : False
-- Skip return : False
foreign import ccall "g_tls_certificate_get_issuer" g_tls_certificate_get_issuer ::
Ptr TlsCertificate -> -- _obj : TInterface "Gio" "TlsCertificate"
IO (Ptr TlsCertificate)
tlsCertificateGetIssuer ::
(MonadIO m, TlsCertificateK a) =>
a -- _obj
-> m TlsCertificate -- result
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'
data TlsCertificateGetIssuerMethodInfo
instance (signature ~ (m TlsCertificate), MonadIO m, TlsCertificateK a) => MethodInfo TlsCertificateGetIssuerMethodInfo a signature where
overloadedMethod _ = tlsCertificateGetIssuer
-- method TlsCertificate::is_same
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "TlsCertificate", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cert_two", argType = TInterface "Gio" "TlsCertificate", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "g_tls_certificate_is_same" g_tls_certificate_is_same ::
Ptr TlsCertificate -> -- _obj : TInterface "Gio" "TlsCertificate"
Ptr TlsCertificate -> -- cert_two : TInterface "Gio" "TlsCertificate"
IO CInt
tlsCertificateIsSame ::
(MonadIO m, TlsCertificateK a, TlsCertificateK b) =>
a -- _obj
-> b -- certTwo
-> m Bool -- result
tlsCertificateIsSame _obj certTwo = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let certTwo' = unsafeManagedPtrCastPtr certTwo
result <- g_tls_certificate_is_same _obj' certTwo'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr certTwo
return result'
data TlsCertificateIsSameMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, TlsCertificateK a, TlsCertificateK b) => MethodInfo TlsCertificateIsSameMethodInfo a signature where
overloadedMethod _ = tlsCertificateIsSame
-- method TlsCertificate::verify
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "TlsCertificate", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "identity", argType = TInterface "Gio" "SocketConnectable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "trusted_ca", argType = TInterface "Gio" "TlsCertificate", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "TlsCertificateFlags"
-- throws : False
-- Skip return : False
foreign import ccall "g_tls_certificate_verify" g_tls_certificate_verify ::
Ptr TlsCertificate -> -- _obj : TInterface "Gio" "TlsCertificate"
Ptr SocketConnectable -> -- identity : TInterface "Gio" "SocketConnectable"
Ptr TlsCertificate -> -- trusted_ca : TInterface "Gio" "TlsCertificate"
IO CUInt
tlsCertificateVerify ::
(MonadIO m, TlsCertificateK a, SocketConnectableK b, TlsCertificateK c) =>
a -- _obj
-> Maybe (b) -- identity
-> Maybe (c) -- trustedCa
-> m [TlsCertificateFlags] -- result
tlsCertificateVerify _obj identity trustedCa = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
maybeIdentity <- case identity of
Nothing -> return nullPtr
Just jIdentity -> do
let jIdentity' = unsafeManagedPtrCastPtr jIdentity
return jIdentity'
maybeTrustedCa <- case trustedCa of
Nothing -> return nullPtr
Just jTrustedCa -> do
let jTrustedCa' = unsafeManagedPtrCastPtr jTrustedCa
return jTrustedCa'
result <- g_tls_certificate_verify _obj' maybeIdentity maybeTrustedCa
let result' = wordToGFlags result
touchManagedPtr _obj
whenJust identity touchManagedPtr
whenJust trustedCa touchManagedPtr
return result'
data TlsCertificateVerifyMethodInfo
instance (signature ~ (Maybe (b) -> Maybe (c) -> m [TlsCertificateFlags]), MonadIO m, TlsCertificateK a, SocketConnectableK b, TlsCertificateK c) => MethodInfo TlsCertificateVerifyMethodInfo a signature where
overloadedMethod _ = tlsCertificateVerify
-- method TlsCertificate::list_new_from_file
-- method type : MemberFunction
-- Args : [Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TGList (TInterface "Gio" "TlsCertificate")
-- throws : True
-- Skip return : False
foreign import ccall "g_tls_certificate_list_new_from_file" g_tls_certificate_list_new_from_file ::
CString -> -- file : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO (Ptr (GList (Ptr TlsCertificate)))
tlsCertificateListNewFromFile ::
(MonadIO m) =>
T.Text -- file
-> m [TlsCertificate] -- result
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'
)