0000: 3c 21 64 6f 63 74 79 70 65 20 68 74 6d 6c 20 70 <!doctype html p
0010: 75 62 6c 69 63 20 22 2d 2f 2f 57 33 43 2f 2f 44 ublic "-//W3C//D
0020: 54 44 20 48 54 4d 4c 20 34 2e 30 20 54 72 61 6e TD HTML 4.0 Tran
0030: 73 69 74 69 6f 6e 61 6c 2f 2f 45 4e 22 3e 0a 0a sitional//EN">..
0040: 3c 68 74 6d 6c 3e 0a 0a 3c 68 65 61 64 3e 0a 3c <html>..<head>.<
0050: 6d 65 74 61 20 68 74 74 70 2d 65 71 75 69 76 3d meta http-equiv=
0060: 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 22 0a 63 "Content-Type".c
0070: 6f 6e 74 65 6e 74 3d 22 74 65 78 74 2f 68 74 6d ontent="text/htm
0080: 6c 3b 20 63 68 61 72 73 65 74 3d 69 73 6f 2d 38 l; charset=iso-8
0090: 38 35 39 2d 31 22 3e 0a 3c 6d 65 74 61 20 6e 61 859-1">.<meta na
00a0: 6d 65 3d 22 43 6f 70 79 72 69 67 68 74 22 20 63 me="Copyright" c
00b0: 6f 6e 74 65 6e 74 3d 22 31 39 39 39 20 4d 61 74 ontent="1999 Mat
00c0: 74 20 4e 65 77 6d 61 6e 20 2f 20 32 30 30 34 20 t Newman / 2004
00d0: 53 74 61 72 66 69 73 68 20 53 79 73 74 65 6d 73 Starfish Systems
00e0: 22 3e 0a 3c 74 69 74 6c 65 3e 54 4c 53 20 28 53 ">.<title>TLS (S
00f0: 53 4c 29 20 54 63 6c 20 43 6f 6d 6d 61 6e 64 73 SL) Tcl Commands
0100: 3c 2f 74 69 74 6c 65 3e 0a 3c 2f 68 65 61 64 3e </title>.</head>
0110: 0a 0a 3c 62 6f 64 79 20 62 67 63 6f 6c 6f 72 3d ..<body bgcolor=
0120: 22 23 46 46 46 46 46 46 22 3e 0a 0a 3c 64 6c 3e "#FFFFFF">..<dl>
0130: 0a 20 20 20 20 3c 64 64 3e 3c 61 20 68 72 65 66 . <dd><a href
0140: 3d 22 23 4e 41 4d 45 22 3e 4e 41 4d 45 3c 2f 61 ="#NAME">NAME</a
0150: 3e 0a 20 20 20 20 3c 64 6c 3e 0a 09 3c 64 64 3e >. <dl>..<dd>
0160: 3c 62 3e 74 6c 73 3c 2f 62 3e 20 2d 20 62 69 6e <b>tls</b> - bin
0170: 64 69 6e 67 20 74 6f 20 3c 62 3e 4f 70 65 6e 53 ding to <b>OpenS
0180: 53 4c 3c 2f 62 3e 20 74 6f 6f 6c 6b 69 74 2e 3c SL</b> toolkit.<
0190: 2f 64 64 3e 0a 20 20 20 20 3c 2f 64 6c 3e 0a 20 /dd>. </dl>.
01a0: 20 20 20 3c 2f 64 64 3e 0a 20 20 20 20 3c 64 64 </dd>. <dd
01b0: 3e 3c 61 20 68 72 65 66 3d 22 23 53 59 4e 4f 50 ><a href="#SYNOP
01c0: 53 49 53 22 3e 53 59 4e 4f 50 53 49 53 3c 2f 61 SIS">SYNOPSIS</a
01d0: 3e 20 3c 2f 64 64 3e 0a 20 20 20 20 3c 64 64 3e > </dd>. <dd>
01e0: 3c 64 6c 3e 0a 09 20 20 20 20 3c 64 64 3e 3c 62 <dl>.. <dd><b
01f0: 3e 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 >package require
0200: 20 54 63 6c 3c 2f 62 3e 20 3c 65 6d 3e 3f 38 2e Tcl</b> <em>?8.
0210: 34 3f 3c 2f 65 6d 3e 3c 2f 64 64 3e 0a 09 20 20 4?</em></dd>..
0220: 20 20 3c 64 64 3e 3c 62 3e 70 61 63 6b 61 67 65 <dd><b>package
0230: 20 72 65 71 75 69 72 65 20 74 6c 73 3c 2f 62 3e require tls</b>
0240: 3c 2f 64 64 3e 0a 09 20 20 20 20 3c 64 74 3e 26 </dd>.. <dt>&
0250: 6e 62 73 70 3b 3c 2f 64 74 3e 0a 09 20 20 20 20 nbsp;</dt>..
0260: 3c 64 64 3e 3c 62 3e 74 6c 73 3a 3a 69 6e 69 74 <dd><b>tls::init
0270: 3c 2f 62 3e 20 3c 65 6d 3e 3f 6f 70 74 69 6f 6e </b> <em>?option
0280: 73 3f 3c 2f 65 6d 3e 20 3c 2f 64 64 3e 0a 09 20 s?</em> </dd>..
0290: 20 20 20 3c 64 64 3e 3c 62 3e 74 6c 73 3a 3a 73 <dd><b>tls::s
02a0: 6f 63 6b 65 74 3c 2f 62 3e 20 3c 65 6d 3e 3f 6f ocket</b> <em>?o
02b0: 70 74 69 6f 6e 73 3f 20 68 6f 73 74 20 70 6f 72 ptions? host por
02c0: 74 3c 2f 65 6d 3e 3c 2f 64 64 3e 0a 09 20 20 20 t</em></dd>..
02d0: 20 3c 64 64 3e 3c 62 3e 74 6c 73 3a 3a 73 6f 63 <dd><b>tls::soc
02e0: 6b 65 74 3c 2f 62 3e 20 3c 65 6d 3e 20 3f 2d 73 ket</b> <em> ?-s
02f0: 65 72 76 65 72 20 63 6f 6d 6d 61 6e 64 3f 20 3f erver command? ?
0300: 6f 70 74 69 6f 6e 73 3f 20 70 6f 72 74 3c 2f 65 options? port</e
0310: 6d 3e 3c 2f 64 64 3e 0a 09 20 20 20 20 3c 64 64 m></dd>.. <dd
0320: 3e 3c 62 3e 74 6c 73 3a 3a 68 61 6e 64 73 68 61 ><b>tls::handsha
0330: 6b 65 3c 2f 62 3e 20 3c 65 6d 3e 20 63 68 61 6e ke</b> <em> chan
0340: 6e 65 6c 3c 2f 65 6d 3e 3c 2f 64 64 3e 0a 09 20 nel</em></dd>..
0350: 20 20 20 3c 64 64 3e 3c 62 3e 74 6c 73 3a 3a 73 <dd><b>tls::s
0360: 74 61 74 75 73 20 3c 2f 62 3e 20 3c 65 6d 3e 3f tatus </b> <em>?
0370: 2d 6c 6f 63 61 6c 3f 20 63 68 61 6e 6e 65 6c 3c -local? channel<
0380: 2f 65 6d 3e 3c 2f 64 64 3e 0a 09 20 20 20 20 3c /em></dd>.. <
0390: 64 64 3e 3c 62 3e 74 6c 73 3a 3a 63 6f 6e 6e 65 dd><b>tls::conne
03a0: 63 74 69 6f 6e 20 3c 2f 62 3e 20 3c 65 6d 3e 63 ction </b> <em>c
03b0: 68 61 6e 6e 65 6c 3c 2f 65 6d 3e 3c 2f 64 64 3e hannel</em></dd>
03c0: 0a 09 20 20 20 20 3c 64 64 3e 3c 62 3e 74 6c 73 .. <dd><b>tls
03d0: 3a 3a 69 6d 70 6f 72 74 3c 2f 62 3e 20 3c 65 6d ::import</b> <em
03e0: 3e 63 68 61 6e 6e 65 6c 20 3f 6f 70 74 69 6f 6e >channel ?option
03f0: 73 3f 3c 2f 65 6d 3e 3c 2f 64 64 3e 0a 09 20 20 s?</em></dd>..
0400: 20 20 3c 64 64 3e 3c 62 3e 74 6c 73 3a 3a 75 6e <dd><b>tls::un
0410: 69 6d 70 6f 72 74 3c 2f 62 3e 20 3c 65 6d 3e 63 import</b> <em>c
0420: 68 61 6e 6e 65 6c 3c 2f 65 6d 3e 3c 2f 64 64 3e hannel</em></dd>
0430: 0a 09 20 20 20 20 3c 64 74 3e 26 6e 62 73 70 3b .. <dt>
0440: 3c 2f 64 74 3e 0a 09 20 20 20 20 3c 64 64 3e 3c </dt>.. <dd><
0450: 62 3e 74 6c 73 3a 3a 63 69 70 68 65 72 73 3c 2f b>tls::ciphers</
0460: 62 3e 20 3c 65 6d 3e 3f 70 72 6f 74 6f 63 6f 6c b> <em>?protocol
0470: 3f 20 3f 76 65 72 62 6f 73 65 3f 20 3f 73 75 70 ? ?verbose? ?sup
0480: 70 6f 72 74 65 64 3f 3c 2f 65 6d 3e 3c 2f 64 64 ported?</em></dd
0490: 3e 0a 09 20 20 20 20 3c 64 64 3e 3c 62 3e 74 6c >.. <dd><b>tl
04a0: 73 3a 3a 64 69 67 65 73 74 73 3c 2f 62 3e 3c 2f s::digests</b></
04b0: 64 64 3e 0a 09 20 20 20 20 3c 64 64 3e 3c 62 3e dd>.. <dd><b>
04c0: 74 6c 73 3a 3a 6d 61 63 73 3c 2f 62 3e 3c 2f 64 tls::macs</b></d
04d0: 64 3e 0a 09 20 20 20 20 3c 64 64 3e 3c 62 3e 74 d>.. <dd><b>t
04e0: 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 3c 2f 62 ls::protocols</b
04f0: 3e 3c 2f 64 64 3e 0a 09 20 20 20 20 3c 64 64 3e ></dd>.. <dd>
0500: 3c 62 3e 74 6c 73 3a 3a 76 65 72 73 69 6f 6e 3c <b>tls::version<
0510: 2f 62 3e 3c 2f 64 64 3e 0a 09 20 20 20 20 3c 64 /b></dd>.. <d
0520: 74 3e 26 6e 62 73 70 3b 3c 2f 64 74 3e 0a 09 20 t> </dt>..
0530: 20 20 20 3c 64 64 3e 3c 62 3e 74 6c 73 3a 3a 64 <dd><b>tls::d
0540: 69 67 65 73 74 3c 2f 62 3e 20 3c 65 6d 3e 74 79 igest</b> <em>ty
0550: 70 65 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 3f pe ?-bin|-hex? ?
0560: 2d 6b 65 79 20 68 6d 61 63 5f 6b 65 79 3f 20 5b -key hmac_key? [
0570: 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c -file filename |
0580: 20 2d 63 68 61 6e 20 63 68 61 6e 6e 65 6c 20 7c -chan channel |
0590: 20 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d 3c 2f ?-data? data]</
05a0: 65 6d 3e 3c 2f 64 64 3e 0a 09 20 20 20 20 3c 64 em></dd>.. <d
05b0: 64 3e 3c 62 3e 74 6c 73 3a 3a 6d 64 34 3c 2f 62 d><b>tls::md4</b
05c0: 3e 20 3c 65 6d 3e 64 61 74 61 3c 2f 65 6d 3e 3c > <em>data</em><
05d0: 2f 64 64 3e 0a 09 20 20 20 20 3c 64 64 3e 3c 62 /dd>.. <dd><b
05e0: 3e 74 6c 73 3a 3a 6d 64 35 3c 2f 62 3e 20 3c 65 >tls::md5</b> <e
05f0: 6d 3e 64 61 74 61 3c 2f 65 6d 3e 3c 2f 64 64 3e m>data</em></dd>
0600: 0a 09 20 20 20 20 3c 64 64 3e 3c 62 3e 74 6c 73 .. <dd><b>tls
0610: 3a 3a 73 68 61 31 3c 2f 62 3e 20 3c 65 6d 3e 64 ::sha1</b> <em>d
0620: 61 74 61 3c 2f 65 6d 3e 3c 2f 64 64 3e 0a 09 20 ata</em></dd>..
0630: 20 20 20 3c 64 64 3e 3c 62 3e 74 6c 73 3a 3a 73 <dd><b>tls::s
0640: 68 61 32 35 36 3c 2f 62 3e 20 3c 65 6d 3e 64 61 ha256</b> <em>da
0650: 74 61 3c 2f 65 6d 3e 3c 2f 64 64 3e 0a 09 3c 2f ta</em></dd>..</
0660: 64 6c 3e 0a 20 20 20 20 3c 2f 64 64 3e 0a 20 20 dl>. </dd>.
0670: 20 20 3c 64 64 3e 3c 61 20 68 72 65 66 3d 22 23 <dd><a href="#
0680: 43 4f 4d 4d 41 4e 44 53 22 3e 43 4f 4d 4d 41 4e COMMANDS">COMMAN
0690: 44 53 3c 2f 61 3e 3c 2f 64 64 3e 0a 20 20 20 20 DS</a></dd>.
06a0: 3c 64 64 3e 3c 61 20 68 72 65 66 3d 22 23 43 41 <dd><a href="#CA
06b0: 4c 4c 42 41 43 4b 20 4f 50 54 49 4f 4e 53 22 3e LLBACK OPTIONS">
06c0: 43 41 4c 4c 42 41 43 4b 20 4f 50 54 49 4f 4e 53 CALLBACK OPTIONS
06d0: 3c 2f 61 3e 3c 2f 64 64 3e 0a 20 20 20 20 3c 64 </a></dd>. <d
06e0: 64 3e 3c 61 20 68 72 65 66 3d 22 23 48 54 54 50 d><a href="#HTTP
06f0: 53 20 45 58 41 4d 50 4c 45 22 3e 48 54 54 50 53 S EXAMPLE">HTTPS
0700: 20 45 58 41 4d 50 4c 45 3c 2f 61 3e 3c 2f 64 64 EXAMPLE</a></dd
0710: 3e 0a 20 20 20 20 3c 64 64 3e 3c 61 20 68 72 65 >. <dd><a hre
0720: 66 3d 22 23 53 45 45 20 41 4c 53 4f 22 3e 53 50 f="#SEE ALSO">SP
0730: 45 43 49 41 4c 20 43 4f 4e 53 49 44 45 52 41 54 ECIAL CONSIDERAT
0740: 49 4f 4e 53 3c 2f 61 3e 3c 2f 64 64 3e 0a 20 20 IONS</a></dd>.
0750: 20 20 3c 64 64 3e 3c 61 20 68 72 65 66 3d 22 23 <dd><a href="#
0760: 53 45 45 20 41 4c 53 4f 22 3e 53 45 45 20 41 4c SEE ALSO">SEE AL
0770: 53 4f 3c 2f 61 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c SO</a></dd>.</dl
0780: 3e 0a 0a 3c 68 72 3e 0a 0a 3c 68 33 3e 3c 61 20 >..<hr>..<h3><a
0790: 6e 61 6d 65 3d 22 4e 41 4d 45 22 3e 4e 41 4d 45 name="NAME">NAME
07a0: 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 3c 70 3e 3c 73 </a></h3>..<p><s
07b0: 74 72 6f 6e 67 3e 74 6c 73 3c 2f 73 74 72 6f 6e trong>tls</stron
07c0: 67 3e 20 2d 20 62 69 6e 64 69 6e 67 20 74 6f 20 g> - binding to
07d0: 3c 73 74 72 6f 6e 67 3e 4f 70 65 6e 53 53 4c 3c <strong>OpenSSL<
07e0: 2f 73 74 72 6f 6e 67 3e 0a 74 6f 6f 6c 6b 69 74 /strong>.toolkit
07f0: 2e 3c 2f 70 3e 0a 0a 3c 68 33 3e 3c 61 20 6e 61 .</p>..<h3><a na
0800: 6d 65 3d 22 53 59 4e 4f 50 53 49 53 22 3e 53 59 me="SYNOPSIS">SY
0810: 4e 4f 50 53 49 53 3c 2f 61 3e 3c 2f 68 33 3e 0a NOPSIS</a></h3>.
0820: 0a 3c 70 3e 3c 62 3e 70 61 63 6b 61 67 65 20 72 .<p><b>package r
0830: 65 71 75 69 72 65 20 54 63 6c 20 38 2e 35 3c 2f equire Tcl 8.5</
0840: 62 3e 3c 62 72 3e 0a 3c 62 3e 70 61 63 6b 61 67 b><br>.<b>packag
0850: 65 20 72 65 71 75 69 72 65 20 74 6c 73 3c 2f 62 e require tls</b
0860: 3e 3c 62 72 3e 0a 3c 62 72 3e 0a 3c 61 20 68 72 ><br>.<br>.<a hr
0870: 65 66 3d 22 23 74 6c 73 3a 3a 69 6e 69 74 22 3e ef="#tls::init">
0880: 3c 62 3e 74 6c 73 3a 3a 69 6e 69 74 3c 2f 62 3e <b>tls::init</b>
0890: 20 3c 69 3e 3f 6f 70 74 69 6f 6e 73 3f 3c 2f 69 <i>?options?</i
08a0: 3e 3c 2f 61 3e 3c 62 72 3e 0a 3c 61 20 68 72 65 ></a><br>.<a hre
08b0: 66 3d 22 23 74 6c 73 3a 3a 73 6f 63 6b 65 74 22 f="#tls::socket"
08c0: 3e 3c 62 3e 74 6c 73 3a 3a 73 6f 63 6b 65 74 3c ><b>tls::socket<
08d0: 2f 62 3e 20 3c 69 3e 3f 6f 70 74 69 6f 6e 73 3f /b> <i>?options?
08e0: 20 68 6f 73 74 20 70 6f 72 74 3c 2f 69 3e 3c 62 host port</i><b
08f0: 72 3e 0a 3c 61 20 68 72 65 66 3d 22 23 74 6c 73 r>.<a href="#tls
0900: 3a 3a 73 6f 63 6b 65 74 22 3e 3c 62 3e 74 6c 73 ::socket"><b>tls
0910: 3a 3a 73 6f 63 6b 65 74 3c 2f 62 3e 20 3c 69 3e ::socket</b> <i>
0920: 3f 2d 73 65 72 76 65 72 20 63 6f 6d 6d 61 6e 64 ?-server command
0930: 3f 20 3f 6f 70 74 69 6f 6e 73 3f 20 70 6f 72 74 ? ?options? port
0940: 3c 2f 69 3e 3c 2f 61 3e 3c 62 72 3e 0a 3c 61 20 </i></a><br>.<a
0950: 68 72 65 66 3d 22 23 74 6c 73 3a 3a 73 74 61 74 href="#tls::stat
0960: 75 73 22 3e 3c 62 3e 74 6c 73 3a 3a 73 74 61 74 us"><b>tls::stat
0970: 75 73 3c 2f 62 3e 20 3c 69 3e 3f 2d 6c 6f 63 61 us</b> <i>?-loca
0980: 6c 3f 20 63 68 61 6e 6e 65 6c 3c 2f 69 3e 3c 2f l? channel</i></
0990: 61 3e 3c 62 72 3e 0a 3c 61 20 68 72 65 66 3d 22 a><br>.<a href="
09a0: 23 74 6c 73 3a 3a 63 6f 6e 6e 65 63 74 69 6f 6e #tls::connection
09b0: 22 3e 3c 62 3e 74 6c 73 3a 3a 63 6f 6e 6e 65 63 "><b>tls::connec
09c0: 74 69 6f 6e 3c 2f 62 3e 20 3c 69 3e 63 68 61 6e tion</b> <i>chan
09d0: 6e 65 6c 3c 2f 69 3e 3c 2f 61 3e 3c 62 72 3e 0a nel</i></a><br>.
09e0: 3c 61 20 68 72 65 66 3d 22 23 74 6c 73 3a 3a 68 <a href="#tls::h
09f0: 61 6e 64 73 68 61 6b 65 22 3e 3c 62 3e 74 6c 73 andshake"><b>tls
0a00: 3a 3a 68 61 6e 64 73 68 61 6b 65 3c 2f 62 3e 20 ::handshake</b>
0a10: 3c 69 3e 63 68 61 6e 6e 65 6c 3c 2f 69 3e 3c 2f <i>channel</i></
0a20: 61 3e 3c 62 72 3e 0a 3c 61 20 68 72 65 66 3d 22 a><br>.<a href="
0a30: 23 74 6c 73 3a 3a 69 6d 70 6f 72 74 22 3e 3c 62 #tls::import"><b
0a40: 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c 2f 62 3e >tls::import</b>
0a50: 20 3c 69 3e 63 68 61 6e 6e 65 6c 20 3f 6f 70 74 <i>channel ?opt
0a60: 69 6f 6e 73 3f 3c 2f 69 3e 3c 2f 61 3e 3c 62 72 ions?</i></a><br
0a70: 3e 0a 3c 61 20 68 72 65 66 3d 22 23 74 6c 73 3a >.<a href="#tls:
0a80: 3a 75 6e 69 6d 70 6f 72 74 22 3e 3c 62 3e 74 6c :unimport"><b>tl
0a90: 73 3a 3a 75 6e 69 6d 70 6f 72 74 3c 2f 62 3e 20 s::unimport</b>
0aa0: 3c 69 3e 63 68 61 6e 6e 65 6c 3c 2f 69 3e 3c 2f <i>channel</i></
0ab0: 61 3e 3c 62 72 3e 0a 3c 62 72 3e 0a 3c 61 20 68 a><br>.<br>.<a h
0ac0: 72 65 66 3d 22 23 74 6c 73 3a 3a 63 69 70 68 65 ref="#tls::ciphe
0ad0: 72 73 22 3e 3c 62 3e 74 6c 73 3a 3a 63 69 70 68 rs"><b>tls::ciph
0ae0: 65 72 73 3c 2f 62 3e 20 3c 69 3e 3f 70 72 6f 74 ers</b> <i>?prot
0af0: 6f 63 6f 6c 3f 20 3f 76 65 72 62 6f 73 65 3f 20 ocol? ?verbose?
0b00: 3f 73 75 70 70 6f 72 74 65 64 3f 3c 2f 69 3e 3c ?supported?</i><
0b10: 2f 61 3e 3c 62 72 3e 0a 3c 61 20 68 72 65 66 3d /a><br>.<a href=
0b20: 22 23 74 6c 73 3a 3a 64 69 67 65 73 74 73 22 3e "#tls::digests">
0b30: 3c 62 3e 74 6c 73 3a 3a 64 69 67 65 73 74 73 3c <b>tls::digests<
0b40: 2f 62 3e 3c 2f 61 3e 3c 62 72 3e 0a 3c 61 20 68 /b></a><br>.<a h
0b50: 72 65 66 3d 22 23 74 6c 73 3a 3a 6d 61 63 73 22 ref="#tls::macs"
0b60: 3e 3c 62 3e 74 6c 73 3a 3a 6d 61 63 73 3c 2f 62 ><b>tls::macs</b
0b70: 3e 3c 2f 61 3e 3c 62 72 3e 0a 3c 61 20 68 72 65 ></a><br>.<a hre
0b80: 66 3d 22 23 74 6c 73 3a 3a 70 72 6f 74 6f 63 6f f="#tls::protoco
0b90: 6c 73 22 3e 3c 62 3e 74 6c 73 3a 3a 70 72 6f 74 ls"><b>tls::prot
0ba0: 6f 63 6f 6c 73 3c 2f 62 3e 3c 2f 61 3e 3c 62 72 ocols</b></a><br
0bb0: 3e 0a 3c 61 20 68 72 65 66 3d 22 23 74 6c 73 3a >.<a href="#tls:
0bc0: 3a 76 65 72 73 69 6f 6e 22 3e 3c 62 3e 74 6c 73 :version"><b>tls
0bd0: 3a 3a 76 65 72 73 69 6f 6e 3c 2f 62 3e 3c 2f 61 ::version</b></a
0be0: 3e 3c 62 72 3e 0a 3c 62 72 3e 0a 3c 61 20 68 72 ><br>.<br>.<a hr
0bf0: 65 66 3d 22 23 74 6c 73 3a 3a 64 69 67 65 73 74 ef="#tls::digest
0c00: 22 3e 3c 62 3e 74 6c 73 3a 3a 64 69 67 65 73 74 "><b>tls::digest
0c10: 3c 2f 62 3e 20 3c 69 3e 74 79 70 65 20 3f 2d 62 </b> <i>type ?-b
0c20: 69 6e 7c 2d 68 65 78 3f 20 3f 2d 6b 65 79 20 68 in|-hex? ?-key h
0c30: 6d 61 63 5f 6b 65 79 3f 20 5b 2d 66 69 6c 65 20 mac_key? [-file
0c40: 66 69 6c 65 6e 61 6d 65 20 7c 20 2d 63 68 61 6e filename | -chan
0c50: 20 63 68 61 6e 6e 65 6c 20 7c 20 3f 2d 64 61 74 channel | ?-dat
0c60: 61 3f 20 64 61 74 61 5d 3c 2f 69 3e 3c 2f 61 3e a? data]</i></a>
0c70: 3c 62 72 3e 0a 3c 61 20 68 72 65 66 3d 22 23 74 <br>.<a href="#t
0c80: 6c 73 3a 3a 6d 64 34 22 3e 3c 62 3e 74 6c 73 3a ls::md4"><b>tls:
0c90: 3a 6d 64 34 3c 2f 62 3e 20 3c 69 3e 64 61 74 61 :md4</b> <i>data
0ca0: 3c 2f 69 3e 3c 2f 61 3e 3c 62 72 3e 0a 3c 61 20 </i></a><br>.<a
0cb0: 68 72 65 66 3d 22 23 74 6c 73 3a 3a 6d 64 35 22 href="#tls::md5"
0cc0: 3e 3c 62 3e 74 6c 73 3a 3a 6d 64 35 3c 2f 62 3e ><b>tls::md5</b>
0cd0: 20 3c 69 3e 64 61 74 61 3c 2f 69 3e 3c 2f 61 3e <i>data</i></a>
0ce0: 3c 62 72 3e 0a 3c 61 20 68 72 65 66 3d 22 23 74 <br>.<a href="#t
0cf0: 6c 73 3a 3a 73 68 61 31 22 3e 3c 62 3e 74 6c 73 ls::sha1"><b>tls
0d00: 3a 3a 73 68 61 31 3c 2f 62 3e 20 3c 69 3e 64 61 ::sha1</b> <i>da
0d10: 74 61 3c 2f 69 3e 3c 2f 61 3e 3c 62 72 3e 0a 3c ta</i></a><br>.<
0d20: 61 20 68 72 65 66 3d 22 23 74 6c 73 3a 3a 73 68 a href="#tls::sh
0d30: 61 32 35 36 22 3e 3c 62 3e 74 6c 73 3a 3a 73 68 a256"><b>tls::sh
0d40: 61 32 35 36 3c 2f 62 3e 20 3c 69 3e 64 61 74 61 a256</b> <i>data
0d50: 3c 2f 69 3e 3c 2f 61 3e 3c 62 72 3e 0a 3c 2f 70 </i></a><br>.</p
0d60: 3e 0a 0a 3c 68 33 3e 3c 61 20 6e 61 6d 65 3d 22 >..<h3><a name="
0d70: 44 45 53 43 52 49 50 54 49 4f 4e 22 3e 44 45 53 DESCRIPTION">DES
0d80: 43 52 49 50 54 49 4f 4e 3c 2f 61 3e 3c 2f 68 33 CRIPTION</a></h3
0d90: 3e 0a 0a 3c 70 3e 54 68 69 73 20 65 78 74 65 6e >..<p>This exten
0da0: 73 69 6f 6e 20 70 72 6f 76 69 64 65 73 20 61 20 sion provides a
0db0: 67 65 6e 65 72 69 63 20 62 69 6e 64 69 6e 67 20 generic binding
0dc0: 74 6f 20 3c 61 0a 68 72 65 66 3d 22 68 74 74 70 to <a.href="http
0dd0: 3a 2f 2f 77 77 77 2e 6f 70 65 6e 73 73 6c 2e 6f ://www.openssl.o
0de0: 72 67 2f 22 3e 4f 70 65 6e 53 53 4c 3c 2f 61 3e rg/">OpenSSL</a>
0df0: 2c 20 75 74 69 6c 69 7a 69 6e 67 20 74 68 65 0a , utilizing the.
0e00: 3c 73 74 72 6f 6e 67 3e 54 63 6c 5f 53 74 61 63 <strong>Tcl_Stac
0e10: 6b 43 68 61 6e 6e 65 6c 3c 2f 73 74 72 6f 6e 67 kChannel</strong
0e20: 3e 0a 41 50 49 20 66 6f 72 20 54 63 6c 20 38 2e >.API for Tcl 8.
0e30: 34 20 61 6e 64 20 68 69 67 68 65 72 2e 20 54 68 4 and higher. Th
0e40: 65 20 73 6f 63 6b 65 74 73 20 62 65 68 61 76 65 e sockets behave
0e50: 20 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d exactly the sam
0e60: 65 0a 61 73 20 63 68 61 6e 6e 65 6c 73 20 63 72 e.as channels cr
0e70: 65 61 74 65 64 20 75 73 69 6e 67 20 54 63 6c 27 eated using Tcl'
0e80: 73 20 62 75 69 6c 74 2d 69 6e 20 3c 73 74 72 6f s built-in <stro
0e90: 6e 67 3e 73 6f 63 6b 65 74 3c 2f 73 74 72 6f 6e ng>socket</stron
0ea0: 67 3e 0a 63 6f 6d 6d 61 6e 64 20 77 69 74 68 20 g>.command with
0eb0: 61 64 64 69 74 69 6f 6e 61 6c 20 6f 70 74 69 6f additional optio
0ec0: 6e 73 20 66 6f 72 20 63 6f 6e 74 72 6f 6c 6c 69 ns for controlli
0ed0: 6e 67 20 74 68 65 20 53 53 4c 20 73 65 73 73 69 ng the SSL sessi
0ee0: 6f 6e 2e 0a 3c 2f 70 3e 0a 0a 3c 68 33 3e 3c 61 on..</p>..<h3><a
0ef0: 20 6e 61 6d 65 3d 22 43 4f 4d 4d 41 4e 44 53 22 name="COMMANDS"
0f00: 3e 43 4f 4d 4d 41 4e 44 53 3c 2f 61 3e 3c 2f 68 >COMMANDS</a></h
0f10: 33 3e 0a 0a 3c 70 3e 54 79 70 69 63 61 6c 6c 79 3>..<p>Typically
0f20: 20 6f 6e 65 20 77 6f 75 6c 64 20 75 73 65 20 74 one would use t
0f30: 68 65 20 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a he <strong>tls::
0f40: 73 6f 63 6b 65 74 20 3c 2f 73 74 72 6f 6e 67 3e socket </strong>
0f50: 63 6f 6d 6d 61 6e 64 0a 77 68 69 63 68 20 70 72 command.which pr
0f60: 6f 76 69 64 65 73 20 63 6f 6d 70 61 74 69 62 69 ovides compatibi
0f70: 6c 69 74 79 20 77 69 74 68 20 74 68 65 20 6e 61 lity with the na
0f80: 74 69 76 65 20 54 63 6c 20 3c 73 74 72 6f 6e 67 tive Tcl <strong
0f90: 3e 73 6f 63 6b 65 74 3c 2f 73 74 72 6f 6e 67 3e >socket</strong>
0fa0: 0a 63 6f 6d 6d 61 6e 64 2e 20 49 6e 20 73 75 63 .command. In suc
0fb0: 68 20 63 61 73 65 73 20 3c 73 74 72 6f 6e 67 3e h cases <strong>
0fc0: 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c 2f 73 74 72 tls::import</str
0fd0: 6f 6e 67 3e 20 73 68 6f 75 6c 64 20 6e 6f 74 20 ong> should not
0fe0: 62 65 0a 75 73 65 64 20 64 69 72 65 63 74 6c 79 be.used directly
0ff0: 2e 3c 2f 70 3e 0a 0a 3c 64 6c 3e 0a 20 20 20 20 .</p>..<dl>.
1000: 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 74 6c 73 <dt><a name="tls
1010: 3a 3a 69 6e 69 74 22 3e 3c 62 3e 74 6c 73 3a 3a ::init"><b>tls::
1020: 69 6e 69 74 20 3c 2f 62 3e 3c 69 3e 3f 6f 70 74 init </b><i>?opt
1030: 69 6f 6e 73 3f 3c 2f 69 3e 3c 2f 61 3e 3c 2f 64 ions?</i></a></d
1040: 74 3e 0a 20 20 20 20 3c 64 64 3e 4f 70 74 69 6f t>. <dd>Optio
1050: 6e 61 6c 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 nal function to
1060: 73 65 74 20 74 68 65 20 64 65 66 61 75 6c 74 20 set the default
1070: 6f 70 74 69 6f 6e 73 20 75 73 65 64 20 62 79 0a options used by.
1080: 09 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 73 6f .<strong>tls::so
1090: 63 6b 65 74 3c 2f 73 74 72 6f 6e 67 3e 2e 20 49 cket</strong>. I
10a0: 66 20 79 6f 75 20 63 61 6c 6c 20 3c 73 74 72 6f f you call <stro
10b0: 6e 67 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c 2f ng>tls::import</
10c0: 73 74 72 6f 6e 67 3e 0a 09 64 69 72 65 63 74 6c strong>..directl
10d0: 79 20 74 68 69 73 20 72 6f 75 74 69 6e 65 20 68 y this routine h
10e0: 61 73 20 6e 6f 20 65 66 66 65 63 74 2e 20 41 6e as no effect. An
10f0: 79 20 6f 66 20 74 68 65 20 6f 70 74 69 6f 6e 73 y of the options
1100: 0a 09 74 68 61 74 20 3c 73 74 72 6f 6e 67 3e 74 ..that <strong>t
1110: 6c 73 3a 3a 73 6f 63 6b 65 74 3c 2f 73 74 72 6f ls::socket</stro
1120: 6e 67 3e 20 61 63 63 65 70 74 73 20 63 61 6e 20 ng> accepts can
1130: 62 65 20 73 65 74 0a 09 75 73 69 6e 67 20 74 68 be set..using th
1140: 69 73 20 63 6f 6d 6d 61 6e 64 2c 20 74 68 6f 75 is command, thou
1150: 67 68 20 79 6f 75 20 73 68 6f 75 6c 64 20 6c 69 gh you should li
1160: 6d 69 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 73 mit your options
1170: 0a 09 74 6f 20 6f 6e 6c 79 20 54 4c 53 20 72 65 ..to only TLS re
1180: 6c 61 74 65 64 20 6f 6e 65 73 2e 3c 2f 64 64 3e lated ones.</dd>
1190: 0a 20 20 20 20 3c 64 74 3e 26 6e 62 73 70 3b 3c . <dt> <
11a0: 2f 64 74 3e 0a 20 20 20 20 3c 64 74 3e 3c 61 20 /dt>. <dt><a
11b0: 6e 61 6d 65 3d 22 74 6c 73 3a 3a 73 6f 63 6b 65 name="tls::socke
11c0: 74 22 3e 3c 62 3e 74 6c 73 3a 3a 73 6f 63 6b 65 t"><b>tls::socke
11d0: 74 20 3c 2f 62 3e 3c 65 6d 3e 3f 6f 70 74 69 6f t </b><em>?optio
11e0: 6e 73 3f 0a 09 68 6f 73 74 20 70 6f 72 74 3c 2f ns?..host port</
11f0: 65 6d 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 20 20 20 em></a></dt>.
1200: 20 3c 64 74 3e 3c 62 3e 74 6c 73 3a 3a 73 6f 63 <dt><b>tls::soc
1210: 6b 65 74 3c 2f 62 3e 3c 65 6d 3e 20 3f 2d 73 65 ket</b><em> ?-se
1220: 72 76 65 72 20 63 6f 6d 6d 61 6e 64 3f 20 3f 6f rver command? ?o
1230: 70 74 69 6f 6e 73 3f 20 70 6f 72 74 3c 2f 65 6d ptions? port</em
1240: 3e 3c 2f 64 74 3e 0a 20 20 20 20 3c 64 64 3e 54 ></dt>. <dd>T
1250: 68 69 73 20 69 73 20 61 20 68 65 6c 70 65 72 20 his is a helper
1260: 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 75 74 function that ut
1270: 69 6c 69 7a 65 73 20 74 68 65 20 75 6e 64 65 72 ilizes the under
1280: 6c 79 69 6e 67 0a 09 63 6f 6d 6d 61 6e 64 73 20 lying..commands
1290: 28 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 69 6d (<strong>tls::im
12a0: 70 6f 72 74 3c 2f 73 74 72 6f 6e 67 3e 29 2e 20 port</strong>).
12b0: 49 74 20 62 65 68 61 76 65 73 0a 09 65 78 61 63 It behaves..exac
12c0: 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 tly the same as
12d0: 74 68 65 20 6e 61 74 69 76 65 20 54 63 6c 20 3c the native Tcl <
12e0: 73 74 72 6f 6e 67 3e 73 6f 63 6b 65 74 3c 2f 73 strong>socket</s
12f0: 74 72 6f 6e 67 3e 0a 09 63 6f 6d 6d 61 6e 64 20 trong>..command
1300: 65 78 63 65 70 74 20 74 68 61 74 20 74 68 65 20 except that the
1310: 6f 70 74 69 6f 6e 73 20 63 61 6e 20 69 6e 63 6c options can incl
1320: 75 64 65 20 61 6e 79 20 6f 66 20 74 68 65 0a 09 ude any of the..
1330: 61 70 70 6c 69 63 61 62 6c 65 20 3c 61 20 68 72 applicable <a hr
1340: 65 66 3d 22 23 74 6c 73 3a 3a 69 6d 70 6f 72 74 ef="#tls::import
1350: 22 3e 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 69 6d "><strong>tls:im
1360: 70 6f 72 74 3c 2f 73 74 72 6f 6e 67 3e 3c 2f 61 port</strong></a
1370: 3e 0a 09 6f 70 74 69 6f 6e 73 20 77 69 74 68 20 >..options with
1380: 6f 6e 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f one additional o
1390: 70 74 69 6f 6e 3a 0a 3c 62 6c 6f 63 6b 71 75 6f ption:.<blockquo
13a0: 74 65 3e 0a 20 20 20 20 3c 64 6c 3e 0a 09 3c 64 te>. <dl>..<d
13b0: 74 3e 3c 73 74 72 6f 6e 67 3e 2d 61 75 74 6f 73 t><strong>-autos
13c0: 65 72 76 65 72 6e 61 6d 65 3c 2f 73 74 72 6f 6e ervername</stron
13d0: 67 3e 20 3c 65 6d 3e 62 6f 6f 6c 3c 2f 65 6d 3e g> <em>bool</em>
13e0: 3c 2f 64 74 3e 0a 09 3c 64 64 3e 41 75 74 6f 6d </dt>..<dd>Autom
13f0: 61 74 69 63 61 6c 6c 79 20 73 65 6e 64 20 74 68 atically send th
1400: 65 20 2d 73 65 72 76 65 72 6e 61 6d 65 20 61 73 e -servername as
1410: 20 74 68 65 20 3c 65 6d 3e 68 6f 73 74 3c 2f 65 the <em>host</e
1420: 6d 3e 20 61 72 67 75 6d 65 6e 74 0a 09 20 20 20 m> argument..
1430: 20 28 64 65 66 61 75 6c 74 20 69 73 20 3c 65 6d (default is <em
1440: 3e 66 61 6c 73 65 3c 2f 65 6d 3e 29 3c 2f 64 64 >false</em>)</dd
1450: 3e 0a 20 20 20 20 3c 2f 64 6c 3e 0a 3c 2f 62 6c >. </dl>.</bl
1460: 6f 63 6b 71 75 6f 74 65 3e 0a 0a 20 20 20 20 3c ockquote>.. <
1470: 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 74 6c 73 3a dt><a name="tls:
1480: 3a 69 6d 70 6f 72 74 22 3e 3c 62 3e 74 6c 73 3a :import"><b>tls:
1490: 3a 69 6d 70 6f 72 74 20 3c 2f 62 3e 3c 69 3e 63 :import </b><i>c
14a0: 68 61 6e 6e 65 6c 0a 09 3f 6f 70 74 69 6f 6e 73 hannel..?options
14b0: 3f 3c 2f 69 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 20 ?</i></a></dt>.
14c0: 20 20 20 3c 64 64 3e 53 53 4c 2d 65 6e 61 62 6c <dd>SSL-enabl
14d0: 65 20 61 20 72 65 67 75 6c 61 72 20 54 63 6c 20 e a regular Tcl
14e0: 63 68 61 6e 6e 65 6c 20 2d 20 69 74 20 6e 65 65 channel - it nee
14f0: 64 20 6e 6f 74 20 62 65 20 61 0a 09 73 6f 63 6b d not be a..sock
1500: 65 74 2c 20 62 75 74 20 6d 75 73 74 20 70 72 6f et, but must pro
1510: 76 69 64 65 20 62 69 2d 64 69 72 65 63 74 69 6f vide bi-directio
1520: 6e 61 6c 20 66 6c 6f 77 2e 20 41 6c 73 6f 0a 09 nal flow. Also..
1530: 73 65 74 74 69 6e 67 20 73 65 73 73 69 6f 6e 20 setting session
1540: 70 61 72 61 6d 65 74 65 72 73 20 66 6f 72 20 53 parameters for S
1550: 53 4c 20 68 61 6e 64 73 68 61 6b 65 2e 3c 2f 64 SL handshake.</d
1560: 64 3e 0a 0a 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e d>..<blockquote>
1570: 0a 20 20 20 20 3c 64 6c 3e 0a 09 3c 64 74 3e 3c . <dl>..<dt><
1580: 73 74 72 6f 6e 67 3e 2d 61 6c 70 6e 3c 2f 73 74 strong>-alpn</st
1590: 72 6f 6e 67 3e 20 3c 65 6d 3e 6c 69 73 74 3c 2f rong> <em>list</
15a0: 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 4c 69 em></dt>..<dd>Li
15b0: 73 74 20 6f 66 20 70 72 6f 74 6f 63 6f 6c 73 20 st of protocols
15c0: 74 6f 20 6f 66 66 65 72 20 64 75 72 69 6e 67 20 to offer during
15d0: 41 70 70 6c 69 63 61 74 69 6f 6e 2d 4c 61 79 65 Application-Laye
15e0: 72 0a 09 20 20 20 20 50 72 6f 74 6f 63 6f 6c 20 r.. Protocol
15f0: 4e 65 67 6f 74 69 61 74 69 6f 6e 20 28 41 4c 50 Negotiation (ALP
1600: 4e 29 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a N). For example:
1610: 20 3c 65 6d 3e 68 32 3c 2f 65 6d 3e 20 61 6e 64 <em>h2</em> and
1620: 0a 09 20 20 20 20 3c 65 6d 3e 68 74 74 70 2f 31 .. <em>http/1
1630: 2e 31 3c 2f 65 6d 3e 2c 20 62 75 74 20 6e 6f 74 .1</em>, but not
1640: 20 3c 65 6d 3e 68 33 3c 2f 65 6d 3e 20 6f 72 20 <em>h3</em> or
1650: 3c 65 6d 3e 71 75 69 63 3c 2f 65 6d 3e 2e 3c 2f <em>quic</em>.</
1660: 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 dd>..<dt><strong
1670: 3e 2d 63 61 64 69 72 3c 2f 73 74 72 6f 6e 67 3e >-cadir</strong>
1680: 20 3c 65 6d 3e 64 69 72 3c 2f 65 6d 3e 3c 2f 64 <em>dir</em></d
1690: 74 3e 0a 09 3c 64 64 3e 53 65 74 20 74 68 65 20 t>..<dd>Set the
16a0: 43 41 20 63 65 72 74 69 66 69 63 61 74 65 73 20 CA certificates
16b0: 70 61 74 68 2e 20 54 68 65 20 64 65 66 61 75 6c path. The defaul
16c0: 74 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 70 t directory is p
16d0: 6c 61 74 66 6f 72 6d 0a 09 20 20 20 20 73 70 65 latform.. spe
16e0: 63 69 66 69 63 20 61 6e 64 20 63 61 6e 20 62 65 cific and can be
16f0: 20 73 65 74 20 61 74 20 63 6f 6d 70 69 6c 65 20 set at compile
1700: 74 69 6d 65 2e 20 54 68 69 73 20 63 61 6e 20 62 time. This can b
1710: 65 20 6f 76 65 72 72 69 64 64 65 6e 0a 09 20 20 e overridden..
1720: 20 20 76 69 61 20 74 68 65 20 3c 62 3e 53 53 4c via the <b>SSL
1730: 5f 43 45 52 54 5f 44 49 52 3c 2f 62 3e 20 65 6e _CERT_DIR</b> en
1740: 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 vironment variab
1750: 6c 65 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 le.</dd>..<dt><s
1760: 74 72 6f 6e 67 3e 2d 63 61 66 69 6c 65 20 3c 2f trong>-cafile </
1770: 73 74 72 6f 6e 67 3e 3c 65 6d 3e 66 69 6c 65 6e strong><em>filen
1780: 61 6d 65 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c ame</em></dt>..<
1790: 64 64 3e 53 65 74 20 74 68 65 20 63 65 72 74 69 dd>Set the certi
17a0: 66 69 63 61 74 65 20 61 75 74 68 6f 72 69 74 79 ficate authority
17b0: 20 28 43 41 29 20 63 65 72 74 69 66 69 63 61 74 (CA) certificat
17c0: 65 73 20 66 69 6c 65 2e 20 54 68 65 20 64 65 66 es file. The def
17d0: 61 75 6c 74 0a 09 20 20 20 20 69 73 20 74 68 65 ault.. is the
17e0: 20 63 65 72 74 2e 70 65 6d 20 66 69 6c 65 20 69 cert.pem file i
17f0: 6e 20 74 68 65 20 4f 70 73 6e 53 53 4c 20 64 69 n the OpsnSSL di
1800: 72 65 63 74 6f 72 79 2e 20 54 68 69 73 20 63 61 rectory. This ca
1810: 6e 20 61 6c 73 6f 20 62 65 0a 09 20 20 20 20 6f n also be.. o
1820: 76 65 72 72 69 64 64 65 6e 20 76 69 61 20 74 68 verridden via th
1830: 65 20 3c 62 3e 53 53 4c 5f 43 45 52 54 5f 46 49 e <b>SSL_CERT_FI
1840: 4c 45 3c 2f 62 3e 20 65 6e 76 69 72 6f 6e 6d 65 LE</b> environme
1850: 6e 74 20 76 61 72 69 61 62 6c 65 2e 3c 2f 64 64 nt variable.</dd
1860: 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d >..<dt><strong>-
1870: 63 65 72 74 66 69 6c 65 3c 2f 73 74 72 6f 6e 67 certfile</strong
1880: 3e 20 3c 65 6d 3e 66 69 6c 65 6e 61 6d 65 3c 2f > <em>filename</
1890: 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 53 70 em></dt>..<dd>Sp
18a0: 65 63 69 66 79 20 74 68 65 20 66 69 6c 65 6e 61 ecify the filena
18b0: 6d 65 20 77 69 74 68 20 74 68 65 20 63 65 72 74 me with the cert
18c0: 69 66 69 63 61 74 65 20 74 6f 20 75 73 65 2e 3c ificate to use.<
18d0: 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e /dd>..<dt><stron
18e0: 67 3e 2d 63 65 72 74 3c 2f 73 74 72 6f 6e 67 3e g>-cert</strong>
18f0: 20 3c 65 6d 3e 66 69 6c 65 6e 61 6d 65 3c 2f 65 <em>filename</e
1900: 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 53 70 65 m></dt>..<dd>Spe
1910: 63 69 66 79 20 74 68 65 20 63 6f 6e 74 65 6e 74 cify the content
1920: 73 20 6f 66 20 61 20 63 65 72 74 69 66 69 63 61 s of a certifica
1930: 74 65 20 74 6f 20 75 73 65 2c 20 61 73 20 61 20 te to use, as a
1940: 44 45 52 0a 09 20 20 20 20 65 6e 63 6f 64 65 64 DER.. encoded
1950: 20 62 69 6e 61 72 79 20 76 61 6c 75 65 20 28 58 binary value (X
1960: 2e 35 30 39 20 44 45 52 29 2e 3c 2f 64 64 3e 0a .509 DER).</dd>.
1970: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 63 69 .<dt><strong>-ci
1980: 70 68 65 72 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 pher</strong> <e
1990: 6d 3e 73 74 72 69 6e 67 3c 2f 65 6d 3e 3c 2f 64 m>string</em></d
19a0: 74 3e 0a 09 3c 64 64 3e 4c 69 73 74 20 6f 66 20 t>..<dd>List of
19b0: 63 69 70 68 65 72 73 20 74 6f 20 75 73 65 2e 20 ciphers to use.
19c0: 53 74 72 69 6e 67 20 69 73 20 61 20 63 6f 6c 6f String is a colo
19d0: 6e 20 28 22 3a 22 29 20 73 65 70 61 72 61 74 65 n (":") separate
19e0: 64 20 6c 69 73 74 0a 09 20 20 20 20 6f 66 20 63 d list.. of c
19f0: 69 70 68 65 72 73 20 6f 72 20 63 69 70 68 65 72 iphers or cipher
1a00: 20 73 75 69 74 65 73 2e 20 43 69 70 68 65 72 20 suites. Cipher
1a10: 73 75 69 74 65 73 20 63 61 6e 20 62 65 20 63 6f suites can be co
1a20: 6d 62 69 6e 65 64 0a 09 20 20 20 20 75 73 69 6e mbined.. usin
1a30: 67 20 74 68 65 20 3c 62 3e 2b 3c 2f 62 3e 20 63 g the <b>+</b> c
1a40: 68 61 72 61 63 74 65 72 2e 20 50 72 65 66 69 78 haracter. Prefix
1a50: 65 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 es can be used t
1a60: 6f 20 70 65 72 6d 61 6e 65 6e 74 6c 79 0a 09 20 o permanently..
1a70: 20 20 20 72 65 6d 6f 76 65 20 28 22 21 22 29 2c remove ("!"),
1a80: 20 64 65 6c 65 74 65 20 28 22 2d 22 29 2c 20 6f delete ("-"), o
1a90: 72 20 6d 6f 76 65 20 61 20 63 79 70 68 65 72 20 r move a cypher
1aa0: 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 0a 09 20 to the end of..
1ab0: 20 20 20 74 68 65 20 6c 69 73 74 20 28 22 2b 22 the list ("+"
1ac0: 29 2e 20 4b 65 79 77 6f 72 64 73 20 3c 62 3e 40 ). Keywords <b>@
1ad0: 53 54 52 45 4e 47 54 48 3c 2f 62 3e 20 28 73 6f STRENGTH</b> (so
1ae0: 72 74 20 62 79 20 61 6c 67 6f 72 69 74 68 6d 0a rt by algorithm.
1af0: 09 20 20 20 20 6b 65 79 20 6c 65 6e 67 74 68 29 . key length)
1b00: 2c 20 3c 62 3e 40 53 45 43 4c 45 56 45 4c 3d 3c , <b>@SECLEVEL=<
1b10: 2f 62 3e 3c 69 3e 6e 3c 2f 69 3e 20 28 73 65 74 /b><i>n</i> (set
1b20: 20 73 65 63 75 72 69 74 79 20 6c 65 76 65 6c 20 security level
1b30: 74 6f 0a 09 20 20 20 20 6e 29 2c 20 61 6e 64 20 to.. n), and
1b40: 3c 62 3e 44 45 46 41 55 4c 54 3c 2f 62 3e 20 28 <b>DEFAULT</b> (
1b50: 75 73 65 20 64 65 66 61 75 6c 74 20 63 69 70 68 use default ciph
1b60: 65 72 20 6c 69 73 74 2c 20 61 74 20 73 74 61 72 er list, at star
1b70: 74 20 6f 6e 6c 79 29 0a 09 20 20 20 20 63 61 6e t only).. can
1b80: 20 61 6c 73 6f 20 62 65 20 73 70 65 63 69 66 69 also be specifi
1b90: 65 64 2e 20 53 65 65 20 4f 70 65 6e 53 53 4c 20 ed. See OpenSSL
1ba0: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f documentation fo
1bb0: 72 20 74 68 65 20 66 75 6c 6c 0a 09 20 20 20 20 r the full..
1bc0: 6c 69 73 74 20 6f 66 20 76 61 6c 69 64 20 76 61 list of valid va
1bd0: 6c 75 65 73 2e 20 28 54 4c 53 20 31 2e 32 20 61 lues. (TLS 1.2 a
1be0: 6e 64 20 65 61 72 6c 69 65 72 20 6f 6e 6c 79 29 nd earlier only)
1bf0: 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f </dd>..<dt><stro
1c00: 6e 67 3e 2d 63 69 70 68 65 72 73 75 69 74 65 73 ng>-ciphersuites
1c10: 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 73 74 </strong> <em>st
1c20: 72 69 6e 67 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 ring</em></dt>..
1c30: 3c 64 64 3e 4c 69 73 74 20 6f 66 20 63 69 70 68 <dd>List of ciph
1c40: 65 72 20 73 75 69 74 65 73 20 74 6f 20 75 73 65 er suites to use
1c50: 2e 20 53 74 72 69 6e 67 20 69 73 20 61 20 63 6f . String is a co
1c60: 6c 6f 6e 20 28 22 3a 22 29 0a 09 20 20 20 20 73 lon (":").. s
1c70: 65 70 61 72 61 74 65 64 20 6c 69 73 74 20 6f 66 eparated list of
1c80: 20 63 69 70 68 65 72 20 73 75 69 74 65 20 6e 61 cipher suite na
1c90: 6d 65 73 2e 20 28 54 4c 53 20 31 2e 33 20 6f 6e mes. (TLS 1.3 on
1ca0: 6c 79 29 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 ly)</dd>..<dt><s
1cb0: 74 72 6f 6e 67 3e 2d 63 6f 6d 6d 61 6e 64 3c 2f trong>-command</
1cc0: 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 63 61 6c 6c strong> <em>call
1cd0: 62 61 63 6b 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 back</em></dt>..
1ce0: 3c 64 64 3e 43 61 6c 6c 62 61 63 6b 20 74 6f 20 <dd>Callback to
1cf0: 69 6e 76 6f 6b 65 20 61 74 20 73 65 76 65 72 61 invoke at severa
1d00: 6c 20 70 6f 69 6e 74 73 20 64 75 72 69 6e 67 20 l points during
1d10: 74 68 65 20 68 61 6e 64 73 68 61 6b 65 2e 0a 09 the handshake...
1d20: 20 20 20 20 54 68 69 73 20 69 73 20 75 73 65 64 This is used
1d30: 20 74 6f 20 70 61 73 73 20 65 72 72 6f 72 73 20 to pass errors
1d40: 61 6e 64 20 74 72 61 63 69 6e 67 20 69 6e 66 6f and tracing info
1d50: 72 6d 61 74 69 6f 6e 2c 20 61 6e 64 0a 09 20 20 rmation, and..
1d60: 20 20 69 74 20 63 61 6e 20 61 6c 6c 6f 77 20 54 it can allow T
1d70: 63 6c 20 73 63 72 69 70 74 73 20 74 6f 20 70 65 cl scripts to pe
1d80: 72 66 6f 72 6d 20 74 68 65 69 72 20 6f 77 6e 20 rform their own
1d90: 63 65 72 74 69 66 69 63 61 74 65 0a 09 20 20 20 certificate..
1da0: 20 76 61 6c 69 64 61 74 69 6f 6e 20 69 6e 20 70 validation in p
1db0: 6c 61 63 65 20 6f 66 20 74 68 65 20 64 65 66 61 lace of the defa
1dc0: 75 6c 74 20 76 61 6c 69 64 61 74 69 6f 6e 20 70 ult validation p
1dd0: 72 6f 76 69 64 65 64 20 62 79 0a 09 20 20 20 20 rovided by..
1de0: 4f 70 65 6e 53 53 4c 2e 20 53 65 65 20 3c 61 20 OpenSSL. See <a
1df0: 68 72 65 66 3d 22 23 43 41 4c 4c 42 41 43 4b 20 href="#CALLBACK
1e00: 4f 50 54 49 4f 4e 53 22 3e 43 41 4c 4c 42 41 43 OPTIONS">CALLBAC
1e10: 4b 20 4f 50 54 49 4f 4e 53 3c 2f 61 3e 0a 09 20 K OPTIONS</a>..
1e20: 20 20 20 66 6f 72 20 66 75 72 74 68 65 72 20 64 for further d
1e30: 69 73 63 75 73 73 69 6f 6e 2e 3c 2f 64 64 3e 0a iscussion.</dd>.
1e40: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 64 68 .<dt><strong>-dh
1e50: 70 61 72 61 6d 73 20 3c 2f 73 74 72 6f 6e 67 3e params </strong>
1e60: 3c 65 6d 3e 66 69 6c 65 6e 61 6d 65 3c 2f 65 6d <em>filename</em
1e70: 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 53 70 65 63 ></dt>..<dd>Spec
1e80: 69 66 79 20 74 68 65 20 44 69 66 66 69 65 2d 48 ify the Diffie-H
1e90: 65 6c 6c 6d 61 6e 20 70 61 72 61 6d 65 74 65 72 ellman parameter
1ea0: 73 20 66 69 6c 65 2e 3c 2f 64 64 3e 0a 09 3c 64 s file.</dd>..<d
1eb0: 74 3e 3c 73 74 72 6f 6e 67 3e 2d 6b 65 79 66 69 t><strong>-keyfi
1ec0: 6c 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e le</strong> <em>
1ed0: 66 69 6c 65 6e 61 6d 65 3c 2f 65 6d 3e 3c 2f 64 filename</em></d
1ee0: 74 3e 0a 09 3c 64 64 3e 53 70 65 63 69 66 79 20 t>..<dd>Specify
1ef0: 74 68 65 20 70 72 69 76 61 74 65 20 6b 65 79 20 the private key
1f00: 66 69 6c 65 2e 20 28 64 65 66 61 75 6c 74 20 69 file. (default i
1f10: 73 0a 09 20 20 20 20 76 61 6c 75 65 20 6f 66 20 s.. value of
1f20: 2d 63 65 72 74 66 69 6c 65 29 3c 2f 64 64 3e 0a -certfile)</dd>.
1f30: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 6b 65 .<dt><strong>-ke
1f40: 79 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 66 y</strong> <em>f
1f50: 69 6c 65 6e 61 6d 65 3c 2f 65 6d 3e 3c 2f 64 74 ilename</em></dt
1f60: 3e 0a 09 3c 64 64 3e 53 70 65 63 69 66 79 20 74 >..<dd>Specify t
1f70: 68 65 20 70 72 69 76 61 74 65 20 6b 65 79 20 74 he private key t
1f80: 6f 20 75 73 65 20 61 73 20 61 20 44 45 52 20 65 o use as a DER e
1f90: 6e 63 6f 64 65 64 20 76 61 6c 75 65 20 28 50 4b ncoded value (PK
1fa0: 43 53 23 31 20 44 45 52 29 3c 2f 64 64 3e 0a 09 CS#1 DER)</dd>..
1fb0: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 6d 6f 64 <dt><strong>-mod
1fc0: 65 6c 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e el</strong> <em>
1fd0: 63 68 61 6e 6e 65 6c 3c 2f 65 6d 3e 3c 2f 64 74 channel</em></dt
1fe0: 3e 0a 09 3c 64 64 3e 46 6f 72 63 65 20 74 68 69 >..<dd>Force thi
1ff0: 73 20 63 68 61 6e 6e 65 6c 20 74 6f 20 73 68 61 s channel to sha
2000: 72 65 20 74 68 65 20 73 61 6d 65 20 3c 65 6d 3e re the same <em>
2010: 3c 73 74 72 6f 6e 67 3e 53 53 4c 5f 43 54 58 3c <strong>SSL_CTX<
2020: 2f 73 74 72 6f 6e 67 3e 3c 2f 65 6d 3e 0a 09 20 /strong></em>..
2030: 20 20 20 73 74 72 75 63 74 75 72 65 20 61 73 20 structure as
2040: 74 68 65 20 73 70 65 63 69 66 69 65 64 20 3c 65 the specified <e
2050: 6d 3e 63 68 61 6e 6e 65 6c 3c 2f 65 6d 3e 2c 20 m>channel</em>,
2060: 61 6e 64 0a 09 20 20 20 20 74 68 65 72 65 66 6f and.. therefo
2070: 72 65 20 73 68 61 72 65 20 63 61 6c 6c 62 61 63 re share callbac
2080: 6b 73 20 65 74 63 2e 3c 2f 64 64 3e 0a 09 3c 64 ks etc.</dd>..<d
2090: 74 3e 3c 73 74 72 6f 6e 67 3e 2d 70 61 73 73 77 t><strong>-passw
20a0: 6f 72 64 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d ord</strong> <em
20b0: 3e 63 61 6c 6c 62 61 63 6b 3c 2f 65 6d 3e 3c 2f >callback</em></
20c0: 64 74 3e 0a 09 3c 64 64 3e 43 61 6c 6c 62 61 63 dt>..<dd>Callbac
20d0: 6b 20 74 6f 20 69 6e 76 6f 6b 65 20 77 68 65 6e k to invoke when
20e0: 20 4f 70 65 6e 53 53 4c 20 6e 65 65 64 73 20 74 OpenSSL needs t
20f0: 6f 20 6f 62 74 61 69 6e 20 61 20 70 61 73 73 77 o obtain a passw
2100: 6f 72 64 2c 0a 09 20 20 20 20 74 79 70 69 63 61 ord,.. typica
2110: 6c 6c 79 20 74 6f 20 75 6e 6c 6f 63 6b 20 74 68 lly to unlock th
2120: 65 20 70 72 69 76 61 74 65 20 6b 65 79 20 6f 66 e private key of
2130: 20 61 20 63 65 72 74 69 66 69 63 61 74 65 2e 20 a certificate.
2140: 54 68 65 0a 09 20 20 20 20 63 61 6c 6c 62 61 63 The.. callbac
2150: 6b 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 k should return
2160: 61 20 73 74 72 69 6e 67 20 77 68 69 63 68 20 72 a string which r
2170: 65 70 72 65 73 65 6e 74 73 20 74 68 65 20 70 61 epresents the pa
2180: 73 73 77 6f 72 64 0a 09 20 20 20 20 74 6f 20 62 ssword.. to b
2190: 65 20 75 73 65 64 2e 20 53 65 65 20 3c 61 20 68 e used. See <a h
21a0: 72 65 66 3d 22 23 43 41 4c 4c 42 41 43 4b 20 4f ref="#CALLBACK O
21b0: 50 54 49 4f 4e 53 22 3e 43 41 4c 4c 42 41 43 4b PTIONS">CALLBACK
21c0: 20 4f 50 54 49 4f 4e 53 3c 2f 61 3e 0a 09 20 20 OPTIONS</a>..
21d0: 20 20 66 6f 72 20 66 75 72 74 68 65 72 20 64 69 for further di
21e0: 73 63 75 73 73 69 6f 6e 2e 3c 2f 64 64 3e 0a 09 scussion.</dd>..
21f0: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 70 6f 73 <dt><strong>-pos
2200: 74 5f 68 61 6e 64 73 68 61 6b 65 3c 2f 73 74 72 t_handshake</str
2210: 6f 6e 67 3e 20 3c 65 6d 3e 62 6f 6f 6c 3c 2f 65 ong> <em>bool</e
2220: 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 41 6c 6c m></dt>..<dd>All
2230: 6f 77 20 70 6f 73 74 2d 68 61 6e 64 73 68 61 6b ow post-handshak
2240: 65 20 74 69 63 6b 65 74 20 75 70 64 61 74 65 73 e ticket updates
2250: 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 .</dd>..<dt><str
2260: 6f 6e 67 3e 2d 72 65 71 75 65 73 74 20 3c 2f 73 ong>-request </s
2270: 74 72 6f 6e 67 3e 3c 65 6d 3e 62 6f 6f 6c 3c 2f trong><em>bool</
2280: 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 52 65 em></dt>..<dd>Re
2290: 71 75 65 73 74 20 61 20 63 65 72 74 69 66 69 63 quest a certific
22a0: 61 74 65 20 66 72 6f 6d 20 70 65 65 72 20 64 75 ate from peer du
22b0: 72 69 6e 67 20 53 53 4c 20 68 61 6e 64 73 68 61 ring SSL handsha
22c0: 6b 65 2e 0a 09 20 20 20 20 28 64 65 66 61 75 6c ke... (defaul
22d0: 74 20 69 73 20 3c 65 6d 3e 74 72 75 65 3c 2f 65 t is <em>true</e
22e0: 6d 3e 29 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 m>)</dd>..<dt><s
22f0: 74 72 6f 6e 67 3e 2d 72 65 71 75 69 72 65 3c 2f trong>-require</
2300: 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 62 6f 6f 6c strong> <em>bool
2310: 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e </em></dt>..<dd>
2320: 52 65 71 75 69 72 65 20 61 20 76 61 6c 69 64 20 Require a valid
2330: 63 65 72 74 69 66 69 63 61 74 65 20 66 72 6f 6d certificate from
2340: 20 70 65 65 72 20 64 75 72 69 6e 67 20 53 53 4c peer during SSL
2350: 20 68 61 6e 64 73 68 61 6b 65 2e 0a 09 20 20 20 handshake...
2360: 20 49 66 20 74 68 69 73 20 69 73 20 73 65 74 20 If this is set
2370: 74 6f 20 74 72 75 65 2c 20 74 68 65 6e 20 3c 73 to true, then <s
2380: 74 72 6f 6e 67 3e 2d 72 65 71 75 65 73 74 3c 2f trong>-request</
2390: 73 74 72 6f 6e 67 3e 20 6d 75 73 74 0a 09 20 20 strong> must..
23a0: 20 20 61 6c 73 6f 20 62 65 20 73 65 74 20 74 6f also be set to
23b0: 20 74 72 75 65 2e 20 28 64 65 66 61 75 6c 74 20 true. (default
23c0: 69 73 20 3c 65 6d 3e 66 61 6c 73 65 3c 2f 65 6d is <em>false</em
23d0: 3e 29 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 >)</dd>..<dt><st
23e0: 72 6f 6e 67 3e 2d 73 65 63 75 72 69 74 79 6c 65 rong>-securityle
23f0: 76 65 6c 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d vel</strong> <em
2400: 3e 69 6e 74 65 67 65 72 3c 2f 65 6d 3e 3c 2f 64 >integer</em></d
2410: 74 3e 0a 09 3c 64 64 3e 53 65 74 20 73 65 63 75 t>..<dd>Set secu
2420: 72 69 74 79 20 6c 65 76 65 6c 2e 20 4d 75 73 74 rity level. Must
2430: 20 62 65 20 30 20 74 6f 20 35 2e 20 54 68 65 20 be 0 to 5. The
2440: 73 65 63 75 72 69 74 79 20 6c 65 76 65 6c 20 61 security level a
2450: 66 66 65 63 74 73 0a 09 20 20 20 20 63 69 70 68 ffects.. ciph
2460: 65 72 20 73 75 69 74 65 20 65 6e 63 72 79 70 74 er suite encrypt
2470: 69 6f 6e 20 61 6c 67 6f 72 69 74 68 6d 73 2c 20 ion algorithms,
2480: 73 75 70 70 6f 72 74 65 64 20 45 43 43 20 63 75 supported ECC cu
2490: 72 76 65 73 2c 0a 09 20 20 20 20 73 75 70 70 6f rves,.. suppo
24a0: 72 74 65 64 20 73 69 67 6e 61 74 75 72 65 20 61 rted signature a
24b0: 6c 67 6f 72 69 74 68 6d 73 2c 20 44 48 20 70 61 lgorithms, DH pa
24c0: 72 61 6d 65 74 65 72 20 73 69 7a 65 73 2c 20 63 rameter sizes, c
24d0: 65 72 74 69 66 69 63 61 74 65 0a 09 20 20 20 20 ertificate..
24e0: 6b 65 79 20 73 69 7a 65 73 20 61 6e 64 20 73 69 key sizes and si
24f0: 67 6e 61 74 75 72 65 20 61 6c 67 6f 72 69 74 68 gnature algorith
2500: 6d 73 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 ms. The default
2510: 69 73 20 31 2e 0a 09 20 20 20 20 4c 65 76 65 6c is 1... Level
2520: 20 33 20 61 6e 64 20 68 69 67 68 65 72 20 64 69 3 and higher di
2530: 73 61 62 6c 65 20 73 75 70 70 6f 72 74 20 66 6f sable support fo
2540: 72 20 73 65 73 73 69 6f 6e 20 74 69 63 6b 65 74 r session ticket
2550: 73 20 61 6e 64 20 6f 6e 6c 79 0a 09 20 20 20 20 s and only..
2560: 61 63 63 65 70 74 20 63 69 70 68 65 72 20 73 75 accept cipher su
2570: 69 74 65 73 20 74 68 61 74 20 70 72 6f 76 69 64 ites that provid
2580: 65 20 66 6f 72 77 61 72 64 20 73 65 63 72 65 63 e forward secrec
2590: 79 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 y.</dd>..<dt><st
25a0: 72 6f 6e 67 3e 2d 73 65 72 76 65 72 3c 2f 73 74 rong>-server</st
25b0: 72 6f 6e 67 3e 20 3c 65 6d 3e 62 6f 6f 6c 3c 2f rong> <em>bool</
25c0: 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 48 61 em></dt>..<dd>Ha
25d0: 6e 64 73 68 61 6b 65 20 61 73 20 73 65 72 76 65 ndshake as serve
25e0: 72 20 69 66 20 74 72 75 65 2c 20 65 6c 73 65 20 r if true, else
25f0: 68 61 6e 64 73 68 61 6b 65 20 61 73 0a 09 20 20 handshake as..
2600: 20 20 63 6c 69 65 6e 74 2e 20 28 64 65 66 61 75 client. (defau
2610: 6c 74 20 69 73 20 3c 65 6d 3e 66 61 6c 73 65 3c lt is <em>false<
2620: 2f 65 6d 3e 29 3c 2f 64 64 3e 0a 09 3c 64 74 3e /em>)</dd>..<dt>
2630: 3c 73 74 72 6f 6e 67 3e 2d 73 65 72 76 65 72 6e <strong>-servern
2640: 61 6d 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d ame</strong> <em
2650: 3e 68 6f 73 74 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a >host</em></dt>.
2660: 09 3c 64 64 3e 53 70 65 63 69 66 79 20 73 65 72 .<dd>Specify ser
2670: 76 65 72 20 68 6f 73 74 6e 61 6d 65 2e 20 4f 6e ver hostname. On
2680: 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 69 66 20 ly available if
2690: 74 68 65 20 4f 70 65 6e 53 53 4c 20 6c 69 62 72 the OpenSSL libr
26a0: 61 72 79 0a 09 20 20 20 20 74 68 65 20 70 61 63 ary.. the pac
26b0: 6b 61 67 65 20 69 73 20 6c 69 6e 6b 65 64 20 61 kage is linked a
26c0: 67 61 69 6e 73 74 20 73 75 70 70 6f 72 74 73 20 gainst supports
26d0: 74 68 65 20 54 4c 53 20 68 6f 73 74 6e 61 6d 65 the TLS hostname
26e0: 20 65 78 74 65 6e 73 69 6f 6e 0a 09 20 20 20 20 extension..
26f0: 66 6f 72 20 27 53 65 72 76 65 72 20 4e 61 6d 65 for 'Server Name
2700: 20 49 6e 64 69 63 61 74 69 6f 6e 27 20 28 53 4e Indication' (SN
2710: 49 29 2e 20 55 73 65 20 74 6f 20 6e 61 6d 65 20 I). Use to name
2720: 74 68 65 20 6c 6f 67 69 63 61 6c 20 68 6f 73 74 the logical host
2730: 0a 09 20 20 20 20 77 65 20 61 72 65 20 74 61 6c .. we are tal
2740: 6b 69 6e 67 20 74 6f 20 61 6e 64 20 65 78 70 65 king to and expe
2750: 63 74 69 6e 67 20 61 20 63 65 72 74 69 66 69 63 cting a certific
2760: 61 74 65 20 66 6f 72 2e 3c 2f 64 64 3e 0a 09 3c ate for.</dd>..<
2770: 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d 73 65 73 73 dt><strong>-sess
2780: 69 6f 6e 5f 69 64 3c 2f 73 74 72 6f 6e 67 3e 20 ion_id</strong>
2790: 3c 65 6d 3e 73 74 72 69 6e 67 3c 2f 65 6d 3e 3c <em>string</em><
27a0: 2f 64 74 3e 0a 09 3c 64 64 3e 53 65 73 73 69 6f /dt>..<dd>Sessio
27b0: 6e 20 69 64 20 74 6f 20 72 65 73 75 6d 65 20 73 n id to resume s
27c0: 65 73 73 69 6f 6e 2e 3c 2f 64 64 3e 0a 09 3c 64 ession.</dd>..<d
27d0: 74 3e 3c 73 74 72 6f 6e 67 3e 2d 73 73 6c 32 3c t><strong>-ssl2<
27e0: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 62 6f 6f /strong> <em>boo
27f0: 6c 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 l</em></dt>..<dd
2800: 3e 45 6e 61 62 6c 65 20 75 73 65 20 6f 66 20 53 >Enable use of S
2810: 53 4c 20 76 32 2e 20 28 64 65 66 61 75 6c 74 20 SL v2. (default
2820: 69 73 20 3c 65 6d 3e 66 61 6c 73 65 3c 2f 65 6d is <em>false</em
2830: 3e 29 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 >)</dd>..<dt><st
2840: 72 6f 6e 67 3e 2d 73 73 6c 33 20 3c 2f 73 74 72 rong>-ssl3 </str
2850: 6f 6e 67 3e 3c 65 6d 3e 62 6f 6f 6c 3c 2f 65 6d ong><em>bool</em
2860: 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 45 6e 61 62 ></dt>..<dd>Enab
2870: 6c 65 20 75 73 65 20 6f 66 20 53 53 4c 20 76 33 le use of SSL v3
2880: 2e 20 28 64 65 66 61 75 6c 74 20 69 73 20 3c 65 . (default is <e
2890: 6d 3e 66 61 6c 73 65 3c 2f 65 6d 3e 29 3c 2f 64 m>false</em>)</d
28a0: 64 3e 0a 09 3c 64 74 3e 2d 3c 73 74 72 6f 6e 67 d>..<dt>-<strong
28b0: 3e 74 6c 73 31 3c 2f 73 74 72 6f 6e 67 3e 20 3c >tls1</strong> <
28c0: 65 6d 3e 62 6f 6f 6c 3c 2f 65 6d 3e 3c 2f 64 74 em>bool</em></dt
28d0: 3e 0a 09 3c 64 64 3e 45 6e 61 62 6c 65 20 75 73 >..<dd>Enable us
28e0: 65 20 6f 66 20 54 4c 53 20 76 31 2e 20 28 64 65 e of TLS v1. (de
28f0: 66 61 75 6c 74 20 69 73 20 3c 65 6d 3e 74 72 75 fault is <em>tru
2900: 65 3c 2f 65 6d 3e 29 3c 2f 64 64 3e 0a 09 3c 64 e</em>)</dd>..<d
2910: 74 3e 2d 3c 73 74 72 6f 6e 67 3e 74 6c 73 31 2e t>-<strong>tls1.
2920: 31 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 62 1</strong> <em>b
2930: 6f 6f 6c 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c ool</em></dt>..<
2940: 64 64 3e 45 6e 61 62 6c 65 20 75 73 65 20 6f 66 dd>Enable use of
2950: 20 54 4c 53 20 76 31 2e 31 20 28 64 65 66 61 75 TLS v1.1 (defau
2960: 6c 74 20 69 73 20 3c 65 6d 3e 74 72 75 65 3c 2f lt is <em>true</
2970: 65 6d 3e 29 3c 2f 64 64 3e 0a 09 3c 64 74 3e 2d em>)</dd>..<dt>-
2980: 3c 73 74 72 6f 6e 67 3e 74 6c 73 31 2e 32 3c 2f <strong>tls1.2</
2990: 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 62 6f 6f 6c strong> <em>bool
29a0: 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e </em></dt>..<dd>
29b0: 45 6e 61 62 6c 65 20 75 73 65 20 6f 66 20 54 4c Enable use of TL
29c0: 53 20 76 31 2e 32 20 28 64 65 66 61 75 6c 74 20 S v1.2 (default
29d0: 69 73 20 3c 65 6d 3e 74 72 75 65 3c 2f 65 6d 3e is <em>true</em>
29e0: 29 3c 2f 64 64 3e 0a 09 3c 64 74 3e 2d 3c 73 74 )</dd>..<dt>-<st
29f0: 72 6f 6e 67 3e 74 6c 73 31 2e 33 3c 2f 73 74 72 rong>tls1.3</str
2a00: 6f 6e 67 3e 20 3c 65 6d 3e 62 6f 6f 6c 3c 2f 65 ong> <em>bool</e
2a10: 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 45 6e 61 m></dt>..<dd>Ena
2a20: 62 6c 65 20 75 73 65 20 6f 66 20 54 4c 53 20 76 ble use of TLS v
2a30: 31 2e 33 20 28 64 65 66 61 75 6c 74 20 69 73 20 1.3 (default is
2a40: 3c 65 6d 3e 74 72 75 65 3c 2f 65 6d 3e 29 3c 2f <em>true</em>)</
2a50: 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 dd>..<dt><strong
2a60: 3e 2d 76 61 6c 69 64 61 74 65 63 6f 6d 6d 61 6e >-validatecomman
2a70: 64 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 63 d</strong> <em>c
2a80: 61 6c 6c 62 61 63 6b 3c 2f 65 6d 3e 3c 2f 64 74 allback</em></dt
2a90: 3e 0a 09 3c 64 64 3e 43 61 6c 6c 62 61 63 6b 20 >..<dd>Callback
2aa0: 74 6f 20 69 6e 76 6f 6b 65 20 74 6f 20 76 65 72 to invoke to ver
2ab0: 69 66 79 20 6f 72 20 76 61 6c 69 64 61 74 65 20 ify or validate
2ac0: 70 72 6f 74 6f 63 6f 6c 20 63 6f 6e 66 69 67 0a protocol config.
2ad0: 09 20 20 20 20 70 61 72 61 6d 65 74 65 72 73 20 . parameters
2ae0: 64 75 72 69 6e 67 20 74 68 65 20 70 72 6f 74 6f during the proto
2af0: 63 6f 6c 20 6e 65 67 6f 74 69 61 74 69 6f 6e 20 col negotiation
2b00: 70 68 61 73 65 2e 20 53 65 65 0a 09 20 20 20 20 phase. See..
2b10: 3c 61 20 68 72 65 66 3d 22 23 43 41 4c 4c 42 41 <a href="#CALLBA
2b20: 43 4b 20 4f 50 54 49 4f 4e 53 22 3e 43 41 4c 4c CK OPTIONS">CALL
2b30: 42 41 43 4b 20 4f 50 54 49 4f 4e 53 3c 2f 61 3e BACK OPTIONS</a>
2b40: 0a 09 20 20 20 20 66 6f 72 20 66 75 72 74 68 65 .. for furthe
2b50: 72 20 64 69 73 63 75 73 73 69 6f 6e 2e 3c 2f 64 r discussion.</d
2b60: 64 3e 0a 20 20 20 20 3c 2f 64 6c 3e 0a 3c 2f 62 d>. </dl>.</b
2b70: 6c 6f 63 6b 71 75 6f 74 65 3e 0a 0a 20 20 20 20 lockquote>..
2b80: 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 74 6c 73 <dt><a name="tls
2b90: 3a 3a 75 6e 69 6d 70 6f 72 74 22 3e 3c 62 3e 74 ::unimport"><b>t
2ba0: 6c 73 3a 3a 75 6e 69 6d 70 6f 72 74 20 3c 2f 62 ls::unimport </b
2bb0: 3e 3c 69 3e 63 68 61 6e 6e 65 6c 3c 2f 69 3e 3c ><i>channel</i><
2bc0: 2f 61 3e 3c 2f 64 74 3e 0a 20 20 20 20 3c 64 64 /a></dt>. <dd
2bd0: 3e 50 72 6f 76 69 64 65 64 20 66 6f 72 20 73 79 >Provided for sy
2be0: 6d 6d 65 74 72 79 20 74 6f 20 3c 73 74 72 6f 6e mmetry to <stron
2bf0: 67 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c 2f 73 g>tls::import</s
2c00: 74 72 6f 6e 67 3e 2c 20 74 68 69 73 0a 20 20 20 trong>, this.
2c10: 20 20 20 75 6e 73 74 61 63 6b 73 20 74 68 65 20 unstacks the
2c20: 53 53 4c 2d 65 6e 61 62 6c 69 6e 67 20 6f 66 20 SSL-enabling of
2c30: 61 20 72 65 67 75 6c 61 72 20 54 63 6c 20 63 68 a regular Tcl ch
2c40: 61 6e 6e 65 6c 2e 20 20 41 6e 20 65 72 72 6f 72 annel. An error
2c50: 0a 20 20 20 20 20 20 69 73 20 74 68 72 6f 77 6e . is thrown
2c60: 20 69 66 20 54 4c 53 20 69 73 20 6e 6f 74 20 74 if TLS is not t
2c70: 68 65 20 74 6f 70 20 73 74 61 63 6b 65 64 20 63 he top stacked c
2c80: 68 61 6e 6e 65 6c 20 74 79 70 65 2e 3c 2f 64 64 hannel type.</dd
2c90: 3e 0a 20 20 20 20 3c 64 74 3e 26 6e 62 73 70 3b >. <dt>
2ca0: 3c 2f 64 74 3e 0a 20 20 20 20 3c 64 74 3e 3c 61 </dt>. <dt><a
2cb0: 20 6e 61 6d 65 3d 22 74 6c 73 3a 3a 68 61 6e 64 name="tls::hand
2cc0: 73 68 61 6b 65 22 3e 3c 73 74 72 6f 6e 67 3e 74 shake"><strong>t
2cd0: 6c 73 3a 3a 68 61 6e 64 73 68 61 6b 65 3c 2f 73 ls::handshake</s
2ce0: 74 72 6f 6e 67 3e 20 3c 65 6d 3e 63 68 61 6e 6e trong> <em>chann
2cf0: 65 6c 3c 2f 65 6d 3e 3c 2f 61 3e 3c 2f 64 74 3e el</em></a></dt>
2d00: 0a 20 20 20 20 3c 64 64 3e 46 6f 72 63 65 73 20 . <dd>Forces
2d10: 68 61 6e 64 73 68 61 6b 65 20 74 6f 20 74 61 6b handshake to tak
2d20: 65 20 70 6c 61 63 65 2c 20 61 6e 64 20 72 65 74 e place, and ret
2d30: 75 72 6e 73 20 30 20 69 66 0a 09 68 61 6e 64 73 urns 0 if..hands
2d40: 68 61 6b 65 20 69 73 20 73 74 69 6c 6c 20 69 6e hake is still in
2d50: 20 70 72 6f 67 72 65 73 73 20 28 6e 6f 6e 2d 62 progress (non-b
2d60: 6c 6f 63 6b 69 6e 67 29 2c 20 6f 72 20 31 20 69 locking), or 1 i
2d70: 66 0a 09 74 68 65 20 68 61 6e 64 73 68 61 6b 65 f..the handshake
2d80: 20 77 61 73 20 73 75 63 63 65 73 73 66 75 6c 2e was successful.
2d90: 20 49 66 20 74 68 65 20 68 61 6e 64 73 68 61 6b If the handshak
2da0: 65 20 66 61 69 6c 65 64 0a 09 74 68 69 73 20 72 e failed..this r
2db0: 6f 75 74 69 6e 65 20 77 69 6c 6c 20 74 68 72 6f outine will thro
2dc0: 77 20 61 6e 20 65 72 72 6f 72 2e 3c 2f 64 64 3e w an error.</dd>
2dd0: 0a 20 20 20 20 3c 64 74 3e 26 6e 62 73 70 3b 3c . <dt> <
2de0: 2f 64 74 3e 0a 20 20 20 20 3c 64 74 3e 3c 61 20 /dt>. <dt><a
2df0: 6e 61 6d 65 3d 22 74 6c 73 3a 3a 73 74 61 74 75 name="tls::statu
2e00: 73 22 3e 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a s"><strong>tls::
2e10: 73 74 61 74 75 73 3c 2f 73 74 72 6f 6e 67 3e 0a status</strong>.
2e20: 20 20 20 20 3c 65 6d 3e 3f 2d 6c 6f 63 61 6c 3f <em>?-local?
2e30: 20 63 68 61 6e 6e 65 6c 3c 2f 65 6d 3e 3c 2f 61 channel</em></a
2e40: 3e 3c 2f 64 74 3e 0a 20 20 20 20 3c 64 64 3e 52 ></dt>. <dd>R
2e50: 65 74 75 72 6e 73 20 74 68 65 20 63 75 72 72 65 eturns the curre
2e60: 6e 74 20 73 74 61 74 75 73 20 6f 66 20 74 68 65 nt status of the
2e70: 20 63 65 72 74 69 66 69 63 61 74 65 20 66 6f 72 certificate for
2e80: 20 61 6e 20 53 53 4c 0a 09 63 68 61 6e 6e 65 6c an SSL..channel
2e90: 2e 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 . The result is
2ea0: 61 20 6c 69 73 74 20 6f 66 20 6b 65 79 2d 76 61 a list of key-va
2eb0: 6c 75 65 20 70 61 69 72 73 20 64 65 73 63 72 69 lue pairs descri
2ec0: 62 69 6e 67 0a 09 74 68 65 20 63 65 72 74 69 66 bing..the certif
2ed0: 69 63 61 74 65 2e 20 49 66 20 74 68 65 20 72 65 icate. If the re
2ee0: 73 75 6c 74 20 69 73 20 61 6e 20 65 6d 70 74 79 sult is an empty
2ef0: 20 6c 69 73 74 20 74 68 65 6e 20 74 68 65 0a 09 list then the..
2f00: 53 53 4c 20 68 61 6e 64 73 68 61 6b 65 20 68 61 SSL handshake ha
2f10: 73 20 6e 6f 74 20 79 65 74 20 63 6f 6d 70 6c 65 s not yet comple
2f20: 74 65 64 2e 20 49 66 20 3c 65 6d 3e 2d 6c 6f 63 ted. If <em>-loc
2f30: 61 6c 3c 2f 65 6d 3e 20 69 73 0a 09 73 70 65 63 al</em> is..spec
2f40: 69 66 69 65 64 2c 20 74 68 65 6e 20 74 68 65 20 ified, then the
2f50: 6c 6f 63 61 6c 20 63 65 72 74 69 66 69 63 61 74 local certificat
2f60: 65 20 69 73 20 75 73 65 64 2e 3c 2f 64 64 3e 0a e is used.</dd>.
2f70: 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a 09 3c 62 <blockquote>..<b
2f80: 3e 53 53 4c 20 53 74 61 74 75 73 3c 2f 62 3e 0a >SSL Status</b>.
2f90: 20 20 20 20 3c 64 6c 3e 0a 09 3c 64 74 3e 3c 73 <dl>..<dt><s
2fa0: 74 72 6f 6e 67 3e 61 6c 70 6e 3c 2f 73 74 72 6f trong>alpn</stro
2fb0: 6e 67 3e 20 3c 65 6d 3e 70 72 6f 74 6f 63 6f 6c ng> <em>protocol
2fc0: 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e </em></dt>..<dd>
2fd0: 54 68 65 20 70 72 6f 74 6f 63 6f 6c 20 73 65 6c The protocol sel
2fe0: 65 63 74 65 64 20 61 66 74 65 72 20 41 70 70 6c ected after Appl
2ff0: 69 63 61 74 69 6f 6e 2d 4c 61 79 65 72 20 50 72 ication-Layer Pr
3000: 6f 74 6f 63 6f 6c 0a 09 20 20 20 20 4e 65 67 6f otocol.. Nego
3010: 74 69 61 74 69 6f 6e 20 28 41 4c 50 4e 29 2e 3c tiation (ALPN).<
3020: 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e /dd>..<dt><stron
3030: 67 3e 63 69 70 68 65 72 3c 2f 73 74 72 6f 6e 67 g>cipher</strong
3040: 3e 20 3c 65 6d 3e 63 69 70 68 65 72 3c 2f 65 6d > <em>cipher</em
3050: 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 68 65 20 ></dt>..<dd>The
3060: 63 75 72 72 65 6e 74 20 63 69 70 68 65 72 20 69 current cipher i
3070: 6e 20 75 73 65 20 62 65 74 77 65 65 6e 20 74 68 n use between th
3080: 65 20 63 6c 69 65 6e 74 20 61 6e 64 0a 09 20 20 e client and..
3090: 20 20 73 65 72 76 65 72 20 63 68 61 6e 6e 65 6c server channel
30a0: 73 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 s.</dd>..<dt><st
30b0: 72 6f 6e 67 3e 70 65 65 72 6e 61 6d 65 3c 2f 73 rong>peername</s
30c0: 74 72 6f 6e 67 3e 20 3c 65 6d 3e 6e 61 6d 65 3c trong> <em>name<
30d0: 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 /em></dt>..<dd>T
30e0: 68 65 20 70 65 65 72 6e 61 6d 65 20 66 72 6f 6d he peername from
30f0: 20 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 the certificate
3100: 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 .</dd>..<dt><str
3110: 6f 6e 67 3e 70 72 6f 74 6f 63 6f 6c 3c 2f 73 74 ong>protocol</st
3120: 72 6f 6e 67 3e 20 3c 65 6d 3e 76 65 72 73 69 6f rong> <em>versio
3130: 6e 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 n</em></dt>..<dd
3140: 3e 54 68 65 20 70 72 6f 74 6f 63 6f 6c 20 76 65 >The protocol ve
3150: 72 73 69 6f 6e 20 75 73 65 64 20 66 6f 72 20 74 rsion used for t
3160: 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 3a 0a 09 he connection:..
3170: 20 20 20 20 53 53 4c 32 2c 20 53 53 4c 33 2c 20 SSL2, SSL3,
3180: 54 4c 53 31 2c 20 54 4c 53 31 2e 31 2c 20 54 4c TLS1, TLS1.1, TL
3190: 53 31 2e 32 2c 20 54 4c 53 31 2e 33 2c 20 6f 72 S1.2, TLS1.3, or
31a0: 20 75 6e 6b 6e 6f 77 6e 2e 3c 2f 64 64 3e 0a 09 unknown.</dd>..
31b0: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 62 69 74 <dt><strong>sbit
31c0: 73 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 6e s</strong> <em>n
31d0: 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e </em></dt>..<dd>
31e0: 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 69 The number of bi
31f0: 74 73 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 ts used for the
3200: 73 65 73 73 69 6f 6e 20 6b 65 79 2e 3c 2f 64 64 session key.</dd
3210: 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 >..<dt><strong>s
3220: 69 67 6e 61 74 75 72 65 48 61 73 68 41 6c 67 6f ignatureHashAlgo
3230: 72 69 74 68 6d 3c 2f 73 74 72 6f 6e 67 3e 20 3c rithm</strong> <
3240: 65 6d 3e 61 6c 67 6f 72 69 74 68 6d 3c 2f 65 6d em>algorithm</em
3250: 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 68 65 20 ></dt>..<dd>The
3260: 73 69 67 6e 61 74 75 72 65 20 68 61 73 68 20 61 signature hash a
3270: 6c 67 6f 72 69 74 68 6d 2e 3c 2f 64 64 3e 0a 09 lgorithm.</dd>..
3280: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 69 67 6e <dt><strong>sign
3290: 61 74 75 72 65 54 79 70 65 3c 2f 73 74 72 6f 6e atureType</stron
32a0: 67 3e 20 3c 65 6d 3e 74 79 70 65 3c 2f 65 6d 3e g> <em>type</em>
32b0: 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 68 65 20 73 </dt>..<dd>The s
32c0: 69 67 6e 61 74 75 72 65 20 74 79 70 65 20 76 61 ignature type va
32d0: 6c 75 65 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c lue.</dd>..<dt><
32e0: 73 74 72 6f 6e 67 3e 76 65 72 69 66 79 44 65 70 strong>verifyDep
32f0: 74 68 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e th</strong> <em>
3300: 6e 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 n</em></dt>..<dd
3310: 3e 4d 61 78 69 6d 75 6d 20 64 65 70 74 68 20 66 >Maximum depth f
3320: 6f 72 20 74 68 65 20 63 65 72 74 69 66 69 63 61 or the certifica
3330: 74 65 20 63 68 61 69 6e 20 76 65 72 69 66 69 63 te chain verific
3340: 61 74 69 6f 6e 2e 0a 09 20 20 20 20 44 65 66 61 ation... Defa
3350: 75 6c 74 20 69 73 20 2d 31 2c 20 74 6f 20 63 68 ult is -1, to ch
3360: 65 63 6b 20 61 6c 6c 2e 3c 2f 64 64 3e 0a 09 3c eck all.</dd>..<
3370: 64 74 3e 3c 73 74 72 6f 6e 67 3e 76 65 72 69 66 dt><strong>verif
3380: 79 4d 6f 64 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c yMode</strong> <
3390: 65 6d 3e 6c 69 73 74 3c 2f 65 6d 3e 3c 2f 64 74 em>list</em></dt
33a0: 3e 0a 09 3c 64 64 3e 4c 69 73 74 20 6f 66 20 63 >..<dd>List of c
33b0: 65 72 74 69 66 69 63 61 74 65 20 76 65 72 69 66 ertificate verif
33c0: 69 63 61 74 69 6f 6e 20 6d 6f 64 65 73 2e 3c 2f ication modes.</
33d0: 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 dd>..<dt><strong
33e0: 3e 76 65 72 69 66 79 52 65 73 75 6c 74 3c 2f 73 >verifyResult</s
33f0: 74 72 6f 6e 67 3e 20 3c 65 6d 3e 72 65 73 75 6c trong> <em>resul
3400: 74 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 t</em></dt>..<dd
3410: 3e 43 65 72 74 69 66 69 63 61 74 65 20 76 65 72 >Certificate ver
3420: 69 66 69 63 61 74 69 6f 6e 20 72 65 73 75 6c 74 ification result
3430: 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 .</dd>..<dt><str
3440: 6f 6e 67 3e 63 61 5f 6e 61 6d 65 73 3c 2f 73 74 ong>ca_names</st
3450: 72 6f 6e 67 3e 20 3c 65 6d 3e 6c 69 73 74 3c 2f rong> <em>list</
3460: 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 4c 69 em></dt>..<dd>Li
3470: 73 74 20 6f 66 20 74 68 65 20 43 65 72 74 69 66 st of the Certif
3480: 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 69 65 icate Authoritie
3490: 73 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65 s used to create
34a0: 20 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 the certificate
34b0: 2e 3c 2f 64 64 3e 0a 20 20 20 20 3c 2f 64 6c 3e .</dd>. </dl>
34c0: 0a 3c 2f 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a 3c .</blockquote>.<
34d0: 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a 09 3c 62 3e blockquote>..<b>
34e0: 43 65 72 74 69 66 69 63 61 74 65 20 53 74 61 74 Certificate Stat
34f0: 75 73 3c 2f 62 3e 0a 20 20 20 20 3c 64 6c 3e 0a us</b>. <dl>.
3500: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 61 6c 6c .<dt><strong>all
3510: 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 73 74 </strong> <em>st
3520: 72 69 6e 67 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 ring</em></dt>..
3530: 3c 64 64 3e 44 75 6d 70 20 6f 66 20 61 6c 6c 20 <dd>Dump of all
3540: 63 65 72 74 69 66 69 63 61 74 65 20 69 6e 66 6f certificate info
3550: 2e 3c 2f 64 64 3e 0a 0a 09 3c 64 74 3e 3c 73 74 .</dd>...<dt><st
3560: 72 6f 6e 67 3e 76 65 72 73 69 6f 6e 3c 2f 73 74 rong>version</st
3570: 72 6f 6e 67 3e 20 3c 65 6d 3e 76 61 6c 75 65 3c rong> <em>value<
3580: 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 /em></dt>..<dd>T
3590: 68 65 20 63 65 72 74 69 66 69 63 61 74 65 20 76 he certificate v
35a0: 65 72 73 69 6f 6e 2e 3c 2f 64 64 3e 0a 09 3c 64 ersion.</dd>..<d
35b0: 74 3e 3c 73 74 72 6f 6e 67 3e 73 65 72 69 61 6c t><strong>serial
35c0: 4e 75 6d 62 65 72 3c 2f 73 74 72 6f 6e 67 3e 20 Number</strong>
35d0: 3c 65 6d 3e 6e 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a <em>n</em></dt>.
35e0: 09 3c 64 64 3e 54 68 65 20 73 65 72 69 61 6c 20 .<dd>The serial
35f0: 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 20 63 65 number of the ce
3600: 72 74 69 66 69 63 61 74 65 20 61 73 20 68 65 78 rtificate as hex
3610: 20 73 74 72 69 6e 67 2e 3c 2f 64 64 3e 0a 09 3c string.</dd>..<
3620: 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 69 67 6e 61 dt><strong>signa
3630: 74 75 72 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 ture</strong> <e
3640: 6d 3e 61 6c 67 6f 72 69 74 68 6d 3c 2f 65 6d 3e m>algorithm</em>
3650: 3c 2f 64 74 3e 0a 09 3c 64 64 3e 43 69 70 68 65 </dt>..<dd>Ciphe
3660: 72 20 61 6c 67 6f 72 69 74 68 6d 20 75 73 65 64 r algorithm used
3670: 20 66 6f 72 20 63 65 72 74 69 66 69 63 61 74 65 for certificate
3680: 20 73 69 67 6e 61 74 75 72 65 2e 3c 2f 64 64 3e signature.</dd>
3690: 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 69 73 ..<dt><strong>is
36a0: 73 75 65 72 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 suer</strong> <e
36b0: 6d 3e 64 6e 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 m>dn</em></dt>..
36c0: 3c 64 64 3e 54 68 65 20 64 69 73 74 69 6e 67 75 <dd>The distingu
36d0: 69 73 68 65 64 20 6e 61 6d 65 20 28 44 4e 29 20 ished name (DN)
36e0: 6f 66 20 74 68 65 20 63 65 72 74 69 66 69 63 61 of the certifica
36f0: 74 65 20 69 73 73 75 65 72 2e 3c 2f 64 64 3e 0a te issuer.</dd>.
3700: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 6e 6f 74 .<dt><strong>not
3710: 42 65 66 6f 72 65 3c 2f 73 74 72 6f 6e 67 3e 20 Before</strong>
3720: 3c 65 6d 3e 64 61 74 65 3c 2f 65 6d 3e 3c 2f 64 <em>date</em></d
3730: 74 3e 0a 09 3c 64 64 3e 54 68 65 20 62 65 67 69 t>..<dd>The begi
3740: 6e 20 64 61 74 65 20 66 6f 72 20 74 68 65 20 76 n date for the v
3750: 61 6c 69 64 69 74 79 20 6f 66 20 74 68 65 20 63 alidity of the c
3760: 65 72 74 69 66 69 63 61 74 65 2e 3c 2f 64 64 3e ertificate.</dd>
3770: 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 6e 6f ..<dt><strong>no
3780: 74 41 66 74 65 72 3c 2f 73 74 72 6f 6e 67 3e 20 tAfter</strong>
3790: 3c 65 6d 3e 64 61 74 65 3c 2f 65 6d 3e 3c 2f 64 <em>date</em></d
37a0: 74 3e 0a 09 3c 64 64 3e 54 68 65 20 65 78 70 69 t>..<dd>The expi
37b0: 72 61 74 69 6f 6e 20 64 61 74 65 20 66 6f 72 20 ration date for
37c0: 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 2e the certificate.
37d0: 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f </dd>..<dt><stro
37e0: 6e 67 3e 73 75 62 6a 65 63 74 3c 2f 73 74 72 6f ng>subject</stro
37f0: 6e 67 3e 20 3c 65 6d 3e 64 6e 3c 2f 65 6d 3e 3c ng> <em>dn</em><
3800: 2f 64 74 3e 0a 09 3c 64 64 3e 54 68 65 20 64 69 /dt>..<dd>The di
3810: 73 74 69 6e 67 75 69 73 68 65 64 20 6e 61 6d 65 stinguished name
3820: 20 28 44 4e 29 20 6f 66 20 74 68 65 20 63 65 72 (DN) of the cer
3830: 74 69 66 69 63 61 74 65 20 73 75 62 6a 65 63 74 tificate subject
3840: 2e 0a 09 20 20 20 20 46 69 65 6c 64 73 20 69 6e ... Fields in
3850: 63 6c 75 64 65 3a 20 43 6f 6d 6d 6f 6e 20 4e 61 clude: Common Na
3860: 6d 65 20 28 43 4e 29 2c 20 4f 72 67 61 6e 69 7a me (CN), Organiz
3870: 61 74 69 6f 6e 20 28 4f 29 2c 20 4c 6f 63 61 6c ation (O), Local
3880: 69 74 79 0a 09 20 20 20 20 6f 72 20 43 69 74 79 ity.. or City
3890: 20 28 4c 29 2c 20 53 74 61 74 65 20 6f 72 20 50 (L), State or P
38a0: 72 6f 76 69 6e 63 65 20 28 53 29 2c 20 61 6e 64 rovince (S), and
38b0: 20 43 6f 75 6e 74 72 79 20 4e 61 6d 65 20 28 43 Country Name (C
38c0: 29 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 ).</dd>..<dt><st
38d0: 72 6f 6e 67 3e 69 73 73 75 65 72 55 6e 69 71 75 rong>issuerUniqu
38e0: 65 49 44 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d eID</strong> <em
38f0: 3e 73 74 72 69 6e 67 3c 2f 65 6d 3e 3c 2f 64 74 >string</em></dt
3900: 3e 0a 09 3c 64 64 3e 54 68 65 20 69 73 73 75 65 >..<dd>The issue
3910: 72 20 75 6e 69 71 75 65 20 69 64 2e 3c 2f 64 64 r unique id.</dd
3920: 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 >..<dt><strong>s
3930: 75 62 6a 65 63 74 55 6e 69 71 75 65 49 44 3c 2f ubjectUniqueID</
3940: 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 73 74 72 69 strong> <em>stri
3950: 6e 67 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 ng</em></dt>..<d
3960: 64 3e 54 68 65 20 73 75 62 6a 65 63 74 20 75 6e d>The subject un
3970: 69 71 75 65 20 69 64 2e 3c 2f 64 64 3e 0a 0a 09 ique id.</dd>...
3980: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 6e 75 6d 5f <dt><strong>num_
3990: 65 78 74 65 6e 73 69 6f 6e 73 3c 2f 73 74 72 6f extensions</stro
39a0: 6e 67 3e 20 3c 65 6d 3e 6e 3c 2f 65 6d 3e 3c 2f ng> <em>n</em></
39b0: 64 74 3e 0a 09 3c 64 64 3e 4e 75 6d 62 65 72 20 dt>..<dd>Number
39c0: 6f 66 20 63 65 72 74 69 66 69 63 61 74 65 20 65 of certificate e
39d0: 78 74 65 6e 73 69 6f 6e 73 2e 3c 2f 64 64 3e 0a xtensions.</dd>.
39e0: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 65 78 74 .<dt><strong>ext
39f0: 65 6e 73 69 6f 6e 73 3c 2f 73 74 72 6f 6e 67 3e ensions</strong>
3a00: 20 3c 65 6d 3e 6c 69 73 74 3c 2f 65 6d 3e 3c 2f <em>list</em></
3a10: 64 74 3e 0a 09 3c 64 64 3e 4c 69 73 74 20 6f 66 dt>..<dd>List of
3a20: 20 63 65 72 74 69 66 69 63 61 74 65 20 65 78 74 certificate ext
3a30: 65 6e 73 69 6f 6e 20 6e 61 6d 65 73 2e 3c 2f 64 ension names.</d
3a40: 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e d>..<dt><strong>
3a50: 61 75 74 68 6f 72 69 74 79 4b 65 79 49 64 65 6e authorityKeyIden
3a60: 74 69 66 69 65 72 3c 2f 73 74 72 6f 6e 67 3e 20 tifier</strong>
3a70: 3c 65 6d 3e 73 74 72 69 6e 67 3c 2f 65 6d 3e 3c <em>string</em><
3a80: 2f 64 74 3e 0a 09 3c 64 64 3e 28 41 4b 49 29 20 /dt>..<dd>(AKI)
3a90: 4b 65 79 20 69 64 65 6e 74 69 66 69 65 72 20 6f Key identifier o
3aa0: 66 20 74 68 65 20 49 73 73 75 69 6e 67 20 43 41 f the Issuing CA
3ab0: 20 63 65 72 74 69 66 69 63 61 74 65 20 74 68 61 certificate tha
3ac0: 74 20 73 69 67 6e 65 64 0a 09 20 20 20 20 74 68 t signed.. th
3ad0: 65 20 53 53 4c 20 63 65 72 74 69 66 69 63 61 74 e SSL certificat
3ae0: 65 20 61 73 20 68 65 78 20 73 74 72 69 6e 67 2e e as hex string.
3af0: 20 54 68 69 73 20 76 61 6c 75 65 20 6d 61 74 63 This value matc
3b00: 68 65 73 20 74 68 65 20 53 4b 49 0a 09 20 20 20 hes the SKI..
3b10: 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 49 6e value of the In
3b20: 74 65 72 6d 65 64 69 61 74 65 20 43 41 20 63 65 termediate CA ce
3b30: 72 74 69 66 69 63 61 74 65 2e 3c 2f 64 64 3e 0a rtificate.</dd>.
3b40: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 75 62 .<dt><strong>sub
3b50: 6a 65 63 74 4b 65 79 49 64 65 6e 74 69 66 69 65 jectKeyIdentifie
3b60: 72 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 73 r</strong> <em>s
3b70: 74 72 69 6e 67 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a tring</em></dt>.
3b80: 09 3c 64 64 3e 28 53 4b 49 29 20 48 61 73 68 20 .<dd>(SKI) Hash
3b90: 6f 66 20 74 68 65 20 70 75 62 6c 69 63 20 6b 65 of the public ke
3ba0: 79 20 69 6e 73 69 64 65 20 74 68 65 20 63 65 72 y inside the cer
3bb0: 74 69 66 69 63 61 74 65 20 61 73 20 68 65 78 0a tificate as hex.
3bc0: 09 20 20 20 73 74 72 69 6e 67 2e 20 55 73 65 64 . string. Used
3bd0: 20 74 6f 20 69 64 65 6e 74 69 66 79 20 63 65 72 to identify cer
3be0: 74 69 66 69 63 61 74 65 73 20 74 68 61 74 20 63 tificates that c
3bf0: 6f 6e 74 61 69 6e 20 61 20 70 61 72 74 69 63 75 ontain a particu
3c00: 6c 61 72 0a 09 20 20 20 70 75 62 6c 69 63 20 6b lar.. public k
3c10: 65 79 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 ey.</dd>..<dt><s
3c20: 74 72 6f 6e 67 3e 73 75 62 6a 65 63 74 41 6c 74 trong>subjectAlt
3c30: 4e 61 6d 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 Name</strong> <e
3c40: 6d 3e 6c 69 73 74 3c 2f 65 6d 3e 3c 2f 64 74 3e m>list</em></dt>
3c50: 0a 09 3c 64 64 3e 4c 69 73 74 20 6f 66 20 61 6c ..<dd>List of al
3c60: 6c 20 6f 66 20 74 68 65 20 61 6c 74 65 72 6e 61 l of the alterna
3c70: 74 69 76 65 20 64 6f 6d 61 69 6e 20 6e 61 6d 65 tive domain name
3c80: 73 2c 20 73 75 62 20 64 6f 6d 61 69 6e 73 2c 0a s, sub domains,.
3c90: 09 20 20 20 20 61 6e 64 20 49 50 20 61 64 64 72 . and IP addr
3ca0: 65 73 73 65 73 20 74 68 61 74 20 61 72 65 20 73 esses that are s
3cb0: 65 63 75 72 65 64 20 62 79 20 74 68 65 20 63 65 ecured by the ce
3cc0: 72 74 69 66 69 63 61 74 65 2e 3c 2f 64 64 3e 0a rtificate.</dd>.
3cd0: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 6f 63 73 .<dt><strong>ocs
3ce0: 70 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 6c p</strong> <em>l
3cf0: 69 73 74 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c ist</em></dt>..<
3d00: 64 64 3e 4c 69 73 74 20 6f 66 20 61 6c 6c 20 4f dd>List of all O
3d10: 6e 6c 69 6e 65 20 43 65 72 74 69 66 69 63 61 74 nline Certificat
3d20: 65 20 53 74 61 74 75 73 20 50 72 6f 74 6f 63 6f e Status Protoco
3d30: 6c 20 28 4f 43 53 50 29 20 55 52 4c 73 2e 3c 2f l (OCSP) URLs.</
3d40: 64 64 3e 0a 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e dd>...<dt><stron
3d50: 67 3e 63 65 72 74 69 66 69 63 61 74 65 3c 2f 73 g>certificate</s
3d60: 74 72 6f 6e 67 3e 20 3c 65 6d 3e 63 65 72 74 3c trong> <em>cert<
3d70: 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 /em></dt>..<dd>T
3d80: 68 65 20 50 45 4d 20 65 6e 63 6f 64 65 64 20 63 he PEM encoded c
3d90: 65 72 74 69 66 69 63 61 74 65 2e 3c 2f 64 64 3e ertificate.</dd>
3da0: 0a 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 ...<dt><strong>s
3db0: 69 67 6e 61 74 75 72 65 41 6c 67 6f 72 69 74 68 ignatureAlgorith
3dc0: 6d 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 61 m</strong> <em>a
3dd0: 6c 67 6f 72 69 74 68 6d 3c 2f 65 6d 3e 3c 2f 64 lgorithm</em></d
3de0: 74 3e 0a 09 3c 64 64 3e 43 69 70 68 65 72 20 61 t>..<dd>Cipher a
3df0: 6c 67 6f 72 69 74 68 6d 20 75 73 65 64 20 66 6f lgorithm used fo
3e00: 72 20 63 65 72 74 69 66 69 63 61 74 65 20 73 69 r certificate si
3e10: 67 6e 61 74 75 72 65 2e 3c 2f 64 64 3e 0a 09 3c gnature.</dd>..<
3e20: 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 69 67 6e 61 dt><strong>signa
3e30: 74 75 72 65 56 61 6c 75 65 3c 2f 73 74 72 6f 6e tureValue</stron
3e40: 67 3e 20 3c 65 6d 3e 73 74 72 69 6e 67 3c 2f 65 g> <em>string</e
3e50: 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 43 65 72 m></dt>..<dd>Cer
3e60: 74 69 66 69 63 61 74 65 20 73 69 67 6e 61 74 75 tificate signatu
3e70: 72 65 20 61 73 20 68 65 78 20 73 74 72 69 6e 67 re as hex string
3e80: 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 .</dd>..<dt><str
3e90: 6f 6e 67 3e 73 69 67 6e 61 74 75 72 65 44 69 67 ong>signatureDig
3ea0: 65 73 74 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d est</strong> <em
3eb0: 3e 76 65 72 73 69 6f 6e 3c 2f 65 6d 3e 3c 2f 64 >version</em></d
3ec0: 74 3e 0a 09 3c 64 64 3e 43 65 72 74 69 66 69 63 t>..<dd>Certific
3ed0: 61 74 65 20 73 69 67 6e 69 6e 67 20 64 69 67 65 ate signing dige
3ee0: 73 74 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 st.</dd>..<dt><s
3ef0: 74 72 6f 6e 67 3e 70 75 62 6c 69 63 4b 65 79 41 trong>publicKeyA
3f00: 6c 67 6f 72 69 74 68 6d 3c 2f 73 74 72 6f 6e 67 lgorithm</strong
3f10: 3e 20 3c 65 6d 3e 61 6c 67 6f 72 69 74 68 6d 3c > <em>algorithm<
3f20: 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 43 /em></dt>..<dd>C
3f30: 65 72 74 69 66 69 63 61 74 65 20 73 69 67 6e 61 ertificate signa
3f40: 74 75 72 65 20 70 75 62 6c 69 63 20 6b 65 79 20 ture public key
3f50: 61 6c 67 6f 72 69 74 68 6d 2e 3c 2f 64 64 3e 0a algorithm.</dd>.
3f60: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 70 75 62 .<dt><strong>pub
3f70: 6c 69 63 4b 65 79 3c 2f 73 74 72 6f 6e 67 3e 20 licKey</strong>
3f80: 3c 65 6d 3e 73 74 72 69 6e 67 3c 2f 65 6d 3e 3c <em>string</em><
3f90: 2f 64 74 3e 0a 09 3c 64 64 3e 43 65 72 74 69 66 /dt>..<dd>Certif
3fa0: 69 63 61 74 65 20 73 69 67 6e 61 74 75 72 65 20 icate signature
3fb0: 70 75 62 6c 69 63 20 6b 65 79 20 61 73 20 68 65 public key as he
3fc0: 78 20 73 74 72 69 6e 67 2e 3c 2f 64 64 3e 0a 09 x string.</dd>..
3fd0: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 62 69 74 73 <dt><strong>bits
3fe0: 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 6e 3c </strong> <em>n<
3ff0: 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 4e /em></dt>..<dd>N
4000: 75 6d 62 65 72 20 6f 66 20 62 69 74 73 20 75 73 umber of bits us
4010: 65 64 20 66 6f 72 20 63 65 72 74 69 66 69 63 61 ed for certifica
4020: 74 65 20 73 69 67 6e 61 74 75 72 65 20 6b 65 79 te signature key
4030: 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f </dd>..<dt><stro
4040: 6e 67 3e 73 65 6c 66 5f 73 69 67 6e 65 64 3c 2f ng>self_signed</
4050: 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 62 6f 6f 6c strong> <em>bool
4060: 65 61 6e 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c ean</em></dt>..<
4070: 64 64 3e 49 73 20 63 65 72 74 69 66 69 63 61 74 dd>Is certificat
4080: 65 20 73 69 67 6e 61 74 75 72 65 20 73 65 6c 66 e signature self
4090: 20 73 69 67 6e 65 64 2e 3c 2f 64 64 3e 0a 0a 09 signed.</dd>...
40a0: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 68 61 31 <dt><strong>sha1
40b0: 5f 68 61 73 68 3c 2f 73 74 72 6f 6e 67 3e 20 3c _hash</strong> <
40c0: 65 6d 3e 68 61 73 68 3c 2f 65 6d 3e 3c 2f 64 74 em>hash</em></dt
40d0: 3e 0a 09 3c 64 64 3e 54 68 65 20 53 48 41 31 20 >..<dd>The SHA1
40e0: 68 61 73 68 20 6f 66 20 74 68 65 20 63 65 72 74 hash of the cert
40f0: 69 66 69 63 61 74 65 20 61 73 20 68 65 78 20 73 ificate as hex s
4100: 74 72 69 6e 67 2e 3c 2f 64 64 3e 0a 09 3c 64 74 tring.</dd>..<dt
4110: 3e 3c 73 74 72 6f 6e 67 3e 73 68 61 32 35 36 5f ><strong>sha256_
4120: 68 61 73 68 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 hash</strong> <e
4130: 6d 3e 68 61 73 68 3c 2f 65 6d 3e 3c 2f 64 74 3e m>hash</em></dt>
4140: 0a 09 3c 64 64 3e 54 68 65 20 53 48 41 32 35 36 ..<dd>The SHA256
4150: 20 68 61 73 68 20 6f 66 20 74 68 65 20 63 65 72 hash of the cer
4160: 74 69 66 69 63 61 74 65 20 61 73 20 68 65 78 20 tificate as hex
4170: 73 74 72 69 6e 67 2e 3c 2f 64 64 3e 0a 20 20 20 string.</dd>.
4180: 20 3c 2f 64 6c 3e 0a 3c 2f 62 6c 6f 63 6b 71 75 </dl>.</blockqu
4190: 6f 74 65 3e 0a 0a 20 20 20 20 3c 64 74 3e 3c 61 ote>.. <dt><a
41a0: 20 6e 61 6d 65 3d 22 74 6c 73 3a 3a 63 6f 6e 6e name="tls::conn
41b0: 65 63 74 69 6f 6e 22 3e 3c 73 74 72 6f 6e 67 3e ection"><strong>
41c0: 74 6c 73 3a 3a 63 6f 6e 6e 65 63 74 69 6f 6e 3c tls::connection<
41d0: 2f 73 74 72 6f 6e 67 3e 0a 20 20 20 20 3c 65 6d /strong>. <em
41e0: 3e 63 68 61 6e 6e 65 6c 3c 2f 65 6d 3e 3c 2f 61 >channel</em></a
41f0: 3e 3c 2f 64 74 3e 0a 20 20 20 20 3c 64 64 3e 52 ></dt>. <dd>R
4200: 65 74 75 72 6e 73 20 74 68 65 20 63 75 72 72 65 eturns the curre
4210: 6e 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 73 74 nt connection st
4220: 61 74 75 73 20 6f 66 20 61 6e 20 53 53 4c 20 63 atus of an SSL c
4230: 68 61 6e 6e 65 6c 2e 20 54 68 65 0a 09 72 65 73 hannel. The..res
4240: 75 6c 74 20 69 73 20 61 20 6c 69 73 74 20 6f 66 ult is a list of
4250: 20 6b 65 79 2d 76 61 6c 75 65 20 70 61 69 72 73 key-value pairs
4260: 20 64 65 73 63 72 69 62 69 6e 67 20 74 68 65 0a describing the.
4270: 09 63 6f 6e 6e 65 63 74 65 64 20 70 65 65 72 2e .connected peer.
4280: 3c 2f 64 64 3e 0a 3c 62 6c 6f 63 6b 71 75 6f 74 </dd>.<blockquot
4290: 65 3e 0a 09 3c 62 3e 53 53 4c 20 53 74 61 74 75 e>..<b>SSL Statu
42a0: 73 3c 2f 62 3e 0a 20 20 20 20 3c 64 6c 3e 0a 09 s</b>. <dl>..
42b0: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 74 61 74 <dt><strong>stat
42c0: 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 73 e</strong> <em>s
42d0: 74 61 74 65 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 tate</em></dt>..
42e0: 3c 64 64 3e 53 74 61 74 65 20 6f 66 20 74 68 65 <dd>State of the
42f0: 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 3c 2f 64 64 connection.</dd
4300: 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 >..<dt><strong>s
4310: 65 72 76 65 72 6e 61 6d 65 3c 2f 73 74 72 6f 6e ervername</stron
4320: 67 3e 20 3c 65 6d 3e 6e 61 6d 65 3c 2f 65 6d 3e g> <em>name</em>
4330: 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 68 65 20 6e </dt>..<dd>The n
4340: 61 6d 65 20 6f 66 20 74 68 65 20 63 6f 6e 6e 65 ame of the conne
4350: 63 74 65 64 20 74 6f 20 73 65 72 76 65 72 2e 3c cted to server.<
4360: 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e /dd>..<dt><stron
4370: 67 3e 70 72 6f 74 6f 63 6f 6c 3c 2f 73 74 72 6f g>protocol</stro
4380: 6e 67 3e 20 3c 65 6d 3e 76 65 72 73 69 6f 6e 3c ng> <em>version<
4390: 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 /em></dt>..<dd>T
43a0: 68 65 20 70 72 6f 74 6f 63 6f 6c 20 76 65 72 73 he protocol vers
43b0: 69 6f 6e 20 75 73 65 64 20 66 6f 72 20 74 68 65 ion used for the
43c0: 20 63 6f 6e 6e 65 63 74 69 6f 6e 3a 0a 09 20 20 connection:..
43d0: 20 20 53 53 4c 32 2c 20 53 53 4c 33 2c 20 54 4c SSL2, SSL3, TL
43e0: 53 31 2c 20 54 4c 53 31 2e 31 2c 20 54 4c 53 31 S1, TLS1.1, TLS1
43f0: 2e 32 2c 20 54 4c 53 31 2e 33 2c 20 6f 72 20 75 .2, TLS1.3, or u
4400: 6e 6b 6e 6f 77 6e 2e 3c 2f 64 64 3e 0a 09 3c 64 nknown.</dd>..<d
4410: 74 3e 3c 73 74 72 6f 6e 67 3e 72 65 6e 65 67 6f t><strong>renego
4420: 74 69 61 74 69 6f 6e 3c 2f 73 74 72 6f 6e 67 3e tiation</strong>
4430: 20 3c 65 6d 3e 62 6f 6f 6c 65 61 6e 3c 2f 65 6d <em>boolean</em
4440: 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 57 68 65 74 ></dt>..<dd>Whet
4450: 68 65 72 20 70 72 6f 74 6f 63 6f 6c 20 72 65 6e her protocol ren
4460: 65 67 6f 74 69 61 74 69 6f 6e 20 69 73 20 73 75 egotiation is su
4470: 70 70 6f 72 74 65 64 20 6f 72 20 6e 6f 74 2e 3c pported or not.<
4480: 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e /dd>..<dt><stron
4490: 67 3e 73 65 63 75 72 69 74 79 6c 65 76 65 6c 3c g>securitylevel<
44a0: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 6c 65 76 /strong> <em>lev
44b0: 65 6c 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 el</em></dt>..<d
44c0: 64 3e 54 68 65 20 73 65 63 75 72 69 74 79 20 6c d>The security l
44d0: 65 76 65 6c 20 75 73 65 64 20 66 6f 72 20 73 65 evel used for se
44e0: 6c 65 63 74 69 6f 6e 20 6f 66 20 63 69 70 68 65 lection of ciphe
44f0: 72 73 2c 20 6b 65 79 20 73 69 7a 65 2c 20 65 74 rs, key size, et
4500: 63 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 c.</dd>..<dt><st
4510: 72 6f 6e 67 3e 73 65 73 73 69 6f 6e 5f 72 65 75 rong>session_reu
4520: 73 65 64 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d sed</strong> <em
4530: 3e 62 6f 6f 6c 65 61 6e 3c 2f 65 6d 3e 3c 2f 64 >boolean</em></d
4540: 74 3e 0a 09 3c 64 64 3e 57 68 65 74 68 65 72 20 t>..<dd>Whether
4550: 74 68 65 20 73 65 73 73 69 6f 6e 20 68 61 73 20 the session has
4560: 62 65 65 6e 20 72 65 75 73 65 64 20 6f 72 20 6e been reused or n
4570: 6f 74 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 ot.</dd>..<dt><s
4580: 74 72 6f 6e 67 3e 69 73 5f 73 65 72 76 65 72 3c trong>is_server<
4590: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 62 6f 6f /strong> <em>boo
45a0: 6c 65 61 6e 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 lean</em></dt>..
45b0: 3c 64 64 3e 57 68 65 74 68 65 72 20 74 68 65 20 <dd>Whether the
45c0: 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 73 20 63 6f connection is co
45d0: 6e 66 69 67 75 72 65 64 20 61 73 20 61 20 73 65 nfigured as a se
45e0: 72 76 65 72 20 28 31 29 20 6f 72 20 63 6c 69 65 rver (1) or clie
45f0: 6e 74 20 28 30 29 2e 3c 2f 64 64 3e 0a 09 3c 64 nt (0).</dd>..<d
4600: 74 3e 3c 73 74 72 6f 6e 67 3e 63 6f 6d 70 72 65 t><strong>compre
4610: 73 73 69 6f 6e 3c 2f 73 74 72 6f 6e 67 3e 20 3c ssion</strong> <
4620: 65 6d 3e 6d 6f 64 65 3c 2f 65 6d 3e 3c 2f 64 74 em>mode</em></dt
4630: 3e 0a 09 3c 64 64 3e 43 6f 6d 70 72 65 73 73 69 >..<dd>Compressi
4640: 6f 6e 20 6d 65 74 68 6f 64 2e 3c 2f 64 64 3e 0a on method.</dd>.
4650: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 65 78 70 .<dt><strong>exp
4660: 61 6e 73 69 6f 6e 3c 2f 73 74 72 6f 6e 67 3e 20 ansion</strong>
4670: 3c 65 6d 3e 6d 6f 64 65 3c 2f 65 6d 3e 3c 2f 64 <em>mode</em></d
4680: 74 3e 0a 09 3c 64 64 3e 45 78 70 61 6e 73 69 6f t>..<dd>Expansio
4690: 6e 20 6d 65 74 68 6f 64 2e 3c 2f 64 64 3e 0a 20 n method.</dd>.
46a0: 20 20 20 3c 2f 64 6c 3e 0a 3c 2f 62 6c 6f 63 6b </dl>.</block
46b0: 71 75 6f 74 65 3e 0a 3c 62 6c 6f 63 6b 71 75 6f quote>.<blockquo
46c0: 74 65 3e 0a 09 3c 62 3e 43 69 70 68 65 72 20 49 te>..<b>Cipher I
46d0: 6e 66 6f 3c 2f 62 3e 0a 20 20 20 20 3c 64 6c 3e nfo</b>. <dl>
46e0: 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 63 69 ..<dt><strong>ci
46f0: 70 68 65 72 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 pher</strong> <e
4700: 6d 3e 63 69 70 68 65 72 3c 2f 65 6d 3e 3c 2f 64 m>cipher</em></d
4710: 74 3e 0a 09 3c 64 64 3e 54 68 65 20 63 75 72 72 t>..<dd>The curr
4720: 65 6e 74 20 63 69 70 68 65 72 20 69 6e 20 75 73 ent cipher in us
4730: 65 20 66 6f 72 20 74 68 65 20 63 6f 6e 6e 65 63 e for the connec
4740: 74 69 6f 6e 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e tion.</dd>..<dt>
4750: 3c 73 74 72 6f 6e 67 3e 73 74 61 6e 64 61 72 64 <strong>standard
4760: 5f 6e 61 6d 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c _name</strong> <
4770: 65 6d 3e 6e 61 6d 65 3c 2f 65 6d 3e 3c 2f 64 74 em>name</em></dt
4780: 3e 0a 09 3c 64 64 3e 54 68 65 20 73 74 61 6e 64 >..<dd>The stand
4790: 61 72 64 20 52 46 43 20 6e 61 6d 65 20 6f 66 20 ard RFC name of
47a0: 63 69 70 68 65 72 2e 3c 2f 64 64 3e 0a 09 3c 64 cipher.</dd>..<d
47b0: 74 3e 3c 73 74 72 6f 6e 67 3e 62 69 74 73 3c 2f t><strong>bits</
47c0: 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 6e 3c 2f 65 strong> <em>n</e
47d0: 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 68 65 m></dt>..<dd>The
47e0: 20 6e 75 6d 62 65 72 20 6f 66 20 70 72 6f 63 65 number of proce
47f0: 73 73 65 64 20 62 69 74 73 20 75 73 65 64 20 66 ssed bits used f
4800: 6f 72 20 63 69 70 68 65 72 2e 3c 2f 64 64 3e 0a or cipher.</dd>.
4810: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 65 63 .<dt><strong>sec
4820: 72 65 74 5f 62 69 74 73 3c 2f 73 74 72 6f 6e 67 ret_bits</strong
4830: 3e 20 3c 65 6d 3e 6e 3c 2f 65 6d 3e 3c 2f 64 74 > <em>n</em></dt
4840: 3e 0a 09 3c 64 64 3e 54 68 65 20 6e 75 6d 62 65 >..<dd>The numbe
4850: 72 20 6f 66 20 73 65 63 72 65 74 20 62 69 74 73 r of secret bits
4860: 20 75 73 65 64 20 66 6f 72 20 63 69 70 68 65 72 used for cipher
4870: 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 .</dd>..<dt><str
4880: 6f 6e 67 3e 6d 69 6e 5f 76 65 72 73 69 6f 6e 3c ong>min_version<
4890: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 76 65 72 /strong> <em>ver
48a0: 73 69 6f 6e 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 sion</em></dt>..
48b0: 3c 64 64 3e 54 68 65 20 6d 69 6e 69 6d 75 6d 20 <dd>The minimum
48c0: 70 72 6f 74 6f 63 6f 6c 20 76 65 72 73 69 6f 6e protocol version
48d0: 20 66 6f 72 20 63 69 70 68 65 72 2e 3c 2f 64 64 for cipher.</dd
48e0: 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 69 >..<dt><strong>i
48f0: 64 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 69 d</strong> <em>i
4900: 64 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 d</em></dt>..<dd
4910: 3e 54 68 65 20 4f 70 65 6e 53 53 4c 20 63 69 70 >The OpenSSL cip
4920: 68 65 72 20 69 64 2e 3c 2f 64 64 3e 0a 09 3c 64 her id.</dd>..<d
4930: 74 3e 3c 73 74 72 6f 6e 67 3e 64 65 73 63 72 69 t><strong>descri
4940: 70 74 69 6f 6e 3c 2f 73 74 72 6f 6e 67 3e 20 3c ption</strong> <
4950: 65 6d 3e 73 74 72 69 6e 67 3c 2f 65 6d 3e 3c 2f em>string</em></
4960: 64 74 3e 0a 09 3c 64 64 3e 41 20 74 65 78 74 20 dt>..<dd>A text
4970: 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 description of t
4980: 68 65 20 63 69 70 68 65 72 2e 3c 2f 64 64 3e 0a he cipher.</dd>.
4990: 20 20 20 20 3c 2f 64 6c 3e 0a 3c 2f 62 6c 6f 63 </dl>.</bloc
49a0: 6b 71 75 6f 74 65 3e 0a 3c 62 6c 6f 63 6b 71 75 kquote>.<blockqu
49b0: 6f 74 65 3e 0a 09 3c 62 3e 53 65 73 73 69 6f 6e ote>..<b>Session
49c0: 20 49 6e 66 6f 3c 2f 62 3e 0a 20 20 20 20 3c 64 Info</b>. <d
49d0: 6c 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e l>..<dt><strong>
49e0: 61 6c 70 6e 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 alpn</strong> <e
49f0: 6d 3e 70 72 6f 74 6f 63 6f 6c 3c 2f 65 6d 3e 3c m>protocol</em><
4a00: 2f 64 74 3e 0a 09 3c 64 64 3e 54 68 65 20 70 72 /dt>..<dd>The pr
4a10: 6f 74 6f 63 6f 6c 20 73 65 6c 65 63 74 65 64 20 otocol selected
4a20: 61 66 74 65 72 20 41 70 70 6c 69 63 61 74 69 6f after Applicatio
4a30: 6e 2d 4c 61 79 65 72 20 50 72 6f 74 6f 63 6f 6c n-Layer Protocol
4a40: 0a 09 20 20 20 20 4e 65 67 6f 74 69 61 74 69 6f .. Negotiatio
4a50: 6e 20 28 41 4c 50 4e 29 2e 3c 2f 64 64 3e 0a 09 n (ALPN).</dd>..
4a60: 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 72 65 73 75 <dt><strong>resu
4a70: 6d 61 62 6c 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c mable</strong> <
4a80: 65 6d 3e 62 6f 6f 6c 65 61 6e 3c 2f 65 6d 3e 3c em>boolean</em><
4a90: 2f 64 74 3e 0a 09 3c 64 64 3e 43 61 6e 20 74 68 /dt>..<dd>Can th
4aa0: 65 20 73 65 73 73 69 6f 6e 20 62 65 20 72 65 73 e session be res
4ab0: 75 6d 65 64 20 6f 72 20 6e 6f 74 2e 3c 2f 64 64 umed or not.</dd
4ac0: 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 >..<dt><strong>s
4ad0: 74 61 72 74 5f 74 69 6d 65 3c 2f 73 74 72 6f 6e tart_time</stron
4ae0: 67 3e 20 3c 65 6d 3e 73 65 63 6f 6e 64 73 3c 2f g> <em>seconds</
4af0: 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 54 69 em></dt>..<dd>Ti
4b00: 6d 65 20 73 69 6e 63 65 20 73 65 73 73 69 6f 6e me since session
4b10: 20 73 74 61 72 74 65 64 20 69 6e 20 73 65 63 6f started in seco
4b20: 6e 64 73 20 73 69 6e 63 65 20 65 70 6f 63 68 2e nds since epoch.
4b30: 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f </dd>..<dt><stro
4b40: 6e 67 3e 74 69 6d 65 6f 75 74 3c 2f 73 74 72 6f ng>timeout</stro
4b50: 6e 67 3e 20 3c 65 6d 3e 73 65 63 6f 6e 64 73 3c ng> <em>seconds<
4b60: 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e 4d /em></dt>..<dd>M
4b70: 61 78 20 64 75 72 61 74 69 6f 6e 20 6f 66 20 73 ax duration of s
4b80: 65 73 73 69 6f 6e 20 69 6e 20 73 65 63 6f 6e 64 ession in second
4b90: 73 20 62 65 66 6f 72 65 20 74 69 6d 65 2d 6f 75 s before time-ou
4ba0: 74 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c 73 74 t.</dd>..<dt><st
4bb0: 72 6f 6e 67 3e 6c 69 66 65 74 69 6d 65 3c 2f 73 rong>lifetime</s
4bc0: 74 72 6f 6e 67 3e 20 3c 65 6d 3e 73 65 63 6f 6e trong> <em>secon
4bd0: 64 73 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 ds</em></dt>..<d
4be0: 64 3e 53 65 73 73 69 6f 6e 20 74 69 63 6b 65 74 d>Session ticket
4bf0: 20 6c 69 66 65 74 69 6d 65 20 68 69 6e 74 20 69 lifetime hint i
4c00: 6e 20 73 65 63 6f 6e 64 73 2e 3c 2f 64 64 3e 0a n seconds.</dd>.
4c10: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 65 73 .<dt><strong>ses
4c20: 73 69 6f 6e 5f 69 64 3c 2f 73 74 72 6f 6e 67 3e sion_id</strong>
4c30: 20 3c 65 6d 3e 62 69 6e 61 72 79 5f 73 74 72 69 <em>binary_stri
4c40: 6e 67 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 ng</em></dt>..<d
4c50: 64 3e 55 6e 69 71 75 65 20 73 65 73 73 69 6f 6e d>Unique session
4c60: 20 69 64 20 66 6f 72 20 75 73 65 20 69 6e 20 72 id for use in r
4c70: 65 73 75 6d 69 6e 67 20 74 68 65 20 73 65 73 73 esuming the sess
4c80: 69 6f 6e 2e 3c 2f 64 64 3e 0a 09 3c 64 74 3e 3c ion.</dd>..<dt><
4c90: 73 74 72 6f 6e 67 3e 73 65 73 73 69 6f 6e 5f 74 strong>session_t
4ca0: 69 63 6b 65 74 3c 2f 73 74 72 6f 6e 67 3e 20 3c icket</strong> <
4cb0: 65 6d 3e 62 69 6e 61 72 79 5f 73 74 72 69 6e 67 em>binary_string
4cc0: 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 64 3e </em></dt>..<dd>
4cd0: 55 6e 69 71 75 65 20 73 65 73 73 69 6f 6e 20 74 Unique session t
4ce0: 69 63 6b 65 74 20 66 6f 72 20 75 73 65 20 69 6e icket for use in
4cf0: 20 72 65 73 75 6d 69 6e 67 20 74 68 65 20 73 65 resuming the se
4d00: 73 73 69 6f 6e 2e 3c 2f 64 64 3e 0a 09 3c 64 74 ssion.</dd>..<dt
4d10: 3e 3c 73 74 72 6f 6e 67 3e 74 69 63 6b 65 74 5f ><strong>ticket_
4d20: 61 70 70 5f 64 61 74 61 3c 2f 73 74 72 6f 6e 67 app_data</strong
4d30: 3e 20 3c 65 6d 3e 62 69 6e 61 72 79 5f 73 74 72 > <em>binary_str
4d40: 69 6e 67 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c ing</em></dt>..<
4d50: 64 64 3e 55 6e 69 71 75 65 20 73 65 73 73 69 6f dd>Unique sessio
4d60: 6e 20 74 69 63 6b 65 74 20 61 70 70 6c 69 63 61 n ticket applica
4d70: 74 69 6f 6e 20 64 61 74 61 2e 3c 2f 64 64 3e 0a tion data.</dd>.
4d80: 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 6d 61 73 .<dt><strong>mas
4d90: 74 65 72 5f 6b 65 79 3c 2f 73 74 72 6f 6e 67 3e ter_key</strong>
4da0: 20 3c 65 6d 3e 62 69 6e 61 72 79 5f 73 74 72 69 <em>binary_stri
4db0: 6e 67 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c 64 ng</em></dt>..<d
4dc0: 64 3e 55 6e 69 71 75 65 20 73 65 73 73 69 6f 6e d>Unique session
4dd0: 20 6d 61 73 74 65 72 20 6b 65 79 2e 3c 2f 64 64 master key.</dd
4de0: 3e 0a 09 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 73 >..<dt><strong>s
4df0: 65 73 73 69 6f 6e 5f 63 61 63 68 65 5f 6d 6f 64 ession_cache_mod
4e00: 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 6d e</strong> <em>m
4e10: 6f 64 65 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 09 3c ode</em></dt>..<
4e20: 64 64 3e 53 65 72 76 65 72 20 63 61 63 68 65 20 dd>Server cache
4e30: 6d 6f 64 65 20 28 63 6c 69 65 6e 74 2c 20 73 65 mode (client, se
4e40: 72 76 65 72 2c 20 6f 72 20 62 6f 74 68 29 2e 3c rver, or both).<
4e50: 2f 64 64 3e 0a 20 20 20 20 3c 2f 64 6c 3e 0a 3c /dd>. </dl>.<
4e60: 2f 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a 0a 20 20 /blockquote>..
4e70: 20 20 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 74 <dt><a name="t
4e80: 6c 73 3a 3a 63 69 70 68 65 72 73 22 3e 3c 73 74 ls::ciphers"><st
4e90: 72 6f 6e 67 3e 74 6c 73 3a 3a 63 69 70 68 65 72 rong>tls::cipher
4ea0: 73 3c 2f 73 74 72 6f 6e 67 3e 0a 20 20 20 20 3c s</strong>. <
4eb0: 65 6d 3e 3f 70 72 6f 74 6f 63 6f 6c 3f 20 3f 76 em>?protocol? ?v
4ec0: 65 72 62 6f 73 65 3f 20 3f 73 75 70 70 6f 72 74 erbose? ?support
4ed0: 65 64 3f 3c 2f 65 6d 3e 3c 2f 61 3e 3c 2f 64 74 ed?</em></a></dt
4ee0: 3e 0a 20 20 20 20 3c 64 64 3e 57 69 74 68 6f 75 >. <dd>Withou
4ef0: 74 20 61 6e 79 20 61 72 67 73 2c 20 72 65 74 75 t any args, retu
4f00: 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 61 6c rns a list of al
4f10: 6c 20 63 69 70 68 65 72 73 2e 20 57 69 74 68 0a l ciphers. With.
4f20: 09 3c 65 6d 3e 70 72 6f 74 6f 63 6f 6c 3c 2f 65 .<em>protocol</e
4f30: 6d 3e 2c 20 6f 6e 6c 79 20 74 68 65 20 63 69 70 m>, only the cip
4f40: 68 65 72 73 20 73 75 70 70 6f 72 74 65 64 20 66 hers supported f
4f50: 6f 72 20 74 68 61 74 20 70 72 6f 74 6f 63 6f 6c or that protocol
4f60: 0a 09 61 72 65 20 72 65 74 75 72 6e 65 64 20 77 ..are returned w
4f70: 68 65 72 65 20 3c 65 6d 3e 70 72 6f 74 6f 63 6f here <em>protoco
4f80: 6c 3c 2f 65 6d 3e 20 6d 75 73 74 20 62 65 20 6f l</em> must be o
4f90: 6e 65 20 6f 66 20 3c 62 3e 73 73 6c 32 2c 20 73 ne of <b>ssl2, s
4fa0: 73 6c 33 2c 0a 09 74 6c 73 31 2c 20 74 6c 73 31 sl3,..tls1, tls1
4fb0: 2e 31 2c 20 74 6c 73 31 2e 32 2c 3c 2f 62 3e 20 .1, tls1.2,</b>
4fc0: 6f 72 20 3c 62 3e 74 6c 73 31 2e 33 3c 2f 62 3e or <b>tls1.3</b>
4fd0: 2e 20 49 66 20 3c 65 6d 3e 76 65 72 62 6f 73 65 . If <em>verbose
4fe0: 3c 2f 65 6d 3e 20 69 73 0a 09 73 70 65 63 69 66 </em> is..specif
4ff0: 69 65 64 20 61 73 20 74 72 75 65 20 74 68 65 6e ied as true then
5000: 20 61 20 76 65 72 62 6f 73 65 2c 20 68 75 6d 61 a verbose, huma
5010: 6e 20 72 65 61 64 61 62 6c 65 20 6c 69 73 74 20 n readable list
5020: 69 73 20 72 65 74 75 72 6e 65 64 0a 09 77 69 74 is returned..wit
5030: 68 20 61 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 h additional inf
5040: 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 ormation on the
5050: 63 69 70 68 65 72 2e 20 49 66 20 3c 65 6d 3e 73 cipher. If <em>s
5060: 75 70 70 6f 72 74 65 64 3c 2f 65 6d 3e 0a 09 69 upported</em>..i
5070: 73 20 73 70 65 63 69 66 69 65 64 20 61 73 20 74 s specified as t
5080: 72 75 65 2c 20 74 68 65 6e 20 6f 6e 6c 79 20 74 rue, then only t
5090: 68 65 20 63 69 70 68 65 72 73 20 73 75 70 70 6f he ciphers suppo
50a0: 72 74 65 64 20 66 6f 72 20 70 72 6f 74 6f 63 6f rted for protoco
50b0: 6c 0a 09 77 69 6c 6c 20 62 65 20 6c 69 73 74 65 l..will be liste
50c0: 64 2e 3c 2f 64 64 3e 0a 0a 20 20 20 20 3c 64 74 d.</dd>.. <dt
50d0: 3e 3c 61 20 6e 61 6d 65 3d 22 74 6c 73 3a 3a 64 ><a name="tls::d
50e0: 69 67 65 73 74 73 22 3e 3c 73 74 72 6f 6e 67 3e igests"><strong>
50f0: 74 6c 73 3a 3a 64 69 67 65 73 74 73 3c 2f 73 74 tls::digests</st
5100: 72 6f 6e 67 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 20 rong></a></dt>.
5110: 20 20 20 3c 64 64 3e 52 65 74 75 72 6e 73 20 61 <dd>Returns a
5120: 20 6c 69 73 74 20 6f 66 20 74 68 65 20 68 61 73 list of the has
5130: 68 20 61 6c 67 6f 72 69 74 68 6d 73 20 66 6f 72 h algorithms for
5140: 20 3c 62 3e 74 6c 73 3a 3a 64 69 67 65 73 74 3c <b>tls::digest<
5150: 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 64 64 /b> command.</dd
5160: 3e 0a 0a 20 20 20 20 3c 64 74 3e 3c 61 20 6e 61 >.. <dt><a na
5170: 6d 65 3d 22 74 6c 73 3a 3a 6d 61 63 73 22 3e 3c me="tls::macs"><
5180: 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 6d 61 63 73 strong>tls::macs
5190: 3c 2f 73 74 72 6f 6e 67 3e 3c 2f 61 3e 3c 2f 64 </strong></a></d
51a0: 74 3e 0a 20 20 20 20 3c 64 64 3e 52 65 74 75 72 t>. <dd>Retur
51b0: 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 ns a list of the
51c0: 20 61 76 61 69 6c 61 62 6c 65 20 4d 65 73 73 61 available Messa
51d0: 67 65 20 41 75 74 68 65 6e 74 69 63 61 74 69 6f ge Authenticatio
51e0: 6e 20 43 6f 64 65 73 20 28 4d 41 43 29 20 66 6f n Codes (MAC) fo
51f0: 72 0a 09 74 68 65 20 3c 62 3e 74 6c 73 3a 3a 64 r..the <b>tls::d
5200: 69 67 65 73 74 3c 2f 62 3e 20 63 6f 6d 6d 61 6e igest</b> comman
5210: 64 2e 3c 2f 64 64 3e 0a 0a 20 20 20 20 3c 64 74 d.</dd>.. <dt
5220: 3e 3c 61 20 6e 61 6d 65 3d 22 74 6c 73 3a 3a 70 ><a name="tls::p
5230: 72 6f 74 6f 63 6f 6c 73 22 3e 3c 73 74 72 6f 6e rotocols"><stron
5240: 67 3e 74 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 g>tls::protocols
5250: 3c 2f 73 74 72 6f 6e 67 3e 3c 2f 61 3e 3c 2f 64 </strong></a></d
5260: 74 3e 0a 20 20 20 20 3c 64 64 3e 52 65 74 75 72 t>. <dd>Retur
5270: 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 73 75 70 ns a list of sup
5280: 70 6f 72 74 65 64 20 70 72 6f 74 6f 63 6f 6c 73 ported protocols
5290: 2e 20 56 61 6c 69 64 20 76 61 6c 75 65 73 20 61 . Valid values a
52a0: 72 65 3a 0a 09 3c 62 3e 73 73 6c 32 3c 2f 62 3e re:..<b>ssl2</b>
52b0: 2c 20 3c 62 3e 73 73 6c 33 3c 2f 62 3e 2c 20 3c , <b>ssl3</b>, <
52c0: 62 3e 74 6c 73 31 3c 2f 62 3e 2c 20 3c 62 3e 74 b>tls1</b>, <b>t
52d0: 6c 73 31 2e 31 3c 2f 62 3e 2c 20 3c 62 3e 74 6c ls1.1</b>, <b>tl
52e0: 73 31 2e 32 3c 2f 62 3e 2c 0a 09 61 6e 64 20 3c s1.2</b>,..and <
52f0: 62 3e 74 6c 73 31 2e 33 3c 2f 62 3e 2e 20 45 78 b>tls1.3</b>. Ex
5300: 61 63 74 20 6c 69 73 74 20 64 65 70 65 6e 64 73 act list depends
5310: 20 6f 6e 20 4f 70 65 6e 53 53 4c 20 76 65 72 73 on OpenSSL vers
5320: 69 6f 6e 20 61 6e 64 0a 09 63 6f 6d 70 69 6c 65 ion and..compile
5330: 20 74 69 6d 65 20 66 6c 61 67 73 2e 3c 2f 64 64 time flags.</dd
5340: 3e 0a 0a 20 20 20 20 3c 64 74 3e 3c 61 20 6e 61 >.. <dt><a na
5350: 6d 65 3d 22 74 6c 73 3a 3a 76 65 72 73 69 6f 6e me="tls::version
5360: 22 3e 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 76 "><strong>tls::v
5370: 65 72 73 69 6f 6e 3c 2f 73 74 72 6f 6e 67 3e 3c ersion</strong><
5380: 2f 61 3e 3c 2f 64 74 3e 0a 20 20 20 20 3c 64 64 /a></dt>. <dd
5390: 3e 52 65 74 75 72 6e 73 20 74 68 65 20 4f 70 65 >Returns the Ope
53a0: 6e 53 53 4c 20 76 65 72 73 69 6f 6e 20 73 74 72 nSSL version str
53b0: 69 6e 67 2e 3c 2f 64 64 3e 0a 0a 20 20 20 20 3c ing.</dd>.. <
53c0: 62 72 3e 0a 20 20 20 20 3c 64 74 3e 3c 61 20 6e br>. <dt><a n
53d0: 61 6d 65 3d 22 74 6c 73 3a 3a 64 69 67 65 73 74 ame="tls::digest
53e0: 22 3e 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 64 "><strong>tls::d
53f0: 69 67 65 73 74 3c 2f 73 74 72 6f 6e 67 3e 20 3c igest</strong> <
5400: 65 6d 3e 74 79 70 65 20 3f 2d 62 69 6e 7c 2d 68 em>type ?-bin|-h
5410: 65 78 3f 0a 09 3f 2d 6b 65 79 20 68 6d 61 63 5f ex?..?-key hmac_
5420: 6b 65 79 3f 20 5b 2d 66 69 6c 65 20 66 69 6c 65 key? [-file file
5430: 6e 61 6d 65 20 7c 20 2d 63 68 61 6e 20 63 68 61 name | -chan cha
5440: 6e 6e 65 6c 20 7c 20 3f 2d 64 61 74 61 3f 20 64 nnel | ?-data? d
5450: 61 74 61 5d 3c 2f 65 6d 3e 3c 2f 61 3e 3c 2f 64 ata]</em></a></d
5460: 74 3e 0a 20 20 20 20 3c 64 64 3e 43 61 6c 63 75 t>. <dd>Calcu
5470: 6c 61 74 65 20 74 68 65 20 6d 65 73 73 61 67 65 late the message
5480: 20 64 69 67 65 73 74 20 66 6f 72 20 3c 65 6d 3e digest for <em>
5490: 64 61 74 61 3c 2f 65 6d 3e 20 6f 72 20 66 69 6c data</em> or fil
54a0: 65 20 3c 65 6d 3e 66 69 6c 65 6e 61 6d 65 3c 2f e <em>filename</
54b0: 65 6d 3e 0a 09 75 73 69 6e 67 20 3c 65 6d 3e 74 em>..using <em>t
54c0: 79 70 65 3c 2f 65 6d 3e 20 68 61 73 68 20 61 6c ype</em> hash al
54d0: 67 6f 72 69 74 68 6d 2e 20 52 65 74 75 72 6e 73 gorithm. Returns
54e0: 20 76 61 6c 75 65 20 61 73 20 61 20 68 65 78 20 value as a hex
54f0: 73 74 72 69 6e 67 0a 09 28 64 65 66 61 75 6c 74 string..(default
5500: 29 20 6f 72 20 61 73 20 61 20 62 69 6e 61 72 79 ) or as a binary
5510: 20 76 61 6c 75 65 20 77 69 74 68 20 3c 65 6d 3e value with <em>
5520: 2d 62 69 6e 3c 2f 65 6d 3e 20 6f 70 74 69 6f 6e -bin</em> option
5530: 2e 20 55 73 69 6e 67 0a 09 3c 65 6d 3e 2d 63 68 . Using..<em>-ch
5540: 61 6e 3c 2f 65 6d 3e 20 6f 70 74 69 6f 6e 2c 20 an</em> option,
5550: 61 20 73 74 61 63 6b 65 64 20 63 68 61 6e 6e 65 a stacked channe
5560: 6c 20 69 73 20 63 72 65 61 74 65 64 20 61 6e 64 l is created and
5570: 20 64 61 74 61 20 72 65 61 64 0a 09 66 72 6f 6d data read..from
5580: 20 74 68 65 20 63 68 61 6e 6e 65 6c 20 69 73 20 the channel is
5590: 75 73 65 64 20 74 6f 20 63 61 6c 63 75 6c 61 74 used to calculat
55a0: 65 20 61 20 6d 65 73 73 61 67 65 20 64 69 67 65 e a message dige
55b0: 73 74 20 77 69 74 68 20 74 68 65 20 72 65 73 75 st with the resu
55c0: 6c 74 0a 09 72 65 74 75 72 6e 65 64 20 77 69 74 lt..returned wit
55d0: 68 20 74 68 65 20 6c 61 73 74 20 72 65 61 64 20 h the last read
55e0: 6f 70 65 72 61 74 69 6f 6e 20 62 65 66 6f 72 65 operation before
55f0: 20 45 4f 46 2e 20 55 73 65 20 3c 65 6d 3e 2d 6b EOF. Use <em>-k
5600: 65 79 3c 2f 65 6d 3e 20 74 6f 0a 09 73 70 65 63 ey</em> to..spec
5610: 69 66 79 20 74 68 65 20 6b 65 79 20 61 6e 64 20 ify the key and
5620: 72 65 74 75 72 6e 20 61 20 48 61 73 68 65 64 20 return a Hashed
5630: 4d 65 73 73 61 67 65 20 41 75 74 68 65 6e 74 69 Message Authenti
5640: 63 61 74 69 6f 6e 20 43 6f 64 65 20 28 48 4d 41 cation Code (HMA
5650: 43 29 2e 0a 09 54 6f 20 73 61 6c 74 20 61 20 70 C)...To salt a p
5660: 61 73 73 77 6f 72 64 2c 20 61 70 70 65 6e 64 20 assword, append
5670: 6f 72 20 70 72 65 70 65 6e 64 20 74 68 65 20 73 or prepend the s
5680: 61 6c 74 20 74 65 78 74 20 74 6f 20 74 68 65 20 alt text to the
5690: 70 61 73 73 77 6f 72 64 2e 0a 09 54 79 70 65 20 password...Type
56a0: 63 61 6e 20 62 65 20 61 6e 79 20 4f 70 65 6e 53 can be any OpenS
56b0: 53 4c 20 73 75 70 70 6f 72 74 65 64 20 68 61 73 SL supported has
56c0: 68 20 61 6c 67 6f 72 69 74 68 6d 20 69 6e 63 6c h algorithm incl
56d0: 75 64 69 6e 67 3a 20 3c 62 3e 6d 64 34 3c 2f 62 uding: <b>md4</b
56e0: 3e 2c 0a 09 3c 62 3e 6d 64 35 3c 2f 62 3e 2c 20 >,..<b>md5</b>,
56f0: 3c 62 3e 73 68 61 31 3c 2f 62 3e 2c 20 3c 62 3e <b>sha1</b>, <b>
5700: 73 68 61 32 35 36 3c 2f 62 3e 2c 20 3c 62 3e 73 sha256</b>, <b>s
5710: 68 61 35 31 32 3c 2f 62 3e 2c 20 3c 62 3e 73 68 ha512</b>, <b>sh
5720: 61 33 2d 32 35 36 3c 2f 62 3e 2c 0a 09 65 74 63 a3-256</b>,..etc
5730: 2e 20 53 65 65 20 3c 62 3e 74 6c 73 3a 3a 64 69 . See <b>tls::di
5740: 67 65 73 74 73 3c 2f 62 3e 20 63 6f 6d 6d 61 6e gests</b> comman
5750: 64 20 66 6f 72 20 61 20 66 75 6c 6c 20 6c 69 73 d for a full lis
5760: 74 2e 3c 2f 64 64 3e 0a 0a 20 20 20 20 3c 64 74 t.</dd>.. <dt
5770: 3e 3c 61 20 6e 61 6d 65 3d 22 74 6c 73 3a 3a 6d ><a name="tls::m
5780: 64 34 22 3e 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a d4"><strong>tls:
5790: 3a 6d 64 34 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 :md4</strong> <e
57a0: 6d 3e 64 61 74 61 3c 2f 65 6d 3e 3c 2f 61 3e 3c m>data</em></a><
57b0: 2f 64 74 3e 0a 20 20 20 20 3c 64 64 3e 52 65 74 /dt>. <dd>Ret
57c0: 75 72 6e 73 20 74 68 65 20 4d 44 34 20 6d 65 73 urns the MD4 mes
57d0: 73 61 67 65 2d 64 69 67 65 73 74 20 66 6f 72 20 sage-digest for
57e0: 3c 65 6d 3e 64 61 74 61 3c 2f 65 6d 3e 20 61 73 <em>data</em> as
57f0: 20 61 20 68 65 78 20 73 74 72 69 6e 67 2e 3c 2f a hex string.</
5800: 64 64 3e 0a 0a 20 20 20 20 3c 64 74 3e 3c 61 20 dd>.. <dt><a
5810: 6e 61 6d 65 3d 22 74 6c 73 3a 3a 6d 64 35 22 3e name="tls::md5">
5820: 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 6d 64 35 <strong>tls::md5
5830: 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 64 61 </strong> <em>da
5840: 74 61 3c 2f 65 6d 3e 3c 2f 61 3e 3c 2f 64 74 3e ta</em></a></dt>
5850: 0a 20 20 20 20 3c 64 64 3e 52 65 74 75 72 6e 73 . <dd>Returns
5860: 20 74 68 65 20 4d 44 35 20 6d 65 73 73 61 67 65 the MD5 message
5870: 2d 64 69 67 65 73 74 20 66 6f 72 20 3c 65 6d 3e -digest for <em>
5880: 64 61 74 61 3c 2f 65 6d 3e 20 61 73 20 61 20 68 data</em> as a h
5890: 65 78 20 73 74 72 69 6e 67 2e 3c 2f 64 64 3e 0a ex string.</dd>.
58a0: 0a 20 20 20 20 3c 64 74 3e 3c 61 20 6e 61 6d 65 . <dt><a name
58b0: 3d 22 74 6c 73 3a 3a 73 68 61 31 22 3e 3c 73 74 ="tls::sha1"><st
58c0: 72 6f 6e 67 3e 74 6c 73 3a 3a 73 68 61 31 3c 2f rong>tls::sha1</
58d0: 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 64 61 74 61 strong> <em>data
58e0: 3c 2f 65 6d 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 20 </em></a></dt>.
58f0: 20 20 20 3c 64 64 3e 52 65 74 75 72 6e 73 20 74 <dd>Returns t
5900: 68 65 20 53 48 41 31 20 73 65 63 75 72 65 20 68 he SHA1 secure h
5910: 61 73 68 20 61 6c 67 6f 72 69 74 68 6d 20 64 69 ash algorithm di
5920: 67 65 73 74 20 66 6f 72 20 3c 65 6d 3e 64 61 74 gest for <em>dat
5930: 61 3c 2f 65 6d 3e 20 61 73 20 61 20 68 65 78 20 a</em> as a hex
5940: 73 74 72 69 6e 67 2e 3c 2f 64 64 3e 0a 0a 20 20 string.</dd>..
5950: 20 20 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 74 <dt><a name="t
5960: 6c 73 3a 3a 73 68 61 32 35 36 22 3e 3c 73 74 72 ls::sha256"><str
5970: 6f 6e 67 3e 74 6c 73 3a 3a 73 68 61 32 35 36 3c ong>tls::sha256<
5980: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 64 61 74 /strong> <em>dat
5990: 61 3c 2f 65 6d 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a a</em></a></dt>.
59a0: 20 20 20 20 3c 64 64 3e 52 65 74 75 72 6e 73 20 <dd>Returns
59b0: 74 68 65 20 53 48 41 2d 32 20 53 48 41 32 35 36 the SHA-2 SHA256
59c0: 20 73 65 63 75 72 65 20 68 61 73 68 20 61 6c 67 secure hash alg
59d0: 6f 72 69 74 68 6d 20 64 69 67 65 73 74 20 66 6f orithm digest fo
59e0: 72 20 3c 65 6d 3e 64 61 74 61 3c 2f 65 6d 3e 20 r <em>data</em>
59f0: 61 73 20 61 20 68 65 78 20 73 74 72 69 6e 67 2e as a hex string.
5a00: 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e 0a 0a 3c 68 33 </dd>.</dl>..<h3
5a10: 3e 3c 61 20 6e 61 6d 65 3d 22 43 41 4c 4c 42 41 ><a name="CALLBA
5a20: 43 4b 20 4f 50 54 49 4f 4e 53 22 3e 43 41 4c 4c CK OPTIONS">CALL
5a30: 42 41 43 4b 20 4f 50 54 49 4f 4e 53 3c 2f 61 3e BACK OPTIONS</a>
5a40: 3c 2f 68 33 3e 0a 0a 3c 70 3e 0a 41 73 20 69 6e </h3>..<p>.As in
5a50: 64 69 63 61 74 65 64 20 61 62 6f 76 65 2c 20 69 dicated above, i
5a60: 6e 64 69 76 69 64 75 61 6c 20 63 68 61 6e 6e 65 ndividual channe
5a70: 6c 73 20 63 61 6e 20 62 65 20 67 69 76 65 6e 20 ls can be given
5a80: 74 68 65 69 72 20 6f 77 6e 20 63 61 6c 6c 62 61 their own callba
5a90: 63 6b 73 0a 74 6f 20 68 61 6e 64 6c 65 20 69 6e cks.to handle in
5aa0: 74 65 72 6d 65 64 69 61 74 65 20 70 72 6f 63 65 termediate proce
5ab0: 73 73 69 6e 67 20 62 79 20 74 68 65 20 4f 70 65 ssing by the Ope
5ac0: 6e 53 53 4c 20 6c 69 62 72 61 72 79 2c 20 75 73 nSSL library, us
5ad0: 69 6e 67 20 74 68 65 0a 3c 73 74 72 6f 6e 67 3e ing the.<strong>
5ae0: 2d 63 6f 6d 6d 61 6e 64 3c 2f 73 74 72 6f 6e 67 -command</strong
5af0: 3e 2c 20 3c 73 74 72 6f 6e 67 3e 2d 70 61 73 73 >, <strong>-pass
5b00: 77 6f 72 64 3c 2f 73 74 72 6f 6e 67 3e 2c 20 61 word</strong>, a
5b10: 6e 64 0a 3c 73 74 72 6f 6e 67 3e 2d 76 61 6c 69 nd.<strong>-vali
5b20: 64 61 74 65 5f 63 6f 6d 6d 61 6e 64 3c 2f 73 74 date_command</st
5b30: 72 6f 6e 67 3e 20 6f 70 74 69 6f 6e 73 20 70 61 rong> options pa
5b40: 73 73 65 64 20 74 6f 20 65 69 74 68 65 72 20 6f ssed to either o
5b50: 66 0a 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 73 f.<strong>tls::s
5b60: 6f 63 6b 65 74 3c 2f 73 74 72 6f 6e 67 3e 20 6f ocket</strong> o
5b70: 72 20 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 69 r <strong>tls::i
5b80: 6d 70 6f 72 74 3c 2f 73 74 72 6f 6e 67 3e 2e 0a mport</strong>..
5b90: 49 66 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 If the callback
5ba0: 67 65 6e 65 72 61 74 65 73 20 61 6e 20 65 72 72 generates an err
5bb0: 6f 72 2c 20 74 68 65 20 3c 62 3e 62 67 65 72 72 or, the <b>bgerr
5bc0: 6f 72 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 77 or</b> command w
5bd0: 69 74 68 20 62 65 0a 69 6e 76 6f 6b 65 64 20 77 ith be.invoked w
5be0: 69 74 68 20 74 68 65 20 65 72 72 6f 72 20 69 6e ith the error in
5bf0: 66 6f 72 6d 61 74 69 6f 6e 2e 0a 3c 2f 70 3e 0a formation..</p>.
5c00: 0a 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a 3c 64 .<blockquote>.<d
5c10: 6c 3e 0a 0a 20 20 20 20 3c 64 74 3e 3c 73 74 72 l>.. <dt><str
5c20: 6f 6e 67 3e 2d 63 6f 6d 6d 61 6e 64 3c 2f 73 74 ong>-command</st
5c30: 72 6f 6e 67 3e 20 3c 65 6d 3e 63 61 6c 6c 62 61 rong> <em>callba
5c40: 63 6b 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a 20 20 20 ck</em></dt>.
5c50: 20 3c 64 64 3e 0a 09 49 6e 76 6f 6b 65 73 20 74 <dd>..Invokes t
5c60: 68 65 20 73 70 65 63 69 66 69 65 64 20 3c 65 6d he specified <em
5c70: 3e 63 61 6c 6c 62 61 63 6b 3c 2f 65 6d 3e 20 73 >callback</em> s
5c80: 63 72 69 70 74 20 61 74 20 73 65 76 65 72 61 6c cript at several
5c90: 20 70 6f 69 6e 74 73 0a 09 64 75 72 69 6e 67 20 points..during
5ca0: 74 68 65 20 4f 70 65 6e 53 53 4c 20 68 61 6e 64 the OpenSSL hand
5cb0: 73 68 61 6b 65 20 61 6e 64 20 75 73 65 2e 20 53 shake and use. S
5cc0: 65 65 20 62 65 6c 6f 77 20 66 6f 72 20 74 68 65 ee below for the
5cd0: 20 70 6f 73 73 69 62 6c 65 0a 09 61 72 67 75 6d possible..argum
5ce0: 65 6e 74 73 20 70 61 73 73 65 64 20 74 6f 20 74 ents passed to t
5cf0: 68 65 20 63 61 6c 6c 62 61 63 6b 20 73 63 72 69 he callback scri
5d00: 70 74 2e 20 56 61 6c 75 65 73 20 72 65 74 75 72 pt. Values retur
5d10: 6e 65 64 20 66 72 6f 6d 20 74 68 65 0a 09 63 61 ned from the..ca
5d20: 6c 6c 62 61 63 6b 20 61 72 65 20 69 67 6e 6f 72 llback are ignor
5d30: 65 64 2e 0a 0a 09 3c 62 72 3e 0a 09 3c 62 72 3e ed....<br>..<br>
5d40: 0a 0a 09 3c 64 6c 3e 0a 0a 09 3c 64 74 3e 0a 09 ...<dl>...<dt>..
5d50: 20 20 3c 73 74 72 6f 6e 67 3e 65 72 72 6f 72 3c <strong>error<
5d60: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 63 68 61 /strong> <em>cha
5d70: 6e 6e 65 6c 20 6d 65 73 73 61 67 65 3c 2f 65 6d nnel message</em
5d80: 3e 0a 09 3c 2f 64 74 3e 0a 09 3c 64 64 3e 0a 09 >..</dt>..<dd>..
5d90: 20 20 54 68 65 20 3c 65 6d 3e 6d 65 73 73 61 67 The <em>messag
5da0: 65 3c 2f 65 6d 3e 20 61 72 67 75 6d 65 6e 74 20 e</em> argument
5db0: 63 6f 6e 74 61 69 6e 73 20 61 6e 20 65 72 72 6f contains an erro
5dc0: 72 20 6d 65 73 73 61 67 65 20 67 65 6e 65 72 61 r message genera
5dd0: 74 65 64 0a 09 20 20 62 79 20 74 68 65 20 4f 70 ted.. by the Op
5de0: 65 6e 53 53 4c 20 66 75 6e 63 74 69 6f 6e 20 3c enSSL function <
5df0: 63 6f 64 65 3e 45 52 52 5f 72 65 61 73 6f 6e 5f code>ERR_reason_
5e00: 65 72 72 6f 72 5f 73 74 72 69 6e 67 28 29 3c 2f error_string()</
5e10: 63 6f 64 65 3e 2e 0a 09 3c 2f 64 64 3e 0a 0a 09 code>...</dd>...
5e20: 3c 62 72 3e 0a 0a 09 3c 64 74 3e 0a 09 20 20 3c <br>...<dt>.. <
5e30: 73 74 72 6f 6e 67 3e 69 6e 66 6f 3c 2f 73 74 72 strong>info</str
5e40: 6f 6e 67 3e 20 3c 65 6d 3e 63 68 61 6e 6e 65 6c ong> <em>channel
5e50: 20 6d 61 6a 6f 72 20 6d 69 6e 6f 72 20 6d 65 73 major minor mes
5e60: 73 61 67 65 20 74 79 70 65 3c 2f 65 6d 3e 0a 09 sage type</em>..
5e70: 3c 2f 64 74 3e 0a 09 3c 64 64 3e 0a 09 20 20 54 </dt>..<dd>.. T
5e80: 68 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c his form of call
5e90: 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20 back is invoked
5ea0: 62 79 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 66 by the OpenSSL f
5eb0: 75 6e 63 74 69 6f 6e 0a 09 20 20 3c 63 6f 64 65 unction.. <code
5ec0: 3e 53 53 4c 5f 43 54 58 5f 73 65 74 5f 69 6e 66 >SSL_CTX_set_inf
5ed0: 6f 5f 63 61 6c 6c 62 61 63 6b 28 29 3c 2f 63 6f o_callback()</co
5ee0: 64 65 3e 20 64 75 72 69 6e 67 20 63 6f 6e 6e 65 de> during conne
5ef0: 63 74 69 6f 6e 20 73 65 74 75 70 0a 09 20 20 61 ction setup.. a
5f00: 6e 64 20 75 73 65 2e 0a 09 20 20 3c 62 72 3e 0a nd use... <br>.
5f10: 09 20 20 3c 75 6c 3e 0a 09 20 20 3c 6c 69 3e 50 . <ul>.. <li>P
5f20: 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20 66 ossible values f
5f30: 6f 72 20 3c 65 6d 3e 6d 61 6a 6f 72 3c 2f 65 6d or <em>major</em
5f40: 3e 20 61 72 65 3a 0a 09 20 20 3c 63 6f 64 65 3e > are:.. <code>
5f50: 68 61 6e 64 73 68 61 6b 65 2c 20 61 6c 65 72 74 handshake, alert
5f60: 2c 20 63 6f 6e 6e 65 63 74 2c 20 61 63 63 65 70 , connect, accep
5f70: 74 3c 2f 63 6f 64 65 3e 2e 3c 2f 6c 69 3e 0a 09 t</code>.</li>..
5f80: 20 20 3c 6c 69 3e 50 6f 73 73 69 62 6c 65 20 76 <li>Possible v
5f90: 61 6c 75 65 73 20 66 6f 72 20 3c 65 6d 3e 6d 69 alues for <em>mi
5fa0: 6e 6f 72 3c 2f 65 6d 3e 20 61 72 65 3a 0a 09 20 nor</em> are:..
5fb0: 20 3c 63 6f 64 65 3e 73 74 61 72 74 2c 20 64 6f <code>start, do
5fc0: 6e 65 2c 20 72 65 61 64 2c 20 77 72 69 74 65 2c ne, read, write,
5fd0: 20 6c 6f 6f 70 2c 20 65 78 69 74 3c 2f 63 6f 64 loop, exit</cod
5fe0: 65 3e 2e 3c 2f 6c 69 3e 0a 09 20 20 3c 6c 69 3e e>.</li>.. <li>
5ff0: 54 68 65 20 3c 65 6d 3e 6d 65 73 73 61 67 65 3c The <em>message<
6000: 2f 65 6d 3e 20 61 72 67 75 6d 65 6e 74 20 69 73 /em> argument is
6010: 20 61 20 64 65 73 63 72 69 70 74 69 76 65 20 73 a descriptive s
6020: 74 72 69 6e 67 20 77 68 69 63 68 20 6d 61 79 0a tring which may.
6030: 09 20 20 62 65 20 67 65 6e 65 72 61 74 65 64 20 . be generated
6040: 65 69 74 68 65 72 20 62 79 20 3c 63 6f 64 65 3e either by <code>
6050: 53 53 4c 5f 73 74 61 74 65 5f 73 74 72 69 6e 67 SSL_state_string
6060: 5f 6c 6f 6e 67 28 29 3c 2f 63 6f 64 65 3e 20 6f _long()</code> o
6070: 72 20 62 79 0a 09 20 20 3c 63 6f 64 65 3e 53 53 r by.. <code>SS
6080: 4c 5f 61 6c 65 72 74 5f 64 65 73 63 5f 73 74 72 L_alert_desc_str
6090: 69 6e 67 5f 6c 6f 6e 67 28 29 3c 2f 63 6f 64 65 ing_long()</code
60a0: 3e 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 >, depending on
60b0: 74 68 65 20 63 6f 6e 74 65 78 74 2e 3c 2f 6c 69 the context.</li
60c0: 3e 0a 09 20 20 3c 6c 69 3e 46 6f 72 20 61 6c 65 >.. <li>For ale
60d0: 72 74 73 2c 20 74 68 65 20 70 6f 73 73 69 62 6c rts, the possibl
60e0: 65 20 76 61 6c 75 65 73 20 66 6f 72 20 3c 65 6d e values for <em
60f0: 3e 74 79 70 65 3c 2f 65 6d 3e 20 61 72 65 3a 0a >type</em> are:.
6100: 09 20 20 3c 63 6f 64 65 3e 77 61 72 6e 69 6e 67 . <code>warning
6110: 2c 20 66 61 74 61 6c 2c 20 61 6e 64 20 75 6e 6b , fatal, and unk
6120: 6e 6f 77 6e 3c 2f 63 6f 64 65 3e 2e 20 46 6f 72 nown</code>. For
6130: 20 6f 74 68 65 72 73 2c 0a 09 20 20 3c 63 6f 64 others,.. <cod
6140: 65 3e 69 6e 66 6f 3c 2f 63 6f 64 65 3e 20 69 73 e>info</code> is
6150: 20 75 73 65 64 2e 3c 2f 6c 69 3e 0a 09 20 20 3c used.</li>.. <
6160: 2f 75 6c 3e 0a 09 3c 2f 64 64 3e 0a 0a 09 3c 64 /ul>..</dd>...<d
6170: 74 3e 0a 09 20 20 3c 73 74 72 6f 6e 67 3e 6d 65 t>.. <strong>me
6180: 73 73 61 67 65 3c 2f 73 74 72 6f 6e 67 3e 20 3c ssage</strong> <
6190: 65 6d 3e 63 68 61 6e 6e 65 6c 20 64 69 72 65 63 em>channel direc
61a0: 74 69 6f 6e 20 76 65 72 73 69 6f 6e 20 63 6f 6e tion version con
61b0: 74 65 6e 74 5f 74 79 70 65 20 64 61 74 61 3c 2f tent_type data</
61c0: 65 6d 3e 0a 09 3c 2f 64 74 3e 0a 09 3c 64 64 3e em>..</dt>..<dd>
61d0: 0a 09 20 20 54 68 69 73 20 66 6f 72 6d 20 6f 66 .. This form of
61e0: 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 callback is inv
61f0: 6f 6b 65 64 20 62 79 20 74 68 65 20 4f 70 65 6e oked by the Open
6200: 53 53 4c 20 66 75 6e 63 74 69 6f 6e 0a 09 20 20 SSL function..
6210: 3c 63 6f 64 65 3e 53 53 4c 5f 73 65 74 5f 6d 73 <code>SSL_set_ms
6220: 67 5f 63 61 6c 6c 62 61 63 6b 28 29 3c 2f 63 6f g_callback()</co
6230: 64 65 3e 20 77 68 65 6e 65 76 65 72 20 61 20 6d de> whenever a m
6240: 65 73 73 61 67 65 20 69 73 20 73 65 6e 74 20 6f essage is sent o
6250: 72 0a 09 20 20 72 65 63 65 69 76 65 64 2e 20 49 r.. received. I
6260: 74 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 6c 61 t is only availa
6270: 62 6c 65 20 77 68 65 6e 0a 09 20 20 4f 70 65 6e ble when.. Open
6280: 53 53 4c 20 69 73 20 63 6f 6d 70 6c 69 65 64 20 SSL is complied
6290: 77 69 74 68 20 74 68 65 20 3c 65 6d 3e 65 6e 61 with the <em>ena
62a0: 62 6c 65 2d 73 73 6c 2d 74 72 61 63 65 3c 2f 65 ble-ssl-trace</e
62b0: 6d 3e 20 6f 70 74 69 6f 6e 2e 0a 09 20 20 57 68 m> option... Wh
62c0: 65 72 65 20 3c 65 6d 3e 64 69 72 65 63 74 69 6f ere <em>directio
62d0: 6e 3c 2f 65 6d 3e 20 69 73 20 53 65 6e 74 20 6f n</em> is Sent o
62e0: 72 20 52 65 63 65 69 76 65 64 2c 20 3c 65 6d 3e r Received, <em>
62f0: 76 65 72 73 69 6f 6e 3c 2f 65 6d 3e 20 69 73 20 version</em> is
6300: 74 68 65 0a 09 20 20 70 72 6f 74 6f 63 6f 6c 20 the.. protocol
6310: 76 65 72 73 69 6f 6e 2c 20 3c 65 6d 3e 63 6f 6e version, <em>con
6320: 74 65 6e 74 5f 74 79 70 65 3c 2f 65 6d 3e 20 69 tent_type</em> i
6330: 73 20 74 68 65 20 6d 65 73 73 61 67 65 20 63 6f s the message co
6340: 6e 74 65 6e 74 20 74 79 70 65 2c 0a 09 20 20 61 ntent type,.. a
6350: 6e 64 20 3c 65 6d 3e 64 61 74 61 3c 2f 65 6d 3e nd <em>data</em>
6360: 20 69 73 20 6d 6f 72 65 20 69 6e 66 6f 20 6f 6e is more info on
6370: 20 74 68 65 20 6d 65 73 73 61 67 65 20 66 72 6f the message fro
6380: 6d 20 74 68 65 20 3c 63 6f 64 65 3e 53 53 4c 5f m the <code>SSL_
6390: 74 72 61 63 65 3c 2f 63 6f 64 65 3e 20 41 50 49 trace</code> API
63a0: 2e 0a 09 3c 2f 64 64 3e 0a 09 3c 62 72 3e 0a 0a ...</dd>..<br>..
63b0: 09 3c 64 74 3e 0a 09 20 20 3c 73 74 72 6f 6e 67 .<dt>.. <strong
63c0: 3e 73 65 73 73 69 6f 6e 3c 2f 73 74 72 6f 6e 67 >session</strong
63d0: 3e 20 3c 65 6d 3e 63 68 61 6e 6e 65 6c 20 73 65 > <em>channel se
63e0: 73 73 69 6f 6e 5f 69 64 20 74 69 63 6b 65 74 20 ssion_id ticket
63f0: 6c 69 66 65 74 69 6d 65 3c 2f 65 6d 3e 0a 09 3c lifetime</em>..<
6400: 2f 64 74 3e 0a 09 3c 64 64 3e 0a 09 20 20 54 68 /dt>..<dd>.. Th
6410: 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c 62 is form of callb
6420: 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20 62 ack is invoked b
6430: 79 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 66 75 y the OpenSSL fu
6440: 6e 63 74 69 6f 6e 0a 09 20 20 3c 63 6f 64 65 3e nction.. <code>
6450: 53 53 4c 5f 43 54 58 5f 73 65 73 73 5f 73 65 74 SSL_CTX_sess_set
6460: 5f 6e 65 77 5f 63 62 28 29 3c 2f 63 6f 64 65 3e _new_cb()</code>
6470: 2e 0a 09 20 20 57 68 65 72 65 20 3c 65 6d 3e 73 ... Where <em>s
6480: 65 73 73 69 6f 6e 5f 69 64 3c 2f 65 6d 3e 20 69 ession_id</em> i
6490: 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 65 s the current se
64a0: 73 73 69 6f 6e 20 69 64 65 6e 74 69 66 69 65 72 ssion identifier
64b0: 2c 0a 09 20 20 3c 65 6d 3e 74 69 63 6b 65 74 3c ,.. <em>ticket<
64c0: 2f 65 6d 3e 20 69 73 20 74 68 65 20 73 65 73 73 /em> is the sess
64d0: 69 6f 6e 20 74 69 63 6b 65 74 20 69 6e 66 6f 2c ion ticket info,
64e0: 20 61 6e 64 20 3c 65 6d 3e 6c 69 66 65 74 69 6d and <em>lifetim
64f0: 65 3c 2f 65 6d 3e 0a 09 20 20 69 73 20 74 68 65 e</em>.. is the
6500: 20 74 68 65 20 74 69 63 6b 65 74 20 6c 69 66 65 the ticket life
6510: 74 69 6d 65 20 69 6e 20 73 65 63 6f 6e 64 73 2e time in seconds.
6520: 0a 09 3c 2f 64 64 3e 0a 09 3c 62 72 3e 0a 09 3c ..</dd>..<br>..<
6530: 2f 64 6c 3e 0a 20 20 20 20 3c 2f 64 64 3e 0a 0a /dl>. </dd>..
6540: 20 20 20 20 3c 62 72 3e 0a 0a 20 20 20 20 3c 64 <br>.. <d
6550: 74 3e 3c 73 74 72 6f 6e 67 3e 2d 70 61 73 73 77 t><strong>-passw
6560: 6f 72 64 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d ord</strong> <em
6570: 3e 63 61 6c 6c 62 61 63 6b 3c 2f 65 6d 3e 3c 2f >callback</em></
6580: 64 74 3e 0a 20 20 20 20 3c 64 64 3e 0a 09 49 6e dt>. <dd>..In
6590: 76 6f 6b 65 73 20 74 68 65 20 73 70 65 63 69 66 vokes the specif
65a0: 69 65 64 20 3c 65 6d 3e 63 61 6c 6c 62 61 63 6b ied <em>callback
65b0: 3c 2f 65 6d 3e 20 73 63 72 69 70 74 20 77 68 65 </em> script whe
65c0: 6e 20 4f 70 65 6e 53 53 4c 20 6e 65 65 64 73 20 n OpenSSL needs
65d0: 74 6f 0a 09 6f 62 74 61 69 6e 20 61 20 70 61 73 to..obtain a pas
65e0: 73 77 6f 72 64 2e 20 53 65 65 20 62 65 6c 6f 77 sword. See below
65f0: 20 66 6f 72 20 74 68 65 20 70 6f 73 73 69 62 6c for the possibl
6600: 65 20 61 72 67 75 6d 65 6e 74 73 20 70 61 73 73 e arguments pass
6610: 65 64 20 74 6f 0a 09 74 68 65 20 63 61 6c 6c 62 ed to..the callb
6620: 61 63 6b 20 73 63 72 69 70 74 2e 20 53 65 65 20 ack script. See
6630: 62 65 6c 6f 77 20 66 6f 72 20 76 61 6c 69 64 20 below for valid
6640: 72 65 74 75 72 6e 20 76 61 6c 75 65 73 2e 0a 0a return values...
6650: 09 3c 62 72 3e 0a 09 3c 62 72 3e 0a 0a 09 3c 64 .<br>..<br>...<d
6660: 6c 3e 0a 0a 09 3c 64 74 3e 0a 09 20 20 3c 73 74 l>...<dt>.. <st
6670: 72 6f 6e 67 3e 70 61 73 73 77 6f 72 64 3c 2f 73 rong>password</s
6680: 74 72 6f 6e 67 3e 20 3c 65 6d 3e 72 77 66 6c 61 trong> <em>rwfla
6690: 67 20 73 69 7a 65 3c 2f 65 6d 3e 0a 09 3c 2f 64 g size</em>..</d
66a0: 74 3e 0a 09 3c 64 64 3e 0a 09 20 20 49 6e 76 6f t>..<dd>.. Invo
66b0: 6b 65 64 20 77 68 65 6e 20 6c 6f 61 64 69 6e 67 ked when loading
66c0: 20 6f 72 20 73 74 6f 72 69 6e 67 20 61 20 50 45 or storing a PE
66d0: 4d 20 63 65 72 74 69 66 69 63 61 74 65 20 77 69 M certificate wi
66e0: 74 68 20 65 6e 63 72 79 70 74 69 6f 6e 2e 0a 09 th encryption...
66f0: 20 20 57 68 65 72 65 20 3c 65 6d 3e 72 77 66 6c Where <em>rwfl
6700: 61 67 3c 2f 65 6d 3e 20 69 73 20 30 20 66 6f 72 ag</em> is 0 for
6710: 20 72 65 61 64 69 6e 67 2f 64 65 63 72 79 70 74 reading/decrypt
6720: 69 6f 6e 20 6f 72 20 31 20 66 6f 72 0a 09 20 20 ion or 1 for..
6730: 77 72 69 74 69 6e 67 2f 65 6e 63 72 79 70 74 69 writing/encrypti
6740: 6f 6e 20 28 63 61 6e 20 70 72 6f 6d 70 74 20 75 on (can prompt u
6750: 73 65 72 20 74 6f 20 63 6f 6e 66 69 72 6d 29 20 ser to confirm)
6760: 61 6e 64 0a 09 20 20 3c 65 6d 3e 73 69 7a 65 3c and.. <em>size<
6770: 2f 65 6d 3e 20 69 73 20 74 68 65 20 6d 61 78 20 /em> is the max
6780: 70 61 73 73 77 6f 72 64 20 6c 65 6e 67 74 68 20 password length
6790: 69 6e 20 62 79 74 65 73 2e 0a 09 20 20 54 68 65 in bytes... The
67a0: 20 63 61 6c 6c 62 61 63 6b 20 73 68 6f 75 6c 64 callback should
67b0: 20 72 65 74 75 72 6e 20 74 68 65 20 70 61 73 73 return the pass
67c0: 77 6f 72 64 20 61 73 20 61 20 73 74 72 69 6e 67 word as a string
67d0: 2e 0a 09 3c 2f 64 64 3e 0a 20 20 20 20 3c 2f 64 ...</dd>. </d
67e0: 64 3e 0a 0a 20 20 20 20 3c 62 72 3e 0a 0a 0a 20 d>.. <br>...
67f0: 20 20 20 3c 64 74 3e 3c 73 74 72 6f 6e 67 3e 2d <dt><strong>-
6800: 76 61 6c 69 64 61 74 65 63 6f 6d 6d 61 6e 64 3c validatecommand<
6810: 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 63 61 6c /strong> <em>cal
6820: 6c 62 61 63 6b 3c 2f 65 6d 3e 3c 2f 64 74 3e 0a lback</em></dt>.
6830: 20 20 20 20 3c 64 64 3e 0a 09 49 6e 76 6f 6b 65 <dd>..Invoke
6840: 73 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 s the specified
6850: 3c 65 6d 3e 63 61 6c 6c 62 61 63 6b 3c 2f 65 6d <em>callback</em
6860: 3e 20 73 63 72 69 70 74 20 64 75 72 69 6e 67 20 > script during
6870: 68 61 6e 64 73 68 61 6b 65 20 69 6e 0a 09 6f 72 handshake in..or
6880: 64 65 72 20 74 6f 20 76 61 6c 69 64 61 74 65 20 der to validate
6890: 74 68 65 20 70 72 6f 76 69 64 65 64 20 76 61 6c the provided val
68a0: 75 65 28 73 29 2e 20 53 65 65 20 62 65 6c 6f 77 ue(s). See below
68b0: 20 66 6f 72 20 74 68 65 20 70 6f 73 73 69 62 6c for the possibl
68c0: 65 0a 09 61 72 67 75 6d 65 6e 74 73 20 70 61 73 e..arguments pas
68d0: 73 65 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 62 sed to the callb
68e0: 61 63 6b 20 73 63 72 69 70 74 2e 0a 09 54 6f 20 ack script...To
68f0: 72 65 6a 65 63 74 20 74 68 65 20 76 61 6c 75 65 reject the value
6900: 20 61 6e 64 20 61 62 6f 72 74 20 63 6f 6e 6e 65 and abort conne
6910: 63 74 69 6f 6e 2c 20 74 68 65 20 63 61 6c 6c 62 ction, the callb
6920: 61 63 6b 20 73 68 6f 75 6c 64 20 72 65 74 75 72 ack should retur
6930: 6e 20 30 2e 0a 09 54 6f 20 61 63 63 65 70 74 20 n 0...To accept
6940: 74 68 65 20 76 61 6c 75 65 20 61 6e 64 20 63 6f the value and co
6950: 6e 74 69 6e 75 65 20 74 68 65 20 63 6f 6e 6e 65 ntinue the conne
6960: 63 74 69 6f 6e 2c 20 69 74 20 73 68 6f 75 6c 64 ction, it should
6970: 20 72 65 74 75 72 6e 20 31 2e 0a 09 54 6f 20 72 return 1...To r
6980: 65 6a 65 63 74 20 74 68 65 20 76 61 6c 75 65 2c eject the value,
6990: 20 62 75 74 20 63 6f 6e 74 69 6e 75 65 20 74 68 but continue th
69a0: 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 69 74 e connection, it
69b0: 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 32 should return 2
69c0: 2e 0a 0a 09 3c 62 72 3e 0a 09 3c 62 72 3e 0a 0a ....<br>..<br>..
69d0: 09 3c 64 6c 3e 0a 0a 09 3c 64 74 3e 0a 09 20 20 .<dl>...<dt>..
69e0: 3c 73 74 72 6f 6e 67 3e 61 6c 70 6e 3c 2f 73 74 <strong>alpn</st
69f0: 72 6f 6e 67 3e 20 3c 65 6d 3e 63 68 61 6e 6e 65 rong> <em>channe
6a00: 6c 20 70 72 6f 74 6f 63 6f 6c 20 6d 61 74 63 68 l protocol match
6a10: 3c 2f 65 6d 3e 0a 09 3c 2f 64 74 3e 0a 09 3c 64 </em>..</dt>..<d
6a20: 64 3e 0a 09 20 20 46 6f 72 20 73 65 72 76 65 72 d>.. For server
6a30: 73 2c 20 74 68 69 73 20 66 6f 72 6d 20 6f 66 20 s, this form of
6a40: 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 6f callback is invo
6a50: 6b 65 64 20 77 68 65 6e 20 74 68 65 20 63 6c 69 ked when the cli
6a60: 65 6e 74 20 41 4c 50 4e 0a 09 20 20 65 78 74 65 ent ALPN.. exte
6a70: 6e 73 69 6f 6e 20 69 73 20 72 65 63 65 69 76 65 nsion is receive
6a80: 64 2e 20 49 66 20 3c 65 6d 3e 6d 61 74 63 68 3c d. If <em>match<
6a90: 2f 65 6d 3e 20 69 73 20 74 72 75 65 2c 20 3c 65 /em> is true, <e
6aa0: 6d 3e 70 72 6f 74 6f 63 6f 6c 3c 2f 65 6d 3e 0a m>protocol</em>.
6ab0: 09 20 20 69 73 20 74 68 65 20 66 69 72 73 74 20 . is the first
6ac0: 3c 62 3e 2d 61 6c 70 6e 3c 2f 62 3e 20 73 70 65 <b>-alpn</b> spe
6ad0: 63 69 66 69 65 64 20 70 72 6f 74 6f 63 6f 6c 20 cified protocol
6ae0: 63 6f 6d 6d 6f 6e 20 74 6f 20 74 68 65 20 62 6f common to the bo
6af0: 74 68 20 74 68 65 0a 09 20 20 63 6c 69 65 6e 74 th the.. client
6b00: 20 61 6e 64 20 73 65 72 76 65 72 2e 20 49 66 20 and server. If
6b10: 6e 6f 74 2c 20 74 68 65 20 66 69 72 73 74 20 63 not, the first c
6b20: 6c 69 65 6e 74 20 73 70 65 63 69 66 69 65 64 20 lient specified
6b30: 70 72 6f 74 6f 63 6f 6c 20 69 73 0a 09 20 20 75 protocol is.. u
6b40: 73 65 64 2e 20 43 61 6c 6c 65 64 20 61 66 74 65 sed. Called afte
6b50: 72 20 68 65 6c 6c 6f 20 61 6e 64 20 41 4c 50 4e r hello and ALPN
6b60: 20 63 61 6c 6c 62 61 63 6b 73 2e 0a 09 3c 2f 64 callbacks...</d
6b70: 64 3e 0a 0a 09 3c 62 72 3e 0a 0a 09 3c 64 74 3e d>...<br>...<dt>
6b80: 0a 09 20 20 3c 73 74 72 6f 6e 67 3e 68 65 6c 6c .. <strong>hell
6b90: 6f 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d 3e 63 o</strong> <em>c
6ba0: 68 61 6e 6e 65 6c 20 73 65 72 76 65 72 6e 61 6d hannel servernam
6bb0: 65 3c 2f 65 6d 3e 0a 09 3c 2f 64 74 3e 0a 09 3c e</em>..</dt>..<
6bc0: 64 64 3e 0a 09 20 20 46 6f 72 20 73 65 72 76 65 dd>.. For serve
6bd0: 72 73 2c 20 74 68 69 73 20 66 6f 72 6d 20 6f 66 rs, this form of
6be0: 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 callback is inv
6bf0: 6f 6b 65 64 20 64 75 72 69 6e 67 20 63 6c 69 65 oked during clie
6c00: 6e 74 20 68 65 6c 6c 6f 0a 09 20 20 6d 65 73 73 nt hello.. mess
6c10: 61 67 65 20 70 72 6f 63 65 73 73 69 6e 67 2e 20 age processing.
6c20: 49 74 20 69 73 20 75 73 65 64 20 74 6f 20 73 65 It is used to se
6c30: 6c 65 63 74 20 61 6e 20 61 70 70 72 6f 70 72 69 lect an appropri
6c40: 61 74 65 20 63 65 72 74 69 66 69 63 61 74 65 20 ate certificate
6c50: 74 6f 0a 09 20 20 70 72 65 73 65 6e 74 2c 20 61 to.. present, a
6c60: 6e 64 20 6d 61 6b 65 20 6f 74 68 65 72 20 63 6f nd make other co
6c70: 6e 66 69 67 75 72 61 74 69 6f 6e 20 61 64 6a 75 nfiguration adju
6c80: 73 74 6d 65 6e 74 73 20 72 65 6c 65 76 61 6e 74 stments relevant
6c90: 20 74 6f 20 74 68 61 74 0a 09 20 20 73 65 72 76 to that.. serv
6ca0: 65 72 20 6e 61 6d 65 20 61 6e 64 20 69 74 73 20 er name and its
6cb0: 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 20 43 configuration. C
6cc0: 61 6c 6c 65 64 20 62 65 66 6f 72 65 20 53 4e 49 alled before SNI
6cd0: 20 61 6e 64 20 41 4c 50 4e 20 63 61 6c 6c 62 61 and ALPN callba
6ce0: 63 6b 73 2e 0a 09 3c 2f 64 64 3e 0a 0a 09 3c 62 cks...</dd>...<b
6cf0: 72 3e 0a 0a 09 3c 64 74 3e 0a 09 20 20 3c 73 74 r>...<dt>.. <st
6d00: 72 6f 6e 67 3e 73 6e 69 3c 2f 73 74 72 6f 6e 67 rong>sni</strong
6d10: 3e 20 3c 65 6d 3e 63 68 61 6e 6e 65 6c 20 73 65 > <em>channel se
6d20: 72 76 65 72 6e 61 6d 65 3c 2f 65 6d 3e 0a 09 3c rvername</em>..<
6d30: 2f 64 74 3e 0a 09 3c 64 64 3e 0a 09 20 20 46 6f /dt>..<dd>.. Fo
6d40: 72 20 73 65 72 76 65 72 73 2c 20 74 68 69 73 20 r servers, this
6d50: 66 6f 72 6d 20 6f 66 20 63 61 6c 6c 62 61 63 6b form of callback
6d60: 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e is invoked when
6d70: 20 74 68 65 20 53 4e 49 20 65 78 74 65 6e 73 69 the SNI extensi
6d80: 6f 6e 0a 09 20 20 66 72 6f 6d 20 74 68 65 20 63 on.. from the c
6d90: 6c 69 65 6e 74 20 69 73 20 72 65 63 65 69 76 65 lient is receive
6da0: 64 2e 20 57 68 65 72 65 20 3c 65 6d 3e 73 65 72 d. Where <em>ser
6db0: 76 65 72 6e 61 6d 65 3c 2f 65 6d 3e 20 69 73 20 vername</em> is
6dc0: 74 68 65 20 63 6c 69 65 6e 74 0a 09 20 20 70 72 the client.. pr
6dd0: 6f 76 69 64 65 64 20 73 65 72 76 65 72 20 6e 61 ovided server na
6de0: 6d 65 20 66 72 6f 6d 20 74 68 65 20 3c 62 3e 2d me from the <b>-
6df0: 73 65 72 76 65 72 6e 61 6d 65 3c 2f 62 3e 20 6f servername</b> o
6e00: 70 74 69 6f 6e 2e 20 54 68 69 73 20 69 73 0a 09 ption. This is..
6e10: 20 20 75 73 65 64 20 77 68 65 6e 20 61 20 73 65 used when a se
6e20: 72 76 65 72 20 73 75 70 70 6f 72 74 73 20 6d 75 rver supports mu
6e30: 6c 74 69 70 6c 65 20 6e 61 6d 65 73 2c 20 73 6f ltiple names, so
6e40: 20 74 68 65 20 72 69 67 68 74 20 63 65 72 74 69 the right certi
6e50: 66 69 63 61 74 65 0a 09 20 20 63 61 6e 20 62 65 ficate.. can be
6e60: 20 75 73 65 64 2e 20 43 61 6c 6c 65 64 20 61 66 used. Called af
6e70: 74 65 72 20 68 65 6c 6c 6f 20 63 61 6c 6c 62 61 ter hello callba
6e80: 63 6b 20 62 75 74 20 62 65 66 6f 72 65 20 41 4c ck but before AL
6e90: 50 4e 20 63 61 6c 6c 62 61 63 6b 2e 0a 09 3c 2f PN callback...</
6ea0: 64 64 3e 0a 0a 09 3c 62 72 3e 0a 0a 09 3c 64 74 dd>...<br>...<dt
6eb0: 3e 0a 09 20 20 3c 73 74 72 6f 6e 67 3e 76 65 72 >.. <strong>ver
6ec0: 69 66 79 3c 2f 73 74 72 6f 6e 67 3e 20 3c 65 6d ify</strong> <em
6ed0: 3e 63 68 61 6e 6e 65 6c 20 64 65 70 74 68 20 63 >channel depth c
6ee0: 65 72 74 20 73 74 61 74 75 73 20 65 72 72 6f 72 ert status error
6ef0: 3c 2f 65 6d 3e 0a 09 3c 2f 64 74 3e 0a 09 3c 64 </em>..</dt>..<d
6f00: 64 3e 0a 09 20 20 54 68 69 73 20 66 6f 72 6d 20 d>.. This form
6f10: 6f 66 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 of callback is i
6f20: 6e 76 6f 6b 65 64 20 62 79 20 4f 70 65 6e 53 53 nvoked by OpenSS
6f30: 4c 20 77 68 65 6e 20 61 20 6e 65 77 20 63 65 72 L when a new cer
6f40: 74 69 66 69 63 61 74 65 0a 09 20 20 69 73 20 72 tificate.. is r
6f50: 65 63 65 69 76 65 64 20 66 72 6f 6d 20 74 68 65 eceived from the
6f60: 20 70 65 65 72 2e 20 49 74 20 61 6c 6c 6f 77 73 peer. It allows
6f70: 20 74 68 65 20 63 6c 69 65 6e 74 20 74 6f 20 63 the client to c
6f80: 68 65 63 6b 20 74 68 65 0a 09 20 20 63 65 72 74 heck the.. cert
6f90: 69 66 69 63 61 74 65 20 76 65 72 69 66 69 63 61 ificate verifica
6fa0: 74 69 6f 6e 20 72 65 73 75 6c 74 73 20 61 6e 64 tion results and
6fb0: 20 63 68 6f 6f 73 65 20 77 68 65 74 68 65 72 20 choose whether
6fc0: 74 6f 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 6f to continue.. o
6fd0: 72 20 6e 6f 74 2e 20 49 74 20 69 73 20 63 61 6c r not. It is cal
6fe0: 6c 65 64 20 66 6f 72 20 65 61 63 68 20 63 65 72 led for each cer
6ff0: 74 69 66 69 63 61 74 65 20 69 6e 20 74 68 65 20 tificate in the
7000: 63 65 72 74 69 66 69 63 61 74 65 20 63 68 61 69 certificate chai
7010: 6e 2e 0a 09 20 20 3c 75 6c 3e 0a 09 20 20 3c 6c n... <ul>.. <l
7020: 69 3e 54 68 65 20 3c 65 6d 3e 64 65 70 74 68 3c i>The <em>depth<
7030: 2f 65 6d 3e 20 61 72 67 75 6d 65 6e 74 20 69 73 /em> argument is
7040: 20 61 6e 20 69 6e 74 65 67 65 72 20 72 65 70 72 an integer repr
7050: 65 73 65 6e 74 69 6e 67 20 74 68 65 0a 09 20 20 esenting the..
7060: 63 75 72 72 65 6e 74 20 64 65 70 74 68 20 6f 6e current depth on
7070: 20 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 the certificate
7080: 20 63 68 61 69 6e 2c 20 77 69 74 68 0a 09 20 20 chain, with..
7090: 3c 63 6f 64 65 3e 30 3c 2f 63 6f 64 65 3e 20 61 <code>0</code> a
70a0: 73 20 74 68 65 20 70 65 65 72 20 63 65 72 74 69 s the peer certi
70b0: 66 69 63 61 74 65 20 61 6e 64 20 68 69 67 68 65 ficate and highe
70c0: 72 20 76 61 6c 75 65 73 20 67 6f 69 6e 67 0a 09 r values going..
70d0: 20 20 75 70 20 74 6f 20 74 68 65 20 43 65 72 74 up to the Cert
70e0: 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 ificate Authorit
70f0: 79 20 28 43 41 29 2e 3c 2f 6c 69 3e 0a 09 20 20 y (CA).</li>..
7100: 3c 6c 69 3e 54 68 65 20 3c 65 6d 3e 63 65 72 74 <li>The <em>cert
7110: 3c 2f 65 6d 3e 20 61 72 67 75 6d 65 6e 74 20 69 </em> argument i
7120: 73 20 61 20 6c 69 73 74 20 6f 66 20 6b 65 79 2d s a list of key-
7130: 76 61 6c 75 65 20 70 61 69 72 73 20 73 69 6d 69 value pairs simi
7140: 6c 61 72 0a 09 20 20 74 6f 20 74 68 6f 73 65 20 lar.. to those
7150: 72 65 74 75 72 6e 65 64 20 62 79 0a 09 20 20 3c returned by.. <
7160: 61 20 68 72 65 66 3d 22 23 74 6c 73 3a 3a 73 74 a href="#tls::st
7170: 61 74 75 73 22 3e 3c 73 74 72 6f 6e 67 3e 74 6c atus"><strong>tl
7180: 73 3a 3a 73 74 61 74 75 73 3c 2f 73 74 72 6f 6e s::status</stron
7190: 67 3e 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 09 20 20 g></a>.</li>..
71a0: 3c 6c 69 3e 54 68 65 20 3c 65 6d 3e 73 74 61 74 <li>The <em>stat
71b0: 75 73 3c 2f 65 6d 3e 20 61 72 67 75 6d 65 6e 74 us</em> argument
71c0: 20 69 73 20 61 6e 20 62 6f 6f 6c 65 61 6e 20 72 is an boolean r
71d0: 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 0a epresenting the.
71e0: 09 20 20 76 61 6c 69 64 69 74 79 20 6f 66 20 74 . validity of t
71f0: 68 65 20 63 75 72 72 65 6e 74 20 63 65 72 74 69 he current certi
7200: 66 69 63 61 74 65 2e 0a 09 20 20 41 20 76 61 6c ficate... A val
7210: 75 65 20 6f 66 20 3c 63 6f 64 65 3e 30 3c 2f 63 ue of <code>0</c
7220: 6f 64 65 3e 20 6d 65 61 6e 73 20 74 68 65 20 63 ode> means the c
7230: 65 72 74 69 66 69 63 61 74 65 20 69 73 20 64 65 ertificate is de
7240: 65 6d 65 64 20 69 6e 76 61 6c 69 64 2e 0a 09 20 emed invalid...
7250: 20 41 20 76 61 6c 75 65 20 6f 66 20 3c 63 6f 64 A value of <cod
7260: 65 3e 31 3c 2f 63 6f 64 65 3e 20 6d 65 61 6e 73 e>1</code> means
7270: 20 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 the certificate
7280: 20 69 73 20 64 65 65 6d 65 64 20 76 61 6c 69 64 is deemed valid
7290: 2e 3c 2f 6c 69 3e 0a 09 20 20 3c 6c 69 3e 54 68 .</li>.. <li>Th
72a0: 65 20 3c 65 6d 3e 65 72 72 6f 72 3c 2f 65 6d 3e e <em>error</em>
72b0: 20 61 72 67 75 6d 65 6e 74 20 73 75 70 70 6c 69 argument suppli
72c0: 65 73 20 74 68 65 20 6d 65 73 73 61 67 65 2c 20 es the message,
72d0: 69 66 20 61 6e 79 2c 20 67 65 6e 65 72 61 74 65 if any, generate
72e0: 64 0a 09 20 20 62 79 20 3c 63 6f 64 65 3e 58 35 d.. by <code>X5
72f0: 30 39 5f 53 54 4f 52 45 5f 43 54 58 5f 67 65 74 09_STORE_CTX_get
7300: 5f 65 72 72 6f 72 28 29 3c 2f 63 6f 64 65 3e 2e _error()</code>.
7310: 3c 2f 6c 69 3e 0a 09 20 20 3c 2f 75 6c 3e 0a 09 </li>.. </ul>..
7320: 3c 2f 64 64 3e 0a 09 3c 62 72 3e 0a 09 3c 2f 64 </dd>..<br>..</d
7330: 6c 3e 0a 20 20 20 20 3c 2f 64 64 3e 0a 3c 2f 64 l>. </dd>.</d
7340: 6c 3e 0a 3c 2f 62 6c 6f 63 6b 71 75 6f 74 65 3e l>.</blockquote>
7350: 0a 0a 3c 70 3e 0a 52 65 66 65 72 65 6e 63 65 20 ..<p>.Reference
7360: 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 implementations
7370: 6f 66 20 74 68 65 73 65 20 63 61 6c 6c 62 61 63 of these callbac
7380: 6b 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 20 ks are provided
7390: 69 6e 20 74 68 65 0a 64 69 73 74 72 69 62 75 74 in the.distribut
73a0: 69 6f 6e 20 61 73 20 3c 73 74 72 6f 6e 67 3e 74 ion as <strong>t
73b0: 6c 73 3a 3a 63 61 6c 6c 62 61 63 6b 3c 2f 73 74 ls::callback</st
73c0: 72 6f 6e 67 3e 2c 20 3c 73 74 72 6f 6e 67 3e 74 rong>, <strong>t
73d0: 6c 73 3a 3a 70 61 73 73 77 6f 72 64 3c 2f 73 74 ls::password</st
73e0: 72 6f 6e 67 3e 2c 0a 61 6e 64 20 3c 73 74 72 6f rong>,.and <stro
73f0: 6e 67 3e 74 6c 73 3a 3a 76 61 6c 69 64 61 74 65 ng>tls::validate
7400: 5f 63 6f 6d 6d 61 6e 64 3c 2f 73 74 72 6f 6e 67 _command</strong
7410: 3e 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 20 > respectively.
7420: 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 73 65 Note that these
7430: 20 61 72 65 0a 3c 65 6d 3e 73 61 6d 70 6c 65 3c are.<em>sample<
7440: 2f 65 6d 3e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 /em> implementat
7450: 69 6f 6e 73 20 6f 6e 6c 79 2e 20 20 49 6e 20 61 ions only. In a
7460: 20 6d 6f 72 65 20 72 65 61 6c 69 73 74 69 63 20 more realistic
7470: 64 65 70 6c 6f 79 6d 65 6e 74 0a 79 6f 75 20 77 deployment.you w
7480: 6f 75 6c 64 20 73 70 65 63 69 66 79 20 79 6f 75 ould specify you
7490: 72 20 6f 77 6e 20 63 61 6c 6c 62 61 63 6b 20 73 r own callback s
74a0: 63 72 69 70 74 73 20 6f 6e 20 65 61 63 68 20 54 cripts on each T
74b0: 4c 53 20 63 68 61 6e 6e 65 6c 20 75 73 69 6e 67 LS channel using
74c0: 20 74 68 65 0a 3c 73 74 72 6f 6e 67 3e 2d 63 6f the.<strong>-co
74d0: 6d 6d 61 6e 64 3c 2f 73 74 72 6f 6e 67 3e 2c 20 mmand</strong>,
74e0: 3c 73 74 72 6f 6e 67 3e 2d 70 61 73 73 77 6f 72 <strong>-passwor
74f0: 64 3c 2f 73 74 72 6f 6e 67 3e 2c 20 61 6e 64 20 d</strong>, and
7500: 3c 73 74 72 6f 6e 67 3e 2d 76 61 6c 69 64 61 74 <strong>-validat
7510: 65 5f 63 6f 6d 6d 61 6e 64 3c 2f 73 74 72 6f 6e e_command</stron
7520: 67 3e 20 6f 70 74 69 6f 6e 73 2e 0a 3c 2f 70 3e g> options..</p>
7530: 0a 0a 3c 70 3e 0a 54 68 65 20 64 65 66 61 75 6c ..<p>.The defaul
7540: 74 20 62 65 68 61 76 69 6f 72 20 77 68 65 6e 20 t behavior when
7550: 74 68 65 20 3c 73 74 72 6f 6e 67 3e 2d 63 6f 6d the <strong>-com
7560: 6d 61 6e 64 3c 2f 73 74 72 6f 6e 67 3e 20 61 6e mand</strong> an
7570: 64 20 3c 73 74 72 6f 6e 67 3e 2d 76 61 6c 69 64 d <strong>-valid
7580: 61 74 65 5f 63 6f 6d 6d 61 6e 64 3c 2f 73 74 72 ate_command</str
7590: 6f 6e 67 3e 0a 6f 70 74 69 6f 6e 73 20 61 72 65 ong>.options are
75a0: 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 20 69 not specified i
75b0: 73 20 66 6f 72 20 54 4c 53 20 74 6f 20 70 72 6f s for TLS to pro
75c0: 63 65 73 73 20 74 68 65 20 61 73 73 6f 63 69 61 cess the associa
75d0: 74 65 64 20 6c 69 62 72 61 72 79 20 63 61 6c 6c ted library call
75e0: 62 61 63 6b 73 0a 69 6e 74 65 72 6e 61 6c 6c 79 backs.internally
75f0: 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 62 65 . The default be
7600: 68 61 76 69 6f 72 20 77 68 65 6e 20 74 68 65 20 havior when the
7610: 3c 73 74 72 6f 6e 67 3e 2d 70 61 73 73 77 6f 72 <strong>-passwor
7620: 64 3c 2f 73 74 72 6f 6e 67 3e 20 6f 70 74 69 6f d</strong> optio
7630: 6e 20 69 73 20 6e 6f 74 0a 73 70 65 63 69 66 69 n is not.specifi
7640: 65 64 20 69 73 20 66 6f 72 20 54 4c 53 20 74 6f ed is for TLS to
7650: 20 70 72 6f 63 65 73 73 20 74 68 65 20 61 73 73 process the ass
7660: 6f 63 69 61 74 65 64 20 6c 69 62 72 61 72 79 20 ociated library
7670: 63 61 6c 6c 62 61 63 6b 73 20 62 79 20 61 74 74 callbacks by att
7680: 65 6d 70 74 69 6e 67 0a 74 6f 20 63 61 6c 6c 20 empting.to call
7690: 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 70 61 73 <strong>tls::pas
76a0: 73 77 6f 72 64 3c 2f 73 74 72 6f 6e 67 3e 2e 0a sword</strong>..
76b0: 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 62 The difference b
76c0: 65 74 77 65 65 6e 20 74 68 65 73 65 20 74 77 6f etween these two
76d0: 20 62 65 68 61 76 69 6f 72 73 20 69 73 20 61 20 behaviors is a
76e0: 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f 66 20 6d consequence of m
76f0: 61 69 6e 74 61 69 6e 69 6e 67 0a 63 6f 6d 70 61 aintaining.compa
7700: 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 65 61 tibility with ea
7710: 72 6c 69 65 72 20 69 6d 70 6c 65 6d 65 6e 74 61 rlier implementa
7720: 74 69 6f 6e 73 2e 0a 3c 2f 70 3e 0a 0a 3c 70 3e tions..</p>..<p>
7730: 0a 54 68 65 20 3c 73 74 72 6f 6e 67 3e 74 6c 73 .The <strong>tls
7740: 3a 3a 64 65 62 75 67 3c 2f 73 74 72 6f 6e 67 3e ::debug</strong>
7750: 20 76 61 72 69 61 62 6c 65 20 70 72 6f 76 69 64 variable provid
7760: 65 73 20 73 6f 6d 65 20 61 64 64 69 74 69 6f 6e es some addition
7770: 61 6c 0a 63 6f 6e 74 72 6f 6c 20 6f 76 65 72 20 al.control over
7780: 74 68 65 73 65 20 72 65 66 65 72 65 6e 63 65 20 these reference
7790: 63 61 6c 6c 62 61 63 6b 73 2e 20 20 49 74 73 20 callbacks. Its
77a0: 76 61 6c 75 65 20 69 73 20 7a 65 72 6f 20 62 79 value is zero by
77b0: 20 64 65 66 61 75 6c 74 2e 0a 48 69 67 68 65 72 default..Higher
77c0: 20 76 61 6c 75 65 73 20 70 72 6f 64 75 63 65 20 values produce
77d0: 6d 6f 72 65 20 64 69 61 67 6e 6f 73 74 69 63 20 more diagnostic
77e0: 6f 75 74 70 75 74 2c 20 61 6e 64 20 77 69 6c 6c output, and will
77f0: 20 61 6c 73 6f 20 66 6f 72 63 65 20 74 68 65 0a also force the.
7800: 76 65 72 69 66 79 20 6d 65 74 68 6f 64 20 69 6e verify method in
7810: 20 3c 73 74 72 6f 6e 67 3e 74 6c 73 3a 3a 63 61 <strong>tls::ca
7820: 6c 6c 62 61 63 6b 3c 2f 73 74 72 6f 6e 67 3e 20 llback</strong>
7830: 74 6f 20 61 63 63 65 70 74 20 74 68 65 0a 63 65 to accept the.ce
7840: 72 74 69 66 69 63 61 74 65 2c 20 65 76 65 6e 20 rtificate, even
7850: 77 68 65 6e 20 69 74 20 69 73 20 69 6e 76 61 6c when it is inval
7860: 69 64 2e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 0a 3c 65 id..</p>..<p>.<e
7870: 6d 3e 0a 54 68 65 20 75 73 65 20 6f 66 20 74 68 m>.The use of th
7880: 65 20 72 65 66 65 72 65 6e 63 65 20 63 61 6c 6c e reference call
7890: 62 61 63 6b 73 20 3c 73 74 72 6f 6e 67 3e 74 6c backs <strong>tl
78a0: 73 3a 3a 63 61 6c 6c 62 61 63 6b 3c 2f 73 74 72 s::callback</str
78b0: 6f 6e 67 3e 2c 0a 3c 73 74 72 6f 6e 67 3e 74 6c ong>,.<strong>tl
78c0: 73 3a 3a 70 61 73 73 77 6f 72 64 3c 2f 73 74 72 s::password</str
78d0: 6f 6e 67 3e 2c 20 61 6e 64 20 3c 73 74 72 6f 6e ong>, and <stron
78e0: 67 3e 74 6c 73 3a 3a 76 61 6c 69 64 61 74 65 5f g>tls::validate_
78f0: 63 6f 6d 6d 61 6e 64 3c 2f 73 74 72 6f 6e 67 3e command</strong>
7900: 0a 69 73 20 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e .is not recommen
7910: 64 65 64 2e 20 20 54 68 65 79 20 6d 61 79 20 62 ded. They may b
7920: 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 66 e removed from f
7930: 75 74 75 72 65 20 72 65 6c 65 61 73 65 73 2e 0a uture releases..
7940: 3c 2f 65 6d 3e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 0a </em>.</p>..<p>.
7950: 3c 65 6d 3e 0a 54 68 65 20 75 73 65 20 6f 66 20 <em>.The use of
7960: 74 68 65 20 76 61 72 69 61 62 6c 65 20 3c 73 74 the variable <st
7970: 72 6f 6e 67 3e 74 6c 73 3a 3a 64 65 62 75 67 3c rong>tls::debug<
7980: 2f 73 74 72 6f 6e 67 3e 20 69 73 20 6e 6f 74 20 /strong> is not
7990: 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 0a 49 74 20 recommended..It
79a0: 6d 61 79 20 62 65 20 72 65 6d 6f 76 65 64 20 66 may be removed f
79b0: 72 6f 6d 20 66 75 74 75 72 65 20 72 65 6c 65 61 rom future relea
79c0: 73 65 73 2e 0a 3c 2f 65 6d 3e 0a 3c 2f 70 3e 0a ses..</em>.</p>.
79d0: 0a 3c 68 33 3e 3c 61 20 6e 61 6d 65 3d 22 44 45 .<h3><a name="DE
79e0: 42 55 47 22 3e 44 45 42 55 47 3c 2f 61 3e 3c 2f BUG">DEBUG</a></
79f0: 68 33 3e 0a 0a 54 4c 53 20 6b 65 79 20 6c 6f 67 h3>..TLS key log
7a00: 67 69 6e 67 20 63 61 6e 20 62 65 20 65 6e 61 62 ging can be enab
7a10: 6c 65 64 20 62 79 20 73 65 74 74 69 6e 67 20 74 led by setting t
7a20: 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 he environment v
7a30: 61 72 69 61 62 6c 65 0a 3c 62 3e 53 53 4c 4b 45 ariable.<b>SSLKE
7a40: 59 4c 4f 47 46 49 4c 45 3c 2f 62 3e 20 74 6f 20 YLOGFILE</b> to
7a50: 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 the name of the
7a60: 66 69 6c 65 20 74 6f 20 6c 6f 67 20 74 6f 2e 20 file to log to.
7a70: 54 68 65 6e 20 77 68 65 6e 65 76 65 72 20 54 4c Then whenever TL
7a80: 53 0a 6b 65 79 20 6d 61 74 65 72 69 61 6c 20 69 S.key material i
7a90: 73 20 67 65 6e 65 72 61 74 65 64 20 6f 72 20 72 s generated or r
7aa0: 65 63 65 69 76 65 64 20 69 74 20 77 69 6c 6c 20 eceived it will
7ab0: 62 65 20 6c 6f 67 67 65 64 20 74 6f 20 74 68 65 be logged to the
7ac0: 20 66 69 6c 65 2e 20 54 68 69 73 0a 69 73 20 75 file. This.is u
7ad0: 73 65 66 75 6c 20 66 6f 72 20 6c 6f 67 67 69 6e seful for loggin
7ae0: 67 20 6b 65 79 20 64 61 74 61 20 66 6f 72 20 6e g key data for n
7af0: 65 74 77 6f 72 6b 20 6c 6f 67 67 69 6e 67 20 74 etwork logging t
7b00: 6f 6f 6c 73 20 74 6f 20 75 73 65 20 74 6f 0a 64 ools to use to.d
7b10: 65 63 72 79 70 74 20 74 68 65 20 64 61 74 61 2e ecrypt the data.
7b20: 0a 0a 3c 68 33 3e 3c 61 20 6e 61 6d 65 3d 22 48 ..<h3><a name="H
7b30: 54 54 50 53 20 45 58 41 4d 50 4c 45 22 3e 48 54 TTPS EXAMPLE">HT
7b40: 54 50 53 20 45 58 41 4d 50 4c 45 3c 2f 61 3e 3c TPS EXAMPLE</a><
7b50: 2f 68 33 3e 0a 0a 3c 70 3e 54 68 69 73 20 65 78 /h3>..<p>This ex
7b60: 61 6d 70 6c 65 20 75 73 65 73 20 61 20 73 61 6d ample uses a sam
7b70: 70 6c 65 20 73 65 72 76 65 72 2e 70 65 6d 20 70 ple server.pem p
7b80: 72 6f 76 69 64 65 64 20 77 69 74 68 20 74 68 65 rovided with the
7b90: 20 54 4c 53 20 72 65 6c 65 61 73 65 2c 0a 63 6f TLS release,.co
7ba0: 75 72 74 65 73 79 20 6f 66 20 74 68 65 20 3c 73 urtesy of the <s
7bb0: 74 72 6f 6e 67 3e 4f 70 65 6e 53 53 4c 3c 2f 73 trong>OpenSSL</s
7bc0: 74 72 6f 6e 67 3e 20 70 72 6f 6a 65 63 74 2e 3c trong> project.<
7bd0: 2f 70 3e 0a 0a 3c 70 72 65 3e 3c 63 6f 64 65 3e /p>..<pre><code>
7be0: 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 .package require
7bf0: 20 68 74 74 70 0a 70 61 63 6b 61 67 65 20 72 65 http.package re
7c00: 71 75 69 72 65 20 74 6c 73 0a 0a 68 74 74 70 3a quire tls..http:
7c10: 3a 72 65 67 69 73 74 65 72 20 68 74 74 70 73 20 :register https
7c20: 34 34 33 20 5b 6c 69 73 74 20 3a 3a 74 6c 73 3a 443 [list ::tls:
7c30: 3a 73 6f 63 6b 65 74 20 2d 61 75 74 6f 73 65 72 :socket -autoser
7c40: 76 65 72 6e 61 6d 65 20 74 72 75 65 20 2d 72 65 vername true -re
7c50: 71 75 69 72 65 20 74 72 75 65 20 2d 63 61 64 69 quire true -cadi
7c60: 72 20 2f 65 74 63 2f 73 73 6c 2f 63 65 72 74 73 r /etc/ssl/certs
7c70: 5d 0a 0a 73 65 74 20 74 6f 6b 20 5b 68 74 74 70 ]..set tok [http
7c80: 3a 3a 67 65 74 75 72 6c 20 68 74 74 70 73 3a 2f ::geturl https:/
7c90: 2f 77 77 77 2e 74 63 6c 2e 74 6b 2f 5d 0a 3c 2f /www.tcl.tk/].</
7ca0: 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 3c 68 33 code></pre>..<h3
7cb0: 3e 3c 61 20 6e 61 6d 65 3d 22 53 50 45 43 49 41 ><a name="SPECIA
7cc0: 4c 20 43 4f 4e 53 49 44 45 52 41 54 49 4f 4e 53 L CONSIDERATIONS
7cd0: 22 3e 53 50 45 43 49 41 4c 20 43 4f 4e 53 49 44 ">SPECIAL CONSID
7ce0: 45 52 41 54 49 4f 4e 53 3c 2f 61 3e 3c 2f 68 33 ERATIONS</a></h3
7cf0: 3e 0a 0a 3c 70 3e 54 68 65 20 63 61 70 61 62 69 >..<p>The capabi
7d00: 6c 69 74 69 65 73 20 6f 66 20 74 68 69 73 20 70 lities of this p
7d10: 61 63 6b 61 67 65 20 63 61 6e 20 76 61 72 79 20 ackage can vary
7d20: 65 6e 6f 72 6d 6f 75 73 6c 79 20 62 61 73 65 64 enormously based
7d30: 20 75 70 6f 6e 20 68 6f 77 20 79 6f 75 72 0a 4f upon how your.O
7d40: 70 65 6e 53 53 4c 20 6c 69 62 72 61 72 79 20 77 penSSL library w
7d50: 61 73 20 63 6f 6e 66 69 67 75 72 65 64 20 61 6e as configured an
7d60: 64 20 62 75 69 6c 74 2e 20 4e 65 77 20 76 65 72 d built. New ver
7d70: 73 69 6f 6e 73 20 6d 61 79 20 6f 62 73 6f 6c 65 sions may obsole
7d80: 74 65 20 6f 6c 64 65 72 0a 70 72 6f 74 6f 63 6f te older.protoco
7d90: 6c 20 76 65 72 73 69 6f 6e 73 2c 20 61 64 64 20 l versions, add
7da0: 6f 72 20 72 65 6d 6f 76 65 20 63 69 70 68 65 72 or remove cipher
7db0: 73 2c 20 63 68 61 6e 67 65 20 64 65 66 61 75 6c s, change defaul
7dc0: 74 20 76 61 6c 75 65 73 2c 20 65 74 63 2e 20 55 t values, etc. U
7dd0: 73 65 20 74 68 65 0a 3c 73 74 72 6f 6e 67 3e 74 se the.<strong>t
7de0: 6c 73 3a 3a 63 69 70 68 65 72 73 3c 2f 73 74 72 ls::ciphers</str
7df0: 6f 6e 67 3e 20 61 6e 64 20 3c 73 74 72 6f 6e 67 ong> and <strong
7e00: 3e 74 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 3c >tls::protocols<
7e10: 2f 73 74 72 6f 6e 67 3e 20 63 6f 6d 6d 61 6e 64 /strong> command
7e20: 73 20 74 6f 0a 6f 62 74 61 69 6e 20 74 68 65 20 s to.obtain the
7e30: 73 75 70 70 6f 72 74 65 64 20 76 65 72 73 69 6f supported versio
7e40: 6e 73 2e 3c 2f 70 3e 0a 0a 3c 68 33 3e 3c 61 20 ns.</p>..<h3><a
7e50: 6e 61 6d 65 3d 22 53 45 45 20 41 4c 53 4f 22 3e name="SEE ALSO">
7e60: 53 45 45 20 41 4c 53 4f 3c 2f 61 3e 3c 2f 68 33 SEE ALSO</a></h3
7e70: 3e 0a 0a 3c 70 3e 3c 73 74 72 6f 6e 67 3e 73 6f >..<p><strong>so
7e80: 63 6b 65 74 3c 2f 73 74 72 6f 6e 67 3e 2c 20 3c cket</strong>, <
7e90: 73 74 72 6f 6e 67 3e 66 69 6c 65 65 76 65 6e 74 strong>fileevent
7ea0: 2c 20 3c 2f 73 74 72 6f 6e 67 3e 3c 61 0a 68 72 , </strong><a.hr
7eb0: 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 6f ef="http://www.o
7ec0: 70 65 6e 73 73 6c 2e 6f 72 67 2f 22 3e 3c 73 74 penssl.org/"><st
7ed0: 72 6f 6e 67 3e 4f 70 65 6e 53 53 4c 3c 2f 73 74 rong>OpenSSL</st
7ee0: 72 6f 6e 67 3e 3c 2f 61 3e 3c 2f 70 3e 0a 0a 3c rong></a></p>..<
7ef0: 68 72 3e 0a 0a 3c 70 72 65 3e 0a 43 6f 70 79 72 hr>..<pre>.Copyr
7f00: 69 67 68 74 20 26 63 6f 70 79 3b 20 31 39 39 39 ight © 1999
7f10: 20 4d 61 74 74 20 4e 65 77 6d 61 6e 2e 0a 43 6f Matt Newman..Co
7f20: 70 79 72 69 67 68 74 20 26 63 6f 70 79 3b 20 32 pyright © 2
7f30: 30 30 34 20 53 74 61 72 66 69 73 68 20 53 79 73 004 Starfish Sys
7f40: 74 65 6d 73 2e 0a 3c 2f 70 72 65 3e 0a 3c 2f 62 tems..</pre>.</b
7f50: 6f 64 79 3e 0a 3c 2f 68 74 6d 6c 3e 0a ody>.</html>.