Class TLSOptions
TLS configuration for clients and servers.
- Inheritance
-
TLSOptions
Remarks
TLSOptions abstracts the configuration options for the StreamPeerTLS and PacketPeerDTLS classes.
Objects of this class cannot be instantiated directly, and one of the static methods TLSOptions.client, TLSOptions.client_unsafe, or TLSOptions.server should be used instead.
# Create a TLS client configuration which uses our custom trusted CA chain.
var client_trusted_cas = load("res://my_trusted_cas.crt")
var client_tls_options = TLSOptions.client(client_trusted_cas)
# Create a TLS server configuration.
var server_certs = load("res://my_server_cas.crt")
var server_key = load("res://my_server_key.key")
var server_tls_options = TLSOptions.server(server_key, server_certs)
Methods
client(X509Certificate, String)
Qualifiers: static
Creates a TLS client configuration which validates certificates and their common names (fully qualified domain names).
You can specify a custom trusted_chain
of certification authorities (the default CA list will be used if null
), and optionally provide a common_name_override
if you expect the certificate to have a common name other than the server FQDN.
Note: On the Web platform, TLS verification is always enforced against the CA list of the web browser. This is considered a security feature.
TLSOptions client(X509Certificate trusted_chain, String common_name_override)
Parameters
trusted_chain
X509Certificatecommon_name_override
String
client_unsafe(X509Certificate)
Qualifiers: static
Creates an unsafe TLS client configuration where certificate validation is optional. You can optionally provide a valid trusted_chain
, but the common name of the certificates will never be checked. Using this configuration for purposes other than testing is not recommended.
Note: On the Web platform, TLS verification is always enforced against the CA list of the web browser. This is considered a security feature.
TLSOptions client_unsafe(X509Certificate trusted_chain)
Parameters
trusted_chain
X509Certificate
get_common_name_override
Qualifiers: const
Returns the common name (domain name) override specified when creating with TLSOptions.client.
String get_common_name_override
get_own_certificate
Qualifiers: const
Returns the X509Certificate specified when creating with TLSOptions.server.
X509Certificate get_own_certificate
get_private_key
Qualifiers: const
Returns the CryptoKey specified when creating with TLSOptions.server.
CryptoKey get_private_key
get_trusted_ca_chain
Qualifiers: const
Returns the CA X509Certificate chain specified when creating with TLSOptions.client or TLSOptions.client_unsafe.
X509Certificate get_trusted_ca_chain
is_server
Qualifiers: const
Returns true
if created with TLSOptions.server, false
otherwise.
bool is_server
is_unsafe_client
Qualifiers: const
Returns true
if created with TLSOptions.client_unsafe, false
otherwise.
bool is_unsafe_client
server(CryptoKey, X509Certificate)
Qualifiers: static
Creates a TLS server configuration using the provided key
and certificate
.
Note: The certificate
should include the full certificate chain up to the signing CA (certificates file can be concatenated using a general purpose text editor).
TLSOptions server(CryptoKey key, X509Certificate certificate)
Parameters
key
CryptoKeycertificate
X509Certificate