Struct gio::TlsCertificate
source · #[repr(transparent)]pub struct TlsCertificate { /* private fields */ }
Expand description
A certificate used for TLS authentication and encryption.
This can represent either a certificate only (eg, the certificate
received by a client from a server), or the combination of
a certificate and a private key (which is needed when acting as a
TlsServerConnection
).
This is an Abstract Base Class, you cannot instantiate it.
Properties
certificate
The DER (binary) encoded representation of the certificate.
This property and the certificate-pem
property
represent the same data, just in different forms.
Readable | Writeable | Construct Only
certificate-pem
The PEM (ASCII) encoded representation of the certificate.
This property and the certificate
property represent the same data, just in different forms.
Readable | Writeable | Construct Only
dns-names
The DNS names from the certificate’s Subject Alternative Names (SANs),
None
if unavailable.
Readable
ip-addresses
The IP addresses from the certificate’s Subject Alternative Names (SANs),
None
if unavailable.
Readable
issuer
A TlsCertificate
representing the entity that issued this
certificate. If None
, this means that the certificate is either
self-signed, or else the certificate of the issuer is not
available.
Beware the issuer certificate may not be the same as the certificate that would actually be used to construct a valid certification path during certificate verification. RFC 4158 explains why an issuer certificate cannot be naively assumed to be part of the the certification path (though GLib’s TLS backends may not follow the path building strategies outlined in this RFC). Due to the complexity of certification path building, GLib does not provide any way to know which certification path will actually be used. Accordingly, this property cannot be used to make security-related decisions. Only GLib itself should make security decisions about TLS certificates.
Readable | Writeable | Construct Only
issuer-name
The issuer from the certificate,
None
if unavailable.
Readable
not-valid-after
The time at which this cert is no longer valid,
None
if unavailable.
Readable
not-valid-before
The time at which this cert is considered to be valid,
None
if unavailable.
Readable
password
An optional password used when constructed with GTlsCertificate:pkcs12-data.
Writeable | Construct Only
pkcs11-uri
A URI referencing the PKCS `11` objects containing an X.509 certificate and optionally a private key.
If None
, the certificate is either not backed by PKCS `11 or the [
TlsBackend][crate::TlsBackend] does not support PKCS \
11`.
Readable | Writeable | Construct Only
pkcs12-data
The PKCS 12
formatted data used to construct the object.
See also: TlsCertificate::from_pkcs12()
Writeable | Construct Only
private-key
The DER (binary) encoded representation of the certificate’s
private key, in either [PKCS `1 format](https://datatracker.ietf.org/doc/html/rfc8017) or unencrypted [PKCS \
8 format.](https://datatracker.ietf.org/doc/html/rfc5208) PKCS \
8 format is supported since 2.32; earlier releases only support PKCS \
1. You can use the
openssl rsa tool to convert PKCS \
8 keys to PKCS \
1`.
This property (or the private-key-pem
property)
can be set when constructing a key (for example, from a file).
Since GLib 2.70, it is now also readable; however, be aware that if
the private key is backed by a PKCS `11 URI – for example, if it is stored on a smartcard – then this property will be [
None]. If so, the private key must be referenced via its PKCS \
11 URI, [
private-key-pkcs11-uri][struct@crate::TlsCertificate#private-key-pkcs11-uri]. You must check both properties to see if the certificate really has a private key. When this property is read, the output format will be unencrypted PKCS \
8`.
Readable | Writeable | Construct Only
private-key-pem
The PEM (ASCII) encoded representation of the certificate’s
private key in either [PKCS `1 format](https://datatracker.ietf.org/doc/html/rfc8017) ("
BEGIN RSA PRIVATE KEY") or unencrypted [PKCS \
8 format](https://datatracker.ietf.org/doc/html/rfc5208) ("
BEGIN PRIVATE KEY"). PKCS \
8 format is supported since 2.32; earlier releases only support PKCS \
1. You can use the
openssl rsa tool to convert PKCS \
8 keys to PKCS \
1`.
This property (or the private-key
property)
can be set when constructing a key (for example, from a file).
Since GLib 2.70, it is now also readable; however, be aware that if
the private key is backed by a PKCS `11 URI - for example, if it is stored on a smartcard - then this property will be [
None]. If so, the private key must be referenced via its PKCS \
11 URI, [
private-key-pkcs11-uri][struct@crate::TlsCertificate#private-key-pkcs11-uri]. You must check both properties to see if the certificate really has a private key. When this property is read, the output format will be unencrypted PKCS \
8`.
Readable | Writeable | Construct Only
private-key-pkcs11-uri
A URI referencing a PKCS `11` object containing a private key.
Readable | Writeable | Construct Only
subject-name
The subject from the cert,
None
if unavailable.
Readable
Implements
Implementations§
source§impl TlsCertificate
impl TlsCertificate
pub const NONE: Option<&'static TlsCertificate> = None
sourcepub fn from_file(file: impl AsRef<Path>) -> Result<TlsCertificate, Error>
pub fn from_file(file: impl AsRef<Path>) -> Result<TlsCertificate, Error>
Creates a TlsCertificate
from the data in file
.
As of 2.72, if the filename ends in .p12
or .pfx
the data is loaded by
from_pkcs12()
otherwise it is loaded by
from_pem()
. See those functions for
exact details.
If file
cannot be read or parsed, the function will return None
and
set error
.
file
file containing a certificate to import
Returns
the new certificate, or None
on error
sourcepub fn from_file_with_password(
file: impl AsRef<Path>,
password: &str
) -> Result<TlsCertificate, Error>
Available on crate feature v2_72
only.
pub fn from_file_with_password( file: impl AsRef<Path>, password: &str ) -> Result<TlsCertificate, Error>
v2_72
only.Creates a TlsCertificate
from the data in file
.
If file
cannot be read or parsed, the function will return None
and
set error
.
Any unknown file types will error with IOErrorEnum::NotSupported
.
Currently only .p12
and .pfx
files are supported.
See from_pkcs12()
for more details.
file
file containing a certificate to import
password
password for PKCS 12
files
Returns
the new certificate, or None
on error
sourcepub fn from_files(
cert_file: impl AsRef<Path>,
key_file: impl AsRef<Path>
) -> Result<TlsCertificate, Error>
pub fn from_files( cert_file: impl AsRef<Path>, key_file: impl AsRef<Path> ) -> Result<TlsCertificate, Error>
Creates a TlsCertificate
from the PEM-encoded data in cert_file
and key_file
. The returned certificate will be the first certificate
found in cert_file
. As of GLib 2.44, if cert_file
contains more
certificates it will try to load a certificate chain. All
certificates will be verified in the order found (top-level
certificate should be the last one in the file) and the
issuer
property of each certificate will be set
accordingly if the verification succeeds. If any certificate in the
chain cannot be verified, the first certificate in the file will
still be returned.
If either file cannot be read or parsed, the function will return
None
and set error
. Otherwise, this behaves like
from_pem()
.
cert_file
file containing one or more PEM-encoded certificates to import
key_file
file containing a PEM-encoded private key to import
Returns
the new certificate, or None
on error
sourcepub fn from_pem(data: &str) -> Result<TlsCertificate, Error>
pub fn from_pem(data: &str) -> Result<TlsCertificate, Error>
Creates a TlsCertificate
from the PEM-encoded data in data
. If
data
includes both a certificate and a private key, then the
returned certificate will include the private key data as well. (See
the private-key-pem
property for information about
supported formats.)
The returned certificate will be the first certificate found in
data
. As of GLib 2.44, if data
contains more certificates it will
try to load a certificate chain. All certificates will be verified in
the order found (top-level certificate should be the last one in the
file) and the issuer
property of each certificate
will be set accordingly if the verification succeeds. If any
certificate in the chain cannot be verified, the first certificate in
the file will still be returned.
data
PEM-encoded certificate data
length
the length of data
, or -1 if it’s 0-terminated.
Returns
the new certificate, or None
if data
is invalid
sourcepub fn from_pkcs11_uris(
pkcs11_uri: &str,
private_key_pkcs11_uri: Option<&str>
) -> Result<TlsCertificate, Error>
Available on crate feature v2_68
only.
pub fn from_pkcs11_uris( pkcs11_uri: &str, private_key_pkcs11_uri: Option<&str> ) -> Result<TlsCertificate, Error>
v2_68
only.Creates a TlsCertificate
from a
PKCS `11` URI.
An example pkcs11_uri
would be pkcs11:model=Model;manufacturer=Manufacture;serial=1;token=My
20Client20Certificate`;id=`01
Where the token’s layout is:
Object 0:
URL: pkcs11:model=Model;manufacturer=Manufacture;serial=1;token=My%20Client%20Certificate;id=%01;object=private%20key;type=private
Type: Private key (RSA-2048)
ID: 01
Object 1:
URL: pkcs11:model=Model;manufacturer=Manufacture;serial=1;token=My%20Client%20Certificate;id=%01;object=Certificate%20for%20Authentication;type=cert
Type: X.509 Certificate (RSA-2048)
ID: 01
In this case the certificate and private key would both be detected and used as expected.
pkcs_uri
may also just reference an X.509 certificate object and then optionally
private_key_pkcs11_uri
allows using a private key exposed under a different URI.
Note that the private key is not accessed until usage and may fail or require a PIN later.
pkcs11_uri
A PKCS `11` URI
private_key_pkcs11_uri
A PKCS `11` URI
Returns
the new certificate, or None
on error
sourcepub fn from_pkcs12(
data: &[u8],
password: Option<&str>
) -> Result<TlsCertificate, Error>
Available on crate feature v2_72
only.
pub fn from_pkcs12( data: &[u8], password: Option<&str> ) -> Result<TlsCertificate, Error>
v2_72
only.Creates a TlsCertificate
from the data in data
. It must contain
a certificate and matching private key.
If extra certificates are included they will be verified as a chain
and the issuer
property will be set.
All other data will be ignored.
You can pass as single password for all of the data which will be
used both for the PKCS 12
container as well as encrypted
private keys. If decryption fails it will error with
TlsError::BadCertificatePassword
.
This constructor requires support in the current TlsBackend
.
If support is missing it will error with
IOErrorEnum::NotSupported
.
Other parsing failures will error with TlsError::BadCertificate
.
data
DER-encoded PKCS 12
format certificate data
password
optional password for encrypted certificate data
Returns
the new certificate, or None
if data
is invalid
sourcepub fn list_new_from_file(
file: impl AsRef<Path>
) -> Result<Vec<TlsCertificate>, Error>
pub fn list_new_from_file( file: impl AsRef<Path> ) -> Result<Vec<TlsCertificate>, Error>
Creates one or more GTlsCertificates
from the PEM-encoded
data in file
. If file
cannot be read or parsed, the function will
return None
and set error
. If file
does not contain any
PEM-encoded certificates, this will return an empty list and not
set error
.
file
file containing PEM-encoded certificates to import
Returns
a
GList
containing TlsCertificate
objects. You must free the list
and its contents when you are done with it.
Trait Implementations§
source§impl Clone for TlsCertificate
impl Clone for TlsCertificate
source§impl Debug for TlsCertificate
impl Debug for TlsCertificate
source§impl Display for TlsCertificate
impl Display for TlsCertificate
source§impl HasParamSpec for TlsCertificate
impl HasParamSpec for TlsCertificate
type ParamSpec = ParamSpecObject
§type SetValue = TlsCertificate
type SetValue = TlsCertificate
type BuilderFn = fn(_: &str) -> ParamSpecObjectBuilder<'_, TlsCertificate>
fn param_spec_builder() -> Self::BuilderFn
source§impl Hash for TlsCertificate
impl Hash for TlsCertificate
source§impl Ord for TlsCertificate
impl Ord for TlsCertificate
source§impl ParentClassIs for TlsCertificate
impl ParentClassIs for TlsCertificate
source§impl<OT: ObjectType> PartialEq<OT> for TlsCertificate
impl<OT: ObjectType> PartialEq<OT> for TlsCertificate
source§impl<OT: ObjectType> PartialOrd<OT> for TlsCertificate
impl<OT: ObjectType> PartialOrd<OT> for TlsCertificate
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl StaticType for TlsCertificate
impl StaticType for TlsCertificate
source§fn static_type() -> Type
fn static_type() -> Type
Self
.impl Eq for TlsCertificate
Auto Trait Implementations§
impl RefUnwindSafe for TlsCertificate
impl !Send for TlsCertificate
impl !Sync for TlsCertificate
impl Unpin for TlsCertificate
impl UnwindSafe for TlsCertificate
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Cast for Twhere
T: ObjectType,
impl<T> Cast for Twhere T: ObjectType,
source§fn upcast<T>(self) -> Twhere
T: ObjectType,
Self: IsA<T>,
fn upcast<T>(self) -> Twhere T: ObjectType, Self: IsA<T>,
T
. Read moresource§fn upcast_ref<T>(&self) -> &Twhere
T: ObjectType,
Self: IsA<T>,
fn upcast_ref<T>(&self) -> &Twhere T: ObjectType, Self: IsA<T>,
T
. Read moresource§fn downcast<T>(self) -> Result<T, Self>where
T: ObjectType,
Self: CanDowncast<T>,
fn downcast<T>(self) -> Result<T, Self>where T: ObjectType, Self: CanDowncast<T>,
T
. Read moresource§fn downcast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
Self: CanDowncast<T>,
fn downcast_ref<T>(&self) -> Option<&T>where T: ObjectType, Self: CanDowncast<T>,
T
. Read moresource§fn dynamic_cast<T>(self) -> Result<T, Self>where
T: ObjectType,
fn dynamic_cast<T>(self) -> Result<T, Self>where T: ObjectType,
T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while upcast
will do many checks at compile-time already. downcast
will
perform the same checks at runtime as dynamic_cast
, but will also ensure some amount of
compile-time safety. Read moresource§fn dynamic_cast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
fn dynamic_cast_ref<T>(&self) -> Option<&T>where T: ObjectType,
T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast
and upcast
will do many checks at compile-time already. Read moresource§unsafe fn unsafe_cast<T>(self) -> Twhere
T: ObjectType,
unsafe fn unsafe_cast<T>(self) -> Twhere T: ObjectType,
T
unconditionally. Read moresource§unsafe fn unsafe_cast_ref<T>(&self) -> &Twhere
T: ObjectType,
unsafe fn unsafe_cast_ref<T>(&self) -> &Twhere T: ObjectType,
&T
unconditionally. Read moresource§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> IntoClosureReturnValue for Twhere
T: Into<Value>,
impl<T> IntoClosureReturnValue for Twhere T: Into<Value>,
fn into_closure_return_value(self) -> Option<Value>
source§impl<U> IsSubclassableExt for Uwhere
U: IsClass + ParentClassIs,
impl<U> IsSubclassableExt for Uwhere U: IsClass + ParentClassIs,
fn parent_class_init<T>(class: &mut Class<U>)where T: ObjectSubclass, <U as ParentClassIs>::Parent: IsSubclassable<T>,
fn parent_instance_init<T>(instance: &mut InitializingObject<T>)where T: ObjectSubclass, <U as ParentClassIs>::Parent: IsSubclassable<T>,
source§impl<T> ObjectExt for Twhere
T: ObjectType,
impl<T> ObjectExt for Twhere T: ObjectType,
source§fn is<U>(&self) -> boolwhere
U: StaticType,
fn is<U>(&self) -> boolwhere U: StaticType,
true
if the object is an instance of (can be cast to) T
.source§fn object_class(&self) -> &Class<Object>
fn object_class(&self) -> &Class<Object>
ObjectClass
of the object. Read moresource§fn class_of<U>(&self) -> Option<&Class<U>>where
U: IsClass,
fn class_of<U>(&self) -> Option<&Class<U>>where U: IsClass,
T
. Read moresource§fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where
U: IsInterface,
fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where U: IsInterface,
T
of the object. Read moresource§fn set_property_from_value(&self, property_name: &str, value: &Value)
fn set_property_from_value(&self, property_name: &str, value: &Value)
source§fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
source§fn set_properties_from_value(&self, property_values: &[(&str, Value)])
fn set_properties_from_value(&self, property_values: &[(&str, Value)])
source§fn property<V>(&self, property_name: &str) -> Vwhere
V: for<'b> FromValue<'b> + 'static,
fn property<V>(&self, property_name: &str) -> Vwhere V: for<'b> FromValue<'b> + 'static,
property_name
of the object and cast it to the type V. Read moresource§fn property_value(&self, property_name: &str) -> Value
fn property_value(&self, property_name: &str) -> Value
property_name
of the object. Read moresource§fn property_type(&self, property_name: &str) -> Option<Type>
fn property_type(&self, property_name: &str) -> Option<Type>
property_name
of this object. Read moresource§fn find_property(&self, property_name: &str) -> Option<ParamSpec>
fn find_property(&self, property_name: &str) -> Option<ParamSpec>
ParamSpec
of the property property_name
of this object.source§fn list_properties(&self) -> PtrSlice<ParamSpec>
fn list_properties(&self) -> PtrSlice<ParamSpec>
ParamSpec
of the properties of this object.source§fn freeze_notify(&self) -> PropertyNotificationFreezeGuard
fn freeze_notify(&self) -> PropertyNotificationFreezeGuard
source§unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where
QD: 'static,
unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where QD: 'static,
key
. Read moresource§unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where
QD: 'static,
unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where QD: 'static,
key
. Read moresource§unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where
QD: 'static,
unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where QD: 'static,
key
. Read moresource§unsafe fn set_data<QD>(&self, key: &str, value: QD)where
QD: 'static,
unsafe fn set_data<QD>(&self, key: &str, value: QD)where QD: 'static,
key
. Read moresource§unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where
QD: 'static,
unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where QD: 'static,
key
. Read moresource§unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where
QD: 'static,
unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where QD: 'static,
key
. Read moresource§fn block_signal(&self, handler_id: &SignalHandlerId)
fn block_signal(&self, handler_id: &SignalHandlerId)
source§fn unblock_signal(&self, handler_id: &SignalHandlerId)
fn unblock_signal(&self, handler_id: &SignalHandlerId)
source§fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
source§fn stop_signal_emission_by_name(&self, signal_name: &str)
fn stop_signal_emission_by_name(&self, signal_name: &str)
source§fn connect<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
fn connect<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
signal_name
on this object. Read moresource§fn connect_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
fn connect_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
signal_id
on this object. Read moresource§fn connect_local<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + 'static,
fn connect_local<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value> + 'static,
signal_name
on this object. Read moresource§fn connect_local_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + 'static,
fn connect_local_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value> + 'static,
signal_id
on this object. Read moresource§unsafe fn connect_unsafe<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value>,
unsafe fn connect_unsafe<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value>,
signal_name
on this object. Read moresource§unsafe fn connect_unsafe_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value>,
unsafe fn connect_unsafe_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value>,
signal_id
on this object. Read moresource§fn connect_closure(
&self,
signal_name: &str,
after: bool,
closure: RustClosure
) -> SignalHandlerId
fn connect_closure( &self, signal_name: &str, after: bool, closure: RustClosure ) -> SignalHandlerId
signal_name
on this object. Read moresource§fn connect_closure_id(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
closure: RustClosure
) -> SignalHandlerId
fn connect_closure_id( &self, signal_id: SignalId, details: Option<Quark>, after: bool, closure: RustClosure ) -> SignalHandlerId
signal_id
on this object. Read moresource§fn watch_closure(&self, closure: &impl AsRef<Closure>)
fn watch_closure(&self, closure: &impl AsRef<Closure>)
closure
to the lifetime of the object. When
the object’s reference count drops to zero, the closure will be
invalidated. An invalidated closure will ignore any calls to
invoke_with_values
, or
invoke
when using Rust closures.source§fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> Rwhere R: TryFromClosureReturnValue,
source§fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
Self::emit
but takes Value
for the arguments.source§fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere R: TryFromClosureReturnValue,
source§fn emit_by_name_with_values(
&self,
signal_name: &str,
args: &[Value]
) -> Option<Value>
fn emit_by_name_with_values( &self, signal_name: &str, args: &[Value] ) -> Option<Value>
source§fn emit_by_name_with_details<R>(
&self,
signal_name: &str,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_by_name_with_details<R>( &self, signal_name: &str, details: Quark, args: &[&dyn ToValue] ) -> Rwhere R: TryFromClosureReturnValue,
source§fn emit_by_name_with_details_and_values(
&self,
signal_name: &str,
details: Quark,
args: &[Value]
) -> Option<Value>
fn emit_by_name_with_details_and_values( &self, signal_name: &str, details: Quark, args: &[Value] ) -> Option<Value>
source§fn emit_with_details<R>(
&self,
signal_id: SignalId,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_with_details<R>( &self, signal_id: SignalId, details: Quark, args: &[&dyn ToValue] ) -> Rwhere R: TryFromClosureReturnValue,
source§fn emit_with_details_and_values(
&self,
signal_id: SignalId,
details: Quark,
args: &[Value]
) -> Option<Value>
fn emit_with_details_and_values( &self, signal_id: SignalId, details: Quark, args: &[Value] ) -> Option<Value>
source§fn disconnect(&self, handler_id: SignalHandlerId)
fn disconnect(&self, handler_id: SignalHandlerId)
source§fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec) + Send + Sync + 'static,
fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere F: Fn(&T, &ParamSpec) + Send + Sync + 'static,
notify
signal of the object. Read moresource§fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec) + 'static,
fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere F: Fn(&T, &ParamSpec) + 'static,
notify
signal of the object. Read moresource§unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec),
unsafe fn connect_notify_unsafe<F>( &self, name: Option<&str>, f: F ) -> SignalHandlerIdwhere F: Fn(&T, &ParamSpec),
notify
signal of the object. Read moresource§fn notify(&self, property_name: &str)
fn notify(&self, property_name: &str)
source§fn notify_by_pspec(&self, pspec: &ParamSpec)
fn notify_by_pspec(&self, pspec: &ParamSpec)
source§fn add_weak_ref_notify<F>(&self, f: F) -> WeakRefNotify<T>where
F: FnOnce() + Send + 'static,
fn add_weak_ref_notify<F>(&self, f: F) -> WeakRefNotify<T>where F: FnOnce() + Send + 'static,
source§fn add_weak_ref_notify_local<F>(&self, f: F) -> WeakRefNotify<T>where
F: FnOnce() + 'static,
fn add_weak_ref_notify_local<F>(&self, f: F) -> WeakRefNotify<T>where F: FnOnce() + 'static,
source§fn bind_property<'f, 't, O, 'a>(
&'a self,
source_property: &'a str,
target: &'a O,
target_property: &'a str
) -> BindingBuilder<'a, 'f, 't>where
O: ObjectType,
fn bind_property<'f, 't, O, 'a>( &'a self, source_property: &'a str, target: &'a O, target_property: &'a str ) -> BindingBuilder<'a, 'f, 't>where O: ObjectType,
source§unsafe fn run_dispose(&self)
unsafe fn run_dispose(&self)
source§impl<T> PropertyGet for Twhere
T: HasParamSpec,
impl<T> PropertyGet for Twhere T: HasParamSpec,
source§impl<T> StaticTypeExt for Twhere
T: StaticType,
impl<T> StaticTypeExt for Twhere T: StaticType,
source§fn ensure_type()
fn ensure_type()
source§impl<O> TlsCertificateExt for Owhere
O: IsA<TlsCertificate>,
impl<O> TlsCertificateExt for Owhere O: IsA<TlsCertificate>,
source§fn ip_addresses(&self) -> Vec<InetAddress, Global>
fn ip_addresses(&self) -> Vec<InetAddress, Global>
v2_70
only.ip-addresses
. Read moresource§fn issuer(&self) -> Option<TlsCertificate>
fn issuer(&self) -> Option<TlsCertificate>
source§fn issuer_name(&self) -> Option<GString>
fn issuer_name(&self) -> Option<GString>
v2_70
only.source§fn not_valid_after(&self) -> Option<DateTime>
fn not_valid_after(&self) -> Option<DateTime>
v2_70
only.source§fn not_valid_before(&self) -> Option<DateTime>
fn not_valid_before(&self) -> Option<DateTime>
v2_70
only.source§fn subject_name(&self) -> Option<GString>
fn subject_name(&self) -> Option<GString>
v2_70
only.source§fn is_same(&self, cert_two: &impl IsA<TlsCertificate>) -> bool
fn is_same(&self, cert_two: &impl IsA<TlsCertificate>) -> bool
TlsCertificate
objects represent the same certificate.
The raw DER byte data of the two certificates are checked for equality.
This has the effect that two certificates may compare equal even if
their issuer
, private-key
, or
private-key-pem
properties differ. Read moresource§fn verify(
&self,
identity: Option<&impl IsA<SocketConnectable>>,
trusted_ca: Option<&impl IsA<TlsCertificate>>
) -> TlsCertificateFlags
fn verify( &self, identity: Option<&impl IsA<SocketConnectable>>, trusted_ca: Option<&impl IsA<TlsCertificate>> ) -> TlsCertificateFlags
self
and returns a set of TlsCertificateFlags
indicating any problems found with it. This can be used to verify a
certificate outside the context of making a connection, or to
check a certificate against a CA that is not part of the system
CA database. Read moresource§fn certificate(&self) -> Option<ByteArray>
fn certificate(&self) -> Option<ByteArray>
certificate-pem
property
represent the same data, just in different forms.source§fn certificate_pem(&self) -> Option<GString>
fn certificate_pem(&self) -> Option<GString>
certificate
property represent the same data, just in different forms.source§fn pkcs11_uri(&self) -> Option<GString>
fn pkcs11_uri(&self) -> Option<GString>
v2_68
only.source§fn private_key(&self) -> Option<ByteArray>
fn private_key(&self) -> Option<ByteArray>
format](https://datatracker.ietf.org/doc/html/rfc8017) or unencrypted [PKCS \
8 format.](https://datatracker.ietf.org/doc/html/rfc5208) PKCS \
8 format is supported since 2.32; earlier releases only support PKCS \
1. You can use the
openssl rsa tool to convert PKCS \
8 keys to PKCS \
1`. Read moresource§fn private_key_pem(&self) -> Option<GString>
fn private_key_pem(&self) -> Option<GString>
format](https://datatracker.ietf.org/doc/html/rfc8017) ("
BEGIN RSA PRIVATE KEY") or unencrypted [PKCS \
8 format](https://datatracker.ietf.org/doc/html/rfc5208) ("
BEGIN PRIVATE KEY"). PKCS \
8 format is supported since 2.32; earlier releases only support PKCS \
1. You can use the
openssl rsa tool to convert PKCS \
8 keys to PKCS \
1`. Read moresource§fn private_key_pkcs11_uri(&self) -> Option<GString>
fn private_key_pkcs11_uri(&self) -> Option<GString>
v2_68
only.source§fn connect_dns_names_notify<F>(&self, f: F) -> SignalHandlerIdwhere
F: Fn(&O) + 'static,
fn connect_dns_names_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
v2_70
only.source§fn connect_ip_addresses_notify<F>(&self, f: F) -> SignalHandlerIdwhere
F: Fn(&O) + 'static,
fn connect_ip_addresses_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
v2_70
only.source§fn connect_issuer_name_notify<F>(&self, f: F) -> SignalHandlerIdwhere
F: Fn(&O) + 'static,
fn connect_issuer_name_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
v2_70
only.source§fn connect_not_valid_after_notify<F>(&self, f: F) -> SignalHandlerIdwhere
F: Fn(&O) + 'static,
fn connect_not_valid_after_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
v2_70
only.source§fn connect_not_valid_before_notify<F>(&self, f: F) -> SignalHandlerIdwhere
F: Fn(&O) + 'static,
fn connect_not_valid_before_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
v2_70
only.source§fn connect_subject_name_notify<F>(&self, f: F) -> SignalHandlerIdwhere
F: Fn(&O) + 'static,
fn connect_subject_name_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
v2_70
only.