0000: 3c 21 44 4f 43 54 59 50 45 20 68 74 6d 6c 3e 0a <!DOCTYPE html>.
0010: 3c 68 74 6d 6c 20 6c 61 6e 67 3d 22 65 6e 22 3e <html lang="en">
0020: 0a 3c 68 65 61 64 3e 0a 3c 6d 65 74 61 20 68 74 .<head>.<meta ht
0030: 74 70 2d 65 71 75 69 76 3d 22 43 6f 6e 74 65 6e tp-equiv="Conten
0040: 74 2d 54 79 70 65 22 20 63 6f 6e 74 65 6e 74 3d t-Type" content=
0050: 22 74 65 78 74 2f 68 74 6d 6c 3b 20 63 68 61 72 "text/html; char
0060: 73 65 74 3d 75 74 66 2d 38 22 3e 0a 3c 6d 65 74 set=utf-8">.<met
0070: 61 20 6e 61 6d 65 3d 22 43 6f 70 79 72 69 67 68 a name="Copyrigh
0080: 74 22 20 63 6f 6e 74 65 6e 74 3d 22 31 39 39 39 t" content="1999
0090: 20 4d 61 74 74 20 4e 65 77 6d 61 6e 20 2f 20 32 Matt Newman / 2
00a0: 30 30 34 20 53 74 61 72 66 69 73 68 20 53 79 73 004 Starfish Sys
00b0: 74 65 6d 73 22 3e 0a 3c 74 69 74 6c 65 3e 54 4c tems">.<title>TL
00c0: 53 20 28 53 53 4c 29 20 54 43 4c 20 43 6f 6d 6d S (SSL) TCL Comm
00d0: 61 6e 64 73 3c 2f 74 69 74 6c 65 3e 0a 3c 6c 69 ands</title>.<li
00e0: 6e 6b 20 72 65 6c 3d 22 73 74 79 6c 65 73 68 65 nk rel="styleshe
00f0: 65 74 22 20 68 72 65 66 3d 22 64 6f 63 73 2e 63 et" href="docs.c
0100: 73 73 22 20 74 79 70 65 3d 22 74 65 78 74 2f 63 ss" type="text/c
0110: 73 73 22 20 6d 65 64 69 61 3d 22 61 6c 6c 22 3e ss" media="all">
0120: 0a 3c 2f 68 65 61 64 3e 0a 0a 3c 62 6f 64 79 20 .</head>..<body
0130: 63 6c 61 73 73 3d 22 76 73 63 2d 69 6e 69 74 69 class="vsc-initi
0140: 61 6c 69 7a 65 64 22 3e 0a 0a 3c 68 32 3e 54 43 alized">..<h2>TC
0150: 4c 20 54 6c 73 20 45 78 74 65 6e 73 69 6f 6e 20 L Tls Extension
0160: 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 68 Documentation</h
0170: 32 3e 0a 0a 3c 64 6c 3e 0a 20 20 20 20 3c 64 64 2>..<dl>. <dd
0180: 3e 3c 61 20 68 72 65 66 3d 22 23 4e 41 4d 45 22 ><a href="#NAME"
0190: 3e 4e 41 4d 45 3c 2f 61 3e 0a 20 20 20 20 3c 64 >NAME</a>. <d
01a0: 6c 3e 0a 09 3c 64 64 3e 3c 62 3e 74 6c 73 3c 2f l>..<dd><b>tls</
01b0: 62 3e 20 2d 20 62 69 6e 64 69 6e 67 20 74 6f 20 b> - binding to
01c0: 3c 62 3e 4f 70 65 6e 53 53 4c 3c 2f 62 3e 20 6c <b>OpenSSL</b> l
01d0: 69 62 72 61 72 79 0a 09 66 6f 72 20 65 6e 63 72 ibrary..for encr
01e0: 79 70 74 65 64 20 73 6f 63 6b 65 74 20 61 6e 64 ypted socket and
01f0: 20 49 2f 4f 20 63 68 61 6e 6e 65 6c 20 63 6f 6d I/O channel com
0200: 6d 75 6e 69 63 61 74 69 6f 6e 73 2e 3c 2f 64 64 munications.</dd
0210: 3e 0a 20 20 20 20 3c 2f 64 6c 3e 0a 20 20 20 20 >. </dl>.
0220: 3c 2f 64 64 3e 0a 20 20 20 20 3c 64 64 3e 3c 61 </dd>. <dd><a
0230: 20 68 72 65 66 3d 22 23 53 59 4e 4f 50 53 49 53 href="#SYNOPSIS
0240: 22 3e 53 59 4e 4f 50 53 49 53 3c 2f 61 3e 20 3c ">SYNOPSIS</a> <
0250: 2f 64 64 3e 0a 20 20 20 20 3c 64 64 3e 3c 64 6c /dd>. <dd><dl
0260: 3e 0a 09 3c 64 64 3e 3c 62 3e 70 61 63 6b 61 67 >..<dd><b>packag
0270: 65 20 72 65 71 75 69 72 65 20 54 63 6c 3c 2f 62 e require Tcl</b
0280: 3e 20 3c 65 6d 3e 3f 3c 62 3e 38 2e 35 2d 3c 2f > <em>?<b>8.5-</
0290: 62 3e 3f 3c 2f 65 6d 3e 3c 2f 64 64 3e 0a 09 3c b>?</em></dd>..<
02a0: 64 64 3e 3c 62 3e 70 61 63 6b 61 67 65 20 72 65 dd><b>package re
02b0: 71 75 69 72 65 20 74 6c 73 3c 2f 62 3e 20 3c 65 quire tls</b> <e
02c0: 6d 3e 3f 3c 62 3e 31 2e 38 2d 3c 2f 62 3e 3f 3c m>?<b>1.8-</b>?<
02d0: 2f 65 6d 3e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 26 /em></dd>..<dt>&
02e0: 6e 62 73 70 3b 3c 2f 64 74 3e 0a 09 3c 64 64 3e nbsp;</dt>..<dd>
02f0: 3c 62 3e 74 6c 73 3a 3a 69 6e 69 74 3c 2f 62 3e <b>tls::init</b>
0300: 20 3c 65 6d 3e 3f 6f 70 74 69 6f 6e 73 3f 3c 2f <em>?options?</
0310: 65 6d 3e 20 3c 2f 64 64 3e 0a 09 3c 64 64 3e 3c em> </dd>..<dd><
0320: 62 3e 74 6c 73 3a 3a 73 6f 63 6b 65 74 3c 2f 62 b>tls::socket</b
0330: 3e 20 3c 65 6d 3e 3f 6f 70 74 69 6f 6e 73 3f 20 > <em>?options?
0340: 68 6f 73 74 20 70 6f 72 74 3c 2f 65 6d 3e 3c 2f host port</em></
0350: 64 64 3e 0a 09 3c 64 64 3e 3c 62 3e 74 6c 73 3a dd>..<dd><b>tls:
0360: 3a 73 6f 63 6b 65 74 3c 2f 62 3e 20 3c 65 6d 3e :socket</b> <em>
0370: 3f 2d 73 65 72 76 65 72 20 63 6f 6d 6d 61 6e 64 ?-server command
0380: 3f 20 3f 6f 70 74 69 6f 6e 73 3f 20 70 6f 72 74 ? ?options? port
0390: 3c 2f 65 6d 3e 3c 2f 64 64 3e 0a 09 3c 64 64 3e </em></dd>..<dd>
03a0: 3c 62 3e 74 6c 73 3a 3a 68 61 6e 64 73 68 61 6b <b>tls::handshak
03b0: 65 3c 2f 62 3e 20 3c 65 6d 3e 20 63 68 61 6e 6e e</b> <em> chann
03c0: 65 6c 3c 2f 65 6d 3e 3c 2f 64 64 3e 0a 09 3c 64 el</em></dd>..<d
03d0: 64 3e 3c 62 3e 74 6c 73 3a 3a 73 74 61 74 75 73 d><b>tls::status
03e0: 3c 2f 62 3e 20 3c 65 6d 3e 3f 2d 6c 6f 63 61 6c </b> <em>?-local
03f0: 3f 20 63 68 61 6e 6e 65 6c 3c 2f 65 6d 3e 3c 2f ? channel</em></
0400: 64 64 3e 0a 09 3c 64 64 3e 3c 62 3e 74 6c 73 3a dd>..<dd><b>tls:
0410: 3a 63 6f 6e 6e 65 63 74 69 6f 6e 3c 2f 62 3e 20 :connection</b>
0420: 3c 65 6d 3e 63 68 61 6e 6e 65 6c 3c 2f 65 6d 3e <em>channel</em>
0430: 3c 2f 64 64 3e 0a 09 3c 64 64 3e 3c 62 3e 74 6c </dd>..<dd><b>tl
0440: 73 3a 3a 69 6d 70 6f 72 74 3c 2f 62 3e 20 3c 65 s::import</b> <e
0450: 6d 3e 63 68 61 6e 6e 65 6c 20 3f 6f 70 74 69 6f m>channel ?optio
0460: 6e 73 3f 3c 2f 65 6d 3e 3c 2f 64 64 3e 0a 09 3c ns?</em></dd>..<
0470: 64 64 3e 3c 62 3e 74 6c 73 3a 3a 75 6e 69 6d 70 dd><b>tls::unimp
0480: 6f 72 74 3c 2f 62 3e 20 3c 65 6d 3e 63 68 61 6e ort</b> <em>chan
0490: 6e 65 6c 3c 2f 65 6d 3e 3c 2f 64 64 3e 0a 09 3c nel</em></dd>..<
04a0: 64 74 3e 26 6e 62 73 70 3b 3c 2f 64 74 3e 0a 09 dt> </dt>..
04b0: 3c 64 64 3e 3c 62 3e 74 6c 73 3a 3a 63 69 70 68 <dd><b>tls::ciph
04c0: 65 72 73 3c 2f 62 3e 20 3c 65 6d 3e 3f 70 72 6f ers</b> <em>?pro
04d0: 74 6f 63 6f 6c 3f 20 3f 76 65 72 62 6f 73 65 3f tocol? ?verbose?
04e0: 20 3f 73 75 70 70 6f 72 74 65 64 3f 3c 2f 65 6d ?supported?</em
04f0: 3e 3c 2f 64 64 3e 0a 09 3c 64 64 3e 3c 62 3e 74 ></dd>..<dd><b>t
0500: 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 3c 2f 62 ls::protocols</b
0510: 3e 3c 2f 64 64 3e 0a 09 3c 64 64 3e 3c 62 3e 74 ></dd>..<dd><b>t
0520: 6c 73 3a 3a 76 65 72 73 69 6f 6e 3c 2f 62 3e 3c ls::version</b><
0530: 2f 64 64 3e 0a 20 20 20 20 3c 2f 64 6c 3e 3c 2f /dd>. </dl></
0540: 64 64 3e 0a 20 20 20 20 3c 64 64 3e 3c 61 20 68 dd>. <dd><a h
0550: 72 65 66 3d 22 23 43 4f 4d 4d 41 4e 44 53 22 3e ref="#COMMANDS">
0560: 43 4f 4d 4d 41 4e 44 53 3c 2f 61 3e 3c 2f 64 64 COMMANDS</a></dd
0570: 3e 0a 20 20 20 20 3c 64 64 3e 3c 61 20 68 72 65 >. <dd><a hre
0580: 66 3d 22 23 43 45 52 54 49 46 49 43 41 54 45 20 f="#CERTIFICATE
0590: 56 41 4c 49 44 41 54 49 4f 4e 22 3e 43 45 52 54 VALIDATION">CERT
05a0: 49 46 49 43 41 54 45 20 56 41 4c 49 44 41 54 49 IFICATE VALIDATI
05b0: 4f 4e 3c 2f 61 3e 3c 2f 64 64 3e 0a 20 20 20 20 ON</a></dd>.
05c0: 3c 64 64 3e 3c 61 20 68 72 65 66 3d 22 23 43 41 <dd><a href="#CA
05d0: 4c 4c 42 41 43 4b 20 4f 50 54 49 4f 4e 53 22 3e LLBACK OPTIONS">
05e0: 43 41 4c 4c 42 41 43 4b 20 4f 50 54 49 4f 4e 53 CALLBACK OPTIONS
05f0: 3c 2f 61 3e 3c 2f 64 64 3e 0a 20 20 20 20 3c 64 </a></dd>. <d
0600: 64 3e 3c 61 20 68 72 65 66 3d 22 23 44 45 42 55 d><a href="#DEBU
0610: 47 22 3e 44 45 42 55 47 3c 2f 61 3e 3c 2f 64 64 G">DEBUG</a></dd
0620: 3e 0a 20 20 20 20 3c 64 64 3e 3c 61 20 68 72 65 >. <dd><a hre
0630: 66 3d 22 23 48 54 54 50 53 20 45 58 41 4d 50 4c f="#HTTPS EXAMPL
0640: 45 22 3e 48 54 54 50 53 20 45 58 41 4d 50 4c 45 E">HTTPS EXAMPLE
0650: 3c 2f 61 3e 3c 2f 64 64 3e 0a 20 20 20 20 3c 64 </a></dd>. <d
0660: 64 3e 3c 61 20 68 72 65 66 3d 22 23 53 50 45 43 d><a href="#SPEC
0670: 49 41 4c 20 43 4f 4e 53 49 44 45 52 41 54 49 4f IAL CONSIDERATIO
0680: 4e 53 22 3e 53 50 45 43 49 41 4c 20 43 4f 4e 53 NS">SPECIAL CONS
0690: 49 44 45 52 41 54 49 4f 4e 53 3c 2f 61 3e 3c 2f IDERATIONS</a></
06a0: 64 64 3e 0a 20 20 20 20 3c 64 64 3e 3c 61 20 68 dd>. <dd><a h
06b0: 72 65 66 3d 22 23 53 45 45 20 41 4c 53 4f 22 3e ref="#SEE ALSO">
06c0: 53 45 45 20 41 4c 53 4f 3c 2f 61 3e 3c 2f 64 64 SEE ALSO</a></dd
06d0: 3e 0a 3c 2f 64 6c 3e 0a 3c 62 72 3e 0a 0a 3c 68 >.</dl>.<br>..<h
06e0: 72 3e 0a 0a 3c 68 33 3e 3c 61 20 6e 61 6d 65 3d r>..<h3><a name=
06f0: 22 4e 41 4d 45 22 3e 4e 41 4d 45 3c 2f 61 3e 3c "NAME">NAME</a><
0700: 2f 68 33 3e 0a 0a 3c 70 3e 3c 73 74 72 6f 6e 67 /h3>..<p><strong
0710: 3e 74 6c 73 3c 2f 73 74 72 6f 6e 67 3e 20 2d 20 >tls</strong> -
0720: 62 69 6e 64 69 6e 67 20 74 6f 20 3c 73 74 72 6f binding to <stro
0730: 6e 67 3e 4f 70 65 6e 53 53 4c 3c 2f 73 74 72 6f ng>OpenSSL</stro
0740: 6e 67 3e 20 6c 69 62 72 61 72 79 0a 66 6f 72 20 ng> library.for
0750: 65 6e 63 72 79 70 74 65 64 20 73 6f 63 6b 65 74 encrypted socket
0760: 20 61 6e 64 20 49 2f 4f 20 63 68 61 6e 6e 65 6c and I/O channel
0770: 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 73 2e communications.
0780: 3c 2f 70 3e 0a 3c 62 72 3e 0a 0a 3c 68 72 3e 0a </p>.<br>..<hr>.
0790: 0a 3c 68 33 3e 3c 61 20 6e 61 6d 65 3d 22 53 59 .<h3><a name="SY
07a0: 4e 4f 50 53 49 53 22 3e 53 59 4e 4f 50 53 49 53 NOPSIS">SYNOPSIS
07b0: 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 3c 70 3e 3c 62 </a></h3>..<p><b
07c0: 3e 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 >package require
07d0: 20 54 63 6c 3c 2f 62 3e 20 3c 65 6d 3e 3f 3c 62 Tcl</b> <em>?<b
07e0: 3e 38 2e 35 2d 3c 2f 62 3e 3f 3c 2f 65 6d 3e 3c >8.5-</b>?</em><
07f0: 62 72 3e 0a 3c 62 3e 70 61 63 6b 61 67 65 20 72 br>.<b>package r
0800: 65 71 75 69 72 65 20 74 6c 73 3c 2f 62 3e 20 3c equire tls</b> <
0810: 65 6d 3e 3f 3c 62 3e 31 2e 38 2d 3c 2f 62 3e 3f em>?<b>1.8-</b>?
0820: 3c 2f 65 6d 3e 3c 62 72 3e 0a 3c 62 72 3e 0a 3c </em><br>.<br>.<
0830: 61 20 68 72 65 66 3d 22 23 74 6c 73 3a 3a 69 6e a href="#tls::in
0840: 69 74 22 3e 3c 62 3e 74 6c 73 3a 3a 69 6e 69 74 it"><b>tls::init
0850: 3c 2f 62 3e 20 3c 69 3e 3f 6f 70 74 69 6f 6e 73 </b> <i>?options
0860: 3f 3c 2f 69 3e 3c 2f 61 3e 3c 62 72 3e 0a 3c 61 ?</i></a><br>.<a
0870: 20 68 72 65 66 3d 22 23 74 6c 73 3a 3a 73 6f 63 href="#tls::soc
0880: 6b 65 74 22 3e 3c 62 3e 74 6c 73 3a 3a 73 6f 63 ket"><b>tls::soc
0890: 6b 65 74 3c 2f 62 3e 20 3c 69 3e 3f 6f 70 74 69 ket</b> <i>?opti
08a0: 6f 6e 73 3f 20 68 6f 73 74 20 70 6f 72 74 3c 2f ons? host port</
08b0: 69 3e 3c 62 72 3e 0a 3c 61 20 68 72 65 66 3d 22 i><br>.<a href="
08c0: 23 74 6c 73 3a 3a 73 6f 63 6b 65 74 22 3e 3c 62 #tls::socket"><b
08d0: 3e 74 6c 73 3a 3a 73 6f 63 6b 65 74 3c 2f 62 3e >tls::socket</b>
08e0: 20 3c 69 3e 3f 2d 73 65 72 76 65 72 20 63 6f 6d <i>?-server com
08f0: 6d 61 6e 64 3f 20 3f 6f 70 74 69 6f 6e 73 3f 20 mand? ?options?
0900: 70 6f 72 74 3c 2f 69 3e 3c 2f 61 3e 3c 62 72 3e port</i></a><br>
0910: 0a 3c 61 20 68 72 65 66 3d 22 23 74 6c 73 3a 3a .<a href="#tls::
0920: 73 74 61 74 75 73 22 3e 3c 62 3e 74 6c 73 3a 3a status"><b>tls::
0930: 73 74 61 74 75 73 3c 2f 62 3e 20 3c 69 3e 3f 2d status</b> <i>?-
0940: 6c 6f 63 61 6c 3f 20 63 68 61 6e 6e 65 6c 3c 2f local? channel</
0950: 69 3e 3c 2f 61 3e 3c 62 72 3e 0a 3c 61 20 68 72 i></a><br>.<a hr
0960: 65 66 3d 22 23 74 6c 73 3a 3a 63 6f 6e 6e 65 63 ef="#tls::connec
0970: 74 69 6f 6e 22 3e 3c 62 3e 74 6c 73 3a 3a 63 6f tion"><b>tls::co
0980: 6e 6e 65 63 74 69 6f 6e 3c 2f 62 3e 20 3c 69 3e nnection</b> <i>
0990: 63 68 61 6e 6e 65 6c 3c 2f 69 3e 3c 2f 61 3e 3c channel</i></a><
09a0: 62 72 3e 0a 3c 61 20 68 72 65 66 3d 22 23 74 6c br>.<a href="#tl
09b0: 73 3a 3a 68 61 6e 64 73 68 61 6b 65 22 3e 3c 62 s::handshake"><b
09c0: 3e 74 6c 73 3a 3a 68 61 6e 64 73 68 61 6b 65 3c >tls::handshake<
09d0: 2f 62 3e 20 3c 69 3e 63 68 61 6e 6e 65 6c 3c 2f /b> <i>channel</
09e0: 69 3e 3c 2f 61 3e 3c 62 72 3e 0a 3c 61 20 68 72 i></a><br>.<a hr
09f0: 65 66 3d 22 23 74 6c 73 3a 3a 69 6d 70 6f 72 74 ef="#tls::import
0a00: 22 3e 3c 62 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 "><b>tls::import
0a10: 3c 2f 62 3e 20 3c 69 3e 63 68 61 6e 6e 65 6c 20 </b> <i>channel
0a20: 3f 6f 70 74 69 6f 6e 73 3f 3c 2f 69 3e 3c 2f 61 ?options?</i></a
0a30: 3e 3c 62 72 3e 0a 3c 61 20 68 72 65 66 3d 22 23 ><br>.<a href="#
0a40: 74 6c 73 3a 3a 75 6e 69 6d 70 6f 72 74 22 3e 3c tls::unimport"><
0a50: 62 3e 74 6c 73 3a 3a 75 6e 69 6d 70 6f 72 74 3c b>tls::unimport<
0a60: 2f 62 3e 20 3c 69 3e 63 68 61 6e 6e 65 6c 3c 2f /b> <i>channel</
0a70: 69 3e 3c 2f 61 3e 3c 62 72 3e 0a 3c 62 72 3e 0a i></a><br>.<br>.
0a80: 3c 61 20 68 72 65 66 3d 22 23 74 6c 73 3a 3a 63 <a href="#tls::c
0a90: 69 70 68 65 72 73 22 3e 3c 62 3e 74 6c 73 3a 3a iphers"><b>tls::
0aa0: 63 69 70 68 65 72 73 3c 2f 62 3e 20 3c 69 3e 3f ciphers</b> <i>?
0ab0: 70 72 6f 74 6f 63 6f 6c 3f 20 3f 76 65 72 62 6f protocol? ?verbo
0ac0: 73 65 3f 20 3f 73 75 70 70 6f 72 74 65 64 3f 3c se? ?supported?<
0ad0: 2f 69 3e 3c 2f 61 3e 3c 62 72 3e 0a 3c 61 20 68 /i></a><br>.<a h
0ae0: 72 65 66 3d 22 23 74 6c 73 3a 3a 70 72 6f 74 6f ref="#tls::proto
0af0: 63 6f 6c 73 22 3e 3c 62 3e 74 6c 73 3a 3a 70 72 cols"><b>tls::pr
0b00: 6f 74 6f 63 6f 6c 73 3c 2f 62 3e 3c 2f 61 3e 3c otocols</b></a><
0b10: 62 72 3e 0a 3c 61 20 68 72 65 66 3d 22 23 74 6c br>.<a href="#tl
0b20: 73 3a 3a 76 65 72 73 69 6f 6e 22 3e 3c 62 3e 74 s::version"><b>t
0b30: 6c 73 3a 3a 76 65 72 73 69 6f 6e 3c 2f 62 3e 3c ls::version</b><
0b40: 2f 61 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a 3c 62 72 /a><br>.</p>.<br
0b50: 3e 0a 0a 3c 68 72 3e 0a 0a 3c 68 33 3e 3c 61 20 >..<hr>..<h3><a
0b60: 6e 61 6d 65 3d 22 44 45 53 43 52 49 50 54 49 4f name="DESCRIPTIO
0b70: 4e 22 3e 44 45 53 43 52 49 50 54 49 4f 4e 3c 2f N">DESCRIPTION</
0b80: 61 3e 3c 2f 68 33 3e 0a 0a 3c 70 3e 54 68 69 73 a></h3>..<p>This
0b90: 20 65 78 74 65 6e 73 69 6f 6e 20 70 72 6f 76 69 extension provi
0ba0: 64 65 73 20 54 43 4c 20 73 63 72 69 70 74 20 61 des TCL script a
0bb0: 63 63 65 73 73 20 74 6f 20 73 65 63 75 72 65 20 ccess to secure
0bc0: 73 6f 63 6b 65 74 20 63 6f 6d 6d 75 6e 69 63 61 socket communica
0bd0: 74 69 6f 6e 73 0a 75 73 69 6e 67 20 74 68 65 20 tions.using the
0be0: 54 72 61 6e 73 70 6f 72 74 20 4c 61 79 65 72 20 Transport Layer
0bf0: 53 65 63 75 72 69 74 79 20 28 54 4c 53 29 20 70 Security (TLS) p
0c00: 72 6f 74 6f 63 6f 6c 2e 20 49 74 20 70 72 6f 76 rotocol. It prov
0c10: 69 64 65 73 20 61 20 67 65 6e 65 72 69 63 0a 62 ides a generic.b
0c20: 69 6e 64 69 6e 67 20 74 6f 20 3c 61 20 68 72 65 inding to <a hre
0c30: 66 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77 2e 6f f="https://www.o
0c40: 70 65 6e 73 73 6c 2e 6f 72 67 2f 22 3e 4f 70 65 penssl.org/">Ope
0c50: 6e 53 53 4c 3c 2f 61 3e 2c 20 75 74 69 6c 69 7a nSSL</a>, utiliz
0c60: 69 6e 67 20 74 68 65 0a 3c 73 74 72 6f 6e 67 3e ing the.<strong>
0c70: 54 63 6c 5f 53 74 61 63 6b 43 68 61 6e 6e 65 6c Tcl_StackChannel
0c80: 3c 2f 73 74 72 6f 6e 67 3e 20 41 50 49 20 69 6e </strong> API in
0c90: 20 54 43 4c 20 38 2e 34 20 61 6e 64 20 68 69 67 TCL 8.4 and hig
0ca0: 68 65 72 2e 0a 54 68 65 73 65 20 73 6f 63 6b 65 her..These socke
0cb0: 74 73 20 62 65 68 61 76 65 20 65 78 61 63 74 6c ts behave exactl
0cc0: 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 63 68 y the same as ch
0cd0: 61 6e 6e 65 6c 73 20 63 72 65 61 74 65 64 20 75 annels created u
0ce0: 73 69 6e 67 20 74 68 65 20 62 75 69 6c 74 2d 69 sing the built-i
0cf0: 6e 0a 3c 73 74 72 6f 6e 67 3e 73 6f 63 6b 65 74 n.<strong>socket
0d00: 3c 2f 73 74 72 6f 6e 67 3e 20 63 6f 6d 6d 61 6e </strong> comman
0d10: 64 2c 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 64 d, along with ad
0d20: 64 69 74 69 6f 6e 61 6c 20 6f 70 74 69 6f 6e 73 ditional options
0d30: 20 66 6f 72 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 for controlling
0d40: 0a 74 68 65 20 53 53 4c 2f 54 4c 53 20 73 65 73 .the SSL/TLS ses
0d50: 73 69 6f 6e 2e 0a 3c 2f 70 3e 0a 3c 62 72 3e 0a sion..</p>.<br>.
0d60: 0a 3c 68 72 3e 0a 0a 3c 68 33 3e 3c 61 20 6e 61 .<hr>..<h3><a na
0d70: 6d 65 3d 22 43 4f 4d 4d 41 4e 44 53 22 3e 43 4f me="COMMANDS">CO
0d80: 4d 4d 41 4e 44 53 3c 2f 61 3e 3c 2f 68 33 3e 0a MMANDS</a></h3>.
0d90: 0a 3c 70 3e 54 79 70 69 63 61 6c 6c 79 20 6f 6e .<p>Typically on
0da0: 65 20 77 6f 75 6c 64 20 75 73 65 20 74 68 65 20 e would use the
0db0: 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 73 6f 63 <strong>tls::soc
0dc0: 6b 65 74 20 3c 2f 73 74 72 6f 6e 67 3e 63 6f 6d ket </strong>com
0dd0: 6d 61 6e 64 0a 77 68 69 63 68 20 70 72 6f 76 69 mand.which provi
0de0: 64 65 73 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 des compatibilit
0df0: 79 20 77 69 74 68 20 74 68 65 20 6e 61 74 69 76 y with the nativ
0e00: 65 20 54 43 4c 20 3c 73 74 72 6f 6e 67 3e 73 6f e TCL <strong>so
0e10: 63 6b 65 74 3c 2f 73 74 72 6f 6e 67 3e 0a 63 6f cket</strong>.co
0e20: 6d 6d 61 6e 64 2e 20 49 6e 20 73 75 63 68 20 63 mmand. In such c
0e30: 61 73 65 73 20 3c 73 74 72 6f 6e 67 3e 74 6c 73 ases <strong>tls
0e40: 3a 3a 69 6d 70 6f 72 74 3c 2f 73 74 72 6f 6e 67 ::import</strong
0e50: 3e 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 0a > should not be.
0e60: 75 73 65 64 20 64 69 72 65 63 74 6c 79 2e 3c 2f used directly.</
0e70: 70 3e 0a 3c 64 6c 3e 0a 20 20 20 20 3c 64 74 3e p>.<dl>. <dt>
0e80: 3c 61 20 6e 61 6d 65 3d 22 74 6c 73 3a 3a 69 6e <a name="tls::in
0e90: 69 74 22 3e 3c 62 3e 74 6c 73 3a 3a 69 6e 69 74 it"><b>tls::init
0ea0: 20 3c 2f 62 3e 3c 69 3e 3f 6f 70 74 69 6f 6e 73 </b><i>?options
0eb0: 3f 3c 2f 69 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 20 ?</i></a></dt>.
0ec0: 20 20 20 3c 64 64 3e 4f 70 74 69 6f 6e 61 6c 20 <dd>Optional
0ed0: 66 75 6e 63 74 69 6f 6e 20 74 6f 20 73 65 74 20 function to set
0ee0: 74 68 65 20 64 65 66 61 75 6c 74 20 6f 70 74 69 the default opti
0ef0: 6f 6e 73 20 75 73 65 64 20 62 79 0a 09 3c 73 74 ons used by..<st
0f00: 72 6f 6e 67 3e 74 6c 73 3a 3a 73 6f 63 6b 65 74 rong>tls::socket
0f10: 3c 2f 73 74 72 6f 6e 67 3e 2e 20 49 66 20 79 6f </strong>. If yo
0f20: 75 20 63 61 6c 6c 20 3c 73 74 72 6f 6e 67 3e 74 u call <strong>t
0f30: 6c 73 3a 3a 69 6d 70 6f 72 74 3c 2f 73 74 72 6f ls::import</stro
0f40: 6e 67 3e 0a 09 64 69 72 65 63 74 6c 79 2c 20 74 ng>..directly, t
0f50: 68 69 73 20 63 6f 6d 6d 61 6e 64 20 68 61 73 20 his command has
0f60: 6e 6f 20 65 66 66 65 63 74 2e 20 54 68 69 73 20 no effect. This
0f70: 63 6f 6d 6d 61 6e 64 20 73 75 70 70 6f 72 74 73 command supports
0f80: 20 61 6c 6c 20 6f 66 20 74 68 65 0a 09 73 61 6d all of the..sam
0f90: 65 20 6f 70 74 69 6f 6e 73 20 61 73 20 74 68 65 e options as the
0fa0: 20 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 73 6f <strong>tls::so
0fb0: 63 6b 65 74 3c 2f 73 74 72 6f 6e 67 3e 20 63 6f cket</strong> co
0fc0: 6d 6d 61 6e 64 2c 20 74 68 6f 75 67 68 20 79 6f mmand, though yo
0fd0: 75 0a 09 73 68 6f 75 6c 64 20 6c 69 6d 69 74 20 u..should limit
0fe0: 79 6f 75 72 20 6f 70 74 69 6f 6e 73 20 74 6f 20 your options to
0ff0: 6f 6e 6c 79 20 54 4c 53 20 72 65 6c 61 74 65 64 only TLS related
1000: 20 6f 6e 65 73 2e 3c 2f 64 64 3e 0a 20 20 20 20 ones.</dd>.
1010: 3c 64 74 3e 26 6e 62 73 70 3b 3c 2f 64 74 3e 0a <dt> </dt>.
1020: 20 20 20 20 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d <dt><a name=
1030: 22 74 6c 73 3a 3a 73 6f 63 6b 65 74 22 3e 3c 62 "tls::socket"><b
1040: 3e 74 6c 73 3a 3a 73 6f 63 6b 65 74 20 3c 2f 62 >tls::socket </b
1050: 3e 3c 65 6d 3e 3f 6f 70 74 69 6f 6e 73 3f 0a 09 ><em>?options?..
1060: 68 6f 73 74 20 70 6f 72 74 3c 2f 65 6d 3e 3c 2f host port</em></
1070: 61 3e 3c 2f 64 74 3e 0a 20 20 20 20 3c 64 74 3e a></dt>. <dt>
1080: 3c 62 3e 74 6c 73 3a 3a 73 6f 63 6b 65 74 3c 2f <b>tls::socket</
1090: 62 3e 3c 65 6d 3e 20 3f 2d 73 65 72 76 65 72 20 b><em> ?-server
10a0: 63 6f 6d 6d 61 6e 64 3f 20 3f 6f 70 74 69 6f 6e command? ?option
10b0: 73 3f 20 70 6f 72 74 3c 2f 65 6d 3e 3c 2f 64 74 s? port</em></dt
10c0: 3e 0a 20 20 20 20 3c 64 64 3e 54 68 69 73 20 69 >. <dd>This i
10d0: 73 20 61 20 68 65 6c 70 65 72 20 66 75 6e 63 74 s a helper funct
10e0: 69 6f 6e 20 74 68 61 74 20 75 74 69 6c 69 7a 65 ion that utilize
10f0: 73 20 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 s the underlying
1100: 20 63 6f 6d 6d 61 6e 64 73 0a 09 28 3c 73 74 72 commands..(<str
1110: 6f 6e 67 3e 73 6f 63 6b 65 74 3c 2f 73 74 72 6f ong>socket</stro
1120: 6e 67 3e 20 61 6e 64 20 3c 73 74 72 6f 6e 67 3e ng> and <strong>
1130: 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c 2f 73 74 72 tls::import</str
1140: 6f 6e 67 3e 29 20 74 6f 20 63 72 65 61 74 65 0a ong>) to create.
1150: 09 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e .the connection.
1160: 20 49 74 20 62 65 68 61 76 65 73 20 74 68 65 20 It behaves the
1170: 73 61 6d 65 20 61 73 20 74 68 65 20 6e 61 74 69 same as the nati
1180: 76 65 20 54 43 4c 20 3c 73 74 72 6f 6e 67 3e 73 ve TCL <strong>s
1190: 6f 63 6b 65 74 3c 2f 73 74 72 6f 6e 67 3e 0a 09 ocket</strong>..
11a0: 63 6f 6d 6d 61 6e 64 2c 20 62 75 74 20 61 6c 73 command, but als
11b0: 6f 20 73 75 70 70 6f 72 74 73 20 74 68 65 20 3c o supports the <
11c0: 61 20 68 72 65 66 3d 22 23 74 6c 73 3a 3a 69 6d a href="#tls::im
11d0: 70 6f 72 74 22 3e 3c 73 74 72 6f 6e 67 3e 74 6c port"><strong>tl
11e0: 73 3a 69 6d 70 6f 72 74 3c 2f 73 74 72 6f 6e 67 s:import</strong
11f0: 3e 3c 2f 61 3e 0a 09 63 6f 6d 6d 61 6e 64 20 6f ></a>..command o
1200: 70 74 69 6f 6e 73 20 61 6e 64 20 6f 6e 65 20 61 ptions and one a
1210: 64 64 69 74 69 6f 6e 61 6c 20 6f 70 74 69 6f 6e dditional option
1220: 3a 3c 2f 64 64 3e 0a 20 20 20 20 3c 64 6c 3e 3c :</dd>. <dl><
1230: 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a 09 3c 64 74 blockquote>..<dt
1240: 3e 3c 73 74 72 6f 6e 67 3e 2d 61 75 74 6f 73 65 ><strong>-autose
1250: 72 76 65 72 6e 61 6d 65 3c 2f 73 74 72 6f 6e 67 rvername</strong
1260: 3e 20 3c 65 6d 3e 62 6f 6f 6c 3c 2f 65 6d 3e 3c > <em>bool</em><
1270: 2f 64 74 3e 0a 09 3c 64 64 3e 41 75 74 6f 6d 61 /dt>..<dd>Automa
1280: 74 69 63 61 6c 6c 79 20 73 65 74 20 74 68 65 20 tically set the
1290: 2d 73 65 72 76 65 72 6e 61 6d 65 20 61 72 67 75 -servername argu
12a0: 6d 65 6e 74 20 74 6f 20 74 68 65 20 3c 65 6d 3e ment to the <em>
12b0: 68 6f 73 74 3c 2f 65 6d 3e 0a 09 61 72 67 75 6d host</em>..argum
12c0: 65 6e 74 20 28 64 65 66 61 75 6c 74 20 69 73 20 ent (default is
12d0: 3c 65 6d 3e 66 61 6c 73 65 3c 2f 65 6d 3e 29 2e <em>false</em>).
12e0: 3c 2f 64 64 3e 0a 20 20 20 20 3c 2f 62 6c 6f 63 </dd>. </bloc
12f0: 6b 71 75 6f 74 65 3e 3c 2f 64 6c 3e 0a 0a 20 20 kquote></dl>..
1300: 20 20 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 74 <dt><a name="t
1310: 6c 73 3a 3a 69 6d 70 6f 72 74 22 3e 3c 62 3e 74 ls::import"><b>t
1320: 6c 73 3a 3a 69 6d 70 6f 72 74 20 3c 2f 62 3e 3c ls::import </b><
1330: 69 3e 63 68 61 6e 6e 65 6c 0a 09 3f 6f 70 74 69 i>channel..?opti
1340: 6f 6e 73 3f 3c 2f 69 3e 3c 2f 61 3e 3c 2f 64 74 ons?</i></a></dt
1350: 3e 0a 20 20 20 20 3c 64 64 3e 41 64 64 20 53 53 >. <dd>Add SS
1360: 4c 2f 54 4c 53 20 65 6e 63 72 79 70 74 69 6f 6e L/TLS encryption
1370: 20 74 6f 20 61 20 72 65 67 75 6c 61 72 20 54 43 to a regular TC
1380: 4c 20 63 68 61 6e 6e 65 6c 2e 20 49 74 20 6e 65 L channel. It ne
1390: 65 64 0a 09 6e 6f 74 20 62 65 20 61 20 73 6f 63 ed..not be a soc
13a0: 6b 65 74 2c 20 62 75 74 20 6d 75 73 74 20 70 72 ket, but must pr
13b0: 6f 76 69 64 65 20 62 69 2d 64 69 72 65 63 74 69 ovide bi-directi
13c0: 6f 6e 61 6c 20 66 6c 6f 77 2e 20 41 6c 73 6f 0a onal flow. Also.
13d0: 09 73 65 74 20 73 65 73 73 69 6f 6e 20 70 61 72 .set session par
13e0: 61 6d 65 74 65 72 73 20 66 6f 72 20 53 53 4c 20 ameters for SSL
13f0: 68 61 6e 64 73 68 61 6b 65 2e 3c 2f 64 64 3e 0a handshake.</dd>.
1400: 20 20 20 20 3c 64 6c 3e 3c 62 6c 6f 63 6b 71 75 <dl><blockqu
1410: 6f 74 65 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e ote>..<dt><stron
1420: 67 3e 2d 61 6c 70 6e 3c 2f 73 74 72 6f 6e 67 3e g>-alpn</strong>
1430: 20 3c 65 6d 3e 6c 69 73 74 3c 2f 65 6d 3e 3c 2f <em>list</em></
1440: 64 74 3e 0a 09 3c 64 64 3e 4c 69 73 74 20 6f 66 dt>..<dd>List of
1450: 20 70 72 6f 74 6f 63 6f 6c 73 20 74 6f 20 6f 66 protocols to of
1460: 66 65 72 20 64 75 72 69 6e 67 20 41 70 70 6c 69 fer during Appli
1470: 63 61 74 69 6f 6e 2d 4c 61 79 65 72 0a 09 20 20 cation-Layer..
1480: 20 20 50 72 6f 74 6f 63 6f 6c 20 4e 65 67 6f 74 Protocol Negot
1490: 69 61 74 69 6f 6e 20 28 41 4c 50 4e 29 2e 20 46 iation (ALPN). F
14a0: 6f 72 20 65 78 61 6d 70 6c 65 3a 20 3c 65 6d 3e or example: <em>
14b0: 68 32 3c 2f 65 6d 3e 20 61 6e 64 0a 09 20 20 20 h2</em> and..
14c0: 20 3c 65 6d 3e 68 74 74 70 2f 31 2e 31 3c 2f 65 <em>http/1.1</e
14d0: 6d 3e 2c 20 62 75 74 20 6e 6f 74 20 3c 65 6d 3e m>, but not <em>
14e0: 68 33 3c 2f 65 6d 3e 20 6f 72 20 3c 65 6d 3e 71 h3</em> or <em>q
14f0: 75 69 63 3c 2f 65 6d 3e 2e 3c 2f 64 64 3e 0a 09 uic</em>.</dd>..
1500: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 63 61 64 <dt><strong>-cad
1510: 69 72 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e ir</strong> <em>
1520: 64 69 72 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c dir</em></dt>..<
1530: 64 64 3e 53 70 65 63 69 66 69 65 73 20 74 68 65 dd>Specifies the
1540: 20 64 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 directory where
1550: 20 74 68 65 20 43 65 72 74 69 66 69 63 61 74 65 the Certificate
1560: 20 41 75 74 68 6f 72 69 74 79 20 28 43 41 29 0a Authority (CA).
1570: 09 20 20 20 20 63 65 72 74 69 66 69 63 61 74 65 . certificate
1580: 73 20 61 72 65 20 73 74 6f 72 65 64 2e 20 54 68 s are stored. Th
1590: 65 20 64 65 66 61 75 6c 74 20 69 73 20 70 6c 61 e default is pla
15a0: 74 66 6f 72 6d 20 73 70 65 63 69 66 69 63 20 61 tform specific a
15b0: 6e 64 20 63 61 6e 20 62 65 0a 09 20 20 20 20 73 nd can be.. s
15c0: 65 74 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 et at compile ti
15d0: 6d 65 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 me. The default
15e0: 6c 6f 63 61 74 69 6f 6e 20 63 61 6e 20 62 65 20 location can be
15f0: 6f 76 65 72 72 69 64 64 65 6e 20 76 69 61 20 74 overridden via t
1600: 68 65 0a 09 20 20 20 20 3c 62 3e 53 53 4c 5f 43 he.. <b>SSL_C
1610: 45 52 54 5f 44 49 52 3c 2f 62 3e 20 65 6e 76 69 ERT_DIR</b> envi
1620: 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 ronment variable
1630: 2e 0a 09 20 20 20 20 53 65 65 20 3c 61 20 68 72 ... See <a hr
1640: 65 66 3d 22 23 43 45 52 54 49 46 49 43 41 54 45 ef="#CERTIFICATE
1650: 20 56 41 4c 49 44 41 54 49 4f 4e 22 3e 43 45 52 VALIDATION">CER
1660: 54 49 46 49 43 41 54 45 20 56 41 4c 49 44 41 54 TIFICATE VALIDAT
1670: 49 4f 4e 3c 2f 61 3e 2e 3c 2f 64 64 3e 0a 09 3c ION</a>.</dd>..<
1680: 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 63 61 66 69 dt><strong>-cafi
1690: 6c 65 20 3c 2f 73 74 72 6f 6e 67 3e 3c 65 6d 3e le </strong><em>
16a0: 66 69 6c 65 6e 61 6d 65 3c 2f 65 6d 3e 3c 2f 64 filename</em></d
16b0: 74 3e 0a 09 3c 64 64 3e 53 70 65 63 69 66 69 65 t>..<dd>Specifie
16c0: 73 20 74 68 65 20 66 69 6c 65 20 77 69 74 68 20 s the file with
16d0: 74 68 65 20 43 65 72 74 69 66 69 63 61 74 65 20 the Certificate
16e0: 41 75 74 68 6f 72 69 74 79 20 28 43 41 29 20 63 Authority (CA) c
16f0: 65 72 74 69 66 69 63 61 74 65 73 0a 09 20 20 20 ertificates..
1700: 20 74 6f 20 75 73 65 2e 20 54 68 65 20 64 65 66 to use. The def
1710: 61 75 6c 74 20 69 73 20 3c 62 3e 63 65 72 74 2e ault is <b>cert.
1720: 70 65 6d 3c 2f 62 3e 2c 20 69 6e 20 74 68 65 20 pem</b>, in the
1730: 4f 70 65 6e 53 53 4c 20 64 69 72 65 63 74 6f 72 OpenSSL director
1740: 79 2e 0a 09 20 20 20 20 54 68 65 20 64 65 66 61 y... The defa
1750: 75 6c 74 20 66 69 6c 65 20 63 61 6e 20 62 65 20 ult file can be
1760: 6f 76 65 72 72 69 64 64 65 6e 20 76 69 61 20 74 overridden via t
1770: 68 65 20 3c 62 3e 53 53 4c 5f 43 45 52 54 5f 46 he <b>SSL_CERT_F
1780: 49 4c 45 3c 2f 62 3e 0a 09 20 20 20 20 65 6e 76 ILE</b>.. env
1790: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c ironment variabl
17a0: 65 2e 0a 09 20 20 20 20 53 65 65 20 3c 61 20 68 e... See <a h
17b0: 72 65 66 3d 22 23 43 45 52 54 49 46 49 43 41 54 ref="#CERTIFICAT
17c0: 45 20 56 41 4c 49 44 41 54 49 4f 4e 22 3e 43 45 E VALIDATION">CE
17d0: 52 54 49 46 49 43 41 54 45 20 56 41 4c 49 44 41 RTIFICATE VALIDA
17e0: 54 49 4f 4e 3c 2f 61 3e 2e 3c 2f 64 64 3e 0a 09 TION</a>.</dd>..
17f0: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 63 61 73 <dt><strong>-cas
1800: 74 6f 72 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 tore</strong> <e
1810: 6d 3e 55 52 49 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a m>URI</em></dt>.
1820: 09 3c 64 64 3e 55 52 49 20 66 6f 72 20 61 20 43 .<dd>URI for a C
1830: 65 72 74 69 66 69 63 61 74 65 20 41 75 74 68 6f ertificate Autho
1840: 72 69 74 79 20 28 43 41 29 20 73 74 6f 72 65 2c rity (CA) store,
1850: 20 77 68 69 63 68 20 6d 61 79 20 62 65 20 61 20 which may be a
1860: 73 69 6e 67 6c 65 0a 09 20 20 20 20 63 6f 6e 74 single.. cont
1870: 61 69 6e 65 72 20 6f 72 20 61 20 63 61 74 61 6c ainer or a catal
1880: 6f 67 20 6f 66 20 63 6f 6e 74 61 69 6e 65 72 73 og of containers
1890: 2e 20 53 74 61 72 74 69 6e 67 20 77 69 74 68 20 . Starting with
18a0: 4f 70 65 6e 53 53 4c 20 33 2e 32 20 6f 6e 0a 09 OpenSSL 3.2 on..
18b0: 20 20 20 20 57 69 6e 64 6f 77 73 2c 20 73 65 74 Windows, set
18c0: 20 74 6f 20 22 6f 72 67 2e 6f 70 65 6e 73 73 6c to "org.openssl
18d0: 2e 77 69 6e 73 74 6f 72 65 3a 2f 2f 22 20 74 6f .winstore://" to
18e0: 20 75 73 65 20 74 68 65 20 62 75 69 6c 74 2d 69 use the built-i
18f0: 6e 0a 09 20 20 20 20 57 69 6e 64 6f 77 73 20 43 n.. Windows C
1900: 65 72 74 20 53 74 6f 72 65 2e 20 54 68 65 20 57 ert Store. The W
1910: 69 6e 64 6f 77 73 20 63 65 72 74 20 73 74 6f 72 indows cert stor
1920: 65 20 6f 6e 6c 79 20 73 75 70 70 6f 72 74 73 20 e only supports
1930: 72 6f 6f 74 0a 09 20 20 20 20 63 65 72 74 69 66 root.. certif
1940: 69 63 61 74 65 20 73 74 6f 72 65 73 2e 0a 09 20 icate stores...
1950: 20 20 20 53 65 65 20 3c 61 20 68 72 65 66 3d 22 See <a href="
1960: 23 43 45 52 54 49 46 49 43 41 54 45 20 56 41 4c #CERTIFICATE VAL
1970: 49 44 41 54 49 4f 4e 22 3e 43 45 52 54 49 46 49 IDATION">CERTIFI
1980: 43 41 54 45 20 56 41 4c 49 44 41 54 49 4f 4e 3c CATE VALIDATION<
1990: 2f 61 3e 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c /a>.</dd>..<dt><
19a0: 73 74 72 6f 6e 67 3e 2d 63 65 72 74 66 69 6c 65 strong>-certfile
19b0: 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 66 69 </strong> <em>fi
19c0: 6c 65 6e 61 6d 65 3c 2f 65 6d 3e 3c 2f 64 74 3e lename</em></dt>
19d0: 0a 09 3c 64 64 3e 53 70 65 63 69 66 69 65 73 20 ..<dd>Specifies
19e0: 74 68 65 20 66 69 6c 65 20 77 69 74 68 20 74 68 the file with th
19f0: 65 20 63 65 72 74 69 66 69 63 61 74 65 20 74 6f e certificate to
1a00: 20 75 73 65 20 69 6e 20 50 45 4d 20 66 6f 72 6d use in PEM form
1a10: 61 74 2e 0a 09 20 20 20 20 54 68 69 73 20 61 6c at... This al
1a20: 73 6f 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 so contains the
1a30: 70 75 62 6c 69 63 20 6b 65 79 2e 3c 2f 64 64 3e public key.</dd>
1a40: 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 63 ..<dt><strong>-c
1a50: 65 72 74 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d ert</strong> <em
1a60: 3e 62 69 6e 61 72 79 5f 73 74 72 69 6e 67 3c 2f >binary_string</
1a70: 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 53 70 em></dt>..<dd>Sp
1a80: 65 63 69 66 69 65 73 20 74 68 65 20 63 65 72 74 ecifies the cert
1a90: 69 66 69 63 61 74 65 20 74 6f 20 75 73 65 20 61 ificate to use a
1aa0: 73 20 61 20 44 45 52 20 65 6e 63 6f 64 65 64 20 s a DER encoded
1ab0: 73 74 72 69 6e 67 20 28 58 2e 35 30 39 20 44 45 string (X.509 DE
1ac0: 52 29 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 R).</dd>..<dt><s
1ad0: 74 72 6f 6e 67 3e 2d 63 69 70 68 65 72 3c 2f 73 trong>-cipher</s
1ae0: 74 72 6f 6e 67 3e 20 3c 65 6d 3e 73 74 72 69 6e trong> <em>strin
1af0: 67 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 g</em></dt>..<dd
1b00: 3e 53 70 65 63 69 66 69 65 73 20 74 68 65 20 6c >Specifies the l
1b10: 69 73 74 20 6f 66 20 63 69 70 68 65 72 73 20 74 ist of ciphers t
1b20: 6f 20 75 73 65 20 66 6f 72 20 54 4c 53 20 31 2e o use for TLS 1.
1b30: 32 20 61 6e 64 20 65 61 72 6c 69 65 72 2e 20 53 2 and earlier. S
1b40: 74 72 69 6e 67 20 69 73 20 61 0a 09 20 20 20 20 tring is a..
1b50: 63 6f 6c 6f 6e 20 28 22 3a 22 29 20 73 65 70 61 colon (":") sepa
1b60: 72 61 74 65 64 20 6c 69 73 74 20 6f 66 20 63 69 rated list of ci
1b70: 70 68 65 72 73 2e 20 43 69 70 68 65 72 73 20 63 phers. Ciphers c
1b80: 61 6e 20 62 65 20 63 6f 6d 62 69 6e 65 64 20 75 an be combined u
1b90: 73 69 6e 67 20 74 68 65 0a 09 20 20 20 20 3c 62 sing the.. <b
1ba0: 3e 2b 3c 2f 62 3e 20 63 68 61 72 61 63 74 65 72 >+</b> character
1bb0: 2e 20 50 72 65 66 69 78 65 73 20 63 61 6e 20 62 . Prefixes can b
1bc0: 65 20 75 73 65 64 20 74 6f 20 70 65 72 6d 61 6e e used to perman
1bd0: 65 6e 74 6c 79 20 72 65 6d 6f 76 65 20 28 22 21 ently remove ("!
1be0: 22 29 2c 0a 09 20 20 20 20 64 65 6c 65 74 65 20 "),.. delete
1bf0: 28 22 2d 22 29 2c 20 6f 72 20 6d 6f 76 65 20 61 ("-"), or move a
1c00: 20 63 69 70 68 65 72 20 74 6f 20 74 68 65 20 65 cipher to the e
1c10: 6e 64 20 6f 66 20 74 68 65 20 6c 69 73 74 20 28 nd of the list (
1c20: 22 2b 22 29 2e 20 4b 65 79 77 6f 72 64 73 0a 09 "+"). Keywords..
1c30: 20 20 20 20 3c 62 3e 40 53 54 52 45 4e 47 54 48 <b>@STRENGTH
1c40: 3c 2f 62 3e 20 28 73 6f 72 74 20 62 79 20 61 6c </b> (sort by al
1c50: 67 6f 72 69 74 68 6d 20 6b 65 79 20 6c 65 6e 67 gorithm key leng
1c60: 74 68 29 2c 20 3c 62 3e 40 53 45 43 4c 45 56 45 th), <b>@SECLEVE
1c70: 4c 3d 3c 2f 62 3e 3c 69 3e 6e 3c 2f 69 3e 0a 09 L=</b><i>n</i>..
1c80: 20 20 20 20 28 73 65 74 20 73 65 63 75 72 69 74 (set securit
1c90: 79 20 6c 65 76 65 6c 20 74 6f 20 6e 29 2c 20 61 y level to n), a
1ca0: 6e 64 20 3c 62 3e 44 45 46 41 55 4c 54 3c 2f 62 nd <b>DEFAULT</b
1cb0: 3e 20 28 75 73 65 20 64 65 66 61 75 6c 74 20 63 > (use default c
1cc0: 69 70 68 65 72 20 6c 69 73 74 2c 0a 09 20 20 20 ipher list,..
1cd0: 20 61 74 20 73 74 61 72 74 20 6f 6e 6c 79 29 20 at start only)
1ce0: 63 61 6e 20 61 6c 73 6f 20 62 65 20 73 70 65 63 can also be spec
1cf0: 69 66 69 65 64 2e 20 53 65 65 20 4f 70 65 6e 53 ified. See OpenS
1d00: 53 4c 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e SL documentation
1d10: 20 66 6f 72 20 74 68 65 0a 09 20 20 20 20 66 75 for the.. fu
1d20: 6c 6c 20 6c 69 73 74 20 6f 66 20 76 61 6c 69 64 ll list of valid
1d30: 20 76 61 6c 75 65 73 2e 3c 2f 64 64 3e 0a 09 3c values.</dd>..<
1d40: 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 63 69 70 68 dt><strong>-ciph
1d50: 65 72 73 75 69 74 65 73 3c 2f 73 74 72 6f 6e 67 ersuites</strong
1d60: 3e 20 3c 65 6d 3e 73 74 72 69 6e 67 3c 2f 65 6d > <em>string</em
1d70: 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 53 70 65 63 ></dt>..<dd>Spec
1d80: 69 66 69 65 73 20 74 68 65 20 6c 69 73 74 20 6f ifies the list o
1d90: 66 20 63 69 70 68 65 72 20 73 75 69 74 65 73 20 f cipher suites
1da0: 74 6f 20 75 73 65 20 66 6f 72 20 54 4c 53 20 31 to use for TLS 1
1db0: 2e 33 2e 20 53 74 72 69 6e 67 20 69 73 20 61 20 .3. String is a
1dc0: 63 6f 6c 6f 6e 0a 09 20 20 20 20 28 22 3a 22 29 colon.. (":")
1dd0: 20 73 65 70 61 72 61 74 65 64 20 6c 69 73 74 20 separated list
1de0: 6f 66 20 63 69 70 68 65 72 20 73 75 69 74 65 20 of cipher suite
1df0: 6e 61 6d 65 73 2e 3c 2f 64 64 3e 0a 09 3c 64 74 names.</dd>..<dt
1e00: 3e 3c 73 74 72 6f 6e 67 3e 2d 63 6f 6d 6d 61 6e ><strong>-comman
1e10: 64 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 63 d</strong> <em>c
1e20: 61 6c 6c 62 61 63 6b 3c 2f 65 6d 3e 3c 2f 64 74 allback</em></dt
1e30: 3e 0a 09 3c 64 64 3e 53 70 65 63 69 66 69 65 73 >..<dd>Specifies
1e40: 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 63 6f the callback co
1e50: 6d 6d 61 6e 64 20 74 6f 20 62 65 20 69 6e 76 6f mmand to be invo
1e60: 6b 65 64 20 61 74 20 73 65 76 65 72 61 6c 20 70 ked at several p
1e70: 6f 69 6e 74 73 20 64 75 72 69 6e 67 20 74 68 65 oints during the
1e80: 0a 09 20 20 20 20 68 61 6e 64 73 68 61 6b 65 20 .. handshake
1e90: 74 6f 20 70 61 73 73 20 65 72 72 6f 72 73 2c 20 to pass errors,
1ea0: 74 72 61 63 69 6e 67 20 69 6e 66 6f 72 6d 61 74 tracing informat
1eb0: 69 6f 6e 2c 20 61 6e 64 20 70 72 6f 74 6f 63 6f ion, and protoco
1ec0: 6c 20 6d 65 73 73 61 67 65 73 2e 0a 09 20 20 20 l messages...
1ed0: 20 53 65 65 20 3c 61 20 68 72 65 66 3d 22 23 43 See <a href="#C
1ee0: 41 4c 4c 42 41 43 4b 20 4f 50 54 49 4f 4e 53 22 ALLBACK OPTIONS"
1ef0: 3e 43 41 4c 4c 42 41 43 4b 20 4f 50 54 49 4f 4e >CALLBACK OPTION
1f00: 53 3c 2f 61 3e 20 66 6f 72 20 6d 6f 72 65 20 69 S</a> for more i
1f10: 6e 66 6f 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c nfo.</dd>..<dt><
1f20: 73 74 72 6f 6e 67 3e 2d 64 68 70 61 72 61 6d 73 strong>-dhparams
1f30: 20 3c 2f 73 74 72 6f 6e 67 3e 3c 65 6d 3e 66 69 </strong><em>fi
1f40: 6c 65 6e 61 6d 65 3c 2f 65 6d 3e 3c 2f 64 74 3e lename</em></dt>
1f50: 0a 09 3c 64 64 3e 53 70 65 63 69 66 69 65 73 20 ..<dd>Specifies
1f60: 74 68 65 20 44 69 66 66 69 65 2d 48 65 6c 6c 6d the Diffie-Hellm
1f70: 61 6e 20 28 44 48 29 20 70 61 72 61 6d 65 74 65 an (DH) paramete
1f80: 72 73 20 66 69 6c 65 2e 3c 2f 64 64 3e 0a 09 3c rs file.</dd>..<
1f90: 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 6b 65 79 66 dt><strong>-keyf
1fa0: 69 6c 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d ile</strong> <em
1fb0: 3e 66 69 6c 65 6e 61 6d 65 3c 2f 65 6d 3e 3c 2f >filename</em></
1fc0: 64 74 3e 0a 09 3c 64 64 3e 53 70 65 63 69 66 69 dt>..<dd>Specifi
1fd0: 65 73 20 74 68 65 20 70 72 69 76 61 74 65 20 6b es the private k
1fe0: 65 79 20 66 69 6c 65 2e 20 28 64 65 66 61 75 6c ey file. (defaul
1ff0: 74 20 69 73 20 76 61 6c 75 65 20 6f 66 20 2d 63 t is value of -c
2000: 65 72 74 66 69 6c 65 29 2e 3c 2f 64 64 3e 0a 09 ertfile).</dd>..
2010: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 6b 65 79 <dt><strong>-key
2020: 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 66 69 </strong> <em>fi
2030: 6c 65 6e 61 6d 65 3c 2f 65 6d 3e 3c 2f 64 74 3e lename</em></dt>
2040: 0a 09 3c 64 64 3e 53 70 65 63 69 66 69 65 73 20 ..<dd>Specifies
2050: 74 68 65 20 70 72 69 76 61 74 65 20 6b 65 79 20 the private key
2060: 74 6f 20 75 73 65 20 61 73 20 61 20 44 45 52 20 to use as a DER
2070: 65 6e 63 6f 64 65 64 20 73 74 72 69 6e 67 20 28 encoded string (
2080: 50 4b 43 53 23 31 20 44 45 52 29 2e 3c 2f 64 64 PKCS#1 DER).</dd
2090: 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d >..<dt><strong>-
20a0: 6d 6f 64 65 6c 3c 2f 73 74 72 6f 6e 67 3e 20 3c model</strong> <
20b0: 65 6d 3e 63 68 61 6e 6e 65 6c 3c 2f 65 6d 3e 3c em>channel</em><
20c0: 2f 64 74 3e 0a 09 3c 64 64 3e 46 6f 72 63 65 20 /dt>..<dd>Force
20d0: 74 68 69 73 20 63 68 61 6e 6e 65 6c 20 74 6f 20 this channel to
20e0: 73 68 61 72 65 20 74 68 65 20 73 61 6d 65 20 3c share the same <
20f0: 65 6d 3e 3c 73 74 72 6f 6e 67 3e 53 53 4c 5f 43 em><strong>SSL_C
2100: 54 58 3c 2f 73 74 72 6f 6e 67 3e 3c 2f 65 6d 3e TX</strong></em>
2110: 0a 09 20 20 20 20 73 74 72 75 63 74 75 72 65 20 .. structure
2120: 61 73 20 74 68 65 20 73 70 65 63 69 66 69 65 64 as the specified
2130: 20 3c 65 6d 3e 63 68 61 6e 6e 65 6c 3c 2f 65 6d <em>channel</em
2140: 3e 2c 20 61 6e 64 0a 09 20 20 20 20 74 68 65 72 >, and.. ther
2150: 65 66 6f 72 65 20 73 68 61 72 65 20 63 61 6c 6c efore share call
2160: 62 61 63 6b 73 20 65 74 63 2e 3c 2f 64 64 3e 0a backs etc.</dd>.
2170: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 70 61 .<dt><strong>-pa
2180: 73 73 77 6f 72 64 3c 2f 73 74 72 6f 6e 67 3e 20 ssword</strong>
2190: 3c 65 6d 3e 63 61 6c 6c 62 61 63 6b 3c 2f 65 6d <em>callback</em
21a0: 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 53 70 65 63 ></dt>..<dd>Spec
21b0: 69 66 69 65 73 20 74 68 65 20 63 61 6c 6c 62 61 ifies the callba
21c0: 63 6b 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 69 6e ck command to in
21d0: 76 6f 6b 65 20 77 68 65 6e 20 4f 70 65 6e 53 53 voke when OpenSS
21e0: 4c 20 6e 65 65 64 73 20 74 6f 0a 09 20 20 20 20 L needs to..
21f0: 6f 62 74 61 69 6e 20 61 20 70 61 73 73 77 6f 72 obtain a passwor
2200: 64 2e 20 54 68 69 73 20 69 73 20 74 79 70 69 63 d. This is typic
2210: 61 6c 6c 79 20 75 73 65 64 20 74 6f 20 75 6e 6c ally used to unl
2220: 6f 63 6b 20 74 68 65 20 70 72 69 76 61 74 65 20 ock the private
2230: 6b 65 79 20 6f 66 0a 09 20 20 20 20 61 20 63 65 key of.. a ce
2240: 72 74 69 66 69 63 61 74 65 2e 20 54 68 65 20 63 rtificate. The c
2250: 61 6c 6c 62 61 63 6b 20 73 68 6f 75 6c 64 20 72 allback should r
2260: 65 74 75 72 6e 20 61 20 70 61 73 73 77 6f 72 64 eturn a password
2270: 20 73 74 72 69 6e 67 2e 0a 09 20 20 20 20 53 65 string... Se
2280: 65 20 3c 61 20 68 72 65 66 3d 22 23 43 41 4c 4c e <a href="#CALL
2290: 42 41 43 4b 20 4f 50 54 49 4f 4e 53 22 3e 43 41 BACK OPTIONS">CA
22a0: 4c 4c 42 41 43 4b 20 4f 50 54 49 4f 4e 53 3c 2f LLBACK OPTIONS</
22b0: 61 3e 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f a> for more info
22c0: 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 .</dd>..<dt><str
22d0: 6f 6e 67 3e 2d 70 6f 73 74 5f 68 61 6e 64 73 68 ong>-post_handsh
22e0: 61 6b 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d ake</strong> <em
22f0: 3e 62 6f 6f 6c 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a >bool</em></dt>.
2300: 09 3c 64 64 3e 41 6c 6c 6f 77 20 70 6f 73 74 2d .<dd>Allow post-
2310: 68 61 6e 64 73 68 61 6b 65 20 73 65 73 73 69 6f handshake sessio
2320: 6e 20 74 69 63 6b 65 74 20 75 70 64 61 74 65 73 n ticket updates
2330: 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 .</dd>..<dt><str
2340: 6f 6e 67 3e 2d 72 65 71 75 65 73 74 20 3c 2f 73 ong>-request </s
2350: 74 72 6f 6e 67 3e 3c 65 6d 3e 62 6f 6f 6c 3c 2f trong><em>bool</
2360: 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 52 65 em></dt>..<dd>Re
2370: 71 75 65 73 74 20 61 20 63 65 72 74 69 66 69 63 quest a certific
2380: 61 74 65 20 66 72 6f 6d 20 70 65 65 72 20 64 75 ate from peer du
2390: 72 69 6e 67 20 74 68 65 20 53 53 4c 20 68 61 6e ring the SSL han
23a0: 64 73 68 61 6b 65 2e 20 54 68 69 73 20 69 73 0a dshake. This is.
23b0: 09 20 20 20 20 6e 65 65 64 65 64 20 74 6f 20 64 . needed to d
23c0: 6f 20 63 65 72 74 69 66 69 63 61 74 65 20 76 61 o certificate va
23d0: 6c 69 64 61 74 69 6f 6e 2e 20 28 64 65 66 61 75 lidation. (defau
23e0: 6c 74 20 69 73 20 3c 65 6d 3e 74 72 75 65 3c 2f lt is <em>true</
23f0: 65 6d 3e 29 2e 0a 09 20 20 20 20 53 65 65 20 3c em>)... See <
2400: 61 20 68 72 65 66 3d 22 23 43 45 52 54 49 46 49 a href="#CERTIFI
2410: 43 41 54 45 20 56 41 4c 49 44 41 54 49 4f 4e 22 CATE VALIDATION"
2420: 3e 43 45 52 54 49 46 49 43 41 54 45 20 56 41 4c >CERTIFICATE VAL
2430: 49 44 41 54 49 4f 4e 3c 2f 61 3e 2e 3c 2f 64 64 IDATION</a>.</dd
2440: 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d >..<dt><strong>-
2450: 72 65 71 75 69 72 65 3c 2f 73 74 72 6f 6e 67 3e require</strong>
2460: 20 3c 65 6d 3e 62 6f 6f 6c 3c 2f 65 6d 3e 3c 2f <em>bool</em></
2470: 64 74 3e 0a 09 3c 64 64 3e 52 65 71 75 69 72 65 dt>..<dd>Require
2480: 20 61 20 76 61 6c 69 64 20 63 65 72 74 69 66 69 a valid certifi
2490: 63 61 74 65 20 66 72 6f 6d 20 70 65 65 72 20 64 cate from peer d
24a0: 75 72 69 6e 67 20 53 53 4c 20 68 61 6e 64 73 68 uring SSL handsh
24b0: 61 6b 65 2e 20 49 66 20 74 68 69 73 0a 09 20 20 ake. If this..
24c0: 20 20 69 73 20 73 65 74 20 74 6f 20 74 72 75 65 is set to true
24d0: 2c 20 74 68 65 6e 20 3c 73 74 72 6f 6e 67 3e 2d , then <strong>-
24e0: 72 65 71 75 65 73 74 3c 2f 73 74 72 6f 6e 67 3e request</strong>
24f0: 20 6d 75 73 74 20 61 6c 73 6f 20 62 65 20 73 65 must also be se
2500: 74 20 74 6f 0a 09 20 20 20 20 74 72 75 65 20 61 t to.. true a
2510: 6e 64 20 61 20 65 69 74 68 65 72 20 61 20 2d 63 nd a either a -c
2520: 61 64 69 72 2c 20 2d 63 61 66 69 6c 65 2c 20 2d adir, -cafile, -
2530: 63 61 73 74 6f 72 65 2c 20 6f 72 20 70 6c 61 74 castore, or plat
2540: 66 6f 72 6d 20 64 65 66 61 75 6c 74 0a 09 20 20 form default..
2550: 20 20 6d 75 73 74 20 62 65 20 70 72 6f 76 69 64 must be provid
2560: 65 64 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 76 ed in order to v
2570: 61 6c 69 64 61 74 65 20 61 67 61 69 6e 73 74 2e alidate against.
2580: 20 28 64 65 66 61 75 6c 74 20 69 73 20 3c 65 6d (default is <em
2590: 3e 66 61 6c 73 65 3c 2f 65 6d 3e 29 2e 0a 09 20 >false</em>)...
25a0: 20 20 20 53 65 65 20 3c 61 20 68 72 65 66 3d 22 See <a href="
25b0: 23 43 45 52 54 49 46 49 43 41 54 45 20 56 41 4c #CERTIFICATE VAL
25c0: 49 44 41 54 49 4f 4e 22 3e 43 45 52 54 49 46 49 IDATION">CERTIFI
25d0: 43 41 54 45 20 56 41 4c 49 44 41 54 49 4f 4e 3c CATE VALIDATION<
25e0: 2f 61 3e 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c /a>.</dd>..<dt><
25f0: 73 74 72 6f 6e 67 3e 2d 73 65 63 75 72 69 74 79 strong>-security
2600: 5f 6c 65 76 65 6c 3c 2f 73 74 72 6f 6e 67 3e 20 _level</strong>
2610: 3c 65 6d 3e 69 6e 74 65 67 65 72 3c 2f 65 6d 3e <em>integer</em>
2620: 3c 2f 64 74 3e 0a 09 3c 64 64 3e 53 70 65 63 69 </dt>..<dd>Speci
2630: 66 69 65 73 20 74 68 65 20 73 65 63 75 72 69 74 fies the securit
2640: 79 20 6c 65 76 65 6c 20 28 76 61 6c 75 65 20 66 y level (value f
2650: 72 6f 6d 20 30 20 74 6f 20 35 29 2e 20 54 68 65 rom 0 to 5). The
2660: 20 73 65 63 75 72 69 74 79 20 6c 65 76 65 6c 0a security level.
2670: 09 20 20 20 20 61 66 66 65 63 74 73 20 74 68 65 . affects the
2680: 20 63 69 70 68 65 72 20 73 75 69 74 65 20 65 6e cipher suite en
2690: 63 72 79 70 74 69 6f 6e 20 61 6c 67 6f 72 69 74 cryption algorit
26a0: 68 6d 73 2c 20 73 75 70 70 6f 72 74 65 64 20 45 hms, supported E
26b0: 43 43 20 63 75 72 76 65 73 2c 0a 09 20 20 20 20 CC curves,..
26c0: 73 75 70 70 6f 72 74 65 64 20 73 69 67 6e 61 74 supported signat
26d0: 75 72 65 20 61 6c 67 6f 72 69 74 68 6d 73 2c 20 ure algorithms,
26e0: 44 48 20 70 61 72 61 6d 65 74 65 72 20 73 69 7a DH parameter siz
26f0: 65 73 2c 20 63 65 72 74 69 66 69 63 61 74 65 20 es, certificate
2700: 6b 65 79 0a 09 20 20 20 20 73 69 7a 65 73 20 61 key.. sizes a
2710: 6e 64 20 73 69 67 6e 61 74 75 72 65 20 61 6c 67 nd signature alg
2720: 6f 72 69 74 68 6d 73 2e 20 54 68 65 20 64 65 66 orithms. The def
2730: 61 75 6c 74 20 69 73 20 31 20 70 72 69 6f 72 20 ault is 1 prior
2740: 74 6f 20 4f 70 65 6e 53 53 4c 20 33 2e 32 0a 09 to OpenSSL 3.2..
2750: 20 20 20 20 61 6e 64 20 32 20 74 68 65 72 65 61 and 2 therea
2760: 66 74 65 72 2e 20 4c 65 76 65 6c 20 33 20 61 6e fter. Level 3 an
2770: 64 20 68 69 67 68 65 72 20 64 69 73 61 62 6c 65 d higher disable
2780: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 73 65 73 support for ses
2790: 73 69 6f 6e 0a 09 20 20 20 20 74 69 63 6b 65 74 sion.. ticket
27a0: 73 20 61 6e 64 20 6f 6e 6c 79 20 61 63 63 65 70 s and only accep
27b0: 74 20 63 69 70 68 65 72 20 73 75 69 74 65 73 20 t cipher suites
27c0: 74 68 61 74 20 70 72 6f 76 69 64 65 20 66 6f 72 that provide for
27d0: 77 61 72 64 20 73 65 63 72 65 63 79 2e 3c 2f 64 ward secrecy.</d
27e0: 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e d>..<dt><strong>
27f0: 2d 73 65 72 76 65 72 3c 2f 73 74 72 6f 6e 67 3e -server</strong>
2800: 20 3c 65 6d 3e 62 6f 6f 6c 3c 2f 65 6d 3e 3c 2f <em>bool</em></
2810: 64 74 3e 0a 09 3c 64 64 3e 53 70 65 63 69 66 69 dt>..<dd>Specifi
2820: 65 73 20 77 68 65 74 68 65 72 20 74 6f 20 61 63 es whether to ac
2830: 74 20 61 73 20 61 20 73 65 72 76 65 72 20 61 6e t as a server an
2840: 64 20 72 65 73 70 6f 6e 64 20 77 69 74 68 20 61 d respond with a
2850: 20 73 65 72 76 65 72 0a 09 20 20 20 20 68 61 6e server.. han
2860: 64 73 68 61 6b 65 20 77 68 65 6e 20 61 20 63 6c dshake when a cl
2870: 69 65 6e 74 20 63 6f 6e 6e 65 63 74 73 20 61 6e ient connects an
2880: 64 20 70 72 6f 76 69 64 65 73 20 61 20 63 6c 69 d provides a cli
2890: 65 6e 74 20 68 61 6e 64 73 68 61 6b 65 2e 0a 09 ent handshake...
28a0: 20 20 20 20 28 64 65 66 61 75 6c 74 20 69 73 20 (default is
28b0: 3c 65 6d 3e 66 61 6c 73 65 3c 2f 65 6d 3e 29 3c <em>false</em>)<
28c0: 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e /dd>..<dt><stron
28d0: 67 3e 2d 73 65 72 76 65 72 6e 61 6d 65 3c 2f 73 g>-servername</s
28e0: 74 72 6f 6e 67 3e 20 3c 65 6d 3e 68 6f 73 74 3c trong> <em>host<
28f0: 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 53 /em></dt>..<dd>S
2900: 70 65 63 69 66 79 20 73 65 72 76 65 72 27 73 20 pecify server's
2910: 68 6f 73 74 6e 61 6d 65 2e 20 54 68 69 73 20 69 hostname. This i
2920: 73 20 75 73 65 64 20 74 6f 20 73 65 74 20 74 68 s used to set th
2930: 65 20 54 4c 53 20 53 65 72 76 65 72 20 4e 61 6d e TLS Server Nam
2940: 65 0a 09 20 20 20 20 49 6e 64 69 63 61 74 69 6f e.. Indicatio
2950: 6e 20 28 53 4e 49 29 20 65 78 74 65 6e 73 69 6f n (SNI) extensio
2960: 6e 2e 20 53 65 74 20 74 68 69 73 20 74 6f 20 74 n. Set this to t
2970: 68 65 20 65 78 70 65 63 74 65 64 20 73 65 72 76 he expected serv
2980: 65 72 6e 61 6d 65 20 69 6e 20 74 68 65 0a 09 20 ername in the..
2990: 20 20 73 65 72 76 65 72 27 73 20 63 65 72 74 69 server's certi
29a0: 66 69 63 61 74 65 20 6f 72 20 6f 6e 65 20 6f 66 ficate or one of
29b0: 20 74 68 65 20 73 75 62 6a 65 63 74 41 6c 74 4e the subjectAltN
29c0: 61 6d 65 20 61 6c 74 65 72 6e 61 74 65 73 2e 3c ame alternates.<
29d0: 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e /dd>..<dt><stron
29e0: 67 3e 2d 73 65 73 73 69 6f 6e 5f 69 64 3c 2f 73 g>-session_id</s
29f0: 74 72 6f 6e 67 3e 20 3c 65 6d 3e 73 74 72 69 6e trong> <em>strin
2a00: 67 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 g</em></dt>..<dd
2a10: 3e 53 70 65 63 69 66 69 65 73 20 74 68 65 20 73 >Specifies the s
2a20: 65 73 73 69 6f 6e 20 69 64 20 74 6f 20 72 65 73 ession id to res
2a30: 75 6d 65 20 73 65 73 73 69 6f 6e 2e 3c 2f 64 64 ume session.</dd
2a40: 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d >..<dt><strong>-
2a50: 73 73 6c 32 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 ssl2</strong> <e
2a60: 6d 3e 62 6f 6f 6c 3c 2f 65 6d 3e 3c 2f 64 74 3e m>bool</em></dt>
2a70: 0a 09 3c 64 64 3e 45 6e 61 62 6c 65 20 75 73 65 ..<dd>Enable use
2a80: 20 6f 66 20 53 53 4c 20 76 32 2e 20 28 64 65 66 of SSL v2. (def
2a90: 61 75 6c 74 20 69 73 20 3c 65 6d 3e 66 61 6c 73 ault is <em>fals
2aa0: 65 3c 2f 65 6d 3e 29 2e 0a 09 4e 6f 74 65 3a 20 e</em>)...Note:
2ab0: 52 65 63 65 6e 74 20 76 65 72 73 69 6f 6e 73 20 Recent versions
2ac0: 6f 66 20 4f 70 65 6e 53 53 4c 20 64 6f 6e 27 74 of OpenSSL don't
2ad0: 20 73 75 70 70 6f 72 74 20 53 53 4c 76 32 2e 3c support SSLv2.<
2ae0: 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e /dd>..<dt><stron
2af0: 67 3e 2d 73 73 6c 33 20 3c 2f 73 74 72 6f 6e 67 g>-ssl3 </strong
2b00: 3e 3c 65 6d 3e 62 6f 6f 6c 3c 2f 65 6d 3e 3c 2f ><em>bool</em></
2b10: 64 74 3e 0a 09 3c 64 64 3e 45 6e 61 62 6c 65 20 dt>..<dd>Enable
2b20: 75 73 65 20 6f 66 20 53 53 4c 20 76 33 2e 20 28 use of SSL v3. (
2b30: 64 65 66 61 75 6c 74 20 69 73 20 3c 65 6d 3e 66 default is <em>f
2b40: 61 6c 73 65 3c 2f 65 6d 3e 29 2e 0a 09 4e 6f 74 alse</em>)...Not
2b50: 65 3a 20 53 53 4c 20 76 33 20 6d 75 73 74 20 61 e: SSL v3 must a
2b60: 6c 73 6f 20 62 65 20 65 6e 61 62 6c 65 64 20 77 lso be enabled w
2b70: 69 74 68 20 61 20 63 6f 6d 70 69 6c 65 20 74 69 ith a compile ti
2b80: 6d 65 20 6f 70 74 69 6f 6e 2e 3c 2f 64 64 3e 0a me option.</dd>.
2b90: 09 3c 64 74 3e 2d 3c 73 74 72 6f 6e 67 3e 74 6c .<dt>-<strong>tl
2ba0: 73 31 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e s1</strong> <em>
2bb0: 62 6f 6f 6c 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 bool</em></dt>..
2bc0: 3c 64 64 3e 45 6e 61 62 6c 65 20 75 73 65 20 6f <dd>Enable use o
2bd0: 66 20 54 4c 53 20 76 31 2e 20 28 64 65 66 61 75 f TLS v1. (defau
2be0: 6c 74 20 69 73 20 3c 65 6d 3e 74 72 75 65 3c 2f lt is <em>true</
2bf0: 65 6d 3e 29 2e 0a 09 4e 6f 74 65 3a 20 54 4c 53 em>)...Note: TLS
2c00: 20 31 2e 30 20 6e 65 65 64 73 20 53 48 41 31 20 1.0 needs SHA1
2c10: 74 6f 20 6f 70 65 72 61 74 65 2c 20 77 68 69 63 to operate, whic
2c20: 68 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 6c 61 h is only availa
2c30: 62 6c 65 20 69 6e 0a 09 73 65 63 75 72 69 74 79 ble in..security
2c40: 20 6c 65 76 65 6c 20 30 20 66 6f 72 20 4f 70 65 level 0 for Ope
2c50: 6e 20 53 53 4c 20 33 2e 30 2b 2e 3c 2f 64 64 3e n SSL 3.0+.</dd>
2c60: 0a 09 3c 64 74 3e 2d 3c 73 74 72 6f 6e 67 3e 74 ..<dt>-<strong>t
2c70: 6c 73 31 2e 31 3c 2f 73 74 72 6f 6e 67 3e 20 3c ls1.1</strong> <
2c80: 65 6d 3e 62 6f 6f 6c 3c 2f 65 6d 3e 3c 2f 64 74 em>bool</em></dt
2c90: 3e 0a 09 3c 64 64 3e 45 6e 61 62 6c 65 20 75 73 >..<dd>Enable us
2ca0: 65 20 6f 66 20 54 4c 53 20 76 31 2e 31 20 28 64 e of TLS v1.1 (d
2cb0: 65 66 61 75 6c 74 20 69 73 20 3c 65 6d 3e 74 72 efault is <em>tr
2cc0: 75 65 3c 2f 65 6d 3e 29 2e 0a 09 4e 6f 74 65 3a ue</em>)...Note:
2cd0: 20 54 4c 53 20 31 2e 31 20 6e 65 65 64 73 20 53 TLS 1.1 needs S
2ce0: 48 41 31 20 74 6f 20 6f 70 65 72 61 74 65 2c 20 HA1 to operate,
2cf0: 77 68 69 63 68 20 69 73 20 6f 6e 6c 79 20 61 76 which is only av
2d00: 61 69 6c 61 62 6c 65 20 69 6e 0a 09 73 65 63 75 ailable in..secu
2d10: 72 69 74 79 20 6c 65 76 65 6c 20 30 20 66 6f 72 rity level 0 for
2d20: 20 4f 70 65 6e 20 53 53 4c 20 33 2e 30 2b 2e 3c Open SSL 3.0+.<
2d30: 2f 64 64 3e 0a 09 3c 64 74 3e 2d 3c 73 74 72 6f /dd>..<dt>-<stro
2d40: 6e 67 3e 74 6c 73 31 2e 32 3c 2f 73 74 72 6f 6e ng>tls1.2</stron
2d50: 67 3e 20 3c 65 6d 3e 62 6f 6f 6c 3c 2f 65 6d 3e g> <em>bool</em>
2d60: 3c 2f 64 74 3e 0a 09 3c 64 64 3e 45 6e 61 62 6c </dt>..<dd>Enabl
2d70: 65 20 75 73 65 20 6f 66 20 54 4c 53 20 76 31 2e e use of TLS v1.
2d80: 32 20 28 64 65 66 61 75 6c 74 20 69 73 20 3c 65 2 (default is <e
2d90: 6d 3e 74 72 75 65 3c 2f 65 6d 3e 29 3c 2f 64 64 m>true</em>)</dd
2da0: 3e 0a 09 3c 64 74 3e 2d 3c 73 74 72 6f 6e 67 3e >..<dt>-<strong>
2db0: 74 6c 73 31 2e 33 3c 2f 73 74 72 6f 6e 67 3e 20 tls1.3</strong>
2dc0: 3c 65 6d 3e 62 6f 6f 6c 3c 2f 65 6d 3e 3c 2f 64 <em>bool</em></d
2dd0: 74 3e 0a 09 3c 64 64 3e 45 6e 61 62 6c 65 20 75 t>..<dd>Enable u
2de0: 73 65 20 6f 66 20 54 4c 53 20 76 31 2e 33 20 28 se of TLS v1.3 (
2df0: 64 65 66 61 75 6c 74 20 69 73 20 3c 65 6d 3e 74 default is <em>t
2e00: 72 75 65 3c 2f 65 6d 3e 29 3c 2f 64 64 3e 0a 09 rue</em>)</dd>..
2e10: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 76 61 6c <dt><strong>-val
2e20: 69 64 61 74 65 63 6f 6d 6d 61 6e 64 3c 2f 73 74 idatecommand</st
2e30: 72 6f 6e 67 3e 20 3c 65 6d 3e 63 61 6c 6c 62 61 rong> <em>callba
2e40: 63 6b 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 ck</em></dt>..<d
2e50: 64 3e 53 70 65 63 69 66 69 65 73 20 74 68 65 20 d>Specifies the
2e60: 63 61 6c 6c 62 61 63 6b 20 63 6f 6d 6d 61 6e 64 callback command
2e70: 20 74 6f 20 69 6e 76 6f 6b 65 20 74 6f 20 76 61 to invoke to va
2e80: 6c 69 64 61 74 65 20 70 72 6f 74 6f 63 6f 6c 0a lidate protocol.
2e90: 09 20 20 20 20 63 6f 6e 66 69 67 20 70 61 72 61 . config para
2ea0: 6d 65 74 65 72 73 20 64 75 72 69 6e 67 20 74 68 meters during th
2eb0: 65 20 70 72 6f 74 6f 63 6f 6c 20 6e 65 67 6f 74 e protocol negot
2ec0: 69 61 74 69 6f 6e 20 70 68 61 73 65 2e 20 54 68 iation phase. Th
2ed0: 69 73 20 63 61 6e 20 62 65 0a 09 20 20 20 20 75 is can be.. u
2ee0: 73 65 64 20 62 79 20 54 43 4c 20 73 63 72 69 70 sed by TCL scrip
2ef0: 74 73 20 74 6f 20 70 65 72 66 6f 72 6d 20 74 68 ts to perform th
2f00: 65 69 72 20 6f 77 6e 20 63 65 72 74 69 66 69 63 eir own certific
2f10: 61 74 65 20 76 61 6c 69 64 61 74 69 6f 6e 20 74 ate validation t
2f20: 6f 0a 09 20 20 20 20 73 75 70 70 6c 65 6d 65 6e o.. supplemen
2f30: 74 20 74 68 65 20 64 65 66 61 75 6c 74 20 76 61 t the default va
2f40: 6c 69 64 61 74 69 6f 6e 20 70 72 6f 76 69 64 65 lidation provide
2f50: 64 20 62 79 20 4f 70 65 6e 53 53 4c 2e 20 54 68 d by OpenSSL. Th
2f60: 65 20 73 63 72 69 70 74 20 6d 75 73 74 0a 09 20 e script must..
2f70: 20 20 20 72 65 74 75 72 6e 20 61 20 62 6f 6f 6c return a bool
2f80: 65 61 6e 20 74 72 75 65 20 74 6f 20 63 6f 6e 74 ean true to cont
2f90: 69 6e 75 65 20 74 68 65 20 6e 65 67 6f 74 69 61 inue the negotia
2fa0: 74 69 6f 6e 2e 20 53 65 65 0a 09 20 20 20 20 3c tion. See.. <
2fb0: 61 20 68 72 65 66 3d 22 23 43 41 4c 4c 42 41 43 a href="#CALLBAC
2fc0: 4b 20 4f 50 54 49 4f 4e 53 22 3e 43 41 4c 4c 42 K OPTIONS">CALLB
2fd0: 41 43 4b 20 4f 50 54 49 4f 4e 53 3c 2f 61 3e 20 ACK OPTIONS</a>
2fe0: 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 2e 3c 2f for more info.</
2ff0: 64 64 3e 0a 20 20 20 20 3c 2f 62 6c 6f 63 6b 71 dd>. </blockq
3000: 75 6f 74 65 3e 3c 2f 64 6c 3e 0a 20 20 20 20 3c uote></dl>. <
3010: 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 74 6c 73 3a dt><a name="tls:
3020: 3a 75 6e 69 6d 70 6f 72 74 22 3e 3c 62 3e 74 6c :unimport"><b>tl
3030: 73 3a 3a 75 6e 69 6d 70 6f 72 74 20 3c 2f 62 3e s::unimport </b>
3040: 3c 69 3e 63 68 61 6e 6e 65 6c 3c 2f 69 3e 3c 2f <i>channel</i></
3050: 61 3e 3c 2f 64 74 3e 0a 20 20 20 20 3c 64 64 3e a></dt>. <dd>
3060: 50 72 6f 76 69 64 65 64 20 66 6f 72 20 73 79 6d Provided for sym
3070: 6d 65 74 72 79 20 74 6f 20 3c 73 74 72 6f 6e 67 metry to <strong
3080: 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c 2f 73 74 >tls::import</st
3090: 72 6f 6e 67 3e 2c 20 74 68 69 73 0a 09 75 6e 73 rong>, this..uns
30a0: 74 61 63 6b 73 20 74 68 65 20 65 6e 63 72 79 70 tacks the encryp
30b0: 74 69 6f 6e 20 6f 66 20 61 20 72 65 67 75 6c 61 tion of a regula
30c0: 72 20 54 43 4c 20 63 68 61 6e 6e 65 6c 2e 20 41 r TCL channel. A
30d0: 6e 20 65 72 72 6f 72 0a 09 69 73 20 74 68 72 6f n error..is thro
30e0: 77 6e 20 69 66 20 54 4c 53 20 69 73 20 6e 6f 74 wn if TLS is not
30f0: 20 74 68 65 20 74 6f 70 20 73 74 61 63 6b 65 64 the top stacked
3100: 20 63 68 61 6e 6e 65 6c 20 74 79 70 65 2e 3c 2f channel type.</
3110: 64 64 3e 0a 20 20 20 20 3c 64 74 3e 26 6e 62 73 dd>. <dt>&nbs
3120: 70 3b 3c 2f 64 74 3e 0a 20 20 20 20 3c 64 74 3e p;</dt>. <dt>
3130: 3c 61 20 6e 61 6d 65 3d 22 74 6c 73 3a 3a 68 61 <a name="tls::ha
3140: 6e 64 73 68 61 6b 65 22 3e 3c 73 74 72 6f 6e 67 ndshake"><strong
3150: 3e 74 6c 73 3a 3a 68 61 6e 64 73 68 61 6b 65 3c >tls::handshake<
3160: 2f 73 74 72 6f 6e 67 3e 0a 09 3c 65 6d 3e 63 68 /strong>..<em>ch
3170: 61 6e 6e 65 6c 3c 2f 65 6d 3e 3c 2f 61 3e 3c 2f annel</em></a></
3180: 64 74 3e 0a 20 20 20 20 3c 64 64 3e 46 6f 72 63 dt>. <dd>Forc
3190: 65 73 20 68 61 6e 64 73 68 61 6b 65 20 74 6f 20 es handshake to
31a0: 74 61 6b 65 20 70 6c 61 63 65 2c 20 61 6e 64 20 take place, and
31b0: 72 65 74 75 72 6e 73 20 30 20 69 66 0a 09 68 61 returns 0 if..ha
31c0: 6e 64 73 68 61 6b 65 20 69 73 20 73 74 69 6c 6c ndshake is still
31d0: 20 69 6e 20 70 72 6f 67 72 65 73 73 20 28 6e 6f in progress (no
31e0: 6e 2d 62 6c 6f 63 6b 69 6e 67 29 2c 20 6f 72 20 n-blocking), or
31f0: 31 20 69 66 0a 09 74 68 65 20 68 61 6e 64 73 68 1 if..the handsh
3200: 61 6b 65 20 77 61 73 20 73 75 63 63 65 73 73 66 ake was successf
3210: 75 6c 2e 20 49 66 20 74 68 65 20 68 61 6e 64 73 ul. If the hands
3220: 68 61 6b 65 20 66 61 69 6c 65 64 0a 09 74 68 69 hake failed..thi
3230: 73 20 72 6f 75 74 69 6e 65 20 77 69 6c 6c 20 74 s routine will t
3240: 68 72 6f 77 20 61 6e 20 65 72 72 6f 72 2e 3c 2f hrow an error.</
3250: 64 64 3e 0a 20 20 20 20 3c 64 74 3e 26 6e 62 73 dd>. <dt>&nbs
3260: 70 3b 3c 2f 64 74 3e 0a 20 20 20 20 3c 64 74 3e p;</dt>. <dt>
3270: 3c 61 20 6e 61 6d 65 3d 22 74 6c 73 3a 3a 73 74 <a name="tls::st
3280: 61 74 75 73 22 3e 3c 73 74 72 6f 6e 67 3e 74 6c atus"><strong>tl
3290: 73 3a 3a 73 74 61 74 75 73 3c 2f 73 74 72 6f 6e s::status</stron
32a0: 67 3e 0a 09 3c 65 6d 3e 3f 3c 2f 65 6d 3e 3c 62 g>..<em>?</em><b
32b0: 3e 2d 6c 6f 63 61 6c 3c 2f 62 3e 3c 65 6d 3e 3f >-local</b><em>?
32c0: 20 63 68 61 6e 6e 65 6c 3c 2f 65 6d 3e 3c 2f 61 channel</em></a
32d0: 3e 3c 2f 64 74 3e 0a 20 20 20 20 3c 64 64 3e 52 ></dt>. <dd>R
32e0: 65 74 75 72 6e 73 20 74 68 65 20 63 75 72 72 65 eturns the curre
32f0: 6e 74 20 73 74 61 74 75 73 20 6f 66 20 61 6e 20 nt status of an
3300: 53 53 4c 20 63 68 61 6e 6e 65 6c 2e 20 54 68 65 SSL channel. The
3310: 20 72 65 73 75 6c 74 20 69 73 20 61 20 6c 69 73 result is a lis
3320: 74 0a 09 6f 66 20 6b 65 79 2d 76 61 6c 75 65 20 t..of key-value
3330: 70 61 69 72 73 20 64 65 73 63 72 69 62 69 6e 67 pairs describing
3340: 20 74 68 65 20 53 53 4c 2c 20 63 65 72 74 69 66 the SSL, certif
3350: 69 63 61 74 65 2c 20 61 6e 64 20 63 65 72 74 69 icate, and certi
3360: 66 69 63 61 74 65 0a 09 76 65 72 69 66 69 63 61 ficate..verifica
3370: 74 69 6f 6e 20 73 74 61 74 75 73 2e 20 49 66 20 tion status. If
3380: 74 68 65 20 53 53 4c 20 68 61 6e 64 73 68 61 6b the SSL handshak
3390: 65 20 68 61 73 20 6e 6f 74 20 79 65 74 20 63 6f e has not yet co
33a0: 6d 70 6c 65 74 65 64 2c 0a 09 61 6e 20 65 6d 70 mpleted,..an emp
33b0: 74 79 20 6c 69 73 74 20 69 73 20 72 65 74 75 72 ty list is retur
33c0: 6e 65 64 2e 20 49 66 20 3c 62 3e 2d 6c 6f 63 61 ned. If <b>-loca
33d0: 6c 3c 2f 62 3e 20 69 73 20 73 70 65 63 69 66 69 l</b> is specifi
33e0: 65 64 2c 20 74 68 65 6e 20 74 68 65 0a 09 6c 6f ed, then the..lo
33f0: 63 61 6c 20 63 65 72 74 69 66 69 63 61 74 65 20 cal certificate
3400: 69 73 20 75 73 65 64 2e 3c 2f 64 64 3e 0a 20 20 is used.</dd>.
3410: 20 20 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a 20 <blockquote>.
3420: 20 20 20 3c 62 3e 53 53 4c 20 53 74 61 74 75 73 <b>SSL Status
3430: 3c 2f 62 3e 0a 20 20 20 20 3c 64 6c 3e 0a 09 3c </b>. <dl>..<
3440: 64 74 3e 3c 73 74 72 6f 6e 67 3e 61 6c 70 6e 3c dt><strong>alpn<
3450: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 70 72 6f /strong> <em>pro
3460: 74 6f 63 6f 6c 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a tocol</em></dt>.
3470: 09 3c 64 64 3e 54 68 65 20 70 72 6f 74 6f 63 6f .<dd>The protoco
3480: 6c 20 73 65 6c 65 63 74 65 64 20 61 66 74 65 72 l selected after
3490: 20 41 70 70 6c 69 63 61 74 69 6f 6e 2d 4c 61 79 Application-Lay
34a0: 65 72 20 50 72 6f 74 6f 63 6f 6c 0a 09 20 20 20 er Protocol..
34b0: 20 4e 65 67 6f 74 69 61 74 69 6f 6e 20 28 41 4c Negotiation (AL
34c0: 50 4e 29 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c PN).</dd>..<dt><
34d0: 73 74 72 6f 6e 67 3e 63 69 70 68 65 72 3c 2f 73 strong>cipher</s
34e0: 74 72 6f 6e 67 3e 20 3c 65 6d 3e 63 69 70 68 65 trong> <em>ciphe
34f0: 72 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 r</em></dt>..<dd
3500: 3e 54 68 65 20 63 75 72 72 65 6e 74 20 63 69 70 >The current cip
3510: 68 65 72 20 69 6e 20 75 73 65 20 66 6f 72 20 74 her in use for t
3520: 68 65 20 73 65 73 73 69 6f 6e 2e 3c 2f 64 64 3e he session.</dd>
3530: 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 70 65 ..<dt><strong>pe
3540: 65 72 6e 61 6d 65 3c 2f 73 74 72 6f 6e 67 3e 20 ername</strong>
3550: 3c 65 6d 3e 6e 61 6d 65 3c 2f 65 6d 3e 3c 2f 64 <em>name</em></d
3560: 74 3e 0a 09 3c 64 64 3e 54 68 65 20 70 65 65 72 t>..<dd>The peer
3570: 6e 61 6d 65 20 66 72 6f 6d 20 74 68 65 20 63 65 name from the ce
3580: 72 74 69 66 69 63 61 74 65 2e 3c 2f 64 64 3e 0a rtificate.</dd>.
3590: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 70 72 6f .<dt><strong>pro
35a0: 74 6f 63 6f 6c 3c 2f 73 74 72 6f 6e 67 3e 20 3c tocol</strong> <
35b0: 65 6d 3e 76 65 72 73 69 6f 6e 3c 2f 65 6d 3e 3c em>version</em><
35c0: 2f 64 74 3e 0a 09 3c 64 64 3e 54 68 65 20 70 72 /dt>..<dd>The pr
35d0: 6f 74 6f 63 6f 6c 20 76 65 72 73 69 6f 6e 20 75 otocol version u
35e0: 73 65 64 20 66 6f 72 20 74 68 65 20 63 6f 6e 6e sed for the conn
35f0: 65 63 74 69 6f 6e 3a 0a 09 20 20 20 20 53 53 4c ection:.. SSL
3600: 32 2c 20 53 53 4c 33 2c 20 54 4c 53 31 2c 20 54 2, SSL3, TLS1, T
3610: 4c 53 31 2e 31 2c 20 54 4c 53 31 2e 32 2c 20 54 LS1.1, TLS1.2, T
3620: 4c 53 31 2e 33 2c 20 6f 72 20 75 6e 6b 6e 6f 77 LS1.3, or unknow
3630: 6e 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 n.</dd>..<dt><st
3640: 72 6f 6e 67 3e 73 62 69 74 73 3c 2f 73 74 72 6f rong>sbits</stro
3650: 6e 67 3e 20 3c 65 6d 3e 6e 3c 2f 65 6d 3e 3c 2f ng> <em>n</em></
3660: 64 74 3e 0a 09 3c 64 64 3e 54 68 65 20 6e 75 6d dt>..<dd>The num
3670: 62 65 72 20 6f 66 20 62 69 74 73 20 75 73 65 64 ber of bits used
3680: 20 66 6f 72 20 74 68 65 20 73 65 73 73 69 6f 6e for the session
3690: 20 6b 65 79 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e key.</dd>..<dt>
36a0: 3c 73 74 72 6f 6e 67 3e 73 69 67 6e 61 74 75 72 <strong>signatur
36b0: 65 48 61 73 68 41 6c 67 6f 72 69 74 68 6d 3c 2f eHashAlgorithm</
36c0: 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 61 6c 67 6f strong> <em>algo
36d0: 72 69 74 68 6d 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a rithm</em></dt>.
36e0: 09 3c 64 64 3e 54 68 65 20 73 69 67 6e 61 74 75 .<dd>The signatu
36f0: 72 65 20 68 61 73 68 20 61 6c 67 6f 72 69 74 68 re hash algorith
3700: 6d 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 m.</dd>..<dt><st
3710: 72 6f 6e 67 3e 73 69 67 6e 61 74 75 72 65 54 79 rong>signatureTy
3720: 70 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e pe</strong> <em>
3730: 74 79 70 65 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 type</em></dt>..
3740: 3c 64 64 3e 54 68 65 20 73 69 67 6e 61 74 75 72 <dd>The signatur
3750: 65 20 74 79 70 65 20 76 61 6c 75 65 2e 3c 2f 64 e type value.</d
3760: 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e d>..<dt><strong>
3770: 76 65 72 69 66 79 44 65 70 74 68 3c 2f 73 74 72 verifyDepth</str
3780: 6f 6e 67 3e 20 3c 65 6d 3e 6e 3c 2f 65 6d 3e 3c ong> <em>n</em><
3790: 2f 64 74 3e 0a 09 3c 64 64 3e 4d 61 78 69 6d 75 /dt>..<dd>Maximu
37a0: 6d 20 64 65 70 74 68 20 66 6f 72 20 74 68 65 20 m depth for the
37b0: 63 65 72 74 69 66 69 63 61 74 65 20 63 68 61 69 certificate chai
37c0: 6e 20 76 65 72 69 66 69 63 61 74 69 6f 6e 2e 0a n verification..
37d0: 09 20 20 20 20 44 65 66 61 75 6c 74 20 69 73 20 . Default is
37e0: 2d 31 2c 20 74 6f 20 63 68 65 63 6b 20 61 6c 6c -1, to check all
37f0: 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 .</dd>..<dt><str
3800: 6f 6e 67 3e 76 65 72 69 66 79 4d 6f 64 65 3c 2f ong>verifyMode</
3810: 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 6c 69 73 74 strong> <em>list
3820: 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e </em></dt>..<dd>
3830: 4c 69 73 74 20 6f 66 20 63 65 72 74 69 66 69 63 List of certific
3840: 61 74 65 20 76 65 72 69 66 69 63 61 74 69 6f 6e ate verification
3850: 20 6d 6f 64 65 73 2e 3c 2f 64 64 3e 0a 09 3c 64 modes.</dd>..<d
3860: 74 3e 3c 73 74 72 6f 6e 67 3e 76 65 72 69 66 79 t><strong>verify
3870: 52 65 73 75 6c 74 3c 2f 73 74 72 6f 6e 67 3e 20 Result</strong>
3880: 3c 65 6d 3e 72 65 73 75 6c 74 3c 2f 65 6d 3e 3c <em>result</em><
3890: 2f 64 74 3e 0a 09 3c 64 64 3e 43 65 72 74 69 66 /dt>..<dd>Certif
38a0: 69 63 61 74 65 20 76 65 72 69 66 69 63 61 74 69 icate verificati
38b0: 6f 6e 20 72 65 73 75 6c 74 2e 3c 2f 64 64 3e 0a on result.</dd>.
38c0: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 63 61 5f .<dt><strong>ca_
38d0: 6e 61 6d 65 73 3c 2f 73 74 72 6f 6e 67 3e 20 3c names</strong> <
38e0: 65 6d 3e 6c 69 73 74 3c 2f 65 6d 3e 3c 2f 64 74 em>list</em></dt
38f0: 3e 0a 09 3c 64 64 3e 4c 69 73 74 20 6f 66 20 74 >..<dd>List of t
3900: 68 65 20 43 65 72 74 69 66 69 63 61 74 65 20 41 he Certificate A
3910: 75 74 68 6f 72 69 74 69 65 73 20 75 73 65 64 20 uthorities used
3920: 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 63 65 to create the ce
3930: 72 74 69 66 69 63 61 74 65 2e 3c 2f 64 64 3e 0a rtificate.</dd>.
3940: 20 20 20 20 3c 2f 64 6c 3e 0a 20 20 20 20 3c 62 </dl>. <b
3950: 3e 43 65 72 74 69 66 69 63 61 74 65 20 53 74 61 >Certificate Sta
3960: 74 75 73 3c 2f 62 3e 0a 20 20 20 20 3c 64 6c 3e tus</b>. <dl>
3970: 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 61 6c ..<dt><strong>al
3980: 6c 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 73 l</strong> <em>s
3990: 74 72 69 6e 67 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a tring</em></dt>.
39a0: 09 3c 64 64 3e 44 75 6d 70 20 6f 66 20 61 6c 6c .<dd>Dump of all
39b0: 20 63 65 72 74 69 66 69 63 61 74 65 20 69 6e 66 certificate inf
39c0: 6f 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 o.</dd>..<dt><st
39d0: 72 6f 6e 67 3e 76 65 72 73 69 6f 6e 3c 2f 73 74 rong>version</st
39e0: 72 6f 6e 67 3e 20 3c 65 6d 3e 76 61 6c 75 65 3c rong> <em>value<
39f0: 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 /em></dt>..<dd>T
3a00: 68 65 20 63 65 72 74 69 66 69 63 61 74 65 20 76 he certificate v
3a10: 65 72 73 69 6f 6e 2e 3c 2f 64 64 3e 0a 09 3c 64 ersion.</dd>..<d
3a20: 74 3e 3c 73 74 72 6f 6e 67 3e 73 65 72 69 61 6c t><strong>serial
3a30: 4e 75 6d 62 65 72 3c 2f 73 74 72 6f 6e 67 3e 20 Number</strong>
3a40: 3c 65 6d 3e 6e 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a <em>n</em></dt>.
3a50: 09 3c 64 64 3e 54 68 65 20 73 65 72 69 61 6c 20 .<dd>The serial
3a60: 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 20 63 65 number of the ce
3a70: 72 74 69 66 69 63 61 74 65 20 61 73 20 61 20 68 rtificate as a h
3a80: 65 78 20 73 74 72 69 6e 67 2e 3c 2f 64 64 3e 0a ex string.</dd>.
3a90: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 69 67 .<dt><strong>sig
3aa0: 6e 61 74 75 72 65 3c 2f 73 74 72 6f 6e 67 3e 20 nature</strong>
3ab0: 3c 65 6d 3e 61 6c 67 6f 72 69 74 68 6d 3c 2f 65 <em>algorithm</e
3ac0: 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 43 69 70 m></dt>..<dd>Cip
3ad0: 68 65 72 20 61 6c 67 6f 72 69 74 68 6d 20 75 73 her algorithm us
3ae0: 65 64 20 66 6f 72 20 63 65 72 74 69 66 69 63 61 ed for certifica
3af0: 74 65 20 73 69 67 6e 61 74 75 72 65 2e 3c 2f 64 te signature.</d
3b00: 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e d>..<dt><strong>
3b10: 69 73 73 75 65 72 3c 2f 73 74 72 6f 6e 67 3e 20 issuer</strong>
3b20: 3c 65 6d 3e 64 6e 3c 2f 65 6d 3e 3c 2f 64 74 3e <em>dn</em></dt>
3b30: 0a 09 3c 64 64 3e 54 68 65 20 64 69 73 74 69 6e ..<dd>The distin
3b40: 67 75 69 73 68 65 64 20 6e 61 6d 65 20 28 44 4e guished name (DN
3b50: 29 20 6f 66 20 74 68 65 20 63 65 72 74 69 66 69 ) of the certifi
3b60: 63 61 74 65 20 69 73 73 75 65 72 2e 3c 2f 64 64 cate issuer.</dd
3b70: 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 6e >..<dt><strong>n
3b80: 6f 74 42 65 66 6f 72 65 3c 2f 73 74 72 6f 6e 67 otBefore</strong
3b90: 3e 20 3c 65 6d 3e 64 61 74 65 3c 2f 65 6d 3e 3c > <em>date</em><
3ba0: 2f 64 74 3e 0a 09 3c 64 64 3e 54 68 65 20 62 65 /dt>..<dd>The be
3bb0: 67 69 6e 6e 69 6e 67 20 64 61 74 65 20 6f 66 20 ginning date of
3bc0: 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 20 the certificate
3bd0: 76 61 6c 69 64 69 74 79 2e 3c 2f 64 64 3e 0a 09 validity.</dd>..
3be0: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 6e 6f 74 41 <dt><strong>notA
3bf0: 66 74 65 72 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 fter</strong> <e
3c00: 6d 3e 64 61 74 65 3c 2f 65 6d 3e 3c 2f 64 74 3e m>date</em></dt>
3c10: 0a 09 3c 64 64 3e 54 68 65 20 65 78 70 69 72 61 ..<dd>The expira
3c20: 74 69 6f 6e 20 64 61 74 65 20 6f 66 20 74 68 65 tion date of the
3c30: 20 63 65 72 74 69 66 69 63 61 74 65 20 76 61 6c certificate val
3c40: 69 64 69 74 79 2e 3c 2f 64 64 3e 0a 09 3c 64 74 idity.</dd>..<dt
3c50: 3e 3c 73 74 72 6f 6e 67 3e 73 75 62 6a 65 63 74 ><strong>subject
3c60: 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 64 6e </strong> <em>dn
3c70: 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e </em></dt>..<dd>
3c80: 54 68 65 20 64 69 73 74 69 6e 67 75 69 73 68 65 The distinguishe
3c90: 64 20 6e 61 6d 65 20 28 44 4e 29 20 6f 66 20 74 d name (DN) of t
3ca0: 68 65 20 63 65 72 74 69 66 69 63 61 74 65 20 73 he certificate s
3cb0: 75 62 6a 65 63 74 2e 0a 09 20 20 20 20 46 69 65 ubject... Fie
3cc0: 6c 64 73 20 69 6e 63 6c 75 64 65 3a 20 43 6f 6d lds include: Com
3cd0: 6d 6f 6e 20 4e 61 6d 65 20 28 43 4e 29 2c 20 4f mon Name (CN), O
3ce0: 72 67 61 6e 69 7a 61 74 69 6f 6e 20 28 4f 29 2c rganization (O),
3cf0: 20 4c 6f 63 61 6c 69 74 79 0a 09 20 20 20 20 6f Locality.. o
3d00: 72 20 43 69 74 79 20 28 4c 29 2c 20 53 74 61 74 r City (L), Stat
3d10: 65 20 6f 72 20 50 72 6f 76 69 6e 63 65 20 28 53 e or Province (S
3d20: 29 2c 20 61 6e 64 20 43 6f 75 6e 74 72 79 20 4e ), and Country N
3d30: 61 6d 65 20 28 43 29 2e 3c 2f 64 64 3e 0a 09 3c ame (C).</dd>..<
3d40: 64 74 3e 3c 73 74 72 6f 6e 67 3e 69 73 73 75 65 dt><strong>issue
3d50: 72 55 6e 69 71 75 65 49 44 3c 2f 73 74 72 6f 6e rUniqueID</stron
3d60: 67 3e 20 3c 65 6d 3e 73 74 72 69 6e 67 3c 2f 65 g> <em>string</e
3d70: 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 68 65 m></dt>..<dd>The
3d80: 20 69 73 73 75 65 72 20 75 6e 69 71 75 65 20 69 issuer unique i
3d90: 64 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 d.</dd>..<dt><st
3da0: 72 6f 6e 67 3e 73 75 62 6a 65 63 74 55 6e 69 71 rong>subjectUniq
3db0: 75 65 49 44 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 ueID</strong> <e
3dc0: 6d 3e 73 74 72 69 6e 67 3c 2f 65 6d 3e 3c 2f 64 m>string</em></d
3dd0: 74 3e 0a 09 3c 64 64 3e 54 68 65 20 73 75 62 6a t>..<dd>The subj
3de0: 65 63 74 20 75 6e 69 71 75 65 20 69 64 2e 3c 2f ect unique id.</
3df0: 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 dd>..<dt><strong
3e00: 3e 6e 75 6d 5f 65 78 74 65 6e 73 69 6f 6e 73 3c >num_extensions<
3e10: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 6e 3c 2f /strong> <em>n</
3e20: 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 4e 75 em></dt>..<dd>Nu
3e30: 6d 62 65 72 20 6f 66 20 63 65 72 74 69 66 69 63 mber of certific
3e40: 61 74 65 20 65 78 74 65 6e 73 69 6f 6e 73 2e 3c ate extensions.<
3e50: 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e /dd>..<dt><stron
3e60: 67 3e 65 78 74 65 6e 73 69 6f 6e 73 3c 2f 73 74 g>extensions</st
3e70: 72 6f 6e 67 3e 20 3c 65 6d 3e 6c 69 73 74 3c 2f rong> <em>list</
3e80: 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 4c 69 em></dt>..<dd>Li
3e90: 73 74 20 6f 66 20 63 65 72 74 69 66 69 63 61 74 st of certificat
3ea0: 65 20 65 78 74 65 6e 73 69 6f 6e 20 6e 61 6d 65 e extension name
3eb0: 73 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 s.</dd>..<dt><st
3ec0: 72 6f 6e 67 3e 61 75 74 68 6f 72 69 74 79 4b 65 rong>authorityKe
3ed0: 79 49 64 65 6e 74 69 66 69 65 72 3c 2f 73 74 72 yIdentifier</str
3ee0: 6f 6e 67 3e 20 3c 65 6d 3e 73 74 72 69 6e 67 3c ong> <em>string<
3ef0: 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 28 /em></dt>..<dd>(
3f00: 41 4b 49 29 20 4b 65 79 20 69 64 65 6e 74 69 66 AKI) Key identif
3f10: 69 65 72 20 6f 66 20 74 68 65 20 49 73 73 75 69 ier of the Issui
3f20: 6e 67 20 43 41 20 63 65 72 74 69 66 69 63 61 74 ng CA certificat
3f30: 65 20 74 68 61 74 20 73 69 67 6e 65 64 0a 09 20 e that signed..
3f40: 20 20 20 74 68 65 20 53 53 4c 20 63 65 72 74 69 the SSL certi
3f50: 66 69 63 61 74 65 20 61 73 20 61 20 68 65 78 20 ficate as a hex
3f60: 73 74 72 69 6e 67 2e 20 54 68 69 73 20 76 61 6c string. This val
3f70: 75 65 20 6d 61 74 63 68 65 73 20 74 68 65 20 53 ue matches the S
3f80: 4b 49 0a 09 20 20 20 20 76 61 6c 75 65 20 6f 66 KI.. value of
3f90: 20 74 68 65 20 49 6e 74 65 72 6d 65 64 69 61 74 the Intermediat
3fa0: 65 20 43 41 20 63 65 72 74 69 66 69 63 61 74 65 e CA certificate
3fb0: 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 .</dd>..<dt><str
3fc0: 6f 6e 67 3e 73 75 62 6a 65 63 74 4b 65 79 49 64 ong>subjectKeyId
3fd0: 65 6e 74 69 66 69 65 72 3c 2f 73 74 72 6f 6e 67 entifier</strong
3fe0: 3e 20 3c 65 6d 3e 73 74 72 69 6e 67 3c 2f 65 6d > <em>string</em
3ff0: 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 28 53 4b 49 ></dt>..<dd>(SKI
4000: 29 20 48 61 73 68 20 6f 66 20 74 68 65 20 70 75 ) Hash of the pu
4010: 62 6c 69 63 20 6b 65 79 20 69 6e 73 69 64 65 20 blic key inside
4020: 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 20 the certificate
4030: 61 73 20 61 20 68 65 78 0a 09 20 20 20 20 73 74 as a hex.. st
4040: 72 69 6e 67 2e 20 55 73 65 64 20 74 6f 20 69 64 ring. Used to id
4050: 65 6e 74 69 66 79 20 63 65 72 74 69 66 69 63 61 entify certifica
4060: 74 65 73 20 74 68 61 74 20 63 6f 6e 74 61 69 6e tes that contain
4070: 20 61 20 70 61 72 74 69 63 75 6c 61 72 0a 09 20 a particular..
4080: 20 20 20 70 75 62 6c 69 63 20 6b 65 79 2e 3c 2f public key.</
4090: 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 dd>..<dt><strong
40a0: 3e 73 75 62 6a 65 63 74 41 6c 74 4e 61 6d 65 3c >subjectAltName<
40b0: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 6c 69 73 /strong> <em>lis
40c0: 74 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 t</em></dt>..<dd
40d0: 3e 4c 69 73 74 20 6f 66 20 61 6c 6c 20 6f 66 20 >List of all of
40e0: 74 68 65 20 61 6c 74 65 72 6e 61 74 69 76 65 20 the alternative
40f0: 64 6f 6d 61 69 6e 20 6e 61 6d 65 73 2c 20 73 75 domain names, su
4100: 62 20 64 6f 6d 61 69 6e 73 2c 0a 09 20 20 20 20 b domains,..
4110: 61 6e 64 20 49 50 20 61 64 64 72 65 73 73 65 73 and IP addresses
4120: 20 74 68 61 74 20 61 72 65 20 73 65 63 75 72 65 that are secure
4130: 64 20 62 79 20 74 68 65 20 63 65 72 74 69 66 69 d by the certifi
4140: 63 61 74 65 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e cate.</dd>..<dt>
4150: 3c 73 74 72 6f 6e 67 3e 6f 63 73 70 3c 2f 73 74 <strong>ocsp</st
4160: 72 6f 6e 67 3e 20 3c 65 6d 3e 6c 69 73 74 3c 2f rong> <em>list</
4170: 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 4c 69 em></dt>..<dd>Li
4180: 73 74 20 6f 66 20 61 6c 6c 20 4f 6e 6c 69 6e 65 st of all Online
4190: 20 43 65 72 74 69 66 69 63 61 74 65 20 53 74 61 Certificate Sta
41a0: 74 75 73 20 50 72 6f 74 6f 63 6f 6c 20 28 4f 43 tus Protocol (OC
41b0: 53 50 29 20 55 52 4c 73 2e 3c 2f 64 64 3e 0a 09 SP) URLs.</dd>..
41c0: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 63 65 72 74 <dt><strong>cert
41d0: 69 66 69 63 61 74 65 3c 2f 73 74 72 6f 6e 67 3e ificate</strong>
41e0: 20 3c 65 6d 3e 63 65 72 74 3c 2f 65 6d 3e 3c 2f <em>cert</em></
41f0: 64 74 3e 0a 09 3c 64 64 3e 54 68 65 20 50 45 4d dt>..<dd>The PEM
4200: 20 65 6e 63 6f 64 65 64 20 63 65 72 74 69 66 69 encoded certifi
4210: 63 61 74 65 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e cate.</dd>..<dt>
4220: 3c 73 74 72 6f 6e 67 3e 73 69 67 6e 61 74 75 72 <strong>signatur
4230: 65 41 6c 67 6f 72 69 74 68 6d 3c 2f 73 74 72 6f eAlgorithm</stro
4240: 6e 67 3e 20 3c 65 6d 3e 61 6c 67 6f 72 69 74 68 ng> <em>algorith
4250: 6d 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 m</em></dt>..<dd
4260: 3e 43 69 70 68 65 72 20 61 6c 67 6f 72 69 74 68 >Cipher algorith
4270: 6d 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 63 m used for the c
4280: 65 72 74 69 66 69 63 61 74 65 20 73 69 67 6e 61 ertificate signa
4290: 74 75 72 65 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e ture.</dd>..<dt>
42a0: 3c 73 74 72 6f 6e 67 3e 73 69 67 6e 61 74 75 72 <strong>signatur
42b0: 65 56 61 6c 75 65 3c 2f 73 74 72 6f 6e 67 3e 20 eValue</strong>
42c0: 3c 65 6d 3e 73 74 72 69 6e 67 3c 2f 65 6d 3e 3c <em>string</em><
42d0: 2f 64 74 3e 0a 09 3c 64 64 3e 43 65 72 74 69 66 /dt>..<dd>Certif
42e0: 69 63 61 74 65 20 73 69 67 6e 61 74 75 72 65 20 icate signature
42f0: 61 73 20 61 20 68 65 78 20 73 74 72 69 6e 67 2e as a hex string.
4300: 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f </dd>..<dt><stro
4310: 6e 67 3e 73 69 67 6e 61 74 75 72 65 44 69 67 65 ng>signatureDige
4320: 73 74 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e st</strong> <em>
4330: 76 65 72 73 69 6f 6e 3c 2f 65 6d 3e 3c 2f 64 74 version</em></dt
4340: 3e 0a 09 3c 64 64 3e 43 65 72 74 69 66 69 63 61 >..<dd>Certifica
4350: 74 65 20 73 69 67 6e 69 6e 67 20 64 69 67 65 73 te signing diges
4360: 74 20 61 73 20 61 20 68 65 78 20 73 74 72 69 6e t as a hex strin
4370: 67 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 g.</dd>..<dt><st
4380: 72 6f 6e 67 3e 70 75 62 6c 69 63 4b 65 79 41 6c rong>publicKeyAl
4390: 67 6f 72 69 74 68 6d 3c 2f 73 74 72 6f 6e 67 3e gorithm</strong>
43a0: 20 3c 65 6d 3e 61 6c 67 6f 72 69 74 68 6d 3c 2f <em>algorithm</
43b0: 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 43 65 em></dt>..<dd>Ce
43c0: 72 74 69 66 69 63 61 74 65 20 73 69 67 6e 61 74 rtificate signat
43d0: 75 72 65 20 70 75 62 6c 69 63 20 6b 65 79 20 61 ure public key a
43e0: 6c 67 6f 72 69 74 68 6d 2e 3c 2f 64 64 3e 0a 09 lgorithm.</dd>..
43f0: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 70 75 62 6c <dt><strong>publ
4400: 69 63 4b 65 79 3c 2f 73 74 72 6f 6e 67 3e 20 3c icKey</strong> <
4410: 65 6d 3e 73 74 72 69 6e 67 3c 2f 65 6d 3e 3c 2f em>string</em></
4420: 64 74 3e 0a 09 3c 64 64 3e 43 65 72 74 69 66 69 dt>..<dd>Certifi
4430: 63 61 74 65 20 73 69 67 6e 61 74 75 72 65 20 70 cate signature p
4440: 75 62 6c 69 63 20 6b 65 79 20 61 73 20 61 20 68 ublic key as a h
4450: 65 78 20 73 74 72 69 6e 67 2e 3c 2f 64 64 3e 0a ex string.</dd>.
4460: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 62 69 74 .<dt><strong>bit
4470: 73 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 6e s</strong> <em>n
4480: 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e </em></dt>..<dd>
4490: 4e 75 6d 62 65 72 20 6f 66 20 62 69 74 73 20 75 Number of bits u
44a0: 73 65 64 20 66 6f 72 20 63 65 72 74 69 66 69 63 sed for certific
44b0: 61 74 65 20 73 69 67 6e 61 74 75 72 65 20 6b 65 ate signature ke
44c0: 79 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 y.</dd>..<dt><st
44d0: 72 6f 6e 67 3e 73 65 6c 66 5f 73 69 67 6e 65 64 rong>self_signed
44e0: 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 62 6f </strong> <em>bo
44f0: 6f 6c 65 61 6e 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a olean</em></dt>.
4500: 09 3c 64 64 3e 57 68 65 74 68 65 72 20 74 68 65 .<dd>Whether the
4510: 20 63 65 72 74 69 66 69 63 61 74 65 20 73 69 67 certificate sig
4520: 6e 61 74 75 72 65 20 69 73 20 73 65 6c 66 20 73 nature is self s
4530: 69 67 6e 65 64 2e 3c 2f 64 64 3e 0a 09 3c 64 74 igned.</dd>..<dt
4540: 3e 3c 73 74 72 6f 6e 67 3e 73 68 61 31 5f 68 61 ><strong>sha1_ha
4550: 73 68 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e sh</strong> <em>
4560: 68 61 73 68 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 hash</em></dt>..
4570: 3c 64 64 3e 54 68 65 20 53 48 41 31 20 68 61 73 <dd>The SHA1 has
4580: 68 20 6f 66 20 74 68 65 20 63 65 72 74 69 66 69 h of the certifi
4590: 63 61 74 65 20 61 73 20 61 20 68 65 78 20 73 74 cate as a hex st
45a0: 72 69 6e 67 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e ring.</dd>..<dt>
45b0: 3c 73 74 72 6f 6e 67 3e 73 68 61 32 35 36 5f 68 <strong>sha256_h
45c0: 61 73 68 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d ash</strong> <em
45d0: 3e 68 61 73 68 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a >hash</em></dt>.
45e0: 09 3c 64 64 3e 54 68 65 20 53 48 41 32 35 36 20 .<dd>The SHA256
45f0: 68 61 73 68 20 6f 66 20 74 68 65 20 63 65 72 74 hash of the cert
4600: 69 66 69 63 61 74 65 20 61 73 20 61 20 68 65 78 ificate as a hex
4610: 20 73 74 72 69 6e 67 2e 3c 2f 64 64 3e 0a 20 20 string.</dd>.
4620: 20 20 3c 2f 64 6c 3e 0a 20 20 20 20 3c 2f 62 6c </dl>. </bl
4630: 6f 63 6b 71 75 6f 74 65 3e 0a 0a 20 20 20 20 3c ockquote>.. <
4640: 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 74 6c 73 3a dt><a name="tls:
4650: 3a 63 6f 6e 6e 65 63 74 69 6f 6e 22 3e 3c 73 74 :connection"><st
4660: 72 6f 6e 67 3e 74 6c 73 3a 3a 63 6f 6e 6e 65 63 rong>tls::connec
4670: 74 69 6f 6e 3c 2f 73 74 72 6f 6e 67 3e 0a 20 20 tion</strong>.
4680: 20 20 3c 65 6d 3e 63 68 61 6e 6e 65 6c 3c 2f 65 <em>channel</e
4690: 6d 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 20 20 20 20 m></a></dt>.
46a0: 3c 64 64 3e 52 65 74 75 72 6e 73 20 74 68 65 20 <dd>Returns the
46b0: 63 75 72 72 65 6e 74 20 63 6f 6e 6e 65 63 74 69 current connecti
46c0: 6f 6e 20 73 74 61 74 75 73 20 6f 66 20 61 6e 20 on status of an
46d0: 53 53 4c 20 63 68 61 6e 6e 65 6c 2e 20 54 68 65 SSL channel. The
46e0: 0a 09 72 65 73 75 6c 74 20 69 73 20 61 20 6c 69 ..result is a li
46f0: 73 74 20 6f 66 20 6b 65 79 2d 76 61 6c 75 65 20 st of key-value
4700: 70 61 69 72 73 20 64 65 73 63 72 69 62 69 6e 67 pairs describing
4710: 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e the connection.
4720: 3c 2f 64 64 3e 0a 20 20 20 20 3c 62 6c 6f 63 6b </dd>. <block
4730: 71 75 6f 74 65 3e 0a 20 20 20 20 3c 62 3e 53 53 quote>. <b>SS
4740: 4c 20 53 74 61 74 75 73 3c 2f 62 3e 0a 20 20 20 L Status</b>.
4750: 20 3c 64 6c 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f <dl>..<dt><stro
4760: 6e 67 3e 73 74 61 74 65 3c 2f 73 74 72 6f 6e 67 ng>state</strong
4770: 3e 20 3c 65 6d 3e 73 74 61 74 65 3c 2f 65 6d 3e > <em>state</em>
4780: 3c 2f 64 74 3e 0a 09 3c 64 64 3e 53 74 61 74 65 </dt>..<dd>State
4790: 20 6f 66 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 of the connecti
47a0: 6f 6e 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 on.</dd>..<dt><s
47b0: 74 72 6f 6e 67 3e 73 65 72 76 65 72 6e 61 6d 65 trong>servername
47c0: 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 6e 61 </strong> <em>na
47d0: 6d 65 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 me</em></dt>..<d
47e0: 64 3e 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 d>The name of th
47f0: 65 20 63 6f 6e 6e 65 63 74 65 64 20 74 6f 20 73 e connected to s
4800: 65 72 76 65 72 2e 3c 2f 64 64 3e 0a 09 3c 64 74 erver.</dd>..<dt
4810: 3e 3c 73 74 72 6f 6e 67 3e 70 72 6f 74 6f 63 6f ><strong>protoco
4820: 6c 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 76 l</strong> <em>v
4830: 65 72 73 69 6f 6e 3c 2f 65 6d 3e 3c 2f 64 74 3e ersion</em></dt>
4840: 0a 09 3c 64 64 3e 54 68 65 20 70 72 6f 74 6f 63 ..<dd>The protoc
4850: 6f 6c 20 76 65 72 73 69 6f 6e 20 75 73 65 64 20 ol version used
4860: 66 6f 72 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 for the connecti
4870: 6f 6e 3a 0a 09 20 20 20 20 53 53 4c 32 2c 20 53 on:.. SSL2, S
4880: 53 4c 33 2c 20 54 4c 53 31 2c 20 54 4c 53 31 2e SL3, TLS1, TLS1.
4890: 31 2c 20 54 4c 53 31 2e 32 2c 20 54 4c 53 31 2e 1, TLS1.2, TLS1.
48a0: 33 2c 20 6f 72 20 75 6e 6b 6e 6f 77 6e 2e 3c 2f 3, or unknown.</
48b0: 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 dd>..<dt><strong
48c0: 3e 72 65 6e 65 67 6f 74 69 61 74 69 6f 6e 5f 61 >renegotiation_a
48d0: 6c 6c 6f 77 65 64 3c 2f 73 74 72 6f 6e 67 3e 20 llowed</strong>
48e0: 3c 65 6d 3e 62 6f 6f 6c 65 61 6e 3c 2f 65 6d 3e <em>boolean</em>
48f0: 3c 2f 64 74 3e 0a 09 3c 64 64 3e 57 68 65 74 68 </dt>..<dd>Wheth
4900: 65 72 20 70 72 6f 74 6f 63 6f 6c 20 72 65 6e 65 er protocol rene
4910: 67 6f 74 69 61 74 69 6f 6e 20 69 73 20 73 75 70 gotiation is sup
4920: 70 6f 72 74 65 64 20 6f 72 20 6e 6f 74 2e 3c 2f ported or not.</
4930: 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 dd>..<dt><strong
4940: 3e 73 65 63 75 72 69 74 79 5f 6c 65 76 65 6c 3c >security_level<
4950: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 6c 65 76 /strong> <em>lev
4960: 65 6c 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 el</em></dt>..<d
4970: 64 3e 54 68 65 20 73 65 63 75 72 69 74 79 20 6c d>The security l
4980: 65 76 65 6c 20 75 73 65 64 20 66 6f 72 20 73 65 evel used for se
4990: 6c 65 63 74 69 6f 6e 20 6f 66 20 63 69 70 68 65 lection of ciphe
49a0: 72 73 2c 20 6b 65 79 20 73 69 7a 65 2c 20 65 74 rs, key size, et
49b0: 63 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 c.</dd>..<dt><st
49c0: 72 6f 6e 67 3e 73 65 73 73 69 6f 6e 5f 72 65 75 rong>session_reu
49d0: 73 65 64 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d sed</strong> <em
49e0: 3e 62 6f 6f 6c 65 61 6e 3c 2f 65 6d 3e 3c 2f 64 >boolean</em></d
49f0: 74 3e 0a 09 3c 64 64 3e 57 68 65 74 68 65 72 20 t>..<dd>Whether
4a00: 74 68 65 20 73 65 73 73 69 6f 6e 20 68 61 73 20 the session has
4a10: 62 65 65 6e 20 72 65 75 73 65 64 20 6f 72 20 6e been reused or n
4a20: 6f 74 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 ot.</dd>..<dt><s
4a30: 74 72 6f 6e 67 3e 69 73 5f 73 65 72 76 65 72 3c trong>is_server<
4a40: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 62 6f 6f /strong> <em>boo
4a50: 6c 65 61 6e 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 lean</em></dt>..
4a60: 3c 64 64 3e 57 68 65 74 68 65 72 20 74 68 65 20 <dd>Whether the
4a70: 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 73 20 63 6f connection is co
4a80: 6e 66 69 67 75 72 65 64 20 61 73 20 61 20 73 65 nfigured as a se
4a90: 72 76 65 72 20 28 31 29 20 6f 72 20 63 6c 69 65 rver (1) or clie
4aa0: 6e 74 20 28 30 29 2e 3c 2f 64 64 3e 0a 09 3c 64 nt (0).</dd>..<d
4ab0: 74 3e 3c 73 74 72 6f 6e 67 3e 63 6f 6d 70 72 65 t><strong>compre
4ac0: 73 73 69 6f 6e 3c 2f 73 74 72 6f 6e 67 3e 20 3c ssion</strong> <
4ad0: 65 6d 3e 6d 6f 64 65 3c 2f 65 6d 3e 3c 2f 64 74 em>mode</em></dt
4ae0: 3e 0a 09 3c 64 64 3e 43 6f 6d 70 72 65 73 73 69 >..<dd>Compressi
4af0: 6f 6e 20 6d 65 74 68 6f 64 2e 3c 2f 64 64 3e 0a on method.</dd>.
4b00: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 65 78 70 .<dt><strong>exp
4b10: 61 6e 73 69 6f 6e 3c 2f 73 74 72 6f 6e 67 3e 20 ansion</strong>
4b20: 3c 65 6d 3e 6d 6f 64 65 3c 2f 65 6d 3e 3c 2f 64 <em>mode</em></d
4b30: 74 3e 0a 09 3c 64 64 3e 45 78 70 61 6e 73 69 6f t>..<dd>Expansio
4b40: 6e 20 6d 65 74 68 6f 64 2e 3c 2f 64 64 3e 0a 09 n method.</dd>..
4b50: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 63 61 4c 69 <dt><strong>caLi
4b60: 73 74 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e st</strong> <em>
4b70: 6c 69 73 74 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 list</em></dt>..
4b80: 3c 64 64 3e 4c 69 73 74 20 6f 66 20 43 65 72 74 <dd>List of Cert
4b90: 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 ificate Authorit
4ba0: 69 65 73 20 28 43 41 29 20 66 6f 72 20 58 2e 35 ies (CA) for X.5
4bb0: 30 39 20 63 65 72 74 69 66 69 63 61 74 65 2e 3c 09 certificate.<
4bc0: 2f 64 64 3e 0a 20 20 20 20 3c 2f 64 6c 3e 0a 20 /dd>. </dl>.
4bd0: 20 20 20 3c 62 3e 43 69 70 68 65 72 20 49 6e 66 <b>Cipher Inf
4be0: 6f 3c 2f 62 3e 0a 20 20 20 20 3c 64 6c 3e 0a 09 o</b>. <dl>..
4bf0: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 63 69 70 68 <dt><strong>ciph
4c00: 65 72 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e er</strong> <em>
4c10: 63 69 70 68 65 72 3c 2f 65 6d 3e 3c 2f 64 74 3e cipher</em></dt>
4c20: 0a 09 3c 64 64 3e 54 68 65 20 63 75 72 72 65 6e ..<dd>The curren
4c30: 74 20 63 69 70 68 65 72 20 69 6e 20 75 73 65 20 t cipher in use
4c40: 66 6f 72 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 for the connecti
4c50: 6f 6e 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 on.</dd>..<dt><s
4c60: 74 72 6f 6e 67 3e 73 74 61 6e 64 61 72 64 5f 6e trong>standard_n
4c70: 61 6d 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d ame</strong> <em
4c80: 3e 6e 61 6d 65 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a >name</em></dt>.
4c90: 09 3c 64 64 3e 54 68 65 20 73 74 61 6e 64 61 72 .<dd>The standar
4ca0: 64 20 52 46 43 20 6e 61 6d 65 20 6f 66 20 63 69 d RFC name of ci
4cb0: 70 68 65 72 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e pher.</dd>..<dt>
4cc0: 3c 73 74 72 6f 6e 67 3e 61 6c 67 6f 72 69 74 68 <strong>algorith
4cd0: 6d 5f 62 69 74 73 3c 2f 73 74 72 6f 6e 67 3e 20 m_bits</strong>
4ce0: 3c 65 6d 3e 6e 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a <em>n</em></dt>.
4cf0: 09 3c 64 64 3e 54 68 65 20 6e 75 6d 62 65 72 20 .<dd>The number
4d00: 6f 66 20 70 72 6f 63 65 73 73 65 64 20 62 69 74 of processed bit
4d10: 73 20 75 73 65 64 20 66 6f 72 20 63 69 70 68 65 s used for ciphe
4d20: 72 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 r.</dd>..<dt><st
4d30: 72 6f 6e 67 3e 73 65 63 72 65 74 5f 62 69 74 73 rong>secret_bits
4d40: 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 6e 3c </strong> <em>n<
4d50: 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 /em></dt>..<dd>T
4d60: 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 he number of sec
4d70: 72 65 74 20 62 69 74 73 20 75 73 65 64 20 66 6f ret bits used fo
4d80: 72 20 63 69 70 68 65 72 2e 3c 2f 64 64 3e 0a 09 r cipher.</dd>..
4d90: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 6d 69 6e 5f <dt><strong>min_
4da0: 76 65 72 73 69 6f 6e 3c 2f 73 74 72 6f 6e 67 3e version</strong>
4db0: 20 3c 65 6d 3e 76 65 72 73 69 6f 6e 3c 2f 65 6d <em>version</em
4dc0: 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 68 65 20 ></dt>..<dd>The
4dd0: 6d 69 6e 69 6d 75 6d 20 70 72 6f 74 6f 63 6f 6c minimum protocol
4de0: 20 76 65 72 73 69 6f 6e 20 66 6f 72 20 63 69 70 version for cip
4df0: 68 65 72 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c her.</dd>..<dt><
4e00: 73 74 72 6f 6e 67 3e 63 69 70 68 65 72 5f 69 73 strong>cipher_is
4e10: 5f 61 65 61 64 3c 2f 73 74 72 6f 6e 67 3e 20 3c _aead</strong> <
4e20: 65 6d 3e 62 6f 6f 6c 65 61 6e 3c 2f 65 6d 3e 3c em>boolean</em><
4e30: 2f 64 74 3e 0a 09 3c 64 64 3e 57 68 65 74 68 65 /dt>..<dd>Whethe
4e40: 72 20 74 68 65 20 63 69 70 68 65 72 20 69 73 20 r the cipher is
4e50: 41 75 74 68 65 6e 74 69 63 61 74 65 64 20 45 6e Authenticated En
4e60: 63 72 79 70 74 69 6f 6e 20 77 69 74 68 0a 09 20 cryption with..
4e70: 20 20 20 41 73 73 6f 63 69 61 74 65 64 20 44 61 Associated Da
4e80: 74 61 20 28 41 45 41 44 29 2e 3c 2f 64 64 3e 0a ta (AEAD).</dd>.
4e90: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 63 69 70 .<dt><strong>cip
4ea0: 68 65 72 5f 69 64 3c 2f 73 74 72 6f 6e 67 3e 20 her_id</strong>
4eb0: 3c 65 6d 3e 69 64 3c 2f 65 6d 3e 3c 2f 64 74 3e <em>id</em></dt>
4ec0: 0a 09 3c 64 64 3e 54 68 65 20 4f 70 65 6e 53 53 ..<dd>The OpenSS
4ed0: 4c 20 63 69 70 68 65 72 20 69 64 2e 3c 2f 64 64 L cipher id.</dd
4ee0: 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 64 >..<dt><strong>d
4ef0: 65 73 63 72 69 70 74 69 6f 6e 3c 2f 73 74 72 6f escription</stro
4f00: 6e 67 3e 20 3c 65 6d 3e 73 74 72 69 6e 67 3c 2f ng> <em>string</
4f10: 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 41 20 em></dt>..<dd>A
4f20: 74 65 78 74 20 64 65 73 63 72 69 70 74 69 6f 6e text description
4f30: 20 6f 66 20 74 68 65 20 63 69 70 68 65 72 2e 3c of the cipher.<
4f40: 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e /dd>..<dt><stron
4f50: 67 3e 68 61 6e 64 73 68 61 6b 65 5f 64 69 67 65 g>handshake_dige
4f60: 73 74 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e st</strong> <em>
4f70: 62 6f 6f 6c 65 61 6e 3c 2f 65 6d 3e 3c 2f 64 74 boolean</em></dt
4f80: 3e 0a 09 3c 64 64 3e 44 69 67 65 73 74 20 75 73 >..<dd>Digest us
4f90: 65 64 20 64 75 72 69 6e 67 20 68 61 6e 64 73 68 ed during handsh
4fa0: 61 6b 65 2e 3c 2f 64 64 3e 0a 20 20 20 20 3c 2f ake.</dd>. </
4fb0: 64 6c 3e 0a 20 20 20 20 3c 62 3e 53 65 73 73 69 dl>. <b>Sessi
4fc0: 6f 6e 20 49 6e 66 6f 3c 2f 62 3e 0a 20 20 20 20 on Info</b>.
4fd0: 3c 64 6c 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e <dl>..<dt><stron
4fe0: 67 3e 61 6c 70 6e 3c 2f 73 74 72 6f 6e 67 3e 20 g>alpn</strong>
4ff0: 3c 65 6d 3e 70 72 6f 74 6f 63 6f 6c 3c 2f 65 6d <em>protocol</em
5000: 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 68 65 20 ></dt>..<dd>The
5010: 70 72 6f 74 6f 63 6f 6c 20 73 65 6c 65 63 74 65 protocol selecte
5020: 64 20 61 66 74 65 72 20 41 70 70 6c 69 63 61 74 d after Applicat
5030: 69 6f 6e 2d 4c 61 79 65 72 20 50 72 6f 74 6f 63 ion-Layer Protoc
5040: 6f 6c 0a 09 20 20 20 20 4e 65 67 6f 74 69 61 74 ol.. Negotiat
5050: 69 6f 6e 20 28 41 4c 50 4e 29 2e 3c 2f 64 64 3e ion (ALPN).</dd>
5060: 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 72 65 ..<dt><strong>re
5070: 73 75 6d 61 62 6c 65 3c 2f 73 74 72 6f 6e 67 3e sumable</strong>
5080: 20 3c 65 6d 3e 62 6f 6f 6c 65 61 6e 3c 2f 65 6d <em>boolean</em
5090: 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 57 68 65 74 ></dt>..<dd>Whet
50a0: 68 65 72 20 74 68 65 20 73 65 73 73 69 6f 6e 20 her the session
50b0: 63 61 6e 20 62 65 20 72 65 73 75 6d 65 64 20 6f can be resumed o
50c0: 72 20 6e 6f 74 2e 3c 2f 64 64 3e 0a 09 3c 64 74 r not.</dd>..<dt
50d0: 3e 3c 73 74 72 6f 6e 67 3e 73 74 61 72 74 5f 74 ><strong>start_t
50e0: 69 6d 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d ime</strong> <em
50f0: 3e 73 65 63 6f 6e 64 73 3c 2f 65 6d 3e 3c 2f 64 >seconds</em></d
5100: 74 3e 0a 09 3c 64 64 3e 54 69 6d 65 20 73 69 6e t>..<dd>Time sin
5110: 63 65 20 73 65 73 73 69 6f 6e 20 73 74 61 72 74 ce session start
5120: 65 64 20 69 6e 20 73 65 63 6f 6e 64 73 20 73 69 ed in seconds si
5130: 6e 63 65 20 65 70 6f 63 68 2e 3c 2f 64 64 3e 0a nce epoch.</dd>.
5140: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 74 69 6d .<dt><strong>tim
5150: 65 6f 75 74 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 eout</strong> <e
5160: 6d 3e 73 65 63 6f 6e 64 73 3c 2f 65 6d 3e 3c 2f m>seconds</em></
5170: 64 74 3e 0a 09 3c 64 64 3e 4d 61 78 20 64 75 72 dt>..<dd>Max dur
5180: 61 74 69 6f 6e 20 6f 66 20 73 65 73 73 69 6f 6e ation of session
5190: 20 69 6e 20 73 65 63 6f 6e 64 73 20 62 65 66 6f in seconds befo
51a0: 72 65 20 74 69 6d 65 2d 6f 75 74 2e 3c 2f 64 64 re time-out.</dd
51b0: 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 6c >..<dt><strong>l
51c0: 69 66 65 74 69 6d 65 3c 2f 73 74 72 6f 6e 67 3e ifetime</strong>
51d0: 20 3c 65 6d 3e 73 65 63 6f 6e 64 73 3c 2f 65 6d <em>seconds</em
51e0: 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 53 65 73 73 ></dt>..<dd>Sess
51f0: 69 6f 6e 20 74 69 63 6b 65 74 20 6c 69 66 65 74 ion ticket lifet
5200: 69 6d 65 20 68 69 6e 74 20 69 6e 20 73 65 63 6f ime hint in seco
5210: 6e 64 73 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c nds.</dd>..<dt><
5220: 73 74 72 6f 6e 67 3e 73 65 73 73 69 6f 6e 5f 69 strong>session_i
5230: 64 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 62 d</strong> <em>b
5240: 69 6e 61 72 79 5f 73 74 72 69 6e 67 3c 2f 65 6d inary_string</em
5250: 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 55 6e 69 71 ></dt>..<dd>Uniq
5260: 75 65 20 73 65 73 73 69 6f 6e 20 69 64 20 66 6f ue session id fo
5270: 72 20 75 73 65 20 69 6e 20 72 65 73 75 6d 69 6e r use in resumin
5280: 67 20 74 68 65 20 73 65 73 73 69 6f 6e 2e 3c 2f g the session.</
5290: 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 dd>..<dt><strong
52a0: 3e 73 65 73 73 69 6f 6e 5f 74 69 63 6b 65 74 3c >session_ticket<
52b0: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 62 69 6e /strong> <em>bin
52c0: 61 72 79 5f 73 74 72 69 6e 67 3c 2f 65 6d 3e 3c ary_string</em><
52d0: 2f 64 74 3e 0a 09 3c 64 64 3e 55 6e 69 71 75 65 /dt>..<dd>Unique
52e0: 20 73 65 73 73 69 6f 6e 20 74 69 63 6b 65 74 20 session ticket
52f0: 66 6f 72 20 75 73 65 20 69 6e 20 72 65 73 75 6d for use in resum
5300: 69 6e 67 20 74 68 65 20 73 65 73 73 69 6f 6e 2e ing the session.
5310: 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f </dd>..<dt><stro
5320: 6e 67 3e 74 69 63 6b 65 74 5f 61 70 70 5f 64 61 ng>ticket_app_da
5330: 74 61 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e ta</strong> <em>
5340: 62 69 6e 61 72 79 5f 73 74 72 69 6e 67 3c 2f 65 binary_string</e
5350: 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 55 6e 69 m></dt>..<dd>Uni
5360: 71 75 65 20 73 65 73 73 69 6f 6e 20 74 69 63 6b que session tick
5370: 65 74 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 64 et application d
5380: 61 74 61 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c ata.</dd>..<dt><
5390: 73 74 72 6f 6e 67 3e 6d 61 73 74 65 72 5f 6b 65 strong>master_ke
53a0: 79 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 62 y</strong> <em>b
53b0: 69 6e 61 72 79 5f 73 74 72 69 6e 67 3c 2f 65 6d inary_string</em
53c0: 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 55 6e 69 71 ></dt>..<dd>Uniq
53d0: 75 65 20 73 65 73 73 69 6f 6e 20 6d 61 73 74 65 ue session maste
53e0: 72 20 6b 65 79 2e 3c 2f 64 64 3e 0a 09 3c 64 74 r key.</dd>..<dt
53f0: 3e 3c 73 74 72 6f 6e 67 3e 73 65 73 73 69 6f 6e ><strong>session
5400: 5f 63 61 63 68 65 5f 6d 6f 64 65 3c 2f 73 74 72 _cache_mode</str
5410: 6f 6e 67 3e 20 3c 65 6d 3e 6d 6f 64 65 3c 2f 65 ong> <em>mode</e
5420: 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 53 65 72 m></dt>..<dd>Ser
5430: 76 65 72 20 63 61 63 68 65 20 6d 6f 64 65 20 28 ver cache mode (
5440: 63 6c 69 65 6e 74 2c 20 73 65 72 76 65 72 2c 20 client, server,
5450: 6f 72 20 62 6f 74 68 29 2e 3c 2f 64 64 3e 0a 20 or both).</dd>.
5460: 20 20 20 3c 2f 64 6c 3e 0a 20 20 20 20 3c 2f 62 </dl>. </b
5470: 6c 6f 63 6b 71 75 6f 74 65 3e 0a 0a 20 20 20 20 lockquote>..
5480: 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 74 6c 73 <dt><a name="tls
5490: 3a 3a 63 69 70 68 65 72 73 22 3e 3c 73 74 72 6f ::ciphers"><stro
54a0: 6e 67 3e 74 6c 73 3a 3a 63 69 70 68 65 72 73 3c ng>tls::ciphers<
54b0: 2f 73 74 72 6f 6e 67 3e 0a 09 3c 65 6d 3e 3f 70 /strong>..<em>?p
54c0: 72 6f 74 6f 63 6f 6c 3f 20 3f 76 65 72 62 6f 73 rotocol? ?verbos
54d0: 65 3f 20 3f 73 75 70 70 6f 72 74 65 64 3f 3c 2f e? ?supported?</
54e0: 65 6d 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 20 20 20 em></a></dt>.
54f0: 20 3c 64 64 3e 57 69 74 68 6f 75 74 20 61 6e 79 <dd>Without any
5500: 20 61 72 67 73 2c 20 72 65 74 75 72 6e 73 20 61 args, returns a
5510: 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 73 79 6d list of all sym
5520: 6d 65 74 72 69 63 20 63 69 70 68 65 72 73 20 66 metric ciphers f
5530: 6f 72 20 75 73 65 0a 09 77 69 74 68 20 74 68 65 or use..with the
5540: 20 3c 73 74 72 6f 6e 67 3e 2d 63 69 70 68 65 72 <strong>-cipher
5550: 3c 2f 73 74 72 6f 6e 67 3e 20 6f 70 74 69 6f 6e </strong> option
5560: 2e 20 57 69 74 68 20 3c 65 6d 3e 70 72 6f 74 6f . With <em>proto
5570: 63 6f 6c 3c 2f 65 6d 3e 2c 0a 09 6f 6e 6c 79 20 col</em>,..only
5580: 74 68 65 20 63 69 70 68 65 72 73 20 73 75 70 70 the ciphers supp
5590: 6f 72 74 65 64 20 66 6f 72 20 74 68 61 74 20 70 orted for that p
55a0: 72 6f 74 6f 63 6f 6c 20 61 72 65 20 72 65 74 75 rotocol are retu
55b0: 72 6e 65 64 2e 20 53 65 65 0a 09 3c 61 20 68 72 rned. See..<a hr
55c0: 65 66 3d 22 23 74 6c 73 3a 3a 70 72 6f 74 6f 63 ef="#tls::protoc
55d0: 6f 6c 73 22 3e 3c 73 74 72 6f 6e 67 3e 74 6c 73 ols"><strong>tls
55e0: 3a 3a 70 72 6f 74 6f 63 6f 6c 73 3c 2f 73 74 72 ::protocols</str
55f0: 6f 6e 67 3e 3c 2f 61 3e 20 63 6f 6d 6d 61 6e 64 ong></a> command
5600: 0a 09 66 6f 72 20 74 68 65 20 73 75 70 70 6f 72 ..for the suppor
5610: 74 65 64 20 70 72 6f 74 6f 63 6f 6c 73 2e 20 49 ted protocols. I
5620: 66 20 3c 65 6d 3e 76 65 72 62 6f 73 65 3c 2f 65 f <em>verbose</e
5630: 6d 3e 20 69 73 20 73 70 65 63 69 66 69 65 64 20 m> is specified
5640: 61 73 20 74 72 75 65 0a 09 74 68 65 6e 20 61 20 as true..then a
5650: 76 65 72 62 6f 73 65 2c 20 68 75 6d 61 6e 20 72 verbose, human r
5660: 65 61 64 61 62 6c 65 20 6c 69 73 74 20 69 73 20 eadable list is
5670: 72 65 74 75 72 6e 65 64 20 77 69 74 68 20 61 64 returned with ad
5680: 64 69 74 69 6f 6e 61 6c 0a 09 69 6e 66 6f 72 6d ditional..inform
5690: 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 63 69 70 ation on the cip
56a0: 68 65 72 2e 20 49 66 20 3c 65 6d 3e 73 75 70 70 her. If <em>supp
56b0: 6f 72 74 65 64 3c 2f 65 6d 3e 20 69 73 20 73 70 orted</em> is sp
56c0: 65 63 69 66 69 65 64 20 61 73 20 74 72 75 65 2c ecified as true,
56d0: 0a 09 74 68 65 6e 20 6f 6e 6c 79 20 74 68 65 20 ..then only the
56e0: 63 69 70 68 65 72 73 20 73 75 70 70 6f 72 74 65 ciphers supporte
56f0: 64 20 66 6f 72 20 70 72 6f 74 6f 63 6f 6c 20 77 d for protocol w
5700: 69 6c 6c 20 62 65 20 6c 69 73 74 65 64 2e 3c 2f ill be listed.</
5710: 64 64 3e 0a 20 20 20 20 3c 64 74 3e 26 6e 62 73 dd>. <dt>&nbs
5720: 70 3b 3c 2f 64 74 3e 0a 20 20 20 20 3c 64 74 3e p;</dt>. <dt>
5730: 3c 61 20 6e 61 6d 65 3d 22 74 6c 73 3a 3a 70 72 <a name="tls::pr
5740: 6f 74 6f 63 6f 6c 73 22 3e 3c 73 74 72 6f 6e 67 otocols"><strong
5750: 3e 74 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 3c >tls::protocols<
5760: 2f 73 74 72 6f 6e 67 3e 3c 2f 61 3e 3c 2f 64 74 /strong></a></dt
5770: 3e 0a 20 20 20 20 3c 64 64 3e 52 65 74 75 72 6e >. <dd>Return
5780: 73 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 s a list of the
5790: 73 75 70 70 6f 72 74 65 64 20 53 53 4c 2f 54 4c supported SSL/TL
57a0: 53 20 70 72 6f 74 6f 63 6f 6c 73 2e 20 56 61 6c S protocols. Val
57b0: 69 64 20 76 61 6c 75 65 73 20 61 72 65 3a 0a 09 id values are:..
57c0: 3c 62 3e 73 73 6c 32 3c 2f 62 3e 2c 20 3c 62 3e <b>ssl2</b>, <b>
57d0: 73 73 6c 33 3c 2f 62 3e 2c 20 3c 62 3e 74 6c 73 ssl3</b>, <b>tls
57e0: 31 3c 2f 62 3e 2c 20 3c 62 3e 74 6c 73 31 2e 31 1</b>, <b>tls1.1
57f0: 3c 2f 62 3e 2c 20 3c 62 3e 74 6c 73 31 2e 32 3c </b>, <b>tls1.2<
5800: 2f 62 3e 2c 0a 09 61 6e 64 20 3c 62 3e 74 6c 73 /b>,..and <b>tls
5810: 31 2e 33 3c 2f 62 3e 2e 20 45 78 61 63 74 20 6c 1.3</b>. Exact l
5820: 69 73 74 20 64 65 70 65 6e 64 73 20 6f 6e 20 4f ist depends on O
5830: 70 65 6e 53 53 4c 20 76 65 72 73 69 6f 6e 20 61 penSSL version a
5840: 6e 64 0a 09 63 6f 6d 70 69 6c 65 20 74 69 6d 65 nd..compile time
5850: 20 66 6c 61 67 73 2e 3c 2f 64 64 3e 0a 20 20 20 flags.</dd>.
5860: 20 3c 64 74 3e 26 6e 62 73 70 3b 3c 2f 64 74 3e <dt> </dt>
5870: 0a 20 20 20 20 3c 64 74 3e 3c 61 20 6e 61 6d 65 . <dt><a name
5880: 3d 22 74 6c 73 3a 3a 76 65 72 73 69 6f 6e 22 3e ="tls::version">
5890: 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 76 65 72 <strong>tls::ver
58a0: 73 69 6f 6e 3c 2f 73 74 72 6f 6e 67 3e 3c 2f 61 sion</strong></a
58b0: 3e 3c 2f 64 74 3e 0a 20 20 20 20 3c 64 64 3e 52 ></dt>. <dd>R
58c0: 65 74 75 72 6e 73 20 74 68 65 20 4f 70 65 6e 53 eturns the OpenS
58d0: 53 4c 20 76 65 72 73 69 6f 6e 20 73 74 72 69 6e SL version strin
58e0: 67 2e 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e 0a 3c 62 g.</dd>.</dl>.<b
58f0: 72 3e 0a 0a 3c 68 72 3e 0a 0a 3c 68 33 3e 3c 61 r>..<hr>..<h3><a
5900: 20 6e 61 6d 65 3d 22 43 45 52 54 49 46 49 43 41 name="CERTIFICA
5910: 54 45 20 56 41 4c 49 44 41 54 49 4f 4e 22 3e 43 TE VALIDATION">C
5920: 45 52 54 49 46 49 43 41 54 45 20 56 41 4c 49 44 ERTIFICATE VALID
5930: 41 54 49 4f 4e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a ATION</a></h3>..
5940: 3c 68 34 3e 53 75 6d 6d 61 72 79 20 6f 66 20 63 <h4>Summary of c
5950: 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 6f 70 74 69 ommand line opti
5960: 6f 6e 73 3a 3c 2f 68 34 3e 0a 3c 70 3e 54 68 65 ons:</h4>.<p>The
5970: 20 66 6f 6c 6c 6f 77 69 6e 67 20 6f 70 74 69 6f following optio
5980: 6e 73 20 61 72 65 20 75 73 65 64 20 66 6f 72 20 ns are used for
5990: 63 65 72 74 69 66 69 63 61 74 65 20 76 61 6c 69 certificate vali
59a0: 64 61 74 69 6f 6e 3a 3c 2f 70 3e 0a 3c 75 6c 3e dation:</p>.<ul>
59b0: 0a 3c 6c 69 3e 54 68 65 20 3c 62 3e 2d 63 61 64 .<li>The <b>-cad
59c0: 69 72 3c 2f 62 3e 20 6f 70 74 69 6f 6e 20 73 70 ir</b> option sp
59d0: 65 63 69 66 69 65 73 20 74 68 65 20 64 69 72 65 ecifies the dire
59e0: 63 74 6f 72 79 20 77 68 65 72 65 20 74 68 65 20 ctory where the
59f0: 43 65 72 74 69 66 69 63 61 74 65 0a 41 75 74 68 Certificate.Auth
5a00: 6f 72 69 74 79 20 28 43 41 29 20 63 65 72 74 69 ority (CA) certi
5a10: 66 69 63 61 74 65 73 20 61 72 65 20 73 74 6f 72 ficates are stor
5a20: 65 64 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 ed. The default
5a30: 69 73 20 70 6c 61 74 66 6f 72 6d 20 73 70 65 63 is platform spec
5a40: 69 66 69 63 2c 20 62 75 74 0a 69 73 20 75 73 75 ific, but.is usu
5a50: 61 6c 6c 79 20 22 2f 65 74 63 2f 73 73 6c 2f 63 ally "/etc/ssl/c
5a60: 65 72 74 73 22 20 6f 6e 20 4c 69 6e 75 78 2f 55 erts" on Linux/U
5a70: 6e 69 78 20 73 79 73 74 65 6d 73 2e 20 54 68 65 nix systems. The
5a80: 20 64 65 66 61 75 6c 74 20 6c 6f 63 61 74 69 6f default locatio
5a90: 6e 20 63 61 6e 20 62 65 0a 6f 76 65 72 72 69 64 n can be.overrid
5aa0: 64 65 6e 20 76 69 61 20 74 68 65 20 3c 62 3e 53 den via the <b>S
5ab0: 53 4c 5f 43 45 52 54 5f 44 49 52 3c 2f 62 3e 20 SL_CERT_DIR</b>
5ac0: 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 environment vari
5ad0: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 able.</li>.<li>T
5ae0: 68 65 20 3c 62 3e 2d 63 61 66 69 6c 65 20 3c 2f he <b>-cafile </
5af0: 62 3e 20 6f 70 74 69 6f 6e 20 73 70 65 63 69 66 b> option specif
5b00: 69 65 73 20 74 68 65 20 66 69 6c 65 20 74 68 61 ies the file tha
5b10: 74 20 63 6f 6e 74 61 69 6e 73 20 61 6c 6c 20 6f t contains all o
5b20: 66 20 74 68 65 0a 43 65 72 74 69 66 69 63 61 74 f the.Certificat
5b30: 65 20 41 75 74 68 6f 72 69 74 79 20 28 43 41 29 e Authority (CA)
5b40: 20 63 65 72 74 69 66 69 63 61 74 65 73 20 69 6e certificates in
5b50: 20 74 68 65 20 50 45 4d 20 66 69 6c 65 20 66 6f the PEM file fo
5b60: 72 6d 61 74 2e 20 54 68 65 20 64 65 66 61 75 6c rmat. The defaul
5b70: 74 20 69 73 0a 3c 62 3e 63 65 72 74 2e 70 65 6d t is.<b>cert.pem
5b80: 3c 2f 62 3e 2c 20 69 6e 20 74 68 65 20 4f 70 65 </b>, in the Ope
5b90: 6e 53 53 4c 20 64 69 72 65 63 74 6f 72 79 2e 20 nSSL directory.
5ba0: 4f 6e 20 4c 69 6e 75 78 2f 55 6e 69 78 20 73 79 On Linux/Unix sy
5bb0: 73 74 65 6d 73 2c 20 74 68 69 73 20 69 73 0a 75 stems, this is.u
5bc0: 73 75 61 6c 6c 79 20 22 2f 65 74 63 2f 73 73 6c sually "/etc/ssl
5bd0: 2f 63 61 2d 62 75 6e 64 6c 65 2e 70 65 6d 22 2e /ca-bundle.pem".
5be0: 20 54 68 65 20 64 65 66 61 75 6c 74 20 66 69 6c The default fil
5bf0: 65 20 63 61 6e 20 62 65 20 6f 76 65 72 72 69 64 e can be overrid
5c00: 64 65 6e 20 76 69 61 20 74 68 65 0a 3c 62 3e 53 den via the.<b>S
5c10: 53 4c 5f 43 45 52 54 5f 46 49 4c 45 3c 2f 62 3e SL_CERT_FILE</b>
5c20: 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 environment var
5c30: 69 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e iable.</li>.<li>
5c40: 54 68 65 20 3c 62 3e 2d 63 61 73 74 6f 72 65 3c The <b>-castore<
5c50: 2f 62 3e 20 6f 70 74 69 6f 6e 20 63 6f 6e 74 61 /b> option conta
5c60: 69 6e 73 20 74 68 65 20 55 52 49 20 74 6f 20 74 ins the URI to t
5c70: 68 65 20 43 65 72 74 69 66 69 63 61 74 65 20 41 he Certificate A
5c80: 75 74 68 6f 72 69 74 79 0a 28 43 41 29 20 73 74 uthority.(CA) st
5c90: 6f 72 65 2c 20 77 68 69 63 68 20 6d 61 79 20 62 ore, which may b
5ca0: 65 20 61 20 73 69 6e 67 6c 65 20 63 6f 6e 74 61 e a single conta
5cb0: 69 6e 65 72 20 6f 72 20 61 20 63 61 74 61 6c 6f iner or a catalo
5cc0: 67 20 6f 66 20 63 6f 6e 74 61 69 6e 65 72 73 2e g of containers.
5cd0: 0a 53 74 61 72 74 69 6e 67 20 77 69 74 68 20 4f .Starting with O
5ce0: 70 65 6e 53 53 4c 20 33 2e 32 20 6f 6e 20 57 69 penSSL 3.2 on Wi
5cf0: 6e 64 6f 77 73 2c 20 73 65 74 20 74 68 69 73 20 ndows, set this
5d00: 74 6f 20 22 6f 72 67 2e 6f 70 65 6e 73 73 6c 2e to "org.openssl.
5d10: 77 69 6e 73 74 6f 72 65 3a 2f 2f 22 20 74 6f 0a winstore://" to.
5d20: 75 73 65 20 74 68 65 20 62 75 69 6c 74 2d 69 6e use the built-in
5d30: 20 57 69 6e 64 6f 77 73 20 43 65 72 74 69 66 69 Windows Certifi
5d40: 63 61 74 65 20 53 74 6f 72 65 2e 20 54 68 65 20 cate Store. The
5d50: 57 69 6e 64 6f 77 73 20 63 65 72 74 20 73 74 6f Windows cert sto
5d60: 72 65 20 6f 6e 6c 79 0a 73 75 70 70 6f 72 74 73 re only.supports
5d70: 20 72 6f 6f 74 20 63 65 72 74 69 66 69 63 61 74 root certificat
5d80: 65 20 73 74 6f 72 65 73 2e 3c 2f 6c 69 3e 0a 3c e stores.</li>.<
5d90: 6c 69 3e 54 68 65 20 3c 62 3e 2d 72 65 71 75 65 li>The <b>-reque
5da0: 73 74 3c 2f 62 3e 20 6f 70 74 69 6f 6e 20 69 73 st</b> option is
5db0: 20 75 73 65 64 20 74 6f 20 72 65 71 75 65 73 74 used to request
5dc0: 20 74 68 65 20 73 65 72 76 65 72 20 73 65 6e 64 the server send
5dd0: 20 69 74 73 0a 63 65 72 74 69 66 69 63 61 74 65 its.certificate
5de0: 20 63 68 61 69 6e 20 61 73 20 70 61 72 74 20 6f chain as part o
5df0: 66 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e f the connection
5e00: 20 6e 65 67 6f 74 69 61 74 69 6f 6e 20 70 72 6f negotiation pro
5e10: 63 65 73 73 2e 20 54 68 69 73 20 69 73 0a 6e 65 cess. This is.ne
5e20: 65 64 65 64 20 74 6f 20 64 6f 20 63 65 72 74 69 eded to do certi
5e30: 66 69 63 61 74 65 20 76 61 6c 69 64 61 74 69 6f ficate validatio
5e40: 6e 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 n. The default i
5e50: 73 20 74 72 75 65 2e 20 49 6e 20 61 64 64 69 74 s true. In addit
5e60: 69 6f 6e 2c 20 74 68 65 0a 63 6c 69 65 6e 74 20 ion, the.client
5e70: 63 61 6e 20 6d 61 6e 75 61 6c 6c 79 20 69 6e 73 can manually ins
5e80: 70 65 63 74 20 61 6e 64 20 61 63 63 65 70 74 20 pect and accept
5e90: 6f 72 20 72 65 6a 65 63 74 20 65 61 63 68 20 63 or reject each c
5ea0: 65 72 74 69 66 69 63 61 74 65 20 75 73 69 6e 67 ertificate using
5eb0: 20 74 68 65 0a 3c 62 3e 2d 76 61 6c 69 64 61 74 the.<b>-validat
5ec0: 65 63 6f 6d 6d 61 6e 64 3c 2f 62 3e 20 6f 70 74 ecommand</b> opt
5ed0: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 ion.</li>.<li>Th
5ee0: 65 20 3c 62 3e 2d 72 65 71 75 69 72 65 3c 2f 62 e <b>-require</b
5ef0: 3e 20 6f 70 74 69 6f 6e 20 69 73 20 75 73 65 64 > option is used
5f00: 20 74 6f 20 72 65 71 75 69 72 65 20 63 65 72 74 to require cert
5f10: 69 66 69 63 61 74 65 20 76 61 6c 69 64 61 74 69 ificate validati
5f20: 6f 6e 20 62 65 0a 70 65 72 66 6f 72 6d 65 64 20 on be.performed
5f30: 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 63 as part of the c
5f40: 6f 6e 6e 65 63 74 69 6f 6e 20 6e 65 67 6f 74 69 onnection negoti
5f50: 61 74 69 6f 6e 20 70 72 6f 63 65 73 73 2e 20 41 ation process. A
5f60: 20 76 61 6c 69 64 20 43 41 20 64 69 72 65 63 74 valid CA direct
5f70: 6f 72 79 2c 0a 66 69 6c 65 2c 20 6f 72 20 73 74 ory,.file, or st
5f80: 6f 72 65 20 6d 75 73 74 20 62 65 20 70 72 65 73 ore must be pres
5f90: 65 6e 74 20 66 6f 72 20 74 68 69 73 20 74 6f 20 ent for this to
5fa0: 77 6f 72 6b 2e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e work.</li>.</ul>
5fb0: 0a 0a 3c 62 72 3e 0a 3c 68 34 3e 57 68 65 6e 20 ..<br>.<h4>When
5fc0: 61 72 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 are command line
5fd0: 20 6f 70 74 69 6f 6e 73 20 6e 65 65 64 65 64 3a options needed:
5fe0: 3c 2f 68 34 3e 0a 3c 70 3e 0a 42 79 20 64 65 66 </h4>.<p>.By def
5ff0: 61 75 6c 74 2c 20 61 20 63 6c 69 65 6e 74 20 54 ault, a client T
6000: 4c 53 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 64 6f LS connection do
6010: 65 73 20 4e 4f 54 20 76 61 6c 69 64 61 74 65 20 es NOT validate
6020: 74 68 65 20 73 65 72 76 65 72 20 63 65 72 74 69 the server certi
6030: 66 69 63 61 74 65 0a 63 68 61 69 6e 2e 20 54 68 ficate.chain. Th
6040: 69 73 20 6c 69 6d 69 74 61 74 69 6f 6e 20 69 73 is limitation is
6050: 20 64 75 65 20 74 6f 20 74 68 65 20 6c 61 63 6b due to the lack
6060: 20 6f 66 20 61 20 63 6f 6d 6d 6f 6e 20 63 72 6f of a common cro
6070: 73 73 20 70 6c 61 74 66 6f 72 6d 0a 64 61 74 61 ss platform.data
6080: 62 61 73 65 20 6f 66 20 43 65 72 74 69 66 69 63 base of Certific
6090: 61 74 65 20 41 75 74 68 6f 72 69 74 79 20 28 43 ate Authority (C
60a0: 41 29 20 70 72 6f 76 69 64 65 64 20 63 65 72 74 A) provided cert
60b0: 69 66 69 63 61 74 65 73 20 74 6f 20 76 61 6c 69 ificates to vali
60c0: 64 61 74 65 0a 61 67 61 69 6e 73 74 2e 20 4d 61 date.against. Ma
60d0: 6e 79 20 4c 69 6e 75 78 20 73 79 73 74 65 6d 73 ny Linux systems
60e0: 20 6e 61 74 69 76 65 6c 79 20 73 75 70 70 6f 72 natively suppor
60f0: 74 20 4f 70 65 6e 53 53 4c 20 61 6e 64 20 74 68 t OpenSSL and th
6100: 75 73 20 68 61 76 65 20 74 68 65 73 65 0a 63 65 us have these.ce
6110: 72 74 69 66 69 63 61 74 65 73 20 69 6e 73 74 61 rtificates insta
6120: 6c 6c 65 64 20 61 73 20 70 61 72 74 20 6f 66 20 lled as part of
6130: 74 68 65 20 4f 53 2c 20 62 75 74 20 4d 61 63 4f the OS, but MacO
6140: 53 20 61 6e 64 20 57 69 6e 64 6f 77 73 20 64 6f S and Windows do
6150: 20 6e 6f 74 2e 20 49 6e 0a 6f 72 64 65 72 20 74 not. In.order t
6160: 6f 20 75 73 65 20 74 68 65 20 3c 62 3e 2d 72 65 o use the <b>-re
6170: 71 75 69 72 65 3c 2f 62 3e 20 6f 70 74 69 6f 6e quire</b> option
6180: 2c 20 6f 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c , one of the fol
6190: 6c 6f 77 69 6e 67 20 6d 75 73 74 20 62 65 20 74 lowing must be t
61a0: 72 75 65 3a 3c 2f 70 3e 0a 3c 75 6c 3e 0a 3c 6c rue:</p>.<ul>.<l
61b0: 69 3e 4f 6e 20 4c 69 6e 75 78 20 61 6e 64 20 55 i>On Linux and U
61c0: 6e 69 78 20 73 79 73 74 65 6d 73 20 77 69 74 68 nix systems with
61d0: 20 4f 70 65 6e 53 53 4c 20 61 6c 72 65 61 64 79 OpenSSL already
61e0: 20 69 6e 73 74 61 6c 6c 65 64 2c 20 69 66 20 74 installed, if t
61f0: 68 65 20 43 41 0a 63 65 72 74 69 66 69 63 61 74 he CA.certificat
6200: 65 73 20 61 72 65 20 73 74 6f 72 65 64 20 69 6e es are stored in
6210: 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 6c 6f the standard lo
6220: 63 61 74 69 6f 6e 73 2c 20 6f 72 20 74 68 65 20 cations, or the
6230: 3c 62 3e 53 53 4c 5f 43 45 52 54 5f 44 49 52 3c <b>SSL_CERT_DIR<
6240: 2f 62 3e 0a 6f 72 20 3c 62 3e 53 53 4c 5f 43 45 /b>.or <b>SSL_CE
6250: 52 54 5f 46 49 4c 45 3c 2f 62 3e 20 65 6e 76 20 RT_FILE</b> env
6260: 76 61 72 73 20 61 72 65 20 73 65 74 2c 20 74 68 vars are set, th
6270: 65 6e 20 6e 6f 20 6f 74 68 65 72 20 6f 70 74 69 en no other opti
6280: 6f 6e 73 20 61 72 65 20 6e 65 65 64 65 64 2e 3c ons are needed.<
6290: 2f 6c 69 3e 0a 0a 3c 6c 69 3e 49 66 20 4f 70 65 /li>..<li>If Ope
62a0: 6e 53 53 4c 20 69 73 20 6e 6f 74 20 69 6e 73 74 nSSL is not inst
62b0: 61 6c 6c 65 64 20 69 6e 20 74 68 65 20 64 65 66 alled in the def
62c0: 61 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 2c 20 6f ault location, o
62d0: 72 20 77 68 65 6e 20 75 73 69 6e 67 20 4d 61 63 r when using Mac
62e0: 20 4f 53 0a 6f 72 20 57 69 6e 64 6f 77 73 20 61 OS.or Windows a
62f0: 6e 64 20 4f 70 65 6e 53 53 4c 20 69 73 20 69 6e nd OpenSSL is in
6300: 73 74 61 6c 6c 65 64 2c 20 74 68 65 20 3c 62 3e stalled, the <b>
6310: 53 53 4c 5f 43 45 52 54 5f 44 49 52 3c 2f 62 3e SSL_CERT_DIR</b>
6320: 20 61 6e 64 2f 6f 72 20 0a 3c 62 3e 53 53 4c 5f and/or .<b>SSL_
6330: 43 45 52 54 5f 46 49 4c 45 3c 2f 62 3e 20 65 6e CERT_FILE</b> en
6340: 76 20 76 61 72 73 20 6f 72 20 74 68 65 20 3c 62 v vars or the <b
6350: 3e 2d 63 61 64 69 72 3c 2f 62 3e 20 61 6e 64 2f >-cadir</b> and/
6360: 6f 72 20 3c 62 3e 2d 63 61 66 69 6c 65 3c 2f 62 or <b>-cafile</b
6370: 3e 0a 20 6f 70 74 69 6f 6e 73 20 6d 75 73 74 20 >. options must
6380: 62 65 20 64 65 66 69 6e 65 64 2e 3c 2f 6c 69 3e be defined.</li>
6390: 0a 0a 3c 6c 69 3e 4f 6e 20 57 69 6e 64 6f 77 73 ..<li>On Windows
63a0: 2c 20 73 74 61 72 74 69 6e 67 20 69 6e 20 4f 70 , starting in Op
63b0: 65 6e 53 53 4c 20 33 2e 32 2c 20 69 74 20 69 73 enSSL 3.2, it is
63c0: 20 6e 6f 77 20 70 6f 73 73 69 62 6c 65 20 74 6f now possible to
63d0: 20 61 63 63 65 73 73 20 74 68 65 0a 62 75 69 6c access the.buil
63e0: 74 2d 69 6e 20 57 69 6e 64 6f 77 73 20 43 65 72 t-in Windows Cer
63f0: 74 69 66 69 63 61 74 65 20 53 74 6f 72 65 20 66 tificate Store f
6400: 72 6f 6d 20 4f 70 65 6e 53 53 4c 2e 20 54 68 69 rom OpenSSL. Thi
6410: 73 20 63 61 6e 20 62 65 20 61 63 68 69 65 76 65 s can be achieve
6420: 64 20 62 79 0a 73 65 74 74 69 6e 67 20 74 68 65 d by.setting the
6430: 20 3c 62 3e 2d 63 61 73 74 6f 72 65 3c 2f 62 3e <b>-castore</b>
6440: 20 6f 70 74 69 6f 6e 20 74 6f 20 22 3c 62 3e 6f option to "<b>o
6450: 72 67 2e 6f 70 65 6e 73 73 6c 2e 77 69 6e 73 74 rg.openssl.winst
6460: 6f 72 65 3a 2f 2f 3c 2f 62 3e 22 2e 3c 2f 6c 69 ore://</b>".</li
6470: 3e 0a 0a 3c 6c 69 3e 49 66 20 4f 70 65 6e 53 53 >..<li>If OpenSS
6480: 4c 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c L is not install
6490: 65 64 2c 20 74 68 65 20 43 41 20 63 65 72 74 69 ed, the CA certi
64a0: 66 69 63 61 74 65 73 20 6d 75 73 74 20 62 65 20 ficates must be
64b0: 64 6f 77 6e 6c 6f 61 64 65 64 20 61 6e 64 0a 69 downloaded and.i
64c0: 6e 73 74 61 6c 6c 65 64 20 77 69 74 68 20 74 68 nstalled with th
64d0: 65 20 75 73 65 72 20 73 6f 66 74 77 61 72 65 2e e user software.
64e0: 20 54 68 65 20 43 55 52 4c 20 74 65 61 6d 20 6d The CURL team m
64f0: 61 6b 65 73 20 74 68 65 6d 20 61 76 61 69 6c 61 akes them availa
6500: 62 6c 65 20 61 74 0a 3c 61 20 68 72 65 66 3d 22 ble at.<a href="
6510: 68 74 74 70 73 3a 2f 2f 63 75 72 6c 2e 73 65 2f https://curl.se/
6520: 64 6f 63 73 2f 63 61 65 78 74 72 61 63 74 2e 68 docs/caextract.h
6530: 74 6d 6c 22 3e 43 41 20 63 65 72 74 69 66 69 63 tml">CA certific
6540: 61 74 65 73 20 65 78 74 72 61 63 74 65 64 0a 66 ates extracted.f
6550: 72 6f 6d 20 4d 6f 7a 69 6c 6c 61 3c 2f 61 3e 20 rom Mozilla</a>
6560: 69 6e 20 74 68 65 20 3c 62 3e 63 61 63 65 72 74 in the <b>cacert
6570: 2e 70 65 6d 3c 2f 62 3e 20 66 69 6c 65 2e 20 59 .pem</b> file. Y
6580: 6f 75 20 6d 75 73 74 20 74 68 65 6e 20 65 69 74 ou must then eit
6590: 68 65 72 0a 73 65 74 20 74 68 65 20 3c 62 3e 53 her.set the <b>S
65a0: 53 4c 5f 43 45 52 54 5f 44 49 52 3c 2f 62 3e 20 SL_CERT_DIR</b>
65b0: 61 6e 64 2f 6f 72 20 3c 62 3e 53 53 4c 5f 43 45 and/or <b>SSL_CE
65c0: 52 54 5f 46 49 4c 45 3c 2f 62 3e 20 65 6e 76 20 RT_FILE</b> env
65d0: 76 61 72 73 20 6f 72 20 74 68 65 0a 3c 62 3e 2d vars or the.<b>-
65e0: 63 61 64 69 72 3c 2f 62 3e 20 6f 72 20 3c 62 3e cadir</b> or <b>
65f0: 2d 63 61 66 69 6c 65 3c 2f 62 3e 20 6f 70 74 69 -cafile</b> opti
6600: 6f 6e 73 20 6d 75 73 74 20 62 65 20 73 65 74 20 ons must be set
6610: 74 6f 20 74 68 65 20 66 69 6c 65 27 73 20 69 6e to the file's in
6620: 73 74 61 6c 6c 0a 6c 6f 63 61 74 69 6f 6e 2e 20 stall.location.
6630: 49 74 20 69 73 20 79 6f 75 72 20 72 65 73 70 6f It is your respo
6640: 6e 73 69 62 69 6c 69 74 79 20 74 6f 20 6b 65 65 nsibility to kee
6650: 70 20 74 68 69 73 20 66 69 6c 65 20 75 70 20 74 p this file up t
6660: 6f 20 64 61 74 65 2e 3c 2f 6c 69 3e 0a 3c 2f 75 o date.</li>.</u
6670: 6c 3e 0a 3c 62 72 3e 0a 0a 3c 68 72 3e 0a 0a 3c l>.<br>..<hr>..<
6680: 68 33 3e 3c 61 20 6e 61 6d 65 3d 22 43 41 4c 4c h3><a name="CALL
6690: 42 41 43 4b 20 4f 50 54 49 4f 4e 53 22 3e 43 41 BACK OPTIONS">CA
66a0: 4c 4c 42 41 43 4b 20 4f 50 54 49 4f 4e 53 3c 2f LLBACK OPTIONS</
66b0: 61 3e 3c 2f 68 33 3e 0a 0a 3c 70 3e 0a 41 73 20 a></h3>..<p>.As
66c0: 69 6e 64 69 63 61 74 65 64 20 61 62 6f 76 65 2c indicated above,
66d0: 20 69 6e 64 69 76 69 64 75 61 6c 20 63 68 61 6e individual chan
66e0: 6e 65 6c 73 20 63 61 6e 20 62 65 20 67 69 76 65 nels can be give
66f0: 6e 20 74 68 65 69 72 20 6f 77 6e 20 63 61 6c 6c n their own call
6700: 62 61 63 6b 73 0a 74 6f 20 68 61 6e 64 6c 65 20 backs.to handle
6710: 69 6e 74 65 72 6d 65 64 69 61 74 65 20 70 72 6f intermediate pro
6720: 63 65 73 73 69 6e 67 20 62 79 20 74 68 65 20 4f cessing by the O
6730: 70 65 6e 53 53 4c 20 6c 69 62 72 61 72 79 2c 20 penSSL library,
6740: 75 73 69 6e 67 20 74 68 65 0a 3c 73 74 72 6f 6e using the.<stron
6750: 67 3e 2d 63 6f 6d 6d 61 6e 64 3c 2f 73 74 72 6f g>-command</stro
6760: 6e 67 3e 2c 20 3c 73 74 72 6f 6e 67 3e 2d 70 61 ng>, <strong>-pa
6770: 73 73 77 6f 72 64 3c 2f 73 74 72 6f 6e 67 3e 2c ssword</strong>,
6780: 20 61 6e 64 0a 3c 73 74 72 6f 6e 67 3e 2d 76 61 and.<strong>-va
6790: 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 6e 64 3c 2f lidate_command</
67a0: 73 74 72 6f 6e 67 3e 20 6f 70 74 69 6f 6e 73 20 strong> options
67b0: 70 61 73 73 65 64 20 74 6f 20 65 69 74 68 65 72 passed to either
67c0: 20 6f 66 0a 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a of.<strong>tls:
67d0: 3a 73 6f 63 6b 65 74 3c 2f 73 74 72 6f 6e 67 3e :socket</strong>
67e0: 20 6f 72 20 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a or <strong>tls:
67f0: 3a 69 6d 70 6f 72 74 3c 2f 73 74 72 6f 6e 67 3e :import</strong>
6800: 2e 0a 55 6e 6c 69 6b 65 20 70 72 65 76 69 6f 75 ..Unlike previou
6810: 73 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 54 43 s versions of TC
6820: 4c 20 54 4c 53 2c 20 6f 6e 6c 79 20 69 66 20 74 L TLS, only if t
6830: 68 65 20 63 61 6c 6c 62 61 63 6b 20 67 65 6e 65 he callback gene
6840: 72 61 74 65 73 20 61 6e 20 65 72 72 6f 72 2c 0a rates an error,.
6850: 77 69 6c 6c 20 74 68 65 20 3c 62 3e 62 67 65 72 will the <b>bger
6860: 72 6f 72 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 ror</b> command
6870: 77 69 6c 6c 20 62 65 20 69 6e 76 6f 6b 65 64 20 will be invoked
6880: 77 69 74 68 20 74 68 65 20 65 72 72 6f 72 20 69 with the error i
6890: 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 3c 2f 70 3e nformation..</p>
68a0: 0a 0a 3c 64 6c 3e 0a 20 20 20 20 3c 64 74 3e 3c ..<dl>. <dt><
68b0: 73 74 72 6f 6e 67 3e 2d 63 6f 6d 6d 61 6e 64 3c strong>-command<
68c0: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 63 61 6c /strong> <em>cal
68d0: 6c 62 61 63 6b 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a lback</em></dt>.
68e0: 20 20 20 20 3c 64 64 3e 0a 09 49 6e 76 6f 6b 65 <dd>..Invoke
68f0: 73 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 s the specified
6900: 3c 65 6d 3e 63 61 6c 6c 62 61 63 6b 3c 2f 65 6d <em>callback</em
6910: 3e 20 73 63 72 69 70 74 20 61 74 20 73 65 76 65 > script at seve
6920: 72 61 6c 20 70 6f 69 6e 74 73 0a 09 64 75 72 69 ral points..duri
6930: 6e 67 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 68 ng the OpenSSL h
6940: 61 6e 64 73 68 61 6b 65 20 61 6e 64 20 75 73 65 andshake and use
6950: 2e 20 53 65 65 20 62 65 6c 6f 77 20 66 6f 72 20 . See below for
6960: 74 68 65 20 70 6f 73 73 69 62 6c 65 0a 09 61 72 the possible..ar
6970: 67 75 6d 65 6e 74 73 20 70 61 73 73 65 64 20 74 guments passed t
6980: 6f 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 73 o the callback s
6990: 63 72 69 70 74 2e 20 56 61 6c 75 65 73 20 72 65 cript. Values re
69a0: 74 75 72 6e 65 64 20 66 72 6f 6d 20 74 68 65 0a turned from the.
69b0: 09 63 61 6c 6c 62 61 63 6b 20 61 72 65 20 69 67 .callback are ig
69c0: 6e 6f 72 65 64 2e 0a 20 20 20 20 3c 62 72 3e 0a nored.. <br>.
69d0: 20 20 20 20 3c 64 6c 3e 0a 09 3c 64 74 3e 0a 09 <dl>..<dt>..
69e0: 3c 73 74 72 6f 6e 67 3e 65 72 72 6f 72 3c 2f 73 <strong>error</s
69f0: 74 72 6f 6e 67 3e 20 3c 65 6d 3e 63 68 61 6e 6e trong> <em>chann
6a00: 65 6c 49 64 20 6d 65 73 73 61 67 65 3c 2f 65 6d elId message</em
6a10: 3e 0a 09 3c 2f 64 74 3e 0a 09 3c 64 64 3e 0a 09 >..</dt>..<dd>..
6a20: 20 20 20 20 54 68 69 73 20 66 6f 72 6d 20 6f 66 This form of
6a30: 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 callback is inv
6a40: 6f 6b 65 64 20 77 68 65 6e 65 76 65 72 20 61 6e oked whenever an
6a50: 20 65 72 72 6f 72 20 6f 63 63 75 72 73 20 64 75 error occurs du
6a60: 72 69 6e 67 20 74 68 65 0a 09 20 20 20 20 69 6e ring the.. in
6a70: 69 74 69 61 6c 20 63 6f 6e 6e 65 63 74 69 6f 6e itial connection
6a80: 2c 20 68 61 6e 64 73 68 61 6b 65 2c 20 6f 72 20 , handshake, or
6a90: 49 2f 4f 20 6f 70 65 72 61 74 69 6f 6e 73 2e 20 I/O operations.
6aa0: 54 68 65 20 3c 65 6d 3e 6d 65 73 73 61 67 65 3c The <em>message<
6ab0: 2f 65 6d 3e 0a 09 20 20 20 20 61 72 67 75 6d 65 /em>.. argume
6ac0: 6e 74 20 63 61 6e 20 62 65 20 66 72 6f 6d 20 74 nt can be from t
6ad0: 68 65 20 54 63 6c 5f 45 72 72 6e 6f 4d 73 67 2c he Tcl_ErrnoMsg,
6ae0: 20 4f 70 65 6e 53 53 4c 20 66 75 6e 63 74 69 6f OpenSSL functio
6af0: 6e 0a 09 20 20 20 20 3c 63 6f 64 65 3e 45 52 52 n.. <code>ERR
6b00: 5f 72 65 61 73 6f 6e 5f 65 72 72 6f 72 5f 73 74 _reason_error_st
6b10: 72 69 6e 67 28 29 3c 2f 63 6f 64 65 3e 2c 20 6f ring()</code>, o
6b20: 72 20 61 20 63 75 73 74 6f 6d 20 6d 65 73 73 61 r a custom messa
6b30: 67 65 2e 0a 09 3c 2f 64 64 3e 0a 09 3c 62 72 3e ge...</dd>..<br>
6b40: 0a 09 3c 64 74 3e 0a 09 20 20 20 20 3c 73 74 72 ..<dt>.. <str
6b50: 6f 6e 67 3e 69 6e 66 6f 3c 2f 73 74 72 6f 6e 67 ong>info</strong
6b60: 3e 20 3c 65 6d 3e 63 68 61 6e 6e 65 6c 49 64 20 > <em>channelId
6b70: 6d 61 6a 6f 72 20 6d 69 6e 6f 72 20 6d 65 73 73 major minor mess
6b80: 61 67 65 20 74 79 70 65 3c 2f 65 6d 3e 0a 09 3c age type</em>..<
6b90: 2f 64 74 3e 0a 09 3c 64 64 3e 0a 09 20 20 20 20 /dt>..<dd>..
6ba0: 20 54 68 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 This form of ca
6bb0: 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 llback is invoke
6bc0: 64 20 62 79 20 74 68 65 20 4f 70 65 6e 53 53 4c d by the OpenSSL
6bd0: 20 66 75 6e 63 74 69 6f 6e 0a 09 20 20 20 20 3c function.. <
6be0: 63 6f 64 65 3e 53 53 4c 5f 73 65 74 5f 69 6e 66 code>SSL_set_inf
6bf0: 6f 5f 63 61 6c 6c 62 61 63 6b 28 29 3c 2f 63 6f o_callback()</co
6c00: 64 65 3e 20 64 75 72 69 6e 67 20 74 68 65 20 69 de> during the i
6c10: 6e 69 74 69 61 6c 20 63 6f 6e 6e 65 63 74 69 6f nitial connectio
6c20: 6e 0a 09 20 20 20 20 61 6e 64 20 68 61 6e 64 73 n.. and hands
6c30: 68 61 6b 65 20 6f 70 65 72 61 74 69 6f 6e 73 2e hake operations.
6c40: 20 54 68 65 20 3c 65 6d 3e 74 79 70 65 3c 2f 65 The <em>type</e
6c50: 6d 3e 20 61 72 67 75 6d 65 6e 74 20 69 73 20 6e m> argument is n
6c60: 65 77 20 66 6f 72 0a 09 20 20 20 20 54 4c 53 20 ew for.. TLS
6c70: 31 2e 38 2e 20 54 68 65 20 61 72 67 75 6d 65 6e 1.8. The argumen
6c80: 74 73 20 61 72 65 3a 0a 09 3c 62 72 3e 0a 09 3c ts are:..<br>..<
6c90: 75 6c 3e 0a 09 3c 6c 69 3e 50 6f 73 73 69 62 6c ul>..<li>Possibl
6ca0: 65 20 76 61 6c 75 65 73 20 66 6f 72 20 3c 65 6d e values for <em
6cb0: 3e 6d 61 6a 6f 72 3c 2f 65 6d 3e 20 61 72 65 3a >major</em> are:
6cc0: 0a 09 20 20 20 20 3c 63 6f 64 65 3e 68 61 6e 64 .. <code>hand
6cd0: 73 68 61 6b 65 2c 20 61 6c 65 72 74 2c 20 63 6f shake, alert, co
6ce0: 6e 6e 65 63 74 2c 20 61 63 63 65 70 74 3c 2f 63 nnect, accept</c
6cf0: 6f 64 65 3e 2e 3c 2f 6c 69 3e 0a 09 3c 6c 69 3e ode>.</li>..<li>
6d00: 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20 Possible values
6d10: 66 6f 72 20 3c 65 6d 3e 6d 69 6e 6f 72 3c 2f 65 for <em>minor</e
6d20: 6d 3e 20 61 72 65 3a 0a 09 20 20 20 20 3c 63 6f m> are:.. <co
6d30: 64 65 3e 73 74 61 72 74 2c 20 64 6f 6e 65 2c 20 de>start, done,
6d40: 72 65 61 64 2c 20 77 72 69 74 65 2c 20 6c 6f 6f read, write, loo
6d50: 70 2c 20 65 78 69 74 3c 2f 63 6f 64 65 3e 2e 3c p, exit</code>.<
6d60: 2f 6c 69 3e 0a 09 3c 6c 69 3e 54 68 65 20 3c 65 /li>..<li>The <e
6d70: 6d 3e 6d 65 73 73 61 67 65 3c 2f 65 6d 3e 20 61 m>message</em> a
6d80: 72 67 75 6d 65 6e 74 20 69 73 20 61 20 64 65 73 rgument is a des
6d90: 63 72 69 70 74 69 76 65 20 73 74 72 69 6e 67 20 criptive string
6da0: 77 68 69 63 68 20 6d 61 79 0a 09 20 20 20 20 62 which may.. b
6db0: 65 20 67 65 6e 65 72 61 74 65 64 20 65 69 74 68 e generated eith
6dc0: 65 72 20 62 79 20 3c 63 6f 64 65 3e 53 53 4c 5f er by <code>SSL_
6dd0: 73 74 61 74 65 5f 73 74 72 69 6e 67 5f 6c 6f 6e state_string_lon
6de0: 67 28 29 3c 2f 63 6f 64 65 3e 20 6f 72 20 62 79 g()</code> or by
6df0: 0a 09 20 20 20 20 3c 63 6f 64 65 3e 53 53 4c 5f .. <code>SSL_
6e00: 61 6c 65 72 74 5f 64 65 73 63 5f 73 74 72 69 6e alert_desc_strin
6e10: 67 5f 6c 6f 6e 67 28 29 3c 2f 63 6f 64 65 3e 2c g_long()</code>,
6e20: 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 depending on th
6e30: 65 20 63 6f 6e 74 65 78 74 2e 3c 2f 6c 69 3e 0a e context.</li>.
6e40: 09 3c 6c 69 3e 46 6f 72 20 61 6c 65 72 74 73 2c .<li>For alerts,
6e50: 20 74 68 65 20 70 6f 73 73 69 62 6c 65 20 76 61 the possible va
6e60: 6c 75 65 73 20 66 6f 72 20 3c 65 6d 3e 74 79 70 lues for <em>typ
6e70: 65 3c 2f 65 6d 3e 20 61 72 65 3a 0a 09 20 20 20 e</em> are:..
6e80: 20 3c 63 6f 64 65 3e 77 61 72 6e 69 6e 67 2c 20 <code>warning,
6e90: 66 61 74 61 6c 2c 20 61 6e 64 20 75 6e 6b 6e 6f fatal, and unkno
6ea0: 77 6e 3c 2f 63 6f 64 65 3e 2e 20 46 6f 72 20 6f wn</code>. For o
6eb0: 74 68 65 72 73 2c 0a 09 20 20 20 20 3c 63 6f 64 thers,.. <cod
6ec0: 65 3e 69 6e 66 6f 3c 2f 63 6f 64 65 3e 20 69 73 e>info</code> is
6ed0: 20 75 73 65 64 2e 3c 2f 6c 69 3e 0a 09 3c 2f 75 used.</li>..</u
6ee0: 6c 3e 0a 09 3c 2f 64 64 3e 0a 09 3c 64 74 3e 0a l>..</dd>..<dt>.
6ef0: 09 3c 73 74 72 6f 6e 67 3e 6d 65 73 73 61 67 65 .<strong>message
6f00: 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 63 68 </strong> <em>ch
6f10: 61 6e 6e 65 6c 49 64 20 64 69 72 65 63 74 69 6f annelId directio
6f20: 6e 20 76 65 72 73 69 6f 6e 20 63 6f 6e 74 65 6e n version conten
6f30: 74 5f 74 79 70 65 20 6d 65 73 73 61 67 65 3c 2f t_type message</
6f40: 65 6d 3e 0a 09 3c 2f 64 74 3e 0a 09 3c 64 64 3e em>..</dt>..<dd>
6f50: 0a 09 20 20 20 20 54 68 69 73 20 66 6f 72 6d 20 .. This form
6f60: 6f 66 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 of callback is i
6f70: 6e 76 6f 6b 65 64 20 62 79 20 74 68 65 20 4f 70 nvoked by the Op
6f80: 65 6e 53 53 4c 20 66 75 6e 63 74 69 6f 6e 0a 09 enSSL function..
6f90: 20 20 20 20 3c 63 6f 64 65 3e 53 53 4c 5f 73 65 <code>SSL_se
6fa0: 74 5f 6d 73 67 5f 63 61 6c 6c 62 61 63 6b 28 29 t_msg_callback()
6fb0: 3c 2f 63 6f 64 65 3e 20 77 68 65 6e 65 76 65 72 </code> whenever
6fc0: 20 61 20 6d 65 73 73 61 67 65 20 69 73 20 73 65 a message is se
6fd0: 6e 74 20 6f 72 0a 09 20 20 20 20 72 65 63 65 69 nt or.. recei
6fe0: 76 65 64 20 64 75 72 69 6e 67 20 74 68 65 20 69 ved during the i
6ff0: 6e 69 74 69 61 6c 20 63 6f 6e 6e 65 63 74 69 6f nitial connectio
7000: 6e 2c 20 68 61 6e 64 73 68 61 6b 65 2c 20 6f 72 n, handshake, or
7010: 20 49 2f 4f 20 6f 70 65 72 61 74 69 6f 6e 73 2e I/O operations.
7020: 0a 09 20 20 20 20 49 74 20 69 73 20 6f 6e 6c 79 .. It is only
7030: 20 61 76 61 69 6c 61 62 6c 65 20 77 68 65 6e 20 available when
7040: 4f 70 65 6e 53 53 4c 20 69 73 20 63 6f 6d 70 6c OpenSSL is compl
7050: 69 65 64 20 77 69 74 68 20 74 68 65 0a 09 20 20 ied with the..
7060: 20 20 3c 65 6d 3e 65 6e 61 62 6c 65 2d 73 73 6c <em>enable-ssl
7070: 2d 74 72 61 63 65 3c 2f 65 6d 3e 20 6f 70 74 69 -trace</em> opti
7080: 6f 6e 2e 20 41 72 67 75 6d 65 6e 74 73 20 61 72 on. Arguments ar
7090: 65 3a 20 3c 65 6d 3e 64 69 72 65 63 74 69 6f 6e e: <em>direction
70a0: 3c 2f 65 6d 3e 0a 09 20 20 20 20 69 73 20 3c 62 </em>.. is <b
70b0: 3e 53 65 6e 74 3c 2f 62 3e 20 6f 72 20 3c 62 3e >Sent</b> or <b>
70c0: 52 65 63 65 69 76 65 64 3c 2f 62 3e 2c 20 3c 65 Received</b>, <e
70d0: 6d 3e 76 65 72 73 69 6f 6e 3c 2f 65 6d 3e 20 69 m>version</em> i
70e0: 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 0a 09 s the protocol..
70f0: 20 20 20 20 76 65 72 73 69 6f 6e 2c 20 3c 65 6d version, <em
7100: 3e 63 6f 6e 74 65 6e 74 5f 74 79 70 65 3c 2f 65 >content_type</e
7110: 6d 3e 20 69 73 20 74 68 65 20 6d 65 73 73 61 67 m> is the messag
7120: 65 20 63 6f 6e 74 65 6e 74 20 74 79 70 65 2c 20 e content type,
7130: 61 6e 64 0a 09 20 20 20 20 3c 65 6d 3e 6d 65 73 and.. <em>mes
7140: 73 61 67 65 3c 2f 65 6d 3e 20 69 73 20 6d 6f 72 sage</em> is mor
7150: 65 20 69 6e 66 6f 20 66 72 6f 6d 20 74 68 65 20 e info from the
7160: 3c 63 6f 64 65 3e 53 53 4c 5f 74 72 61 63 65 3c <code>SSL_trace<
7170: 2f 63 6f 64 65 3e 20 41 50 49 2e 0a 09 20 20 20 /code> API...
7180: 20 54 68 69 73 20 63 61 6c 6c 62 61 63 6b 20 69 This callback i
7190: 73 20 6e 65 77 20 66 6f 72 20 54 4c 53 20 31 2e s new for TLS 1.
71a0: 38 2e 0a 09 3c 2f 64 64 3e 0a 09 3c 62 72 3e 0a 8...</dd>..<br>.
71b0: 09 3c 64 74 3e 0a 09 3c 73 74 72 6f 6e 67 3e 73 .<dt>..<strong>s
71c0: 65 73 73 69 6f 6e 3c 2f 73 74 72 6f 6e 67 3e 20 ession</strong>
71d0: 3c 65 6d 3e 63 68 61 6e 6e 65 6c 49 64 20 73 65 <em>channelId se
71e0: 73 73 69 6f 6e 5f 69 64 20 74 69 63 6b 65 74 20 ssion_id ticket
71f0: 6c 69 66 65 74 69 6d 65 3c 2f 65 6d 3e 0a 09 3c lifetime</em>..<
7200: 2f 64 74 3e 0a 09 3c 64 64 3e 0a 09 20 20 20 20 /dt>..<dd>..
7210: 54 68 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c This form of cal
7220: 6c 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 lback is invoked
7230: 20 62 79 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 by the OpenSSL
7240: 66 75 6e 63 74 69 6f 6e 0a 09 20 20 20 20 3c 63 function.. <c
7250: 6f 64 65 3e 53 53 4c 5f 43 54 58 5f 73 65 73 73 ode>SSL_CTX_sess
7260: 5f 73 65 74 5f 6e 65 77 5f 63 62 28 29 3c 2f 63 _set_new_cb()</c
7270: 6f 64 65 3e 20 77 68 65 6e 65 76 65 72 20 61 20 ode> whenever a
7280: 6e 65 77 20 73 65 73 73 69 6f 6e 20 69 64 20 69 new session id i
7290: 73 0a 09 20 20 20 20 73 65 6e 74 20 62 79 20 74 s.. sent by t
72a0: 68 65 20 73 65 72 76 65 72 20 64 75 72 69 6e 67 he server during
72b0: 20 74 68 65 20 69 6e 69 74 69 61 6c 20 63 6f 6e the initial con
72c0: 6e 65 63 74 69 6f 6e 20 61 6e 64 20 68 61 6e 64 nection and hand
72d0: 73 68 61 6b 65 2c 20 62 75 74 0a 09 20 20 20 20 shake, but..
72e0: 63 61 6e 20 61 6c 73 6f 20 62 65 20 72 65 63 65 can also be rece
72f0: 69 76 65 64 20 6c 61 74 65 72 20 69 66 20 74 68 ived later if th
7300: 65 20 3c 62 3e 2d 70 6f 73 74 5f 68 61 6e 64 73 e <b>-post_hands
7310: 68 61 6b 65 3c 2f 62 3e 20 6f 70 74 69 6f 6e 20 hake</b> option
7320: 69 73 0a 09 20 20 20 20 75 73 65 64 2e 20 41 72 is.. used. Ar
7330: 67 75 6d 65 6e 74 73 20 61 72 65 3a 20 3c 65 6d guments are: <em
7340: 3e 73 65 73 73 69 6f 6e 5f 69 64 3c 2f 65 6d 3e >session_id</em>
7350: 20 69 73 20 74 68 65 20 63 75 72 72 65 6e 74 0a is the current.
7360: 09 20 20 20 20 73 65 73 73 69 6f 6e 20 69 64 65 . session ide
7370: 6e 74 69 66 69 65 72 2c 20 3c 65 6d 3e 74 69 63 ntifier, <em>tic
7380: 6b 65 74 3c 2f 65 6d 3e 20 69 73 20 74 68 65 20 ket</em> is the
7390: 73 65 73 73 69 6f 6e 20 74 69 63 6b 65 74 20 69 session ticket i
73a0: 6e 66 6f 2c 20 61 6e 64 0a 09 20 20 20 20 3c 65 nfo, and.. <e
73b0: 6d 3e 6c 69 66 65 74 69 6d 65 3c 2f 65 6d 3e 20 m>lifetime</em>
73c0: 69 73 20 74 68 65 20 74 68 65 20 74 69 63 6b 65 is the the ticke
73d0: 74 20 6c 69 66 65 74 69 6d 65 20 69 6e 20 73 65 t lifetime in se
73e0: 63 6f 6e 64 73 2e 0a 09 20 20 20 20 54 68 69 73 conds... This
73f0: 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 6e 65 77 callback is new
7400: 20 66 6f 72 20 54 4c 53 20 31 2e 38 2e 0a 09 3c for TLS 1.8...<
7410: 2f 64 64 3e 0a 20 20 20 20 3c 2f 64 6c 3e 0a 20 /dd>. </dl>.
7420: 20 20 20 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e 0a 3c </dd>.</dl>.<
7430: 62 72 3e 0a 3c 64 6c 3e 0a 20 20 20 20 3c 64 74 br>.<dl>. <dt
7440: 3e 3c 73 74 72 6f 6e 67 3e 2d 70 61 73 73 77 6f ><strong>-passwo
7450: 72 64 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e rd</strong> <em>
7460: 63 61 6c 6c 62 61 63 6b 3c 2f 65 6d 3e 3c 2f 64 callback</em></d
7470: 74 3e 0a 20 20 20 20 3c 64 64 3e 0a 09 49 6e 76 t>. <dd>..Inv
7480: 6f 6b 65 73 20 74 68 65 20 73 70 65 63 69 66 69 okes the specifi
7490: 65 64 20 3c 65 6d 3e 63 61 6c 6c 62 61 63 6b 3c ed <em>callback<
74a0: 2f 65 6d 3e 20 73 63 72 69 70 74 20 77 68 65 6e /em> script when
74b0: 20 4f 70 65 6e 53 53 4c 20 6e 65 65 64 73 20 74 OpenSSL needs t
74c0: 6f 0a 09 6f 62 74 61 69 6e 20 61 20 70 61 73 73 o..obtain a pass
74d0: 77 6f 72 64 2e 20 53 65 65 20 62 65 6c 6f 77 20 word. See below
74e0: 66 6f 72 20 74 68 65 20 70 6f 73 73 69 62 6c 65 for the possible
74f0: 20 61 72 67 75 6d 65 6e 74 73 20 70 61 73 73 65 arguments passe
7500: 64 20 74 6f 0a 09 74 68 65 20 63 61 6c 6c 62 61 d to..the callba
7510: 63 6b 20 73 63 72 69 70 74 2e 20 53 65 65 20 62 ck script. See b
7520: 65 6c 6f 77 20 66 6f 72 20 76 61 6c 69 64 20 72 elow for valid r
7530: 65 74 75 72 6e 20 76 61 6c 75 65 73 2e 0a 09 3c eturn values...<
7540: 62 72 3e 0a 09 3c 64 6c 3e 0a 09 20 20 20 20 3c br>..<dl>.. <
7550: 64 74 3e 0a 09 20 20 20 20 3c 73 74 72 6f 6e 67 dt>.. <strong
7560: 3e 70 61 73 73 77 6f 72 64 3c 2f 73 74 72 6f 6e >password</stron
7570: 67 3e 20 3c 65 6d 3e 72 77 66 6c 61 67 20 73 69 g> <em>rwflag si
7580: 7a 65 3c 2f 65 6d 3e 0a 09 20 20 20 20 3c 2f 64 ze</em>.. </d
7590: 74 3e 0a 09 20 20 20 20 3c 64 64 3e 0a 09 09 49 t>.. <dd>...I
75a0: 6e 76 6f 6b 65 64 20 77 68 65 6e 20 6c 6f 61 64 nvoked when load
75b0: 69 6e 67 20 6f 72 20 73 74 6f 72 69 6e 67 20 61 ing or storing a
75c0: 20 50 45 4d 20 63 65 72 74 69 66 69 63 61 74 65 PEM certificate
75d0: 20 77 69 74 68 20 65 6e 63 72 79 70 74 69 6f 6e with encryption
75e0: 2e 0a 09 09 57 68 65 72 65 20 3c 65 6d 3e 72 77 ....Where <em>rw
75f0: 66 6c 61 67 3c 2f 65 6d 3e 20 69 73 20 30 20 66 flag</em> is 0 f
7600: 6f 72 20 72 65 61 64 69 6e 67 2f 64 65 63 72 79 or reading/decry
7610: 70 74 69 6f 6e 20 6f 72 20 31 20 66 6f 72 0a 09 ption or 1 for..
7620: 09 77 72 69 74 69 6e 67 2f 65 6e 63 72 79 70 74 .writing/encrypt
7630: 69 6f 6e 20 28 63 61 6e 20 70 72 6f 6d 70 74 20 ion (can prompt
7640: 75 73 65 72 20 74 6f 20 63 6f 6e 66 69 72 6d 29 user to confirm)
7650: 20 61 6e 64 20 3c 65 6d 3e 73 69 7a 65 3c 2f 65 and <em>size</e
7660: 6d 3e 20 69 73 0a 09 09 74 68 65 20 6d 61 78 20 m> is...the max
7670: 70 61 73 73 77 6f 72 64 20 6c 65 6e 67 74 68 20 password length
7680: 69 6e 20 62 79 74 65 73 2e 20 54 68 65 20 63 61 in bytes. The ca
7690: 6c 6c 62 61 63 6b 20 73 68 6f 75 6c 64 20 72 65 llback should re
76a0: 74 75 72 6e 20 74 68 65 0a 09 09 70 61 73 73 77 turn the...passw
76b0: 6f 72 64 20 61 73 20 61 20 73 74 72 69 6e 67 2e ord as a string.
76c0: 20 42 6f 74 68 20 61 72 67 75 6d 65 6e 74 73 20 Both arguments
76d0: 61 72 65 20 6e 65 77 20 66 6f 72 20 54 4c 53 20 are new for TLS
76e0: 31 2e 38 2e 0a 09 20 20 20 20 3c 2f 64 64 3e 0a 1.8... </dd>.
76f0: 09 3c 2f 64 6c 3e 0a 20 20 20 20 3c 2f 64 64 3e .</dl>. </dd>
7700: 0a 3c 2f 64 6c 3e 0a 3c 62 72 3e 0a 3c 64 6c 3e .</dl>.<br>.<dl>
7710: 0a 20 20 20 20 3c 64 74 3e 3c 73 74 72 6f 6e 67 . <dt><strong
7720: 3e 2d 76 61 6c 69 64 61 74 65 63 6f 6d 6d 61 6e >-validatecomman
7730: 64 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 63 d</strong> <em>c
7740: 61 6c 6c 62 61 63 6b 3c 2f 65 6d 3e 3c 2f 64 74 allback</em></dt
7750: 3e 0a 20 20 20 20 3c 64 64 3e 0a 09 49 6e 76 6f >. <dd>..Invo
7760: 6b 65 73 20 74 68 65 20 73 70 65 63 69 66 69 65 kes the specifie
7770: 64 20 3c 65 6d 3e 63 61 6c 6c 62 61 63 6b 3c 2f d <em>callback</
7780: 65 6d 3e 20 73 63 72 69 70 74 20 64 75 72 69 6e em> script durin
7790: 67 20 68 61 6e 64 73 68 61 6b 65 20 69 6e 0a 09 g handshake in..
77a0: 6f 72 64 65 72 20 74 6f 20 76 61 6c 69 64 61 74 order to validat
77b0: 65 20 74 68 65 20 70 72 6f 76 69 64 65 64 20 76 e the provided v
77c0: 61 6c 75 65 28 73 29 2e 20 53 65 65 20 62 65 6c alue(s). See bel
77d0: 6f 77 20 66 6f 72 20 74 68 65 20 70 6f 73 73 69 ow for the possi
77e0: 62 6c 65 0a 09 61 72 67 75 6d 65 6e 74 73 20 70 ble..arguments p
77f0: 61 73 73 65 64 20 74 6f 20 74 68 65 20 63 61 6c assed to the cal
7800: 6c 62 61 63 6b 20 73 63 72 69 70 74 2e 20 49 66 lback script. If
7810: 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 2c 20 not specified,
7820: 4f 70 65 6e 53 53 4c 0a 09 77 69 6c 6c 20 61 63 OpenSSL..will ac
7830: 63 65 70 74 20 76 61 6c 69 64 20 63 65 72 74 69 cept valid certi
7840: 66 69 63 61 74 65 73 20 61 6e 64 20 65 78 74 65 ficates and exte
7850: 6e 73 69 6f 6e 73 2e 0a 09 54 6f 20 72 65 6a 65 nsions...To reje
7860: 63 74 20 74 68 65 20 76 61 6c 75 65 20 61 6e 64 ct the value and
7870: 20 61 62 6f 72 74 20 74 68 65 20 63 6f 6e 6e 65 abort the conne
7880: 63 74 69 6f 6e 2c 20 74 68 65 20 63 61 6c 6c 62 ction, the callb
7890: 61 63 6b 20 73 68 6f 75 6c 64 20 72 65 74 75 72 ack should retur
78a0: 6e 20 30 2e 0a 09 54 6f 20 61 63 63 65 70 74 20 n 0...To accept
78b0: 74 68 65 20 76 61 6c 75 65 20 61 6e 64 20 63 6f the value and co
78c0: 6e 74 69 6e 75 65 20 74 68 65 20 63 6f 6e 6e 65 ntinue the conne
78d0: 63 74 69 6f 6e 2c 20 69 74 20 73 68 6f 75 6c 64 ction, it should
78e0: 20 72 65 74 75 72 6e 20 31 2e 0a 09 54 6f 20 72 return 1...To r
78f0: 65 6a 65 63 74 20 74 68 65 20 76 61 6c 75 65 2c eject the value,
7900: 20 62 75 74 20 63 6f 6e 74 69 6e 75 65 20 74 68 but continue th
7910: 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 69 74 e connection, it
7920: 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 32 should return 2
7930: 2e 0a 09 3c 62 72 3e 0a 09 3c 64 6c 3e 0a 09 20 ...<br>..<dl>..
7940: 20 20 20 3c 64 74 3e 0a 09 09 3c 73 74 72 6f 6e <dt>...<stron
7950: 67 3e 61 6c 70 6e 3c 2f 73 74 72 6f 6e 67 3e 20 g>alpn</strong>
7960: 3c 65 6d 3e 63 68 61 6e 6e 65 6c 49 64 20 70 72 <em>channelId pr
7970: 6f 74 6f 63 6f 6c 20 6d 61 74 63 68 3c 2f 65 6d otocol match</em
7980: 3e 0a 09 09 3c 2f 64 74 3e 0a 09 20 20 20 20 3c >...</dt>.. <
7990: 64 64 3e 0a 09 09 46 6f 72 20 73 65 72 76 65 72 dd>...For server
79a0: 73 2c 20 74 68 69 73 20 66 6f 72 6d 20 6f 66 20 s, this form of
79b0: 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 6f callback is invo
79c0: 6b 65 64 20 77 68 65 6e 20 74 68 65 20 63 6c 69 ked when the cli
79d0: 65 6e 74 20 41 4c 50 4e 0a 09 09 65 78 74 65 6e ent ALPN...exten
79e0: 73 69 6f 6e 20 69 73 20 72 65 63 65 69 76 65 64 sion is received
79f0: 2e 20 49 66 20 3c 65 6d 3e 6d 61 74 63 68 3c 2f . If <em>match</
7a00: 65 6d 3e 20 69 73 20 74 72 75 65 2c 20 3c 65 6d em> is true, <em
7a10: 3e 70 72 6f 74 6f 63 6f 6c 3c 2f 65 6d 3e 0a 09 >protocol</em>..
7a20: 09 69 73 20 74 68 65 20 66 69 72 73 74 20 3c 62 .is the first <b
7a30: 3e 2d 61 6c 70 6e 3c 2f 62 3e 20 6f 70 74 69 6f >-alpn</b> optio
7a40: 6e 20 73 70 65 63 69 66 69 65 64 20 70 72 6f 74 n specified prot
7a50: 6f 63 6f 6c 20 63 6f 6d 6d 6f 6e 20 74 6f 20 62 ocol common to b
7a60: 6f 74 68 0a 09 09 74 68 65 20 63 6c 69 65 6e 74 oth...the client
7a70: 20 61 6e 64 20 73 65 72 76 65 72 2e 20 49 66 20 and server. If
7a80: 6e 6f 74 2c 20 74 68 65 20 66 69 72 73 74 20 63 not, the first c
7a90: 6c 69 65 6e 74 20 73 70 65 63 69 66 69 65 64 20 lient specified
7aa0: 70 72 6f 74 6f 63 6f 6c 20 69 73 0a 09 09 75 73 protocol is...us
7ab0: 65 64 2e 20 49 74 20 69 73 20 63 61 6c 6c 65 64 ed. It is called
7ac0: 20 61 66 74 65 72 20 74 68 65 20 68 65 6c 6c 6f after the hello
7ad0: 20 61 6e 64 20 41 4c 50 4e 20 63 61 6c 6c 62 61 and ALPN callba
7ae0: 63 6b 73 2e 0a 09 09 54 68 69 73 20 63 61 6c 6c cks....This call
7af0: 62 61 63 6b 20 69 73 20 6e 65 77 20 66 6f 72 20 back is new for
7b00: 54 4c 53 20 31 2e 38 2e 0a 09 20 20 20 20 3c 2f TLS 1.8... </
7b10: 64 64 3e 0a 09 20 20 20 20 3c 62 72 3e 0a 09 20 dd>.. <br>..
7b20: 20 20 20 3c 64 74 3e 0a 09 09 3c 73 74 72 6f 6e <dt>...<stron
7b30: 67 3e 68 65 6c 6c 6f 3c 2f 73 74 72 6f 6e 67 3e g>hello</strong>
7b40: 20 3c 65 6d 3e 63 68 61 6e 6e 65 6c 49 64 20 73 <em>channelId s
7b50: 65 72 76 65 72 6e 61 6d 65 3c 2f 65 6d 3e 0a 09 ervername</em>..
7b60: 20 20 20 20 3c 2f 64 74 3e 0a 09 20 20 20 20 3c </dt>.. <
7b70: 64 64 3e 0a 09 09 46 6f 72 20 73 65 72 76 65 72 dd>...For server
7b80: 73 2c 20 74 68 69 73 20 66 6f 72 6d 20 6f 66 20 s, this form of
7b90: 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 6f callback is invo
7ba0: 6b 65 64 20 64 75 72 69 6e 67 20 63 6c 69 65 6e ked during clien
7bb0: 74 20 68 65 6c 6c 6f 0a 09 09 6d 65 73 73 61 67 t hello...messag
7bc0: 65 20 70 72 6f 63 65 73 73 69 6e 67 2e 20 54 68 e processing. Th
7bd0: 65 20 70 75 72 70 6f 73 65 20 69 73 20 73 6f 20 e purpose is so
7be0: 74 68 65 20 73 65 72 76 65 72 20 63 61 6e 20 73 the server can s
7bf0: 65 6c 65 63 74 20 74 68 65 0a 09 09 61 70 70 72 elect the...appr
7c00: 6f 70 72 69 61 74 65 20 63 65 72 74 69 66 69 63 opriate certific
7c10: 61 74 65 20 74 6f 20 70 72 65 73 65 6e 74 20 74 ate to present t
7c20: 6f 20 74 68 65 20 63 6c 69 65 6e 74 2c 20 61 6e o the client, an
7c30: 64 20 74 6f 20 6d 61 6b 65 20 6f 74 68 65 72 0a d to make other.
7c40: 09 09 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 ..configuration
7c50: 61 64 6a 75 73 74 6d 65 6e 74 73 20 72 65 6c 65 adjustments rele
7c60: 76 61 6e 74 20 74 6f 20 74 68 61 74 20 73 65 72 vant to that ser
7c70: 76 65 72 20 6e 61 6d 65 20 61 6e 64 20 69 74 73 ver name and its
7c80: 0a 09 09 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e ...configuration
7c90: 2e 20 49 74 20 69 73 20 63 61 6c 6c 65 64 20 62 . It is called b
7ca0: 65 66 6f 72 65 20 74 68 65 20 53 4e 49 20 61 6e efore the SNI an
7cb0: 64 20 41 4c 50 4e 20 63 61 6c 6c 62 61 63 6b 73 d ALPN callbacks
7cc0: 2e 0a 09 09 54 68 69 73 20 63 61 6c 6c 62 61 63 ....This callbac
7cd0: 6b 20 69 73 20 6e 65 77 20 66 6f 72 20 54 4c 53 k is new for TLS
7ce0: 20 31 2e 38 2e 0a 09 20 20 20 20 3c 2f 64 64 3e 1.8... </dd>
7cf0: 0a 09 20 20 20 20 3c 62 72 3e 0a 09 20 20 20 20 .. <br>..
7d00: 3c 64 74 3e 0a 09 09 3c 73 74 72 6f 6e 67 3e 73 <dt>...<strong>s
7d10: 6e 69 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e ni</strong> <em>
7d20: 63 68 61 6e 6e 65 6c 49 64 20 73 65 72 76 65 72 channelId server
7d30: 6e 61 6d 65 3c 2f 65 6d 3e 0a 09 20 20 20 20 3c name</em>.. <
7d40: 2f 64 74 3e 0a 09 20 20 20 20 3c 64 64 3e 0a 09 /dt>.. <dd>..
7d50: 09 46 6f 72 20 73 65 72 76 65 72 73 2c 20 74 68 .For servers, th
7d60: 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c 62 is form of callb
7d70: 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 ack is invoked w
7d80: 68 65 6e 20 74 68 65 20 53 65 72 76 65 72 20 4e hen the Server N
7d90: 61 6d 65 0a 09 09 49 6e 64 69 63 61 74 69 6f 6e ame...Indication
7da0: 20 28 53 4e 49 29 20 65 78 74 65 6e 73 69 6f 6e (SNI) extension
7db0: 20 69 73 20 72 65 63 65 69 76 65 64 2e 20 54 68 is received. Th
7dc0: 65 20 3c 65 6d 3e 73 65 72 76 65 72 6e 61 6d 65 e <em>servername
7dd0: 3c 2f 65 6d 3e 0a 09 09 61 72 67 75 6d 65 6e 74 </em>...argument
7de0: 20 69 73 20 74 68 65 20 63 6c 69 65 6e 74 20 70 is the client p
7df0: 72 6f 76 69 64 65 64 20 73 65 72 76 65 72 20 6e rovided server n
7e00: 61 6d 65 20 69 6e 20 74 68 65 20 3c 62 3e 2d 73 ame in the <b>-s
7e10: 65 72 76 65 72 6e 61 6d 65 3c 2f 62 3e 0a 09 09 ervername</b>...
7e20: 6f 70 74 69 6f 6e 2e 20 54 68 65 20 70 75 72 70 option. The purp
7e30: 6f 73 65 20 69 73 20 73 6f 20 77 68 65 6e 20 61 ose is so when a
7e40: 20 73 65 72 76 65 72 20 73 75 70 70 6f 72 74 73 server supports
7e50: 20 6d 75 6c 74 69 70 6c 65 20 6e 61 6d 65 73 2c multiple names,
7e60: 20 74 68 65 0a 09 09 72 69 67 68 74 20 63 65 72 the...right cer
7e70: 74 69 66 69 63 61 74 65 20 63 61 6e 20 62 65 20 tificate can be
7e80: 75 73 65 64 2e 20 49 74 20 69 73 20 63 61 6c 6c used. It is call
7e90: 65 64 20 61 66 74 65 72 20 74 68 65 20 68 65 6c ed after the hel
7ea0: 6c 6f 20 63 61 6c 6c 62 61 63 6b 0a 09 09 62 75 lo callback...bu
7eb0: 74 20 62 65 66 6f 72 65 20 74 68 65 20 41 4c 50 t before the ALP
7ec0: 4e 20 63 61 6c 6c 62 61 63 6b 2e 0a 09 09 54 68 N callback....Th
7ed0: 69 73 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 6e is callback is n
7ee0: 65 77 20 66 6f 72 20 54 4c 53 20 31 2e 38 2e 0a ew for TLS 1.8..
7ef0: 09 20 20 20 20 3c 2f 64 64 3e 0a 09 20 20 20 20 . </dd>..
7f00: 3c 62 72 3e 0a 09 20 20 20 20 3c 64 74 3e 0a 09 <br>.. <dt>..
7f10: 09 3c 73 74 72 6f 6e 67 3e 76 65 72 69 66 79 3c .<strong>verify<
7f20: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 63 68 61 /strong> <em>cha
7f30: 6e 6e 65 6c 49 64 20 64 65 70 74 68 20 63 65 72 nnelId depth cer
7f40: 74 20 73 74 61 74 75 73 20 65 72 72 6f 72 3c 2f t status error</
7f50: 65 6d 3e 0a 09 20 20 20 20 3c 2f 64 74 3e 0a 09 em>.. </dt>..
7f60: 20 20 20 20 3c 64 64 3e 0a 09 09 54 68 69 73 20 <dd>...This
7f70: 66 6f 72 6d 20 6f 66 20 63 61 6c 6c 62 61 63 6b form of callback
7f80: 20 69 73 20 69 6e 76 6f 6b 65 64 20 62 79 20 4f is invoked by O
7f90: 70 65 6e 53 53 4c 20 77 68 65 6e 20 61 20 6e 65 penSSL when a ne
7fa0: 77 20 63 65 72 74 69 66 69 63 61 74 65 0a 09 09 w certificate...
7fb0: 69 73 20 72 65 63 65 69 76 65 64 20 66 72 6f 6d is received from
7fc0: 20 74 68 65 20 70 65 65 72 2e 20 49 74 20 61 6c the peer. It al
7fd0: 6c 6f 77 73 20 74 68 65 20 63 6c 69 65 6e 74 20 lows the client
7fe0: 74 6f 20 63 68 65 63 6b 20 74 68 65 0a 09 09 63 to check the...c
7ff0: 65 72 74 69 66 69 63 61 74 65 20 76 65 72 69 66 ertificate verif
8000: 69 63 61 74 69 6f 6e 20 72 65 73 75 6c 74 73 20 ication results
8010: 61 6e 64 20 63 68 6f 6f 73 65 20 77 68 65 74 68 and choose wheth
8020: 65 72 20 74 6f 20 63 6f 6e 74 69 6e 75 65 0a 09 er to continue..
8030: 09 6f 72 20 6e 6f 74 2e 20 49 74 20 69 73 20 63 .or not. It is c
8040: 61 6c 6c 65 64 20 66 6f 72 20 65 61 63 68 20 63 alled for each c
8050: 65 72 74 69 66 69 63 61 74 65 20 69 6e 20 74 68 ertificate in th
8060: 65 20 63 65 72 74 69 66 69 63 61 74 65 20 63 68 e certificate ch
8070: 61 69 6e 2e 0a 09 09 3c 75 6c 3e 0a 09 09 3c 6c ain....<ul>...<l
8080: 69 3e 54 68 65 20 3c 65 6d 3e 64 65 70 74 68 3c i>The <em>depth<
8090: 2f 65 6d 3e 20 61 72 67 75 6d 65 6e 74 20 69 73 /em> argument is
80a0: 20 74 68 65 20 69 6e 74 65 67 65 72 20 64 65 70 the integer dep
80b0: 74 68 20 6f 66 20 74 68 65 0a 09 09 63 65 72 74 th of the...cert
80c0: 69 66 69 63 61 74 65 20 69 6e 20 74 68 65 20 63 ificate in the c
80d0: 65 72 74 69 66 69 63 61 74 65 20 63 68 61 69 6e ertificate chain
80e0: 2c 20 77 68 65 72 65 20 30 20 69 73 20 74 68 65 , where 0 is the
80f0: 20 70 65 65 72 20 63 65 72 74 69 66 69 63 61 74 peer certificat
8100: 65 0a 09 09 61 6e 64 20 68 69 67 68 65 72 20 76 e...and higher v
8110: 61 6c 75 65 73 20 67 6f 69 6e 67 20 75 70 20 74 alues going up t
8120: 6f 20 74 68 65 20 43 65 72 74 69 66 69 63 61 74 o the Certificat
8130: 65 20 41 75 74 68 6f 72 69 74 79 20 28 43 41 29 e Authority (CA)
8140: 2e 3c 2f 6c 69 3e 0a 09 09 3c 6c 69 3e 54 68 65 .</li>...<li>The
8150: 20 3c 65 6d 3e 63 65 72 74 3c 2f 65 6d 3e 20 61 <em>cert</em> a
8160: 72 67 75 6d 65 6e 74 20 69 73 20 61 20 6c 69 73 rgument is a lis
8170: 74 20 6f 66 20 6b 65 79 2d 76 61 6c 75 65 20 70 t of key-value p
8180: 61 69 72 73 20 73 69 6d 69 6c 61 72 0a 09 09 74 airs similar...t
8190: 6f 20 74 68 6f 73 65 20 72 65 74 75 72 6e 65 64 o those returned
81a0: 20 62 79 0a 09 09 3c 61 20 68 72 65 66 3d 22 23 by...<a href="#
81b0: 74 6c 73 3a 3a 73 74 61 74 75 73 22 3e 3c 73 74 tls::status"><st
81c0: 72 6f 6e 67 3e 74 6c 73 3a 3a 73 74 61 74 75 73 rong>tls::status
81d0: 3c 2f 73 74 72 6f 6e 67 3e 3c 2f 61 3e 2e 3c 2f </strong></a>.</
81e0: 6c 69 3e 0a 09 09 3c 6c 69 3e 54 68 65 20 3c 65 li>...<li>The <e
81f0: 6d 3e 73 74 61 74 75 73 3c 2f 65 6d 3e 20 61 72 m>status</em> ar
8200: 67 75 6d 65 6e 74 20 69 73 20 74 68 65 20 62 6f gument is the bo
8210: 6f 6c 65 61 6e 20 76 61 6c 69 64 69 74 79 20 6f olean validity o
8220: 66 20 74 68 65 0a 09 09 63 75 72 72 65 6e 74 20 f the...current
8230: 63 65 72 74 69 66 69 63 61 74 65 20 77 68 65 72 certificate wher
8240: 65 20 30 20 69 73 20 69 6e 76 61 6c 69 64 20 61 e 0 is invalid a
8250: 6e 64 20 31 20 69 73 20 76 61 6c 69 64 2e 3c 2f nd 1 is valid.</
8260: 6c 69 3e 0a 09 09 3c 6c 69 3e 54 68 65 20 3c 65 li>...<li>The <e
8270: 6d 3e 65 72 72 6f 72 3c 2f 65 6d 3e 20 61 72 67 m>error</em> arg
8280: 75 6d 65 6e 74 20 69 73 20 74 68 65 20 65 72 72 ument is the err
8290: 6f 72 20 6d 65 73 73 61 67 65 2c 20 69 66 20 61 or message, if a
82a0: 6e 79 2c 20 67 65 6e 65 72 61 74 65 64 0a 09 09 ny, generated...
82b0: 62 79 20 3c 63 6f 64 65 3e 58 35 30 39 5f 53 54 by <code>X509_ST
82c0: 4f 52 45 5f 43 54 58 5f 67 65 74 5f 65 72 72 6f ORE_CTX_get_erro
82d0: 72 28 29 3c 2f 63 6f 64 65 3e 2e 3c 2f 6c 69 3e r()</code>.</li>
82e0: 0a 09 09 3c 2f 75 6c 3e 0a 09 20 20 20 20 3c 2f ...</ul>.. </
82f0: 64 64 3e 0a 09 20 20 20 20 3c 62 72 3e 0a 09 3c dd>.. <br>..<
8300: 2f 64 6c 3e 0a 20 20 20 20 3c 2f 64 64 3e 0a 3c /dl>. </dd>.<
8310: 2f 64 6c 3e 0a 0a 3c 70 3e 0a 52 65 66 65 72 65 /dl>..<p>.Refere
8320: 6e 63 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 nce implementati
8330: 6f 6e 73 20 6f 66 20 74 68 65 73 65 20 63 61 6c ons of these cal
8340: 6c 62 61 63 6b 73 20 61 72 65 20 70 72 6f 76 69 lbacks are provi
8350: 64 65 64 20 69 6e 20 74 68 65 0a 64 69 73 74 72 ded in the.distr
8360: 69 62 75 74 69 6f 6e 20 61 73 20 3c 73 74 72 6f ibution as <stro
8370: 6e 67 3e 74 6c 73 3a 3a 63 61 6c 6c 62 61 63 6b ng>tls::callback
8380: 3c 2f 73 74 72 6f 6e 67 3e 2c 20 3c 73 74 72 6f </strong>, <stro
8390: 6e 67 3e 74 6c 73 3a 3a 70 61 73 73 77 6f 72 64 ng>tls::password
83a0: 3c 2f 73 74 72 6f 6e 67 3e 2c 0a 61 6e 64 20 3c </strong>,.and <
83b0: 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 76 61 6c 69 strong>tls::vali
83c0: 64 61 74 65 5f 63 6f 6d 6d 61 6e 64 3c 2f 73 74 date_command</st
83d0: 72 6f 6e 67 3e 20 72 65 73 70 65 63 74 69 76 65 rong> respective
83e0: 6c 79 2e 20 4e 6f 74 65 20 74 68 61 74 20 74 68 ly. Note that th
83f0: 65 73 65 20 61 72 65 0a 3c 65 6d 3e 73 61 6d 70 ese are.<em>samp
8400: 6c 65 3c 2f 65 6d 3e 20 69 6d 70 6c 65 6d 65 6e le</em> implemen
8410: 74 61 74 69 6f 6e 73 20 6f 6e 6c 79 2e 20 49 6e tations only. In
8420: 20 61 20 6d 6f 72 65 20 72 65 61 6c 69 73 74 69 a more realisti
8430: 63 20 64 65 70 6c 6f 79 6d 65 6e 74 0a 79 6f 75 c deployment.you
8440: 20 77 6f 75 6c 64 20 73 70 65 63 69 66 79 20 79 would specify y
8450: 6f 75 72 20 6f 77 6e 20 63 61 6c 6c 62 61 63 6b our own callback
8460: 20 73 63 72 69 70 74 73 20 6f 6e 20 65 61 63 68 scripts on each
8470: 20 54 4c 53 20 63 68 61 6e 6e 65 6c 20 75 73 69 TLS channel usi
8480: 6e 67 20 74 68 65 0a 3c 73 74 72 6f 6e 67 3e 2d ng the.<strong>-
8490: 63 6f 6d 6d 61 6e 64 3c 2f 73 74 72 6f 6e 67 3e command</strong>
84a0: 2c 20 3c 73 74 72 6f 6e 67 3e 2d 70 61 73 73 77 , <strong>-passw
84b0: 6f 72 64 3c 2f 73 74 72 6f 6e 67 3e 2c 20 61 6e ord</strong>, an
84c0: 64 0a 3c 73 74 72 6f 6e 67 3e 2d 76 61 6c 69 64 d.<strong>-valid
84d0: 61 74 65 5f 63 6f 6d 6d 61 6e 64 3c 2f 73 74 72 ate_command</str
84e0: 6f 6e 67 3e 20 6f 70 74 69 6f 6e 73 2e 0a 3c 2f ong> options..</
84f0: 70 3e 0a 3c 70 3e 0a 54 68 65 20 64 65 66 61 75 p>.<p>.The defau
8500: 6c 74 20 62 65 68 61 76 69 6f 72 20 77 68 65 6e lt behavior when
8510: 20 74 68 65 20 3c 73 74 72 6f 6e 67 3e 2d 63 6f the <strong>-co
8520: 6d 6d 61 6e 64 3c 2f 73 74 72 6f 6e 67 3e 20 61 mmand</strong> a
8530: 6e 64 20 3c 73 74 72 6f 6e 67 3e 2d 76 61 6c 69 nd <strong>-vali
8540: 64 61 74 65 5f 63 6f 6d 6d 61 6e 64 3c 2f 73 74 date_command</st
8550: 72 6f 6e 67 3e 0a 6f 70 74 69 6f 6e 73 20 61 72 rong>.options ar
8560: 65 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 20 e not specified
8570: 69 73 20 66 6f 72 20 54 4c 53 20 74 6f 20 70 72 is for TLS to pr
8580: 6f 63 65 73 73 20 74 68 65 20 61 73 73 6f 63 69 ocess the associ
8590: 61 74 65 64 20 6c 69 62 72 61 72 79 20 63 61 6c ated library cal
85a0: 6c 62 61 63 6b 73 0a 69 6e 74 65 72 6e 61 6c 6c lbacks.internall
85b0: 79 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 62 y. The default b
85c0: 65 68 61 76 69 6f 72 20 77 68 65 6e 20 74 68 65 ehavior when the
85d0: 20 3c 73 74 72 6f 6e 67 3e 2d 70 61 73 73 77 6f <strong>-passwo
85e0: 72 64 3c 2f 73 74 72 6f 6e 67 3e 20 6f 70 74 69 rd</strong> opti
85f0: 6f 6e 20 69 73 20 6e 6f 74 0a 73 70 65 63 69 66 on is not.specif
8600: 69 65 64 20 69 73 20 66 6f 72 20 54 4c 53 20 74 ied is for TLS t
8610: 6f 20 70 72 6f 63 65 73 73 20 74 68 65 20 61 73 o process the as
8620: 73 6f 63 69 61 74 65 64 20 6c 69 62 72 61 72 79 sociated library
8630: 20 63 61 6c 6c 62 61 63 6b 73 20 62 79 20 61 74 callbacks by at
8640: 74 65 6d 70 74 69 6e 67 0a 74 6f 20 63 61 6c 6c tempting.to call
8650: 20 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 70 61 <strong>tls::pa
8660: 73 73 77 6f 72 64 3c 2f 73 74 72 6f 6e 67 3e 2e ssword</strong>.
8670: 0a 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 .The difference
8680: 62 65 74 77 65 65 6e 20 74 68 65 73 65 20 74 77 between these tw
8690: 6f 20 62 65 68 61 76 69 6f 72 73 20 69 73 20 61 o behaviors is a
86a0: 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f 66 20 consequence of
86b0: 6d 61 69 6e 74 61 69 6e 69 6e 67 0a 63 6f 6d 70 maintaining.comp
86c0: 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 65 atibility with e
86d0: 61 72 6c 69 65 72 20 69 6d 70 6c 65 6d 65 6e 74 arlier implement
86e0: 61 74 69 6f 6e 73 2e 0a 3c 2f 70 3e 0a 3c 70 3e ations..</p>.<p>
86f0: 0a 3c 65 6d 3e 0a 54 68 65 20 75 73 65 20 6f 66 .<em>.The use of
8700: 20 74 68 65 20 72 65 66 65 72 65 6e 63 65 20 63 the reference c
8710: 61 6c 6c 62 61 63 6b 73 20 3c 73 74 72 6f 6e 67 allbacks <strong
8720: 3e 74 6c 73 3a 3a 63 61 6c 6c 62 61 63 6b 3c 2f >tls::callback</
8730: 73 74 72 6f 6e 67 3e 2c 0a 3c 73 74 72 6f 6e 67 strong>,.<strong
8740: 3e 74 6c 73 3a 3a 70 61 73 73 77 6f 72 64 3c 2f >tls::password</
8750: 73 74 72 6f 6e 67 3e 2c 20 61 6e 64 20 3c 73 74 strong>, and <st
8760: 72 6f 6e 67 3e 74 6c 73 3a 3a 76 61 6c 69 64 61 rong>tls::valida
8770: 74 65 5f 63 6f 6d 6d 61 6e 64 3c 2f 73 74 72 6f te_command</stro
8780: 6e 67 3e 0a 69 73 20 6e 6f 74 20 72 65 63 6f 6d ng>.is not recom
8790: 6d 65 6e 64 65 64 2e 20 54 68 65 79 20 6d 61 79 mended. They may
87a0: 20 62 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d be removed from
87b0: 20 66 75 74 75 72 65 20 72 65 6c 65 61 73 65 73 future releases
87c0: 2e 0a 3c 2f 65 6d 3e 0a 3c 2f 70 3e 0a 3c 62 72 ..</em>.</p>.<br
87d0: 3e 0a 0a 3c 68 72 3e 0a 0a 3c 68 33 3e 3c 61 20 >..<hr>..<h3><a
87e0: 6e 61 6d 65 3d 22 44 45 42 55 47 22 3e 44 45 42 name="DEBUG">DEB
87f0: 55 47 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 3c 70 3e UG</a></h3>..<p>
8800: 46 6f 72 20 6d 6f 73 74 20 64 65 62 75 67 67 69 For most debuggi
8810: 6e 67 20 6e 65 65 64 73 2c 20 74 68 65 20 3c 62 ng needs, the <b
8820: 3e 2d 63 61 6c 6c 62 61 63 6b 3c 2f 62 3e 20 6f >-callback</b> o
8830: 70 74 69 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 ption can be use
8840: 64 20 74 6f 20 70 72 6f 76 69 64 65 0a 73 75 66 d to provide.suf
8850: 66 69 63 69 65 6e 74 20 69 6e 73 69 67 68 74 20 ficient insight
8860: 61 6e 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 and information
8870: 6f 6e 20 74 68 65 20 54 4c 53 20 68 61 6e 64 73 on the TLS hands
8880: 68 61 6b 65 20 61 6e 64 20 70 72 6f 67 72 65 73 hake and progres
8890: 73 2e 20 49 66 20 66 75 72 74 68 65 72 0a 74 72 s. If further.tr
88a0: 6f 75 62 6c 65 73 68 6f 6f 74 69 6e 67 20 69 6e oubleshooting in
88b0: 73 69 67 68 74 20 69 73 20 6e 65 65 64 65 64 2c sight is needed,
88c0: 20 74 68 65 20 63 6f 6d 70 69 6c 65 20 74 69 6d the compile tim
88d0: 65 20 6f 70 74 69 6f 6e 20 3c 62 3e 2d 2d 65 6e e option <b>--en
88e0: 61 62 6c 65 2d 64 65 62 75 67 3c 2f 62 3e 0a 63 able-debug</b>.c
88f0: 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 67 65 an be used to ge
8900: 74 20 64 65 74 61 69 6c 65 64 20 65 78 65 63 75 t detailed execu
8910: 74 69 6f 6e 20 66 6c 6f 77 20 73 74 61 74 75 73 tion flow status
8920: 2e 3c 2f 70 3e 0a 0a 3c 70 3e 54 4c 53 20 6b 65 .</p>..<p>TLS ke
8930: 79 20 6c 6f 67 67 69 6e 67 20 63 61 6e 20 62 65 y logging can be
8940: 20 65 6e 61 62 6c 65 64 20 62 79 20 73 65 74 74 enabled by sett
8950: 69 6e 67 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d ing the environm
8960: 65 6e 74 20 76 61 72 69 61 62 6c 65 0a 3c 62 3e ent variable.<b>
8970: 53 53 4c 4b 45 59 4c 4f 47 46 49 4c 45 3c 2f 62 SSLKEYLOGFILE</b
8980: 3e 20 74 6f 20 74 68 65 20 6e 61 6d 65 20 6f 66 > to the name of
8990: 20 74 68 65 20 66 69 6c 65 20 74 6f 20 6c 6f 67 the file to log
89a0: 20 74 6f 2e 20 54 68 65 6e 20 77 68 65 6e 65 76 to. Then whenev
89b0: 65 72 20 54 4c 53 0a 6b 65 79 20 6d 61 74 65 72 er TLS.key mater
89c0: 69 61 6c 20 69 73 20 67 65 6e 65 72 61 74 65 64 ial is generated
89d0: 20 6f 72 20 72 65 63 65 69 76 65 64 20 69 74 20 or received it
89e0: 77 69 6c 6c 20 62 65 20 6c 6f 67 67 65 64 20 74 will be logged t
89f0: 6f 20 74 68 65 20 66 69 6c 65 2e 20 54 68 69 73 o the file. This
8a00: 0a 69 73 20 75 73 65 66 75 6c 20 66 6f 72 20 6c .is useful for l
8a10: 6f 67 67 69 6e 67 20 6b 65 79 20 64 61 74 61 20 ogging key data
8a20: 66 6f 72 20 6e 65 74 77 6f 72 6b 20 6c 6f 67 67 for network logg
8a30: 69 6e 67 20 74 6f 6f 6c 73 20 74 6f 20 75 73 65 ing tools to use
8a40: 20 74 6f 0a 64 65 63 72 79 70 74 20 74 68 65 20 to.decrypt the
8a50: 64 61 74 61 2e 3c 2f 70 3e 0a 0a 3c 70 3e 54 68 data.</p>..<p>Th
8a60: 65 20 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 64 e <strong>tls::d
8a70: 65 62 75 67 3c 2f 73 74 72 6f 6e 67 3e 20 76 61 ebug</strong> va
8a80: 72 69 61 62 6c 65 20 70 72 6f 76 69 64 65 73 20 riable provides
8a90: 73 6f 6d 65 20 61 64 64 69 74 69 6f 6e 61 6c 0a some additional.
8aa0: 63 6f 6e 74 72 6f 6c 20 6f 76 65 72 20 74 68 65 control over the
8ab0: 73 65 20 72 65 66 65 72 65 6e 63 65 20 63 61 6c se reference cal
8ac0: 6c 62 61 63 6b 73 2e 20 49 74 73 20 76 61 6c 75 lbacks. Its valu
8ad0: 65 20 69 73 20 7a 65 72 6f 20 62 79 20 64 65 66 e is zero by def
8ae0: 61 75 6c 74 2e 0a 48 69 67 68 65 72 20 76 61 6c ault..Higher val
8af0: 75 65 73 20 70 72 6f 64 75 63 65 20 6d 6f 72 65 ues produce more
8b00: 20 64 69 61 67 6e 6f 73 74 69 63 20 6f 75 74 70 diagnostic outp
8b10: 75 74 2c 20 61 6e 64 20 77 69 6c 6c 20 61 6c 73 ut, and will als
8b20: 6f 20 66 6f 72 63 65 20 74 68 65 0a 76 65 72 69 o force the.veri
8b30: 66 79 20 6d 65 74 68 6f 64 20 69 6e 20 3c 73 74 fy method in <st
8b40: 72 6f 6e 67 3e 74 6c 73 3a 3a 63 61 6c 6c 62 61 rong>tls::callba
8b50: 63 6b 3c 2f 73 74 72 6f 6e 67 3e 20 74 6f 20 61 ck</strong> to a
8b60: 63 63 65 70 74 20 74 68 65 0a 63 65 72 74 69 66 ccept the.certif
8b70: 69 63 61 74 65 2c 20 65 76 65 6e 20 77 68 65 6e icate, even when
8b80: 20 69 74 20 69 73 20 69 6e 76 61 6c 69 64 20 69 it is invalid i
8b90: 66 20 74 68 65 20 3c 62 3e 74 6c 73 3a 3a 76 61 f the <b>tls::va
8ba0: 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 6e 64 3c 2f lidate_command</
8bb0: 62 3e 0a 63 61 6c 6c 62 61 63 6b 20 69 73 20 75 b>.callback is u
8bc0: 73 65 64 20 66 6f 72 20 74 68 65 20 3c 62 3e 2d sed for the <b>-
8bd0: 76 61 6c 69 64 61 74 65 63 6f 6d 6d 61 6e 64 3c validatecommand<
8be0: 2f 62 3e 20 6f 70 74 69 6f 6e 2e 3c 2f 70 3e 0a /b> option.</p>.
8bf0: 0a 3c 70 3e 3c 65 6d 3e 54 68 65 20 75 73 65 20 .<p><em>The use
8c00: 6f 66 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 of the variable
8c10: 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 64 65 62 <strong>tls::deb
8c20: 75 67 3c 2f 73 74 72 6f 6e 67 3e 20 69 73 20 6e ug</strong> is n
8c30: 6f 74 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 0a ot recommended..
8c40: 49 74 20 6d 61 79 20 62 65 20 72 65 6d 6f 76 65 It may be remove
8c50: 64 20 66 72 6f 6d 20 66 75 74 75 72 65 20 72 65 d from future re
8c60: 6c 65 61 73 65 73 2e 3c 2f 65 6d 3e 3c 2f 70 3e leases.</em></p>
8c70: 0a 0a 3c 68 34 3e 3c 61 20 6e 61 6d 65 3d 22 44 ..<h4><a name="D
8c80: 45 42 55 47 5f 45 58 41 4d 50 4c 45 53 22 3e 44 EBUG_EXAMPLES">D
8c90: 65 62 75 67 20 45 78 61 6d 70 6c 65 73 3c 2f 61 ebug Examples</a
8ca0: 3e 3c 2f 68 34 3e 0a 0a 3c 70 3e 54 68 65 73 65 ></h4>..<p>These
8cb0: 20 65 78 61 6d 70 6c 65 73 20 75 73 65 20 74 68 examples use th
8cc0: 65 20 64 65 66 61 75 6c 74 20 55 6e 69 78 20 70 e default Unix p
8cd0: 6c 61 74 66 6f 72 6d 20 53 53 4c 20 63 65 72 74 latform SSL cert
8ce0: 69 66 69 63 61 74 65 73 2e 20 46 6f 72 20 73 74 ificates. For st
8cf0: 61 6e 64 61 72 64 0a 69 6e 73 74 61 6c 6c 61 74 andard.installat
8d00: 69 6f 6e 73 2c 20 2d 63 61 64 69 72 20 61 6e 64 ions, -cadir and
8d10: 20 2d 63 61 66 69 6c 65 20 73 68 6f 75 6c 64 20 -cafile should
8d20: 6e 6f 74 20 62 65 20 6e 65 65 64 65 64 2e 20 49 not be needed. I
8d30: 66 20 79 6f 75 72 20 63 65 72 74 69 66 69 63 61 f your certifica
8d40: 74 65 73 0a 61 72 65 20 69 6e 20 6e 6f 6e 2d 73 tes.are in non-s
8d50: 74 61 6e 64 61 72 64 20 6c 6f 63 61 74 69 6f 6e tandard location
8d60: 73 2c 20 75 70 64 61 74 65 20 2d 63 61 64 69 72 s, update -cadir
8d70: 20 6f 72 20 75 73 65 20 2d 63 61 66 69 6c 65 20 or use -cafile
8d80: 61 73 20 6e 65 65 64 65 64 2e 3c 2f 70 3e 0a 3c as needed.</p>.<
8d90: 62 72 3e 0a 0a 3c 70 3e 45 78 61 6d 70 6c 65 20 br>..<p>Example
8da0: 23 31 3a 20 55 73 65 20 48 54 54 50 20 70 61 63 #1: Use HTTP pac
8db0: 6b 61 67 65 3c 2f 70 3e 0a 3c 70 72 65 3e 3c 63 kage</p>.<pre><c
8dc0: 6f 64 65 3e 0a 70 61 63 6b 61 67 65 20 72 65 71 ode>.package req
8dd0: 75 69 72 65 20 68 74 74 70 0a 70 61 63 6b 61 67 uire http.packag
8de0: 65 20 72 65 71 75 69 72 65 20 74 6c 73 0a 73 65 e require tls.se
8df0: 74 20 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 77 t url "https://w
8e00: 77 77 2e 74 63 6c 2e 74 6b 2f 22 0a 0a 68 74 74 ww.tcl.tk/"..htt
8e10: 70 3a 3a 72 65 67 69 73 74 65 72 20 68 74 74 70 p::register http
8e20: 73 20 34 34 33 20 5b 6c 69 73 74 20 3a 3a 74 6c s 443 [list ::tl
8e30: 73 3a 3a 73 6f 63 6b 65 74 20 2d 61 75 74 6f 73 s::socket -autos
8e40: 65 72 76 65 72 6e 61 6d 65 20 74 72 75 65 20 2d ervername true -
8e50: 72 65 71 75 69 72 65 20 74 72 75 65 20 2d 63 61 require true -ca
8e60: 64 69 72 20 2f 65 74 63 2f 73 73 6c 2f 63 65 72 dir /etc/ssl/cer
8e70: 74 73 20 5c 0a 20 20 20 20 2d 63 6f 6d 6d 61 6e ts \. -comman
8e80: 64 20 3a 3a 74 6c 73 3a 3a 63 61 6c 6c 62 61 63 d ::tls::callbac
8e90: 6b 20 2d 70 61 73 73 77 6f 72 64 20 3a 3a 74 6c k -password ::tl
8ea0: 73 3a 3a 70 61 73 73 77 6f 72 64 20 2d 76 61 6c s::password -val
8eb0: 69 64 61 74 65 63 6f 6d 6d 61 6e 64 20 3a 3a 74 idatecommand ::t
8ec0: 6c 73 3a 3a 76 61 6c 69 64 61 74 65 5f 63 6f 6d ls::validate_com
8ed0: 6d 61 6e 64 5d 0a 0a 23 20 43 68 65 63 6b 20 66 mand]..# Check f
8ee0: 6f 72 20 65 72 72 6f 72 0a 73 65 74 20 74 6f 6b or error.set tok
8ef0: 65 6e 20 5b 68 74 74 70 3a 3a 67 65 74 75 72 6c en [http::geturl
8f00: 20 24 75 72 6c 5d 0a 69 66 20 7b 5b 68 74 74 70 $url].if {[http
8f10: 3a 3a 73 74 61 74 75 73 20 24 74 6f 6b 65 6e 5d ::status $token]
8f20: 20 6e 65 20 22 6f 6b 22 7d 20 7b 0a 20 20 20 20 ne "ok"} {.
8f30: 70 75 74 73 20 5b 66 6f 72 6d 61 74 20 22 45 72 puts [format "Er
8f40: 72 6f 72 20 25 73 22 20 5b 68 74 74 70 3a 3a 73 ror %s" [http::s
8f50: 74 61 74 75 73 20 24 74 6f 6b 65 6e 5d 5d 0a 7d tatus $token]].}
8f60: 0a 0a 23 20 47 65 74 20 77 65 62 20 70 61 67 65 ..# Get web page
8f70: 0a 73 65 74 20 64 61 74 61 20 5b 68 74 74 70 3a .set data [http:
8f80: 3a 64 61 74 61 20 24 74 6f 6b 65 6e 5d 0a 70 75 :data $token].pu
8f90: 74 73 20 5b 73 74 72 69 6e 67 20 6c 65 6e 67 74 ts [string lengt
8fa0: 68 20 24 64 61 74 61 5d 0a 0a 23 20 43 6c 65 61 h $data]..# Clea
8fb0: 6e 75 70 0a 3a 3a 68 74 74 70 3a 3a 63 6c 65 61 nup.::http::clea
8fc0: 6e 75 70 20 24 74 6f 6b 65 6e 0a 3c 2f 63 6f 64 nup $token.</cod
8fd0: 65 3e 3c 2f 70 72 65 3e 0a 0a 3c 70 3e 45 78 61 e></pre>..<p>Exa
8fe0: 6d 70 6c 65 20 23 32 3a 20 55 73 65 20 72 61 77 mple #2: Use raw
8ff0: 20 73 6f 63 6b 65 74 3c 2f 70 3e 0a 3c 70 72 65 socket</p>.<pre
9000: 3e 3c 63 6f 64 65 3e 0a 70 61 63 6b 61 67 65 20 ><code>.package
9010: 72 65 71 75 69 72 65 20 74 6c 73 0a 0a 73 65 74 require tls..set
9020: 20 75 72 6c 20 22 77 77 77 2e 74 63 6c 2d 6c 61 url "www.tcl-la
9030: 6e 67 2e 6f 72 67 22 0a 73 65 74 20 70 6f 72 74 ng.org".set port
9040: 20 34 34 33 0a 0a 73 65 74 20 63 68 20 5b 74 6c 443..set ch [tl
9050: 73 3a 3a 73 6f 63 6b 65 74 20 2d 61 75 74 6f 73 s::socket -autos
9060: 65 72 76 65 72 6e 61 6d 65 20 31 20 2d 73 65 72 ervername 1 -ser
9070: 76 65 72 6e 61 6d 65 20 24 75 72 6c 20 2d 72 65 vername $url -re
9080: 71 75 65 73 74 20 31 20 2d 72 65 71 75 69 72 65 quest 1 -require
9090: 20 31 20 5c 0a 20 20 20 20 2d 61 6c 70 6e 20 7b 1 \. -alpn {
90a0: 68 74 74 70 2f 31 2e 31 7d 20 2d 63 61 64 69 72 http/1.1} -cadir
90b0: 20 2f 65 74 63 2f 73 73 6c 2f 63 65 72 74 73 20 /etc/ssl/certs
90c0: 2d 63 6f 6d 6d 61 6e 64 20 3a 3a 74 6c 73 3a 3a -command ::tls::
90d0: 63 61 6c 6c 62 61 63 6b 20 5c 0a 20 20 20 20 2d callback \. -
90e0: 70 61 73 73 77 6f 72 64 20 3a 3a 74 6c 73 3a 3a password ::tls::
90f0: 70 61 73 73 77 6f 72 64 20 2d 76 61 6c 69 64 61 password -valida
9100: 74 65 63 6f 6d 6d 61 6e 64 20 3a 3a 74 6c 73 3a tecommand ::tls:
9110: 3a 76 61 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 6e :validate_comman
9120: 64 20 24 75 72 6c 20 24 70 6f 72 74 5d 0a 63 68 d $url $port].ch
9130: 61 6e 20 63 6f 6e 66 69 67 75 72 65 20 24 63 68 an configure $ch
9140: 20 2d 62 75 66 66 65 72 73 69 7a 65 20 36 35 35 -buffersize 655
9150: 33 36 0a 74 6c 73 3a 3a 68 61 6e 64 73 68 61 6b 36.tls::handshak
9160: 65 20 24 63 68 0a 0a 70 75 74 73 20 24 63 68 20 e $ch..puts $ch
9170: 22 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 22 "GET / HTTP/1.1"
9180: 0a 66 6c 75 73 68 20 24 63 68 0a 61 66 74 65 72 .flush $ch.after
9190: 20 35 30 30 0a 73 65 74 20 64 61 74 61 20 5b 72 500.set data [r
91a0: 65 61 64 20 24 63 68 5d 0a 0a 61 72 72 61 79 20 ead $ch]..array
91b0: 73 65 74 20 73 74 61 74 75 73 20 5b 74 6c 73 3a set status [tls:
91c0: 3a 73 74 61 74 75 73 20 24 63 68 5d 0a 61 72 72 :status $ch].arr
91d0: 61 79 20 73 65 74 20 63 6f 6e 6e 20 5b 74 6c 73 ay set conn [tls
91e0: 3a 3a 63 6f 6e 6e 65 63 74 69 6f 6e 20 24 63 68 ::connection $ch
91f0: 5d 0a 61 72 72 61 79 20 73 65 74 20 63 68 61 6e ].array set chan
9200: 20 5b 63 68 61 6e 20 63 6f 6e 66 69 67 75 72 65 [chan configure
9210: 20 24 63 68 5d 0a 63 6c 6f 73 65 20 24 63 68 0a $ch].close $ch.
9220: 70 61 72 72 61 79 20 73 74 61 74 75 73 0a 70 61 parray status.pa
9230: 72 72 61 79 20 63 6f 6e 6e 0a 70 61 72 72 61 79 rray conn.parray
9240: 20 63 68 61 6e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 chan.</code></p
9250: 72 65 3e 0a 3c 62 72 3e 0a 0a 3c 68 72 3e 0a 0a re>.<br>..<hr>..
9260: 3c 68 33 3e 3c 61 20 6e 61 6d 65 3d 22 48 54 54 <h3><a name="HTT
9270: 50 53 20 45 58 41 4d 50 4c 45 22 3e 48 54 54 50 PS EXAMPLE">HTTP
9280: 53 20 45 58 41 4d 50 4c 45 3c 2f 61 3e 3c 2f 68 S EXAMPLE</a></h
9290: 33 3e 0a 0a 3c 70 3e 54 68 65 73 65 20 65 78 61 3>..<p>These exa
92a0: 6d 70 6c 65 73 20 75 73 65 20 74 68 65 20 64 65 mples use the de
92b0: 66 61 75 6c 74 20 55 6e 69 78 20 70 6c 61 74 66 fault Unix platf
92c0: 6f 72 6d 20 53 53 4c 20 63 65 72 74 69 66 69 63 orm SSL certific
92d0: 61 74 65 73 2e 20 46 6f 72 20 73 74 61 6e 64 61 ates. For standa
92e0: 72 64 0a 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 73 rd.installations
92f0: 2c 20 2d 63 61 64 69 72 20 61 6e 64 20 2d 63 61 , -cadir and -ca
9300: 66 69 6c 65 20 73 68 6f 75 6c 64 20 6e 6f 74 20 file should not
9310: 62 65 20 6e 65 65 64 65 64 2e 20 49 66 20 79 6f be needed. If yo
9320: 75 72 20 63 65 72 74 69 66 69 63 61 74 65 73 0a ur certificates.
9330: 61 72 65 20 69 6e 20 6e 6f 6e 2d 73 74 61 6e 64 are in non-stand
9340: 61 72 64 20 6c 6f 63 61 74 69 6f 6e 73 2c 20 75 ard locations, u
9350: 70 64 61 74 65 20 2d 63 61 64 69 72 20 6f 72 20 pdate -cadir or
9360: 75 73 65 20 2d 63 61 66 69 6c 65 20 61 73 20 6e use -cafile as n
9370: 65 65 64 65 64 2e 3c 2f 70 3e 0a 0a 3c 70 3e 45 eeded.</p>..<p>E
9380: 78 61 6d 70 6c 65 20 23 31 3a 20 47 65 74 20 77 xample #1: Get w
9390: 65 62 20 70 61 67 65 3c 2f 70 3e 0a 3c 70 72 65 eb page</p>.<pre
93a0: 3e 3c 63 6f 64 65 3e 0a 70 61 63 6b 61 67 65 20 ><code>.package
93b0: 72 65 71 75 69 72 65 20 68 74 74 70 0a 70 61 63 require http.pac
93c0: 6b 61 67 65 20 72 65 71 75 69 72 65 20 74 6c 73 kage require tls
93d0: 0a 73 65 74 20 75 72 6c 20 22 68 74 74 70 73 3a .set url "https:
93e0: 2f 2f 77 77 77 2e 74 63 6c 2e 74 6b 2f 22 0a 0a //www.tcl.tk/"..
93f0: 68 74 74 70 3a 3a 72 65 67 69 73 74 65 72 20 68 http::register h
9400: 74 74 70 73 20 34 34 33 20 5b 6c 69 73 74 20 3a ttps 443 [list :
9410: 3a 74 6c 73 3a 3a 73 6f 63 6b 65 74 20 2d 61 75 :tls::socket -au
9420: 74 6f 73 65 72 76 65 72 6e 61 6d 65 20 74 72 75 toservername tru
9430: 65 20 2d 72 65 71 75 69 72 65 20 74 72 75 65 20 e -require true
9440: 2d 63 61 64 69 72 20 2f 65 74 63 2f 73 73 6c 2f -cadir /etc/ssl/
9450: 63 65 72 74 73 5d 0a 0a 23 20 43 68 65 63 6b 20 certs]..# Check
9460: 66 6f 72 20 65 72 72 6f 72 0a 73 65 74 20 74 6f for error.set to
9470: 6b 65 6e 20 5b 68 74 74 70 3a 3a 67 65 74 75 72 ken [http::getur
9480: 6c 20 24 75 72 6c 5d 0a 69 66 20 7b 5b 68 74 74 l $url].if {[htt
9490: 70 3a 3a 73 74 61 74 75 73 20 24 74 6f 6b 65 6e p::status $token
94a0: 5d 20 6e 65 20 22 6f 6b 22 7d 20 7b 0a 20 20 20 ] ne "ok"} {.
94b0: 20 70 75 74 73 20 5b 66 6f 72 6d 61 74 20 22 45 puts [format "E
94c0: 72 72 6f 72 20 25 73 22 20 5b 68 74 74 70 3a 3a rror %s" [http::
94d0: 73 74 61 74 75 73 20 24 74 6f 6b 65 6e 5d 5d 0a status $token]].
94e0: 7d 0a 0a 23 20 47 65 74 20 77 65 62 20 70 61 67 }..# Get web pag
94f0: 65 0a 73 65 74 20 64 61 74 61 20 5b 68 74 74 70 e.set data [http
9500: 3a 3a 64 61 74 61 20 24 74 6f 6b 65 6e 5d 0a 70 ::data $token].p
9510: 75 74 73 20 24 64 61 74 61 0a 0a 23 20 43 6c 65 uts $data..# Cle
9520: 61 6e 75 70 0a 3a 3a 68 74 74 70 3a 3a 63 6c 65 anup.::http::cle
9530: 61 6e 75 70 20 24 74 6f 6b 65 6e 0a 3c 2f 63 6f anup $token.</co
9540: 64 65 3e 3c 2f 70 72 65 3e 0a 0a 3c 70 3e 45 78 de></pre>..<p>Ex
9550: 61 6d 70 6c 65 20 23 32 3a 20 44 6f 77 6e 6c 6f ample #2: Downlo
9560: 61 64 20 66 69 6c 65 3c 2f 70 3e 0a 3c 70 72 65 ad file</p>.<pre
9570: 3e 3c 63 6f 64 65 3e 0a 70 61 63 6b 61 67 65 20 ><code>.package
9580: 72 65 71 75 69 72 65 20 68 74 74 70 0a 70 61 63 require http.pac
9590: 6b 61 67 65 20 72 65 71 75 69 72 65 20 74 6c 73 kage require tls
95a0: 0a 0a 73 65 74 20 75 72 6c 20 22 68 74 74 70 73 ..set url "https
95b0: 3a 2f 2f 77 69 6b 69 2e 74 63 6c 2d 6c 61 6e 67 ://wiki.tcl-lang
95c0: 2e 6f 72 67 2f 73 69 74 65 6d 61 70 2e 78 6d 6c .org/sitemap.xml
95d0: 22 0a 73 65 74 20 66 69 6c 65 6e 61 6d 65 20 5b ".set filename [
95e0: 66 69 6c 65 20 74 61 69 6c 20 24 75 72 6c 5d 0a file tail $url].
95f0: 0a 68 74 74 70 3a 3a 72 65 67 69 73 74 65 72 20 .http::register
9600: 68 74 74 70 73 20 34 34 33 20 5b 6c 69 73 74 20 https 443 [list
9610: 3a 3a 74 6c 73 3a 3a 73 6f 63 6b 65 74 20 2d 61 ::tls::socket -a
9620: 75 74 6f 73 65 72 76 65 72 6e 61 6d 65 20 74 72 utoservername tr
9630: 75 65 20 2d 72 65 71 75 69 72 65 20 74 72 75 65 ue -require true
9640: 20 2d 63 61 64 69 72 20 2f 65 74 63 2f 73 73 6c -cadir /etc/ssl
9650: 2f 63 65 72 74 73 5d 0a 0a 23 20 47 65 74 20 66 /certs]..# Get f
9660: 69 6c 65 0a 73 65 74 20 63 68 20 5b 6f 70 65 6e ile.set ch [open
9670: 20 24 66 69 6c 65 6e 61 6d 65 20 77 62 5d 0a 73 $filename wb].s
9680: 65 74 20 74 6f 6b 65 6e 20 5b 3a 3a 68 74 74 70 et token [::http
9690: 3a 3a 67 65 74 75 72 6c 20 24 75 72 6c 20 2d 62 ::geturl $url -b
96a0: 6c 6f 63 6b 73 69 7a 65 20 36 35 35 33 36 20 2d locksize 65536 -
96b0: 63 68 61 6e 6e 65 6c 20 24 63 68 5d 0a 0a 23 20 channel $ch]..#
96c0: 43 6c 65 61 6e 75 70 0a 63 6c 6f 73 65 20 24 63 Cleanup.close $c
96d0: 68 0a 3a 3a 68 74 74 70 3a 3a 63 6c 65 61 6e 75 h.::http::cleanu
96e0: 70 20 24 74 6f 6b 65 6e 0a 3c 2f 63 6f 64 65 3e p $token.</code>
96f0: 3c 2f 70 72 65 3e 0a 3c 62 72 3e 0a 0a 3c 68 72 </pre>.<br>..<hr
9700: 3e 0a 0a 3c 68 33 3e 3c 61 20 6e 61 6d 65 3d 22 >..<h3><a name="
9710: 53 50 45 43 49 41 4c 20 43 4f 4e 53 49 44 45 52 SPECIAL CONSIDER
9720: 41 54 49 4f 4e 53 22 3e 53 50 45 43 49 41 4c 20 ATIONS">SPECIAL
9730: 43 4f 4e 53 49 44 45 52 41 54 49 4f 4e 53 3c 2f CONSIDERATIONS</
9740: 61 3e 3c 2f 68 33 3e 0a 0a 3c 70 3e 54 68 65 20 a></h3>..<p>The
9750: 63 61 70 61 62 69 6c 69 74 69 65 73 20 6f 66 20 capabilities of
9760: 74 68 69 73 20 70 61 63 6b 61 67 65 20 63 61 6e this package can
9770: 20 76 61 72 79 20 65 6e 6f 72 6d 6f 75 73 6c 79 vary enormously
9780: 20 62 61 73 65 64 20 75 70 6f 6e 20 68 6f 77 20 based upon how
9790: 74 68 65 0a 6c 69 6e 6b 65 64 20 74 6f 20 4f 70 the.linked to Op
97a0: 65 6e 53 53 4c 20 6c 69 62 72 61 72 79 20 77 61 enSSL library wa
97b0: 73 20 63 6f 6e 66 69 67 75 72 65 64 20 61 6e 64 s configured and
97c0: 20 62 75 69 6c 74 2e 20 4e 65 77 20 76 65 72 73 built. New vers
97d0: 69 6f 6e 73 20 6d 61 79 20 6f 62 73 6f 6c 65 74 ions may obsolet
97e0: 65 0a 6f 6c 64 65 72 20 70 72 6f 74 6f 63 6f 6c e.older protocol
97f0: 20 76 65 72 73 69 6f 6e 73 2c 20 61 64 64 20 6f versions, add o
9800: 72 20 72 65 6d 6f 76 65 20 63 69 70 68 65 72 73 r remove ciphers
9810: 2c 20 63 68 61 6e 67 65 20 64 65 66 61 75 6c 74 , change default
9820: 20 76 61 6c 75 65 73 2c 20 65 74 63 2e 0a 55 73 values, etc..Us
9830: 65 20 74 68 65 20 3c 73 74 72 6f 6e 67 3e 74 6c e the <strong>tl
9840: 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 3c 2f 73 74 s::protocols</st
9850: 72 6f 6e 67 3e 20 63 6f 6d 6d 61 6e 64 73 20 74 rong> commands t
9860: 6f 20 6f 62 74 61 69 6e 20 74 68 65 20 73 75 70 o obtain the sup
9870: 70 6f 72 74 65 64 0a 70 72 6f 74 6f 63 6f 6c 20 ported.protocol
9880: 76 65 72 73 69 6f 6e 73 2e 3c 2f 70 3e 0a 0a 3c versions.</p>..<
9890: 68 72 3e 0a 0a 3c 68 33 3e 3c 61 20 6e 61 6d 65 hr>..<h3><a name
98a0: 3d 22 53 45 45 20 41 4c 53 4f 22 3e 53 45 45 20 ="SEE ALSO">SEE
98b0: 41 4c 53 4f 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 3c ALSO</a></h3>..<
98c0: 70 3e 3c 73 74 72 6f 6e 67 3e 73 6f 63 6b 65 74 p><strong>socket
98d0: 3c 2f 73 74 72 6f 6e 67 3e 2c 20 3c 73 74 72 6f </strong>, <stro
98e0: 6e 67 3e 66 69 6c 65 65 76 65 6e 74 3c 2f 73 74 ng>fileevent</st
98f0: 72 6f 6e 67 3e 2c 20 3c 73 74 72 6f 6e 67 3e 68 rong>, <strong>h
9900: 74 74 70 3c 2f 73 74 72 6f 6e 67 3e 2c 0a 3c 61 ttp</strong>,.<a
9910: 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 77 href="https://w
9920: 77 77 2e 6f 70 65 6e 73 73 6c 2e 6f 72 67 2f 22 ww.openssl.org/"
9930: 3e 3c 73 74 72 6f 6e 67 3e 4f 70 65 6e 53 53 4c ><strong>OpenSSL
9940: 3c 2f 73 74 72 6f 6e 67 3e 3c 2f 61 3e 3c 2f 70 </strong></a></p
9950: 3e 0a 0a 3c 68 72 3e 0a 0a 3c 70 72 65 3e 0a 43 >..<hr>..<pre>.C
9960: 6f 70 79 72 69 67 68 74 20 26 63 6f 70 79 3b 20 opyright ©
9970: 31 39 39 39 20 4d 61 74 74 20 4e 65 77 6d 61 6e 1999 Matt Newman
9980: 2e 0a 43 6f 70 79 72 69 67 68 74 20 26 63 6f 70 ..Copyright &cop
9990: 79 3b 20 32 30 30 34 20 53 74 61 72 66 69 73 68 y; 2004 Starfish
99a0: 20 53 79 73 74 65 6d 73 2e 0a 43 6f 70 79 72 69 Systems..Copyri
99b0: 67 68 74 20 26 63 6f 70 79 3b 20 32 30 32 33 20 ght © 2023
99c0: 42 72 69 61 6e 20 4f 27 48 61 67 61 6e 2e 0a 3c Brian O'Hagan..<
99d0: 2f 70 72 65 3e 0a 3c 2f 62 6f 64 79 3e 0a 3c 2f /pre>.</body>.</
99e0: 68 74 6d 6c 3e 0a html>.