Overview
Comment: | Added compatibility notes to documentation |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | trunk | tls-2.0 |
Files: | files | file ages | folders |
SHA3-256: |
521ce8a625e51a78c0e4614a785b4384 |
User & Date: | bohagan on 2025-01-06 21:50:23 |
Other Links: | branch diff | manifest | tags |
Context
2025-01-06
| ||
21:50 | Added compatibility notes to documentation Leaf check-in: 521ce8a625 user: bohagan tags: trunk, tls-2.0 | |
2025-01-02
| ||
23:58 | More documentation updates in prep for 2.0 release check-in: 44384307bd user: bohagan tags: trunk, tls-2.0 | |
Changes
Modified doc/tls.html
from [c9fd94c1d7]
to [e9944a86e0].
︙ | ︙ | |||
105 106 107 108 109 110 111 | <p>tls - binding to the OpenSSL library for encrypted socket and I/O channel communications</p> </div> <div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2> <ul class="doctools_toc"> <li class="doctools_section"><a href="#toc">Table Of Contents</a></li> <li class="doctools_section"><a href="#synopsis">Synopsis</a></li> <li class="doctools_section"><a href="#section1">Description</a></li> | | | > | | | | | 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | <p>tls - binding to the OpenSSL library for encrypted socket and I/O channel communications</p> </div> <div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2> <ul class="doctools_toc"> <li class="doctools_section"><a href="#toc">Table Of Contents</a></li> <li class="doctools_section"><a href="#synopsis">Synopsis</a></li> <li class="doctools_section"><a href="#section1">Description</a></li> <li class="doctools_section"><a href="#section2">Compatibility</a></li> <li class="doctools_section"><a href="#section3">Commands</a></li> <li class="doctools_section"><a href="#section4">Certificate Validation</a> <ul> <li class="doctools_subsection"><a href="#subsection1">PKI and Certificates</a></li> <li class="doctools_subsection"><a href="#subsection2">Summary of command line options</a></li> <li class="doctools_subsection"><a href="#subsection3">When are command line options needed?</a></li> </ul> </li> <li class="doctools_section"><a href="#section5">Callback Options</a> <ul> <li class="doctools_subsection"><a href="#subsection4">Values for Command Callback</a></li> <li class="doctools_subsection"><a href="#subsection5">Values for Password Callback</a></li> <li class="doctools_subsection"><a href="#subsection6">Values for Validate Command Callback</a></li> </ul> </li> <li class="doctools_section"><a href="#section6">Debug</a></li> <li class="doctools_section"><a href="#section7">Examples</a></li> <li class="doctools_section"><a href="#section8">Special Considerations</a></li> <li class="doctools_section"><a href="#see-also">See Also</a></li> <li class="doctools_section"><a href="#keywords">Keywords</a></li> <li class="doctools_section"><a href="#category">Category</a></li> <li class="doctools_section"><a href="#copyright">Copyright</a></li> </ul> </div> <div id="synopsis" class="doctools_section"><h2><a name="synopsis">Synopsis</a></h2> |
︙ | ︙ | |||
159 160 161 162 163 164 165 | using the Transport Layer Security (TLS) protocol. It provides a generic binding to <a href="https://www.openssl.org/">OpenSSL</a>, utilizing the <b class="syscmd">Tcl_StackChannel</b> API in TCL 8.4 and higher. These sockets behave exactly the same as channels created using the built-in <b class="syscmd">socket</b> command, but provide additional options for controlling the SSL/TLS session.</p> </div> | | > > > > | | 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | using the Transport Layer Security (TLS) protocol. It provides a generic binding to <a href="https://www.openssl.org/">OpenSSL</a>, utilizing the <b class="syscmd">Tcl_StackChannel</b> API in TCL 8.4 and higher. These sockets behave exactly the same as channels created using the built-in <b class="syscmd">socket</b> command, but provide additional options for controlling the SSL/TLS session.</p> </div> <div id="section2" class="doctools_section"><h2><a name="section2">Compatibility</a></h2> <p>This extension is compatible with OpenSSL 1.1.1 or later. It requires Tcl version 8.5 or later and will work with Tcl 9.0.</p> </div> <div id="section3" class="doctools_section"><h2><a name="section3">Commands</a></h2> <p>The following are the commands provided by the TcLTLS package. See the <span class="sectref"><a href="#section7">Examples</a></span> for example usage and the "<b class="file">demos</b>" directory for more example usage.</p> <dl class="doctools_definitions"> <dt><a name="1"><b class="cmd">tls::init</b> <span class="opt">?<i class="arg">-option</i>?</span> <span class="opt">?<i class="arg">value</i>?</span> <span class="opt">?<i class="arg">-option value ...</i>?</span></a></dt> <dd><p>Optional function to set the default options used by <b class="cmd">tls::socket</b>. If you call <b class="cmd">tls::import</b> directly, the values set by this command have no effect. This command supports all of the same options as the <b class="cmd">tls::socket</b> command, though you should limit your options to only TLS related ones.</p></dd> |
︙ | ︙ | |||
199 200 201 202 203 204 205 | <dd><p>List of protocols to offer during Application-Layer Protocol Negotiation (ALPN). For example: <b class="const">h2</b> and <b class="const">http/1.1</b>, but not <b class="const">h3</b> or <b class="const">quic</b>. This option is new for TclTLS 1.8.</p></dd> <dt><b class="option">-cadir</b> <i class="arg">directory</i></dt> <dd><p>Specifies the directory where the Certificate Authority (CA) certificates are stored. The default is platform specific and can be set at compile time. The default location can be overridden by the <b class="variable">SSL_CERT_DIR</b> environment | | | | | 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 | <dd><p>List of protocols to offer during Application-Layer Protocol Negotiation (ALPN). For example: <b class="const">h2</b> and <b class="const">http/1.1</b>, but not <b class="const">h3</b> or <b class="const">quic</b>. This option is new for TclTLS 1.8.</p></dd> <dt><b class="option">-cadir</b> <i class="arg">directory</i></dt> <dd><p>Specifies the directory where the Certificate Authority (CA) certificates are stored. The default is platform specific and can be set at compile time. The default location can be overridden by the <b class="variable">SSL_CERT_DIR</b> environment variable. See <span class="sectref"><a href="#section4">Certificate Validation</a></span> for more details.</p></dd> <dt><b class="option">-cafile</b> <i class="arg">filename</i></dt> <dd><p>Specifies the file with the Certificate Authority (CA) certificates to use in <b class="const">PEM</b> file format. The default is "<b class="file">cert.pem</b>", in the OpenSSL directory. The default file can be overridden by the <b class="variable">SSL_CERT_FILE</b> environment variable. See <span class="sectref"><a href="#section4">Certificate Validation</a></span> for more details.</p></dd> <dt><b class="option">-castore</b> <i class="arg">URI</i></dt> <dd><p>Specifies the Uniform Resource Identifier (URI) for the Certificate Authority (CA) store, which may be a single container or a catalog of containers. Starting with OpenSSL 3.2 on MS Windows, set to "<b class="const">org.openssl.winstore://</b>" to use the built-in MS Windows Certificate Store. See <span class="sectref"><a href="#section4">Certificate Validation</a></span> for more details. This option is new for TclTLS 1.8.</p></dd> <dt><b class="option">-certfile</b> <i class="arg">filename</i></dt> <dd><p>Specifies the name of the file with the certificate to use in PEM format as the local (client or server) certificate. It also contains the public key.</p></dd> <dt><b class="option">-cert</b> <i class="arg">string</i></dt> <dd><p>Specifies the certificate to use as a DER encoded string (X.509 DER).</p></dd> <dt><b class="option">-cipher</b> <i class="arg">string</i></dt> |
︙ | ︙ | |||
237 238 239 240 241 242 243 | "<b class="const">:</b>" separated list of cipher suite names. See the <a href="https://docs.openssl.org/master/man1/openssl-ciphers/#options">OpenSSL</a> documentation for the full list of valid values. This option is new for TclTLS 1.8.</p></dd> <dt><b class="option">-command</b> <i class="arg">callback</i></dt> <dd><p>Specifies the callback command to be invoked at several points during the handshake to pass errors, tracing information, and protocol messages. | | | | | | 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 | "<b class="const">:</b>" separated list of cipher suite names. See the <a href="https://docs.openssl.org/master/man1/openssl-ciphers/#options">OpenSSL</a> documentation for the full list of valid values. This option is new for TclTLS 1.8.</p></dd> <dt><b class="option">-command</b> <i class="arg">callback</i></dt> <dd><p>Specifies the callback command to be invoked at several points during the handshake to pass errors, tracing information, and protocol messages. See <span class="sectref"><a href="#section5">Callback Options</a></span> for more info.</p></dd> <dt><b class="option">-dhparams</b> <i class="arg">filename</i></dt> <dd><p>Specifies the Diffie-Hellman (DH) parameters file.</p></dd> <dt><b class="option">-keyfile</b> <i class="arg">filename</i></dt> <dd><p>Specifies the private key file. The default is to use the file specified by the <i class="arg">-certfile</i> option.</p></dd> <dt><b class="option">-key</b> <i class="arg">string</i></dt> <dd><p>Specifies the private key to use as a DER encoded string (PKCS#1 DER).</p></dd> <dt><b class="option">-model</b> <i class="arg">channel</i></dt> <dd><p>Force this channel to share the same <i class="term">SSL_CTX</i> structure as the specified <i class="arg">channel</i>, and therefore share config, callbacks, etc.</p></dd> <dt><b class="option">-password</b> <i class="arg">callback</i></dt> <dd><p>Specifies the callback command to invoke when OpenSSL needs to obtain a password. This is typically used to unlock the private key of a certificate. The callback should return a password string. This option has changed for TclTLS 1.8. See <span class="sectref"><a href="#section5">Callback Options</a></span> for more info.</p></dd> <dt><b class="option">-post_handshake</b> <i class="arg">bool</i></dt> <dd><p>Allow post-handshake session ticket updates. This option is new for TclTLS 1.8.</p></dd> <dt><b class="option">-request</b> <i class="arg">bool</i></dt> <dd><p>Request a certificate from the peer during the SSL handshake. This is needed to do Certificate Validation. Starting in TclTLS 1.8, the default is <b class="const">true</b>. Starting in TclTLS 2.0, If set to <b class="const">false</b> and <b class="option">-require</b> is <b class="const">true</b>, then this will be overridden to <b class="const">true</b>. See <span class="sectref"><a href="#section4">Certificate Validation</a></span> for more details.</p></dd> <dt><b class="option">-require</b> <i class="arg">bool</i></dt> <dd><p>Require a valid certificate from the peer during the SSL handshake. If this is set to true, then <b class="option">-request</b> must also be set to true and a either <b class="option">-cadir</b>, <b class="option">-cafile</b>, <b class="option">-castore</b>, or a platform default must be provided in order to validate against. The default in TclTLS 1.8 and earlier versions is <b class="const">false</b> since not all platforms have certificates to validate against in a form compatible with OpenSSL. Starting in TclTLS 2.0, the default is <b class="const">true</b>. See <span class="sectref"><a href="#section4">Certificate Validation</a></span> for more details.</p></dd> <dt><b class="option">-security_level</b> <i class="arg">integer</i></dt> <dd><p>Specifies the security level (value from 0 to 5). The security level affects the allowed cipher suite encryption algorithms, supported ECC curves, supported signature algorithms, DH parameter sizes, certificate key sizes and signature algorithms. The default is 1 prior to OpenSSL 3.2 and 2 thereafter. Level 3 and higher disable support for session tickets and only accept cipher suites that provide forward secrecy. |
︙ | ︙ | |||
315 316 317 318 319 320 321 | <dd><p>Enable use of TLS v1.3. The default is <b class="const">true</b>. This is only available starting with OpenSSL 1.1.1 and TclTLS 1.7.</p></dd> <dt><b class="option">-validatecommand</b> <i class="arg">callback</i></dt> <dd><p>Specifies the callback command to invoke to validate the peer certificates and other config info during the protocol negotiation phase. This can be used by TCL scripts to perform their own Certificate Validation to supplement the default validation provided by OpenSSL. The script must return a boolean true | | | 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 | <dd><p>Enable use of TLS v1.3. The default is <b class="const">true</b>. This is only available starting with OpenSSL 1.1.1 and TclTLS 1.7.</p></dd> <dt><b class="option">-validatecommand</b> <i class="arg">callback</i></dt> <dd><p>Specifies the callback command to invoke to validate the peer certificates and other config info during the protocol negotiation phase. This can be used by TCL scripts to perform their own Certificate Validation to supplement the default validation provided by OpenSSL. The script must return a boolean true to continue the negotiation. See <span class="sectref"><a href="#section5">Callback Options</a></span> for more info. This option is new for TclTLS 1.8.</p></dd> </dl></dd> <dt><a name="5"><b class="cmd">tls::unimport</b> <i class="arg">channel</i></a></dt> <dd><p>Compliment to <b class="cmd">tls::import</b>. Used to remove the top level stacked channel from <i class="arg">channel</i>. This unstacks the encryption of a regular TCL channel. An error is thrown if TLS is not the top stacked channel type.</p></dd> <dt><a name="6"><b class="cmd">tls::handshake</b> <i class="arg">channel</i></a></dt> |
︙ | ︙ | |||
536 537 538 539 540 541 542 | <b class="const">ssl2</b>, <b class="const">ssl3</b>, <b class="const">tls1</b>, <b class="const">tls1.1</b>, <b class="const">tls1.2</b>, and <b class="const">tls1.3</b>. Exact list depends on OpenSSL version and compile time flags. This command is new for TclTLS 1.8.</p></dd> <dt><a name="11"><b class="cmd">tls::version</b></a></dt> <dd><p>Returns the OpenSSL version string.</p></dd> </dl> </div> | | | 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 | <b class="const">ssl2</b>, <b class="const">ssl3</b>, <b class="const">tls1</b>, <b class="const">tls1.1</b>, <b class="const">tls1.2</b>, and <b class="const">tls1.3</b>. Exact list depends on OpenSSL version and compile time flags. This command is new for TclTLS 1.8.</p></dd> <dt><a name="11"><b class="cmd">tls::version</b></a></dt> <dd><p>Returns the OpenSSL version string.</p></dd> </dl> </div> <div id="section4" class="doctools_section"><h2><a name="section4">Certificate Validation</a></h2> <div id="subsection1" class="doctools_subsection"><h3><a name="subsection1">PKI and Certificates</a></h3> <p>Using the Public Key Infrastructure (PKI), each user creates a private key that only they know about and a public key they can exchange with others for use in encrypting and decrypting data. The process is the sender encrypts their data using their private key and the receiver's public key. The data is then sent to the receiver. In a similar manner, the receiver uses their private key and the sender's public key to decrypt the data. This provides data integrity, to |
︙ | ︙ | |||
585 586 587 588 589 590 591 | <dt><b class="option">-castore</b> <i class="arg">URI</i></dt> <dd><p>Specifies the Uniform Resource Identifier (URI) for the Certificate Authority (CA) store, which may be a single container or a catalog of containers. Starting with OpenSSL 3.2 on MS Windows, set to "<b class="const">org.openssl.winstore://</b>" to use the built-in MS Windows Certificate Store. Starting in TclTLS 2.0, this is the default if <b class="option">-cadir</b>, <b class="option">-cadir</b>, and <b class="option">-castore</b> are not specified. This store only supports root certificate stores. See | | | 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 | <dt><b class="option">-castore</b> <i class="arg">URI</i></dt> <dd><p>Specifies the Uniform Resource Identifier (URI) for the Certificate Authority (CA) store, which may be a single container or a catalog of containers. Starting with OpenSSL 3.2 on MS Windows, set to "<b class="const">org.openssl.winstore://</b>" to use the built-in MS Windows Certificate Store. Starting in TclTLS 2.0, this is the default if <b class="option">-cadir</b>, <b class="option">-cadir</b>, and <b class="option">-castore</b> are not specified. This store only supports root certificate stores. See <span class="sectref"><a href="#section4">Certificate Validation</a></span> for more details.</p></dd> <dt><b class="option">-request</b> <i class="arg">bool</i></dt> <dd><p>Request a certificate from the peer during the SSL handshake. This is needed to do Certificate Validation. Starting in TclTLS 1.8, the default is <b class="const">true</b>. Starting in TclTLS 2.0, If set to <b class="const">false</b> and <b class="option">-require</b> is <b class="const">true</b>, then this will be overridden to <b class="const">true</b>. In addition, the client can manually inspect and accept or reject each certificate using the <i class="arg">-validatecommand</i> option.</p></dd> |
︙ | ︙ | |||
638 639 640 641 642 643 644 | from Mozilla</a> in the "<b class="file">cacert.pem</b>" file. You must then either set the <b class="variable">SSL_CERT_DIR</b> and/or <b class="variable">SSL_CERT_FILE</b> environment variables or the <b class="option">-cadir</b> or <b class="option">-cafile</b> options to the CA cert file's install location. It is your responsibility to keep this file up to date.</p></li> </ul> </div> </div> | | | 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 | from Mozilla</a> in the "<b class="file">cacert.pem</b>" file. You must then either set the <b class="variable">SSL_CERT_DIR</b> and/or <b class="variable">SSL_CERT_FILE</b> environment variables or the <b class="option">-cadir</b> or <b class="option">-cafile</b> options to the CA cert file's install location. It is your responsibility to keep this file up to date.</p></li> </ul> </div> </div> <div id="section5" class="doctools_section"><h2><a name="section5">Callback Options</a></h2> <p>As previously described, each channel can be given their own callbacks to handle intermediate processing by the OpenSSL library, using the <b class="option">-command</b>, <b class="option">-password</b>, and <b class="option">-validate_command</b> options passed to either of <b class="cmd">tls::socket</b> or <b class="cmd">tls::import</b>. Unlike previous versions of TclTLS, only if the callback generates an error, will the <b class="syscmd">bgerror</b> command be invoked with the error information.</p> <div id="subsection4" class="doctools_subsection"><h3><a name="subsection4">Values for Command Callback</a></h3> |
︙ | ︙ | |||
796 797 798 799 800 801 802 | attempting to call <b class="cmd">tls::password</b>. The difference between these two behaviors is a consequence of maintaining compatibility with earlier implementations.</p> <p><em>The use of the reference callbacks <b class="cmd">tls::callback</b>, <b class="cmd">tls::password</b>, and <b class="cmd">tls::validate_command</b> is not recommended. They may be removed from future releases.</em></p> </div> </div> | | | | | 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 | attempting to call <b class="cmd">tls::password</b>. The difference between these two behaviors is a consequence of maintaining compatibility with earlier implementations.</p> <p><em>The use of the reference callbacks <b class="cmd">tls::callback</b>, <b class="cmd">tls::password</b>, and <b class="cmd">tls::validate_command</b> is not recommended. They may be removed from future releases.</em></p> </div> </div> <div id="section6" class="doctools_section"><h2><a name="section6">Debug</a></h2> <p>For most debugging needs, the <b class="option">-callback</b> option can be used to provide sufficient insight and information on the TLS handshake and progress. If further troubleshooting insight is needed, the compile time option <b class="option">--enable-debug</b> can be used to get detailed execution flow status.</p> <p>TLS key logging can be enabled by setting the environment variable <b class="variable">SSLKEYLOGFILE</b> to the name of the file to log to. Then whenever TLS key material is generated or received it will be logged to the file. This is useful for logging key data for network logging tools to use to decrypt the data.</p> <p>The <b class="variable">tls::debug</b> variable provides some additional control over the debug logging in the <b class="cmd">tls::callback</b>, <b class="cmd">tls::password</b>, and <b class="cmd">tls::validate_command</b> default handlers in "<b class="file">tls.tcl</b>". The default value is 0 with higher values producing more diagnostic output, and will also force the verify method in <b class="cmd">tls::callback</b> to accept the certificate, even if it is invalid when the <b class="option">-validatecommand</b> option is set to <b class="cmd">tls::validate_command</b>.</p> <p><em>The use of the variable <b class="variable">tls::debug</b> is not recommended. It may be removed from future releases.</em></p> </div> <div id="section7" class="doctools_section"><h2><a name="section7">Examples</a></h2> <p>The following are example scripts to download a webpage and file using the http package. See <span class="sectref"><a href="#section4">Certificate Validation</a></span> for when the <b class="option">-cadir</b>, <b class="option">-cafile</b>, and <b class="option">-castore</b> options are also needed. See the "<b class="file">demos</b>" directory for more example scripts.</p> <p>Example #1: Download a web page</p> <pre class="doctools_example"> package require http package require tls set url "https://www.tcl.tk/" |
︙ | ︙ | |||
859 860 861 862 863 864 865 | puts [format "Error %s" [http::status $token]] } # Cleanup close $ch ::http::cleanup $token </pre> </div> | | | 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 | puts [format "Error %s" [http::status $token]] } # Cleanup close $ch ::http::cleanup $token </pre> </div> <div id="section8" class="doctools_section"><h2><a name="section8">Special Considerations</a></h2> <p>The capabilities of this package can vary enormously based upon how the linked to OpenSSL library was configured and built. New versions may obsolete older protocol versions, add or remove ciphers, change default values, etc. Use the <b class="cmd">tls::protocols</b> commands to obtain the supported protocol versions.</p> </div> <div id="see-also" class="doctools_section"><h2><a name="see-also">See Also</a></h2> |
︙ | ︙ |
Modified doc/tls.man
from [7a05667529]
to [37ce4f22b4].
︙ | ︙ | |||
20 21 22 23 24 25 26 27 28 29 30 31 32 33 | using the Transport Layer Security (TLS) protocol. It provides a generic binding to [uri "https://www.openssl.org/" OpenSSL], utilizing the [syscmd Tcl_StackChannel] API in TCL 8.4 and higher. These sockets behave exactly the same as channels created using the built-in [syscmd socket] command, but provide additional options for controlling the SSL/TLS session. [section Commands] The following are the commands provided by the TcLTLS package. See the [sectref Examples] for example usage and the [file demos] directory for more example usage. [list_begin definitions] | > > > > | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | using the Transport Layer Security (TLS) protocol. It provides a generic binding to [uri "https://www.openssl.org/" OpenSSL], utilizing the [syscmd Tcl_StackChannel] API in TCL 8.4 and higher. These sockets behave exactly the same as channels created using the built-in [syscmd socket] command, but provide additional options for controlling the SSL/TLS session. [section Compatibility] This extension is compatible with OpenSSL 1.1.1 or later. It requires Tcl version 8.5 or later and will work with Tcl 9.0. [section Commands] The following are the commands provided by the TcLTLS package. See the [sectref Examples] for example usage and the [file demos] directory for more example usage. [list_begin definitions] |
︙ | ︙ |
Modified doc/tls.n
from [0dd71cc825]
to [ee7dcb7e9d].
︙ | ︙ | |||
307 308 309 310 311 312 313 314 315 316 317 318 319 320 | This extension provides TCL script access to secure socket communications using the Transport Layer Security (TLS) protocol\&. It provides a generic binding to \fIOpenSSL\fR [https://www\&.openssl\&.org/], utilizing the \fBTcl_StackChannel\fR API in TCL 8\&.4 and higher\&. These sockets behave exactly the same as channels created using the built-in \fBsocket\fR command, but provide additional options for controlling the SSL/TLS session\&. .SH COMMANDS The following are the commands provided by the TcLTLS package\&. See the \fBExamples\fR for example usage and the "\fIdemos\fR" directory for more example usage\&. .TP \fBtls::init\fR ?\fI-option\fR? ?\fIvalue\fR? ?\fI-option value \&.\&.\&.\fR? Optional function to set the default options used by \fBtls::socket\fR\&. If you | > > > | 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 | This extension provides TCL script access to secure socket communications using the Transport Layer Security (TLS) protocol\&. It provides a generic binding to \fIOpenSSL\fR [https://www\&.openssl\&.org/], utilizing the \fBTcl_StackChannel\fR API in TCL 8\&.4 and higher\&. These sockets behave exactly the same as channels created using the built-in \fBsocket\fR command, but provide additional options for controlling the SSL/TLS session\&. .SH COMPATIBILITY This extension is compatible with OpenSSL 1\&.1\&.1 or later\&. It requires Tcl version 8\&.5 or later and will work with Tcl 9\&.0\&. .SH COMMANDS The following are the commands provided by the TcLTLS package\&. See the \fBExamples\fR for example usage and the "\fIdemos\fR" directory for more example usage\&. .TP \fBtls::init\fR ?\fI-option\fR? ?\fIvalue\fR? ?\fI-option value \&.\&.\&.\fR? Optional function to set the default options used by \fBtls::socket\fR\&. If you |
︙ | ︙ |