Class TlsCertificate
- All Implemented Interfaces:
Proxy
- Direct Known Subclasses:
TlsCertificate.TlsCertificate$Impl
TlsServerConnection).- Since:
- 2.28
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classTlsCertificate.Builder<B extends TlsCertificate.Builder<B>>Inner class implementing a builder pattern to construct a GObject with properties.static classThe TlsCertificate$Impl type represents a native instance of the abstract TlsCertificate class.static classNested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClass -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new TlsCertificate.TlsCertificate(MemorySegment address) Create a TlsCertificate proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected TlsCertificateasParent()Returns this instance as if it were its parent type.static TlsCertificateCreates aGTlsCertificatefrom the data infile.static TlsCertificateCreates aGTlsCertificatefrom the PEM-encoded data incertFileandkeyFile.The returned certificate will be the first certificate found incertFile.As of GLib 2.44, ifcertFilecontains more certificates it will try to load a certificate chain.static TlsCertificatefromFileWithPassword(String file, String password) Creates aGTlsCertificatefrom the data infile.static TlsCertificateCreates aGTlsCertificatefrom the PEM-encoded data indata.Ifdataincludes both a certificate and a private key, then the returned certificate will include the private key data as well.static TlsCertificatefromPkcs11Uris(String pkcs11Uri, @Nullable String privateKeyPkcs11Uri) Creates aGTlsCertificatefrom a PKCS \\#11 URI.static TlsCertificatefromPkcs12(@org.jspecify.annotations.Nullable byte @Nullable [] data, @Nullable String password) Creates aGTlsCertificatefrom the data indata.It must contain a certificate and matching private key.@Nullable InetAddress @Nullable []Gets the value ofGTlsCertificate:ip-addresses.@Nullable TlsCertificateGets theGTlsCertificaterepresentingcert'sissuer, if known@Nullable StringReturns the issuer name from the certificate.static MemoryLayoutThe memory layout of the native struct.@Nullable DateTimeReturns the time at which the certificate became or will become invalid.@Nullable DateTimeReturns the time at which the certificate became or will become valid.@Nullable StringReturns the subject name from the certificate.static @Nullable TypegetType()Get the GType of the TlsCertificate classbooleanisSame(TlsCertificate certTwo) Check if twoGTlsCertificateobjects represent the same certificate.static List<TlsCertificate> listNewFromFile(String file) Creates one or moreGTlsCertificatesfrom the PEM-encoded data infile.Iffilecannot be read or parsed, the function will returnnulland seterror.Iffiledoes not contain any PEM-encoded certificates, this will return an empty list and not seterror.verify(@Nullable SocketConnectable identity, @Nullable TlsCertificate trustedCa) This verifies this TlsCertificate and returns a set ofGTlsCertificateFlagsindicating any problems found with it.Methods inherited from class org.gnome.gobject.GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, builder, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newv, notify, notify, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withPropertiesMethods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, cast, getPrivate, readGClass, writeGClassMethods inherited from class org.javagi.base.ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
TlsCertificate
Create a TlsCertificate proxy instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
TlsCertificate
public TlsCertificate()Creates a new TlsCertificate.
-
-
Method Details
-
getType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuperkeyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName(). This will call the native function pointer of this virtual method in the typeclass of the parent type. -
fromFile
Creates aGTlsCertificatefrom the data infile.As of 2.72, if the filename ends in
.p12or.pfxthe data is loaded by g_tls_certificate_new_from_pkcs12() otherwise it is loaded by g_tls_certificate_new_from_pem(). See those functions for exact details.If
filecannot be read or parsed, the function will returnnulland seterror.- Parameters:
file- file containing a certificate to import- Returns:
- the new certificate, or
nullon error - Throws:
GErrorException- seeGError- Since:
- 2.28
-
fromFileWithPassword
public static TlsCertificate fromFileWithPassword(String file, String password) throws GErrorException Creates aGTlsCertificatefrom the data infile.If
filecannot be read or parsed, the function will returnnulland seterror.Any unknown file types will error with
IOErrorEnum.NOT_SUPPORTED. Currently only.p12and.pfxfiles are supported. See g_tls_certificate_new_from_pkcs12() for more details.- Parameters:
file- file containing a certificate to importpassword- password for PKCS12files- Returns:
- the new certificate, or
nullon error - Throws:
GErrorException- seeGError- Since:
- 2.72
-
fromFiles
Creates aGTlsCertificatefrom the PEM-encoded data incertFileandkeyFile.The returned certificate will be the first certificate found incertFile.As of GLib 2.44, ifcertFilecontains 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 theGTlsCertificate: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
nulland seterror.Otherwise, this behaves like g_tls_certificate_new_from_pem().- Parameters:
certFile- file containing one or more PEM-encoded certificates to importkeyFile- file containing a PEM-encoded private key to import- Returns:
- the new certificate, or
nullon error - Throws:
GErrorException- seeGError- Since:
- 2.28
-
fromPem
Creates aGTlsCertificatefrom the PEM-encoded data indata.Ifdataincludes both a certificate and a private key, then the returned certificate will include the private key data as well. (See theGTlsCertificate: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, ifdatacontains 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 theGTlsCertificate: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.- Parameters:
data- PEM-encoded certificate datalength- the length ofdata,or -1 if it's 0-terminated.- Returns:
- the new certificate, or
nullifdatais invalid - Throws:
GErrorException- seeGError- Since:
- 2.28
-
fromPkcs11Uris
public static TlsCertificate fromPkcs11Uris(String pkcs11Uri, @Nullable String privateKeyPkcs11Uri) throws GErrorException Creates aGTlsCertificatefrom a PKCS \\#11 URI.An example
pkcs11Uriwould bepkcs11:model=Model;manufacturer=Manufacture;serial=1;token=My%20Client%20Certificate;id=%01Where 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: 01In this case the certificate and private key would both be detected and used as expected.
pkcsUrimay also just reference an X.509 certificate object and then optionallyprivateKeyPkcs11Uriallows 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.
- Parameters:
pkcs11Uri- A PKCS \\11URIprivateKeyPkcs11Uri- A PKCS \\11URI- Returns:
- the new certificate, or
nullon error - Throws:
GErrorException- seeGError- Since:
- 2.68
-
fromPkcs12
public static TlsCertificate fromPkcs12(@org.jspecify.annotations.Nullable byte @Nullable [] data, @Nullable String password) throws GErrorException Creates aGTlsCertificatefrom the data indata.It must contain a certificate and matching private key.If extra certificates are included they will be verified as a chain and the
GTlsCertificate: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
12container as well as encrypted private keys. If decryption fails it will error withTlsError.BAD_CERTIFICATE_PASSWORD.This constructor requires support in the current
GTlsBackend. If support is missing it will error withIOErrorEnum.NOT_SUPPORTED.Other parsing failures will error with
TlsError.BAD_CERTIFICATE.- Parameters:
data- DER-encoded PKCS12format certificate datapassword- optional password for encrypted certificate data- Returns:
- the new certificate, or
nullifdatais invalid - Throws:
GErrorException- seeGError- Since:
- 2.72
-
listNewFromFile
Creates one or moreGTlsCertificatesfrom the PEM-encoded data infile.Iffilecannot be read or parsed, the function will returnnulland seterror.Iffiledoes not contain any PEM-encoded certificates, this will return an empty list and not seterror.- Parameters:
file- file containing PEM-encoded certificates to import- Returns:
- a
GListcontainingGTlsCertificateobjects. You must free the list and its contents when you are done with it. - Throws:
GErrorException- seeGError- Since:
- 2.28
-
getIpAddresses
Gets the value ofGTlsCertificate:ip-addresses.- Returns:
- A
GPtrArrayofGInetAddresselements, ornullif it's not available. - Since:
- 2.70
-
getIssuer
Gets theGTlsCertificaterepresentingcert'sissuer, if known- Returns:
- The certificate of
cert'sissuer, ornullif this TlsCertificate is self-signed or signed with an unknown certificate. - Since:
- 2.28
-
getIssuerName
Returns the issuer name from the certificate.- Returns:
- The issuer name, or
nullif it's not available. - Since:
- 2.70
-
getNotValidAfter
Returns the time at which the certificate became or will become invalid.- Returns:
- The not-valid-after date, or
nullif it's not available. - Since:
- 2.70
-
getNotValidBefore
Returns the time at which the certificate became or will become valid.- Returns:
- The not-valid-before date, or
nullif it's not available. - Since:
- 2.70
-
getSubjectName
Returns the subject name from the certificate.- Returns:
- The subject name, or
nullif it's not available. - Since:
- 2.70
-
isSame
Check if twoGTlsCertificateobjects 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 theirGTlsCertificate:issuer,GTlsCertificate:private-key, orGTlsCertificate:private-key-pem properties differ.- Parameters:
certTwo- second certificate to compare- Returns:
- whether the same or not
- Since:
- 2.34
-
verify
public Set<TlsCertificateFlags> verify(@Nullable SocketConnectable identity, @Nullable TlsCertificate trustedCa) This verifies this TlsCertificate and returns a set ofGTlsCertificateFlagsindicating 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.If this TlsCertificate is valid,
TlsCertificateFlags.NO_FLAGSis returned.If
identityis notnull,cert'sname(s) will be compared against it, andTlsCertificateFlags.BAD_IDENTITYwill be set in the return value if it does not match. Ifidentityisnull, that bit will never be set in the return value.If
trustedCais notnull, then this TlsCertificate (or one of the certificates in its chain) must be signed by it, or elseTlsCertificateFlags.UNKNOWN_CAwill be set in the return value. IftrustedCaisnull, that bit will never be set in the return value.GLib guarantees that if certificate verification fails, at least one error will be set in the return value, but it does not guarantee that all possible errors will be set. Accordingly, you may not safely decide to ignore any particular type of error. For example, it would be incorrect to mask
TlsCertificateFlags.EXPIREDif you want to allow expired certificates, because this could potentially be the only error flag set even if other problems exist with the certificate.Because TLS session context is not used,
GTlsCertificatemay not perform as many checks on the certificates asGTlsConnectionwould. For example, certificate constraints may not be honored, and revocation checks may not be performed. The best way to verify TLS certificates used by a TLS connection is to letGTlsConnectionhandle the verification.- Parameters:
identity- the expected peer identitytrustedCa- the certificate of a trusted authority- Returns:
- the appropriate
GTlsCertificateFlags - Since:
- 2.28
-