2017-09-12 22:42:36 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2022-09-07 00:46:12 +02:00
<class name= "StreamPeerTLS" inherits= "StreamPeer" version= "4.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2017-09-12 22:42:36 +02:00
<brief_description >
2022-09-07 08:25:47 +02:00
TLS stream peer.
2017-09-12 22:42:36 +02:00
</brief_description>
<description >
2022-09-07 08:25:47 +02:00
TLS stream peer. This object can be used to connect to an TLS server or accept a single TLS client connection.
2021-08-10 17:47:09 +02:00
[b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
2017-09-12 22:42:36 +02:00
</description>
<tutorials >
2022-09-07 08:25:47 +02:00
<link title= "TLS certificates" > $DOCS_URL/tutorials/networking/ssl_certificates.html</link>
2017-09-12 22:42:36 +02:00
</tutorials>
<methods >
<method name= "accept_stream" >
2021-07-30 15:28:05 +02:00
<return type= "int" enum= "Error" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "stream" type= "StreamPeer" />
<param index= "1" name= "private_key" type= "CryptoKey" />
<param index= "2" name= "certificate" type= "X509Certificate" />
<param index= "3" name= "chain" type= "X509Certificate" default= "null" />
2017-09-12 22:42:36 +02:00
<description >
2022-08-10 04:00:19 +02:00
Accepts a peer connection as a server using the given [param private_key] and providing the given [param certificate] to the client. You can pass the optional [param chain] parameter to provide additional CA chain information along with the certificate.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "connect_to_stream" >
2021-07-30 15:28:05 +02:00
<return type= "int" enum= "Error" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "stream" type= "StreamPeer" />
<param index= "1" name= "validate_certs" type= "bool" default= "false" />
<param index= "2" name= "for_hostname" type= "String" default= """" />
<param index= "3" name= "valid_certificate" type= "X509Certificate" default= "null" />
2017-09-12 22:42:36 +02:00
<description >
2022-09-07 00:46:12 +02:00
Connects to a peer using an underlying [StreamPeer] [param stream]. If [param validate_certs] is [code]true[/code], [StreamPeerTLS] will validate that the certificate presented by the peer matches the [param for_hostname].
2022-08-28 20:27:45 +02:00
[b]Note:[/b] Specifying a custom [param valid_certificate] is not supported in Web exports due to browsers restrictions.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "disconnect_from_stream" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
2017-09-12 22:42:36 +02:00
<description >
2019-06-22 01:04:47 +02:00
Disconnects from host.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "get_status" qualifiers= "const" >
2022-09-07 00:46:12 +02:00
<return type= "int" enum= "StreamPeerTLS.Status" />
2017-09-12 22:42:36 +02:00
<description >
2019-06-22 01:04:47 +02:00
Returns the status of the connection. See [enum Status] for values.
2017-09-12 22:42:36 +02:00
</description>
</method>
2022-05-24 00:07:44 +02:00
<method name= "get_stream" qualifiers= "const" >
<return type= "StreamPeer" />
<description >
Returns the underlying [StreamPeer] connection, used in [method accept_stream] or [method connect_to_stream].
</description>
</method>
2018-02-09 15:03:34 +01:00
<method name= "poll" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
2018-02-09 15:03:34 +01:00
<description >
2019-06-22 01:04:47 +02:00
Poll the connection to check for incoming bytes. Call this right before [method StreamPeer.get_available_bytes] for it to work properly.
2018-02-09 15:03:34 +01:00
</description>
</method>
2017-09-12 22:42:36 +02:00
</methods>
2018-07-26 11:56:21 +02:00
<members >
2019-06-29 12:38:01 +02:00
<member name= "blocking_handshake" type= "bool" setter= "set_blocking_handshake_enabled" getter= "is_blocking_handshake_enabled" default= "true" >
2018-07-26 11:56:21 +02:00
</member>
</members>
2017-09-12 22:42:36 +02:00
<constants >
2017-11-24 23:16:30 +01:00
<constant name= "STATUS_DISCONNECTED" value= "0" enum= "Status" >
2022-09-07 00:46:12 +02:00
A status representing a [StreamPeerTLS] that is disconnected.
2017-09-12 22:42:36 +02:00
</constant>
2018-10-07 15:52:07 +02:00
<constant name= "STATUS_HANDSHAKING" value= "1" enum= "Status" >
2022-09-07 00:46:12 +02:00
A status representing a [StreamPeerTLS] during handshaking.
2018-10-07 15:52:07 +02:00
</constant>
2018-07-26 11:56:21 +02:00
<constant name= "STATUS_CONNECTED" value= "2" enum= "Status" >
2022-09-07 00:46:12 +02:00
A status representing a [StreamPeerTLS] that is connected to a host.
2017-09-12 22:42:36 +02:00
</constant>
2018-07-26 11:56:21 +02:00
<constant name= "STATUS_ERROR" value= "3" enum= "Status" >
2022-09-07 00:46:12 +02:00
A status representing a [StreamPeerTLS] in error state.
2017-09-12 22:42:36 +02:00
</constant>
2018-07-26 11:56:21 +02:00
<constant name= "STATUS_ERROR_HOSTNAME_MISMATCH" value= "4" enum= "Status" >
2022-09-07 08:25:47 +02:00
An error status that shows a mismatch in the TLS certificate domain presented by the host and the domain requested for validation.
2017-09-12 22:42:36 +02:00
</constant>
</constants>
</class>