0000: 3c 21 44 4f 43 54 59 50 45 20 68 74 6d 6c 3e 3c <!DOCTYPE html><
0010: 68 74 6d 6c 3e 3c 68 65 61 64 3e 0a 3c 6d 65 74 html><head>.<met
0020: 61 20 63 68 61 72 73 65 74 3d 22 55 54 46 2d 38 a charset="UTF-8
0030: 22 3e 0a 3c 6d 65 74 61 20 6e 61 6d 65 3d 22 76 ">.<meta name="v
0040: 69 65 77 70 6f 72 74 22 20 63 6f 6e 74 65 6e 74 iewport" content
0050: 3d 22 77 69 64 74 68 3d 64 65 76 69 63 65 2d 77 ="width=device-w
0060: 69 64 74 68 2c 20 69 6e 69 74 69 61 6c 2d 73 63 idth, initial-sc
0070: 61 6c 65 3d 31 22 3e 0a 3c 74 69 74 6c 65 3e 74 ale=1">.<title>t
0080: 6c 73 20 2d 20 54 63 6c 20 54 4c 53 20 65 78 74 ls - Tcl TLS ext
0090: 65 6e 73 69 6f 6e 3c 2f 74 69 74 6c 65 3e 0a 3c ension</title>.<
00a0: 73 74 79 6c 65 20 74 79 70 65 3d 22 74 65 78 74 style type="text
00b0: 2f 63 73 73 22 3e 3c 21 2d 2d 0a 20 20 20 20 48 /css"><!--. H
00c0: 54 4d 4c 20 7b 0a 09 62 61 63 6b 67 72 6f 75 6e TML {..backgroun
00d0: 64 3a 20 09 23 46 46 46 46 46 46 3b 0a 09 63 6f d: .#FFFFFF;..co
00e0: 6c 6f 72 3a 20 09 09 62 6c 61 63 6b 3b 0a 20 20 lor: ..black;.
00f0: 20 20 7d 0a 20 20 20 20 42 4f 44 59 20 7b 0a 09 }. BODY {..
0100: 62 61 63 6b 67 72 6f 75 6e 64 3a 20 09 23 46 46 background: .#FF
0110: 46 46 46 46 3b 0a 09 63 6f 6c 6f 72 3a 09 20 09 FFFF;..color:. .
0120: 62 6c 61 63 6b 3b 0a 20 20 20 20 7d 0a 20 20 20 black;. }.
0130: 20 44 49 56 2e 64 6f 63 74 6f 6f 6c 73 20 7b 0a DIV.doctools {.
0140: 09 6d 61 72 67 69 6e 2d 6c 65 66 74 3a 09 31 30 .margin-left:.10
0150: 25 3b 0a 09 6d 61 72 67 69 6e 2d 72 69 67 68 74 %;..margin-right
0160: 3a 09 31 30 25 3b 0a 20 20 20 20 7d 0a 20 20 20 :.10%;. }.
0170: 20 44 49 56 2e 64 6f 63 74 6f 6f 6c 73 20 48 31 DIV.doctools H1
0180: 2c 44 49 56 2e 64 6f 63 74 6f 6f 6c 73 20 48 32 ,DIV.doctools H2
0190: 20 7b 0a 09 6d 61 72 67 69 6e 2d 6c 65 66 74 3a {..margin-left:
01a0: 09 2d 35 25 3b 0a 20 20 20 20 7d 0a 20 20 20 20 .-5%;. }.
01b0: 48 31 2c 20 48 32 2c 20 48 33 2c 20 48 34 20 7b H1, H2, H3, H4 {
01c0: 0a 09 6d 61 72 67 69 6e 2d 74 6f 70 3a 20 09 31 ..margin-top: .1
01d0: 65 6d 3b 0a 09 66 6f 6e 74 2d 66 61 6d 69 6c 79 em;..font-family
01e0: 3a 09 73 61 6e 73 2d 73 65 72 69 66 3b 0a 09 66 :.sans-serif;..f
01f0: 6f 6e 74 2d 73 69 7a 65 3a 09 6c 61 72 67 65 3b ont-size:.large;
0200: 0a 09 63 6f 6c 6f 72 3a 09 09 23 30 30 35 41 39 ..color:..#005A9
0210: 43 3b 0a 09 62 61 63 6b 67 72 6f 75 6e 64 3a 20 C;..background:
0220: 09 74 72 61 6e 73 70 61 72 65 6e 74 3b 0a 09 74 .transparent;..t
0230: 65 78 74 2d 61 6c 69 67 6e 3a 09 09 6c 65 66 74 ext-align:..left
0240: 3b 0a 20 20 20 20 7d 0a 20 20 20 20 48 31 2e 64 ;. }. H1.d
0250: 6f 63 74 6f 6f 6c 73 5f 74 69 74 6c 65 20 7b 0a octools_title {.
0260: 09 74 65 78 74 2d 61 6c 69 67 6e 3a 20 63 65 6e .text-align: cen
0270: 74 65 72 3b 0a 20 20 20 20 7d 0a 20 20 20 20 55 ter;. }. U
0280: 4c 2c 4f 4c 20 7b 0a 09 6d 61 72 67 69 6e 2d 72 L,OL {..margin-r
0290: 69 67 68 74 3a 20 30 65 6d 3b 0a 09 6d 61 72 67 ight: 0em;..marg
02a0: 69 6e 2d 74 6f 70 3a 20 33 70 74 3b 0a 09 6d 61 in-top: 3pt;..ma
02b0: 72 67 69 6e 2d 62 6f 74 74 6f 6d 3a 20 33 70 74 rgin-bottom: 3pt
02c0: 3b 0a 20 20 20 20 7d 0a 20 20 20 20 55 4c 20 4c ;. }. UL L
02d0: 49 20 7b 0a 09 6c 69 73 74 2d 73 74 79 6c 65 3a I {..list-style:
02e0: 20 64 69 73 63 3b 0a 20 20 20 20 7d 0a 20 20 20 disc;. }.
02f0: 20 4f 4c 20 4c 49 20 7b 0a 09 6c 69 73 74 2d 73 OL LI {..list-s
0300: 74 79 6c 65 3a 20 64 65 63 69 6d 61 6c 3b 0a 20 tyle: decimal;.
0310: 20 20 20 7d 0a 20 20 20 20 44 54 20 7b 0a 09 70 }. DT {..p
0320: 61 64 64 69 6e 67 2d 74 6f 70 3a 20 09 31 65 78 adding-top: .1ex
0330: 3b 0a 20 20 20 20 7d 0a 20 20 20 20 55 4c 2e 64 ;. }. UL.d
0340: 6f 63 74 6f 6f 6c 73 5f 74 6f 63 2c 55 4c 2e 64 octools_toc,UL.d
0350: 6f 63 74 6f 6f 6c 73 5f 74 6f 63 20 55 4c 2c 20 octools_toc UL,
0360: 55 4c 2e 64 6f 63 74 6f 6f 6c 73 5f 74 6f 63 20 UL.doctools_toc
0370: 55 4c 20 55 4c 20 7b 0a 09 66 6f 6e 74 3a 09 09 UL UL {..font:..
0380: 6e 6f 72 6d 61 6c 20 31 32 70 74 2f 31 34 70 74 normal 12pt/14pt
0390: 20 73 61 6e 73 2d 73 65 72 69 66 3b 0a 09 6c 69 sans-serif;..li
03a0: 73 74 2d 73 74 79 6c 65 3a 09 6e 6f 6e 65 3b 0a st-style:.none;.
03b0: 20 20 20 20 7d 0a 20 20 20 20 4c 49 2e 64 6f 63 }. LI.doc
03c0: 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 2c 20 4c tools_section, L
03d0: 49 2e 64 6f 63 74 6f 6f 6c 73 5f 73 75 62 73 65 I.doctools_subse
03e0: 63 74 69 6f 6e 20 7b 0a 09 6c 69 73 74 2d 73 74 ction {..list-st
03f0: 79 6c 65 3a 20 09 6e 6f 6e 65 3b 0a 09 6d 61 72 yle: .none;..mar
0400: 67 69 6e 2d 6c 65 66 74 3a 20 09 30 65 6d 3b 0a gin-left: .0em;.
0410: 09 74 65 78 74 2d 69 6e 64 65 6e 74 3a 09 30 65 .text-indent:.0e
0420: 6d 3b 0a 09 70 61 64 64 69 6e 67 3a 20 09 30 65 m;..padding: .0e
0430: 6d 3b 0a 20 20 20 20 7d 0a 20 20 20 20 50 52 45 m;. }. PRE
0440: 20 7b 0a 09 64 69 73 70 6c 61 79 3a 20 09 62 6c {..display: .bl
0450: 6f 63 6b 3b 0a 09 66 6f 6e 74 2d 66 61 6d 69 6c ock;..font-famil
0460: 79 3a 09 6d 6f 6e 6f 73 70 61 63 65 3b 0a 09 77 y:.monospace;..w
0470: 68 69 74 65 2d 73 70 61 63 65 3a 09 70 72 65 3b hite-space:.pre;
0480: 0a 09 6d 61 72 67 69 6e 3a 09 09 30 25 3b 0a 09 ..margin:..0%;..
0490: 70 61 64 64 69 6e 67 2d 74 6f 70 3a 09 30 2e 35 padding-top:.0.5
04a0: 65 78 3b 0a 09 70 61 64 64 69 6e 67 2d 62 6f 74 ex;..padding-bot
04b0: 74 6f 6d 3a 09 30 2e 35 65 78 3b 0a 09 70 61 64 tom:.0.5ex;..pad
04c0: 64 69 6e 67 2d 6c 65 66 74 3a 09 31 65 78 3b 0a ding-left:.1ex;.
04d0: 09 70 61 64 64 69 6e 67 2d 72 69 67 68 74 3a 09 .padding-right:.
04e0: 31 65 78 3b 0a 09 77 69 64 74 68 3a 09 09 31 30 1ex;..width:..10
04f0: 30 25 3b 0a 20 20 20 20 7d 0a 20 20 20 20 50 52 0%;. }. PR
0500: 45 2e 64 6f 63 74 6f 6f 6c 73 5f 65 78 61 6d 70 E.doctools_examp
0510: 6c 65 20 7b 0a 09 63 6f 6c 6f 72 3a 20 09 09 62 le {..color: ..b
0520: 6c 61 63 6b 3b 0a 09 62 61 63 6b 67 72 6f 75 6e lack;..backgroun
0530: 64 3a 20 09 23 66 35 64 63 62 33 3b 0a 09 62 6f d: .#f5dcb3;..bo
0540: 72 64 65 72 3a 09 09 31 70 78 20 73 6f 6c 69 64 rder:..1px solid
0550: 20 62 6c 61 63 6b 3b 0a 20 20 20 20 7d 0a 20 20 black;. }.
0560: 20 20 55 4c 2e 64 6f 63 74 6f 6f 6c 73 5f 72 65 UL.doctools_re
0570: 71 75 69 72 65 6d 65 6e 74 73 20 4c 49 2c 20 55 quirements LI, U
0580: 4c 2e 64 6f 63 74 6f 6f 6c 73 5f 73 79 6e 74 61 L.doctools_synta
0590: 78 20 4c 49 20 7b 0a 09 6c 69 73 74 2d 73 74 79 x LI {..list-sty
05a0: 6c 65 3a 20 09 6e 6f 6e 65 3b 0a 09 6d 61 72 67 le: .none;..marg
05b0: 69 6e 2d 6c 65 66 74 3a 20 09 30 65 6d 3b 0a 09 in-left: .0em;..
05c0: 74 65 78 74 2d 69 6e 64 65 6e 74 3a 09 30 65 6d text-indent:.0em
05d0: 3b 0a 09 70 61 64 64 69 6e 67 3a 09 30 65 6d 3b ;..padding:.0em;
05e0: 0a 20 20 20 20 7d 0a 20 20 20 20 44 49 56 2e 64 . }. DIV.d
05f0: 6f 63 74 6f 6f 6c 73 5f 73 79 6e 6f 70 73 69 73 octools_synopsis
0600: 20 7b 0a 09 63 6f 6c 6f 72 3a 20 09 09 62 6c 61 {..color: ..bla
0610: 63 6b 3b 0a 09 62 61 63 6b 67 72 6f 75 6e 64 3a ck;..background:
0620: 20 09 23 38 30 66 66 66 66 3b 0a 09 62 6f 72 64 .#80ffff;..bord
0630: 65 72 3a 09 09 31 70 78 20 73 6f 6c 69 64 20 62 er:..1px solid b
0640: 6c 61 63 6b 3b 0a 09 66 6f 6e 74 2d 66 61 6d 69 lack;..font-fami
0650: 6c 79 3a 09 73 65 72 69 66 3b 0a 09 6d 61 72 67 ly:.serif;..marg
0660: 69 6e 2d 74 6f 70 3a 20 09 31 65 6d 3b 0a 09 6d in-top: .1em;..m
0670: 61 72 67 69 6e 2d 62 6f 74 74 6f 6d 3a 20 09 31 argin-bottom: .1
0680: 65 6d 3b 0a 20 20 20 20 7d 0a 20 20 20 20 55 4c em;. }. UL
0690: 2e 64 6f 63 74 6f 6f 6c 73 5f 73 79 6e 74 61 78 .doctools_syntax
06a0: 20 7b 0a 09 6d 61 72 67 69 6e 2d 74 6f 70 3a 20 {..margin-top:
06b0: 09 31 65 6d 3b 0a 09 62 6f 72 64 65 72 2d 74 6f .1em;..border-to
06c0: 70 3a 09 31 70 78 20 73 6f 6c 69 64 20 62 6c 61 p:.1px solid bla
06d0: 63 6b 3b 0a 20 20 20 20 7d 0a 20 20 20 20 55 4c ck;. }. UL
06e0: 2e 64 6f 63 74 6f 6f 6c 73 5f 72 65 71 75 69 72 .doctools_requir
06f0: 65 6d 65 6e 74 73 20 7b 0a 09 6d 61 72 67 69 6e ements {..margin
0700: 2d 62 6f 74 74 6f 6d 3a 20 09 31 65 6d 3b 0a 09 -bottom: .1em;..
0710: 62 6f 72 64 65 72 2d 62 6f 74 74 6f 6d 3a 09 31 border-bottom:.1
0720: 70 78 20 73 6f 6c 69 64 20 62 6c 61 63 6b 3b 0a px solid black;.
0730: 20 20 20 20 7d 0a 2d 2d 3e 3c 2f 73 74 79 6c 65 }.--></style
0740: 3e 0a 3c 2f 68 65 61 64 3e 0a 3c 21 2d 2d 20 47 >.</head>.<!-- G
0750: 65 6e 65 72 61 74 65 64 20 66 72 6f 6d 20 66 69 enerated from fi
0760: 6c 65 20 27 74 6c 73 2e 6d 61 6e 27 20 62 79 20 le 'tls.man' by
0770: 74 63 6c 6c 69 62 2f 64 6f 63 74 6f 6f 6c 73 20 tcllib/doctools
0780: 77 69 74 68 20 66 6f 72 6d 61 74 20 27 68 74 6d with format 'htm
0790: 6c 27 0a 20 20 20 2d 2d 3e 0a 3c 21 2d 2d 20 43 l'. -->.<!-- C
07a0: 6f 70 79 72 69 67 68 74 20 26 61 6d 70 3b 63 6f opyright &co
07b0: 70 79 3b 20 31 39 39 39 20 4d 61 74 74 20 4e 65 py; 1999 Matt Ne
07c0: 77 6d 61 6e 20 20 20 2d 2d 20 43 6f 70 79 72 69 wman -- Copyri
07d0: 67 68 74 20 26 61 6d 70 3b 63 6f 70 79 3b 20 32 ght &copy; 2
07e0: 30 30 34 20 53 74 61 72 66 69 73 68 20 53 79 73 004 Starfish Sys
07f0: 74 65 6d 73 20 20 20 2d 2d 20 43 6f 70 79 72 69 tems -- Copyri
0800: 67 68 74 20 26 61 6d 70 3b 63 6f 70 79 3b 20 32 ght &copy; 2
0810: 30 32 34 20 42 72 69 61 6e 20 4f 27 48 61 67 61 024 Brian O'Haga
0820: 6e 0a 20 20 20 2d 2d 3e 0a 3c 21 2d 2d 20 74 6c n. -->.<!-- tl
0830: 73 2e 6e 0a 20 20 20 2d 2d 3e 0a 3c 62 6f 64 79 s.n. -->.<body
0840: 3e 3c 64 69 76 20 63 6c 61 73 73 3d 22 64 6f 63 ><div class="doc
0850: 74 6f 6f 6c 73 22 3e 0a 3c 68 31 20 63 6c 61 73 tools">.<h1 clas
0860: 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 74 69 74 6c s="doctools_titl
0870: 65 22 3e 74 6c 73 28 6e 29 20 31 2e 38 20 74 6c e">tls(n) 1.8 tl
0880: 73 20 26 71 75 6f 74 3b 54 63 6c 20 54 4c 53 20 s "Tcl TLS
0890: 65 78 74 65 6e 73 69 6f 6e 26 71 75 6f 74 3b 3c extension"<
08a0: 2f 68 31 3e 0a 3c 64 69 76 20 69 64 3d 22 6e 61 /h1>.<div id="na
08b0: 6d 65 22 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f me" class="docto
08c0: 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e 3c 68 32 ols_section"><h2
08d0: 3e 3c 61 20 6e 61 6d 65 3d 22 6e 61 6d 65 22 3e ><a name="name">
08e0: 4e 61 6d 65 3c 2f 61 3e 3c 2f 68 32 3e 0a 3c 70 Name</a></h2>.<p
08f0: 3e 74 6c 73 20 2d 20 62 69 6e 64 69 6e 67 20 74 >tls - binding t
0900: 6f 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 6c 69 o the OpenSSL li
0910: 62 72 61 72 79 20 66 6f 72 20 65 6e 63 72 79 70 brary for encryp
0920: 74 65 64 20 73 6f 63 6b 65 74 20 61 6e 64 20 49 ted socket and I
0930: 2f 4f 20 63 68 61 6e 6e 65 6c 20 63 6f 6d 6d 75 /O channel commu
0940: 6e 69 63 61 74 69 6f 6e 73 3c 2f 70 3e 0a 3c 2f nications</p>.</
0950: 64 69 76 3e 0a 3c 64 69 76 20 69 64 3d 22 74 6f div>.<div id="to
0960: 63 22 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f c" class="doctoo
0970: 6c 73 5f 73 65 63 74 69 6f 6e 22 3e 3c 68 32 3e ls_section"><h2>
0980: 3c 61 20 6e 61 6d 65 3d 22 74 6f 63 22 3e 54 61 <a name="toc">Ta
0990: 62 6c 65 20 4f 66 20 43 6f 6e 74 65 6e 74 73 3c ble Of Contents<
09a0: 2f 61 3e 3c 2f 68 32 3e 0a 3c 75 6c 20 63 6c 61 /a></h2>.<ul cla
09b0: 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 74 6f 63 ss="doctools_toc
09c0: 22 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d 22 64 6f ">.<li class="do
09d0: 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e ctools_section">
09e0: 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 22 3e 54 <a href="#toc">T
09f0: 61 62 6c 65 20 4f 66 20 43 6f 6e 74 65 6e 74 73 able Of Contents
0a00: 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 20 63 6c </a></li>.<li cl
0a10: 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 ass="doctools_se
0a20: 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 ction"><a href="
0a30: 23 73 79 6e 6f 70 73 69 73 22 3e 53 79 6e 6f 70 #synopsis">Synop
0a40: 73 69 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 sis</a></li>.<li
0a50: 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 class="doctools
0a60: 5f 73 65 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 _section"><a hre
0a70: 66 3d 22 23 73 65 63 74 69 6f 6e 31 22 3e 44 65 f="#section1">De
0a80: 73 63 72 69 70 74 69 6f 6e 3c 2f 61 3e 3c 2f 6c scription</a></l
0a90: 69 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d 22 64 6f i>.<li class="do
0aa0: 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e ctools_section">
0ab0: 3c 61 20 68 72 65 66 3d 22 23 73 65 63 74 69 6f <a href="#sectio
0ac0: 6e 32 22 3e 43 6f 6d 6d 61 6e 64 73 3c 2f 61 3e n2">Commands</a>
0ad0: 3c 2f 6c 69 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d </li>.<li class=
0ae0: 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f "doctools_sectio
0af0: 6e 22 3e 3c 61 20 68 72 65 66 3d 22 23 73 65 63 n"><a href="#sec
0b00: 74 69 6f 6e 33 22 3e 43 65 72 74 69 66 69 63 61 tion3">Certifica
0b10: 74 65 20 56 61 6c 69 64 61 74 69 6f 6e 3c 2f 61 te Validation</a
0b20: 3e 0a 3c 75 6c 3e 0a 3c 6c 69 20 63 6c 61 73 73 >.<ul>.<li class
0b30: 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 75 62 73 65 ="doctools_subse
0b40: 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 ction"><a href="
0b50: 23 73 75 62 73 65 63 74 69 6f 6e 31 22 3e 50 4b #subsection1">PK
0b60: 49 20 61 6e 64 20 43 65 72 74 69 66 69 63 61 74 I and Certificat
0b70: 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 20 es</a></li>.<li
0b80: 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f class="doctools_
0b90: 73 75 62 73 65 63 74 69 6f 6e 22 3e 3c 61 20 68 subsection"><a h
0ba0: 72 65 66 3d 22 23 73 75 62 73 65 63 74 69 6f 6e ref="#subsection
0bb0: 32 22 3e 53 75 6d 6d 61 72 79 20 6f 66 20 63 6f 2">Summary of co
0bc0: 6d 6d 61 6e 64 20 6c 69 6e 65 20 6f 70 74 69 6f mmand line optio
0bd0: 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 20 ns</a></li>.<li
0be0: 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f class="doctools_
0bf0: 73 75 62 73 65 63 74 69 6f 6e 22 3e 3c 61 20 68 subsection"><a h
0c00: 72 65 66 3d 22 23 73 75 62 73 65 63 74 69 6f 6e ref="#subsection
0c10: 33 22 3e 57 68 65 6e 20 61 72 65 20 63 6f 6d 6d 3">When are comm
0c20: 61 6e 64 20 6c 69 6e 65 20 6f 70 74 69 6f 6e 73 and line options
0c30: 20 6e 65 65 64 65 64 3f 3c 2f 61 3e 3c 2f 6c 69 needed?</a></li
0c40: 3e 0a 3c 2f 75 6c 3e 0a 3c 2f 6c 69 3e 0a 3c 6c >.</ul>.</li>.<l
0c50: 69 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c i class="doctool
0c60: 73 5f 73 65 63 74 69 6f 6e 22 3e 3c 61 20 68 72 s_section"><a hr
0c70: 65 66 3d 22 23 73 65 63 74 69 6f 6e 34 22 3e 43 ef="#section4">C
0c80: 61 6c 6c 62 61 63 6b 20 4f 70 74 69 6f 6e 73 3c allback Options<
0c90: 2f 61 3e 0a 3c 75 6c 3e 0a 3c 6c 69 20 63 6c 61 /a>.<ul>.<li cla
0ca0: 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 75 62 ss="doctools_sub
0cb0: 73 65 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 66 section"><a href
0cc0: 3d 22 23 73 75 62 73 65 63 74 69 6f 6e 34 22 3e ="#subsection4">
0cd0: 56 61 6c 75 65 73 20 66 6f 72 20 43 6f 6d 6d 61 Values for Comma
0ce0: 6e 64 20 43 61 6c 6c 62 61 63 6b 3c 2f 61 3e 3c nd Callback</a><
0cf0: 2f 6c 69 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d 22 /li>.<li class="
0d00: 64 6f 63 74 6f 6f 6c 73 5f 73 75 62 73 65 63 74 doctools_subsect
0d10: 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 23 73 ion"><a href="#s
0d20: 75 62 73 65 63 74 69 6f 6e 35 22 3e 56 61 6c 75 ubsection5">Valu
0d30: 65 73 20 66 6f 72 20 50 61 73 73 77 6f 72 64 20 es for Password
0d40: 43 61 6c 6c 62 61 63 6b 3c 2f 61 3e 3c 2f 6c 69 Callback</a></li
0d50: 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d 22 64 6f 63 >.<li class="doc
0d60: 74 6f 6f 6c 73 5f 73 75 62 73 65 63 74 69 6f 6e tools_subsection
0d70: 22 3e 3c 61 20 68 72 65 66 3d 22 23 73 75 62 73 "><a href="#subs
0d80: 65 63 74 69 6f 6e 36 22 3e 56 61 6c 75 65 73 20 ection6">Values
0d90: 66 6f 72 20 56 61 6c 69 64 61 74 65 20 43 6f 6d for Validate Com
0da0: 6d 61 6e 64 20 43 61 6c 6c 62 61 63 6b 3c 2f 61 mand Callback</a
0db0: 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 3c 2f 6c ></li>.</ul>.</l
0dc0: 69 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d 22 64 6f i>.<li class="do
0dd0: 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e ctools_section">
0de0: 3c 61 20 68 72 65 66 3d 22 23 73 65 63 74 69 6f <a href="#sectio
0df0: 6e 35 22 3e 44 65 62 75 67 3c 2f 61 3e 3c 2f 6c n5">Debug</a></l
0e00: 69 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d 22 64 6f i>.<li class="do
0e10: 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e ctools_section">
0e20: 3c 61 20 68 72 65 66 3d 22 23 73 65 63 74 69 6f <a href="#sectio
0e30: 6e 36 22 3e 48 54 54 50 20 50 61 63 6b 61 67 65 n6">HTTP Package
0e40: 20 45 78 61 6d 70 6c 65 73 3c 2f 61 3e 3c 2f 6c Examples</a></l
0e50: 69 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d 22 64 6f i>.<li class="do
0e60: 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e ctools_section">
0e70: 3c 61 20 68 72 65 66 3d 22 23 73 65 63 74 69 6f <a href="#sectio
0e80: 6e 37 22 3e 53 70 65 63 69 61 6c 20 43 6f 6e 73 n7">Special Cons
0e90: 69 64 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f iderations</a></
0ea0: 6c 69 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d 22 64 li>.<li class="d
0eb0: 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 octools_section"
0ec0: 3e 3c 61 20 68 72 65 66 3d 22 23 73 65 65 2d 61 ><a href="#see-a
0ed0: 6c 73 6f 22 3e 53 65 65 20 41 6c 73 6f 3c 2f 61 lso">See Also</a
0ee0: 3e 3c 2f 6c 69 3e 0a 3c 6c 69 20 63 6c 61 73 73 ></li>.<li class
0ef0: 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 69 ="doctools_secti
0f00: 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 23 6b 65 on"><a href="#ke
0f10: 79 77 6f 72 64 73 22 3e 4b 65 79 77 6f 72 64 73 ywords">Keywords
0f20: 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 20 63 6c </a></li>.<li cl
0f30: 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 ass="doctools_se
0f40: 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 ction"><a href="
0f50: 23 63 61 74 65 67 6f 72 79 22 3e 43 61 74 65 67 #category">Categ
0f60: 6f 72 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 ory</a></li>.<li
0f70: 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 class="doctools
0f80: 5f 73 65 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 _section"><a hre
0f90: 66 3d 22 23 63 6f 70 79 72 69 67 68 74 22 3e 43 f="#copyright">C
0fa0: 6f 70 79 72 69 67 68 74 3c 2f 61 3e 3c 2f 6c 69 opyright</a></li
0fb0: 3e 0a 3c 2f 75 6c 3e 0a 3c 2f 64 69 76 3e 0a 3c >.</ul>.</div>.<
0fc0: 64 69 76 20 69 64 3d 22 73 79 6e 6f 70 73 69 73 div id="synopsis
0fd0: 22 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c " class="doctool
0fe0: 73 5f 73 65 63 74 69 6f 6e 22 3e 3c 68 32 3e 3c s_section"><h2><
0ff0: 61 20 6e 61 6d 65 3d 22 73 79 6e 6f 70 73 69 73 a name="synopsis
1000: 22 3e 53 79 6e 6f 70 73 69 73 3c 2f 61 3e 3c 2f ">Synopsis</a></
1010: 68 32 3e 0a 3c 64 69 76 20 63 6c 61 73 73 3d 22 h2>.<div class="
1020: 64 6f 63 74 6f 6f 6c 73 5f 73 79 6e 6f 70 73 69 doctools_synopsi
1030: 73 22 3e 0a 3c 75 6c 20 63 6c 61 73 73 3d 22 64 s">.<ul class="d
1040: 6f 63 74 6f 6f 6c 73 5f 72 65 71 75 69 72 65 6d octools_requirem
1050: 65 6e 74 73 22 3e 0a 3c 6c 69 3e 70 61 63 6b 61 ents">.<li>packa
1060: 67 65 20 72 65 71 75 69 72 65 20 3c 62 20 63 6c ge require <b cl
1070: 61 73 73 3d 22 70 6b 67 6e 61 6d 65 22 3e 54 63 ass="pkgname">Tc
1080: 6c 20 38 2e 35 2d 3c 2f 62 3e 3c 2f 6c 69 3e 0a l 8.5-</b></li>.
1090: 3c 6c 69 3e 70 61 63 6b 61 67 65 20 72 65 71 75 <li>package requ
10a0: 69 72 65 20 3c 62 20 63 6c 61 73 73 3d 22 70 6b ire <b class="pk
10b0: 67 6e 61 6d 65 22 3e 74 6c 73 20 31 2e 38 3c 2f gname">tls 1.8</
10c0: 62 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 3c 75 b></li>.</ul>.<u
10d0: 6c 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c l class="doctool
10e0: 73 5f 73 79 6e 74 61 78 22 3e 0a 3c 6c 69 3e 3c s_syntax">.<li><
10f0: 61 20 68 72 65 66 3d 22 23 31 22 3e 3c 62 20 63 a href="#1"><b c
1100: 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a lass="cmd">tls::
1110: 69 6e 69 74 3c 2f 62 3e 20 3c 73 70 61 6e 20 63 init</b> <span c
1120: 6c 61 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 lass="opt">?<i c
1130: 6c 61 73 73 3d 22 61 72 67 22 3e 2d 6f 70 74 69 lass="arg">-opti
1140: 6f 6e 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 3c on</i>?</span> <
1150: 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 span class="opt"
1160: 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 >?<i class="arg"
1170: 3e 76 61 6c 75 65 3c 2f 69 3e 3f 3c 2f 73 70 61 >value</i>?</spa
1180: 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 n> <span class="
1190: 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 opt">?<i class="
11a0: 61 72 67 22 3e 2d 6f 70 74 69 6f 6e 20 76 61 6c arg">-option val
11b0: 75 65 20 2e 2e 2e 3c 2f 69 3e 3f 3c 2f 73 70 61 ue ...</i>?</spa
11c0: 6e 3e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e n></a></li>.<li>
11d0: 3c 61 20 68 72 65 66 3d 22 23 32 22 3e 3c 62 20 <a href="#2"><b
11e0: 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a class="cmd">tls:
11f0: 3a 73 6f 63 6b 65 74 3c 2f 62 3e 20 3c 73 70 61 :socket</b> <spa
1200: 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f 3c n class="opt">?<
1210: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 2d 6f i class="arg">-o
1220: 70 74 69 6f 6e 3c 2f 69 3e 3f 3c 2f 73 70 61 6e ption</i>?</span
1230: 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f > <span class="o
1240: 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 pt">?<i class="a
1250: 72 67 22 3e 76 61 6c 75 65 3c 2f 69 3e 3f 3c 2f rg">value</i>?</
1260: 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 span> <span clas
1270: 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 s="opt">?<i clas
1280: 73 3d 22 61 72 67 22 3e 2d 6f 70 74 69 6f 6e 20 s="arg">-option
1290: 76 61 6c 75 65 20 2e 2e 2e 3c 2f 69 3e 3f 3c 2f value ...</i>?</
12a0: 73 70 61 6e 3e 20 3c 69 20 63 6c 61 73 73 3d 22 span> <i class="
12b0: 61 72 67 22 3e 68 6f 73 74 3c 2f 69 3e 20 3c 69 arg">host</i> <i
12c0: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 70 6f 72 class="arg">por
12d0: 74 3c 2f 69 3e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c t</i></a></li>.<
12e0: 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 33 22 3e li><a href="#3">
12f0: 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 <b class="cmd">t
1300: 6c 73 3a 3a 73 6f 63 6b 65 74 3c 2f 62 3e 20 3c ls::socket</b> <
1310: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
1320: 3e 2d 73 65 72 76 65 72 3c 2f 62 3e 20 3c 69 20 >-server</b> <i
1330: 63 6c 61 73 73 3d 22 61 72 67 22 3e 63 6f 6d 6d class="arg">comm
1340: 61 6e 64 3c 2f 69 3e 20 3c 73 70 61 6e 20 63 6c and</i> <span cl
1350: 61 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 6c ass="opt">?<i cl
1360: 61 73 73 3d 22 61 72 67 22 3e 2d 6f 70 74 69 6f ass="arg">-optio
1370: 6e 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 3c 73 n</i>?</span> <s
1380: 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e pan class="opt">
1390: 3f 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e ?<i class="arg">
13a0: 76 61 6c 75 65 3c 2f 69 3e 3f 3c 2f 73 70 61 6e value</i>?</span
13b0: 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f > <span class="o
13c0: 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 pt">?<i class="a
13d0: 72 67 22 3e 2d 6f 70 74 69 6f 6e 20 76 61 6c 75 rg">-option valu
13e0: 65 20 2e 2e 2e 3c 2f 69 3e 3f 3c 2f 73 70 61 6e e ...</i>?</span
13f0: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
1400: 3e 70 6f 72 74 3c 2f 69 3e 3c 2f 61 3e 3c 2f 6c >port</i></a></l
1410: 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 i>.<li><a href="
1420: 23 34 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d #4"><b class="cm
1430: 64 22 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c 2f d">tls::import</
1440: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
1450: 22 3e 63 68 61 6e 6e 65 6c 3c 2f 69 3e 20 3c 73 ">channel</i> <s
1460: 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e pan class="opt">
1470: 3f 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e ?<i class="arg">
1480: 2d 6f 70 74 69 6f 6e 3c 2f 69 3e 3f 3c 2f 73 70 -option</i>?</sp
1490: 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d an> <span class=
14a0: 22 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d "opt">?<i class=
14b0: 22 61 72 67 22 3e 76 61 6c 75 65 3c 2f 69 3e 3f "arg">value</i>?
14c0: 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c </span> <span cl
14d0: 61 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 6c ass="opt">?<i cl
14e0: 61 73 73 3d 22 61 72 67 22 3e 2d 6f 70 74 69 6f ass="arg">-optio
14f0: 6e 20 76 61 6c 75 65 20 2e 2e 2e 3c 2f 69 3e 3f n value ...</i>?
1500: 3c 2f 73 70 61 6e 3e 3c 2f 61 3e 3c 2f 6c 69 3e </span></a></li>
1510: 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 35 .<li><a href="#5
1520: 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 "><b class="cmd"
1530: 3e 74 6c 73 3a 3a 75 6e 69 6d 70 6f 72 74 3c 2f >tls::unimport</
1540: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
1550: 22 3e 63 68 61 6e 6e 65 6c 3c 2f 69 3e 3c 2f 61 ">channel</i></a
1560: 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 ></li>.<li><a hr
1570: 65 66 3d 22 23 36 22 3e 3c 62 20 63 6c 61 73 73 ef="#6"><b class
1580: 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 68 61 6e 64 ="cmd">tls::hand
1590: 73 68 61 6b 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 shake</b> <i cla
15a0: 73 73 3d 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c ss="arg">channel
15b0: 3c 2f 69 3e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c </i></a></li>.<l
15c0: 69 3e 3c 61 20 68 72 65 66 3d 22 23 37 22 3e 3c i><a href="#7"><
15d0: 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c b class="cmd">tl
15e0: 73 3a 3a 73 74 61 74 75 73 3c 2f 62 3e 20 3c 73 s::status</b> <s
15f0: 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e pan class="opt">
1600: 3f 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f ?<b class="optio
1610: 6e 22 3e 2d 6c 6f 63 61 6c 3c 2f 62 3e 3f 3c 2f n">-local</b>?</
1620: 73 70 61 6e 3e 20 3c 69 20 63 6c 61 73 73 3d 22 span> <i class="
1630: 61 72 67 22 3e 63 68 61 6e 6e 65 6c 3c 2f 69 3e arg">channel</i>
1640: 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 </a></li>.<li><a
1650: 20 68 72 65 66 3d 22 23 38 22 3e 3c 62 20 63 6c href="#8"><b cl
1660: 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 63 ass="cmd">tls::c
1670: 6f 6e 6e 65 63 74 69 6f 6e 3c 2f 62 3e 20 3c 69 onnection</b> <i
1680: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 63 68 61 class="arg">cha
1690: 6e 6e 65 6c 3c 2f 69 3e 3c 2f 61 3e 3c 2f 6c 69 nnel</i></a></li
16a0: 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 >.<li><a href="#
16b0: 39 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 9"><b class="cmd
16c0: 22 3e 74 6c 73 3a 3a 63 69 70 68 65 72 73 3c 2f ">tls::ciphers</
16d0: 62 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 b> <span class="
16e0: 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 opt">?<i class="
16f0: 61 72 67 22 3e 70 72 6f 74 6f 63 6f 6c 3c 2f 69 arg">protocol</i
1700: 3e 3f 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 >?</span> <span
1710: 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 class="opt">?<i
1720: 63 6c 61 73 73 3d 22 61 72 67 22 3e 76 65 72 62 class="arg">verb
1730: 6f 73 65 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 ose</i>?</span>
1740: 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 <span class="opt
1750: 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 ">?<i class="arg
1760: 22 3e 73 75 70 70 6f 72 74 65 64 3c 2f 69 3e 3f ">supported</i>?
1770: 3c 2f 73 70 61 6e 3e 3c 2f 61 3e 3c 2f 6c 69 3e </span></a></li>
1780: 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 31 .<li><a href="#1
1790: 30 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 0"><b class="cmd
17a0: 22 3e 74 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 ">tls::protocols
17b0: 3c 2f 62 3e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c </b></a></li>.<l
17c0: 69 3e 3c 61 20 68 72 65 66 3d 22 23 31 31 22 3e i><a href="#11">
17d0: 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 <b class="cmd">t
17e0: 6c 73 3a 3a 76 65 72 73 69 6f 6e 3c 2f 62 3e 3c ls::version</b><
17f0: 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 3c /a></li>.</ul>.<
1800: 2f 64 69 76 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 /div>.</div>.<di
1810: 76 20 69 64 3d 22 73 65 63 74 69 6f 6e 31 22 20 v id="section1"
1820: 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f class="doctools_
1830: 73 65 63 74 69 6f 6e 22 3e 3c 68 32 3e 3c 61 20 section"><h2><a
1840: 6e 61 6d 65 3d 22 73 65 63 74 69 6f 6e 31 22 3e name="section1">
1850: 44 65 73 63 72 69 70 74 69 6f 6e 3c 2f 61 3e 3c Description</a><
1860: 2f 68 32 3e 0a 3c 70 3e 54 68 69 73 20 65 78 74 /h2>.<p>This ext
1870: 65 6e 73 69 6f 6e 20 70 72 6f 76 69 64 65 73 20 ension provides
1880: 54 43 4c 20 73 63 72 69 70 74 20 61 63 63 65 73 TCL script acces
1890: 73 20 74 6f 20 73 65 63 75 72 65 20 73 6f 63 6b s to secure sock
18a0: 65 74 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e et communication
18b0: 73 0a 75 73 69 6e 67 20 74 68 65 20 54 72 61 6e s.using the Tran
18c0: 73 70 6f 72 74 20 4c 61 79 65 72 20 53 65 63 75 sport Layer Secu
18d0: 72 69 74 79 20 28 54 4c 53 29 20 70 72 6f 74 6f rity (TLS) proto
18e0: 63 6f 6c 2e 20 49 74 20 70 72 6f 76 69 64 65 73 col. It provides
18f0: 20 61 20 67 65 6e 65 72 69 63 0a 62 69 6e 64 69 a generic.bindi
1900: 6e 67 20 74 6f 20 3c 61 20 68 72 65 66 3d 22 68 ng to <a href="h
1910: 74 74 70 73 3a 2f 2f 77 77 77 2e 6f 70 65 6e 73 ttps://www.opens
1920: 73 6c 2e 6f 72 67 2f 22 3e 4f 70 65 6e 53 53 4c sl.org/">OpenSSL
1930: 3c 2f 61 3e 2c 20 75 74 69 6c 69 7a 69 6e 67 20 </a>, utilizing
1940: 74 68 65 0a 3c 62 20 63 6c 61 73 73 3d 22 73 79 the.<b class="sy
1950: 73 63 6d 64 22 3e 54 63 6c 5f 53 74 61 63 6b 43 scmd">Tcl_StackC
1960: 68 61 6e 6e 65 6c 3c 2f 62 3e 20 41 50 49 20 69 hannel</b> API i
1970: 6e 20 54 43 4c 20 38 2e 34 20 61 6e 64 20 68 69 n TCL 8.4 and hi
1980: 67 68 65 72 2e 0a 54 68 65 73 65 20 73 6f 63 6b gher..These sock
1990: 65 74 73 20 62 65 68 61 76 65 20 65 78 61 63 74 ets behave exact
19a0: 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 63 ly the same as c
19b0: 68 61 6e 6e 65 6c 73 20 63 72 65 61 74 65 64 20 hannels created
19c0: 75 73 69 6e 67 20 74 68 65 20 62 75 69 6c 74 2d using the built-
19d0: 69 6e 0a 3c 62 20 63 6c 61 73 73 3d 22 73 79 73 in.<b class="sys
19e0: 63 6d 64 22 3e 73 6f 63 6b 65 74 3c 2f 62 3e 20 cmd">socket</b>
19f0: 63 6f 6d 6d 61 6e 64 2c 20 61 6c 6f 6e 67 20 77 command, along w
1a00: 69 74 68 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f ith additional o
1a10: 70 74 69 6f 6e 73 20 66 6f 72 20 63 6f 6e 74 72 ptions for contr
1a20: 6f 6c 6c 69 6e 67 0a 74 68 65 20 53 53 4c 2f 54 olling.the SSL/T
1a30: 4c 53 20 73 65 73 73 69 6f 6e 2e 3c 2f 70 3e 0a LS session.</p>.
1a40: 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 69 64 3d 22 </div>.<div id="
1a50: 73 65 63 74 69 6f 6e 32 22 20 63 6c 61 73 73 3d section2" class=
1a60: 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f "doctools_sectio
1a70: 6e 22 3e 3c 68 32 3e 3c 61 20 6e 61 6d 65 3d 22 n"><h2><a name="
1a80: 73 65 63 74 69 6f 6e 32 22 3e 43 6f 6d 6d 61 6e section2">Comman
1a90: 64 73 3c 2f 61 3e 3c 2f 68 32 3e 0a 3c 70 3e 54 ds</a></h2>.<p>T
1aa0: 79 70 69 63 61 6c 6c 79 20 6f 6e 65 20 77 6f 75 ypically one wou
1ab0: 6c 64 20 75 73 65 20 74 68 65 20 3c 62 20 63 6c ld use the <b cl
1ac0: 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 73 ass="cmd">tls::s
1ad0: 6f 63 6b 65 74 3c 2f 62 3e 20 63 6f 6d 6d 61 6e ocket</b> comman
1ae0: 64 20 74 6f 20 63 72 65 61 74 65 20 61 20 6e 65 d to create a ne
1af0: 77 20 65 6e 63 72 79 70 74 65 64 0a 54 43 50 20 w encrypted.TCP
1b00: 73 6f 63 6b 65 74 2e 20 49 74 20 69 73 20 63 6f socket. It is co
1b10: 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 74 68 mpatible with th
1b20: 65 20 6e 61 74 69 76 65 20 54 43 4c 20 3c 62 20 e native TCL <b
1b30: 63 6c 61 73 73 3d 22 73 79 73 63 6d 64 22 3e 3a class="syscmd">:
1b40: 3a 73 6f 63 6b 65 74 3c 2f 62 3e 20 63 6f 6d 6d :socket</b> comm
1b50: 61 6e 64 2e 0a 41 6c 74 65 72 6e 61 74 69 76 65 and..Alternative
1b60: 6c 79 20 66 6f 72 20 61 6e 20 65 78 69 73 74 69 ly for an existi
1b70: 6e 67 20 54 43 50 20 73 6f 63 6b 65 74 2c 20 74 ng TCP socket, t
1b80: 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 he <b class="cmd
1b90: 22 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c 2f 62 ">tls::import</b
1ba0: 3e 20 63 6f 6d 6d 61 6e 64 20 63 61 6e 20 62 65 > command can be
1bb0: 0a 75 73 65 64 20 74 6f 20 73 74 61 72 74 20 54 .used to start T
1bc0: 4c 53 20 6f 6e 20 74 68 65 20 63 6f 6e 6e 65 63 LS on the connec
1bd0: 74 69 6f 6e 2e 3c 2f 70 3e 0a 3c 64 6c 20 63 6c tion.</p>.<dl cl
1be0: 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 64 65 ass="doctools_de
1bf0: 66 69 6e 69 74 69 6f 6e 73 22 3e 0a 3c 64 74 3e finitions">.<dt>
1c00: 3c 61 20 6e 61 6d 65 3d 22 31 22 3e 3c 62 20 63 <a name="1"><b c
1c10: 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a lass="cmd">tls::
1c20: 69 6e 69 74 3c 2f 62 3e 20 3c 73 70 61 6e 20 63 init</b> <span c
1c30: 6c 61 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 lass="opt">?<i c
1c40: 6c 61 73 73 3d 22 61 72 67 22 3e 2d 6f 70 74 69 lass="arg">-opti
1c50: 6f 6e 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 3c on</i>?</span> <
1c60: 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 span class="opt"
1c70: 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 >?<i class="arg"
1c80: 3e 76 61 6c 75 65 3c 2f 69 3e 3f 3c 2f 73 70 61 >value</i>?</spa
1c90: 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 n> <span class="
1ca0: 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 opt">?<i class="
1cb0: 61 72 67 22 3e 2d 6f 70 74 69 6f 6e 20 76 61 6c arg">-option val
1cc0: 75 65 20 2e 2e 2e 3c 2f 69 3e 3f 3c 2f 73 70 61 ue ...</i>?</spa
1cd0: 6e 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 3c 64 64 3e n></a></dt>.<dd>
1ce0: 3c 70 3e 4f 70 74 69 6f 6e 61 6c 20 66 75 6e 63 <p>Optional func
1cf0: 74 69 6f 6e 20 74 6f 20 73 65 74 20 74 68 65 20 tion to set the
1d00: 64 65 66 61 75 6c 74 20 6f 70 74 69 6f 6e 73 20 default options
1d10: 75 73 65 64 20 62 79 20 3c 62 20 63 6c 61 73 73 used by <b class
1d20: 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 73 6f 63 6b ="cmd">tls::sock
1d30: 65 74 3c 2f 62 3e 2e 20 49 66 20 79 6f 75 0a 63 et</b>. If you.c
1d40: 61 6c 6c 20 3c 62 20 63 6c 61 73 73 3d 22 63 6d all <b class="cm
1d50: 64 22 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c 2f d">tls::import</
1d60: 62 3e 20 64 69 72 65 63 74 6c 79 2c 20 74 68 69 b> directly, thi
1d70: 73 20 63 6f 6d 6d 61 6e 64 20 68 61 73 20 6e 6f s command has no
1d80: 20 65 66 66 65 63 74 2e 20 54 68 69 73 20 63 6f effect. This co
1d90: 6d 6d 61 6e 64 0a 73 75 70 70 6f 72 74 73 20 61 mmand.supports a
1da0: 6c 6c 20 6f 66 20 74 68 65 20 73 61 6d 65 20 6f ll of the same o
1db0: 70 74 69 6f 6e 73 20 61 73 20 74 68 65 20 3c 62 ptions as the <b
1dc0: 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 class="cmd">tls
1dd0: 3a 3a 73 6f 63 6b 65 74 3c 2f 62 3e 20 63 6f 6d ::socket</b> com
1de0: 6d 61 6e 64 2c 20 74 68 6f 75 67 68 20 79 6f 75 mand, though you
1df0: 0a 73 68 6f 75 6c 64 20 6c 69 6d 69 74 20 79 6f .should limit yo
1e00: 75 72 20 6f 70 74 69 6f 6e 73 20 74 6f 20 6f 6e ur options to on
1e10: 6c 79 20 54 4c 53 20 72 65 6c 61 74 65 64 20 6f ly TLS related o
1e20: 6e 65 73 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 nes.</p></dd>.<d
1e30: 74 3e 3c 61 20 6e 61 6d 65 3d 22 32 22 3e 3c 62 t><a name="2"><b
1e40: 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 class="cmd">tls
1e50: 3a 3a 73 6f 63 6b 65 74 3c 2f 62 3e 20 3c 73 70 ::socket</b> <sp
1e60: 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f an class="opt">?
1e70: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 2d <i class="arg">-
1e80: 6f 70 74 69 6f 6e 3c 2f 69 3e 3f 3c 2f 73 70 61 option</i>?</spa
1e90: 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 n> <span class="
1ea0: 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 opt">?<i class="
1eb0: 61 72 67 22 3e 76 61 6c 75 65 3c 2f 69 3e 3f 3c arg">value</i>?<
1ec0: 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 /span> <span cla
1ed0: 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 ss="opt">?<i cla
1ee0: 73 73 3d 22 61 72 67 22 3e 2d 6f 70 74 69 6f 6e ss="arg">-option
1ef0: 20 76 61 6c 75 65 20 2e 2e 2e 3c 2f 69 3e 3f 3c value ...</i>?<
1f00: 2f 73 70 61 6e 3e 20 3c 69 20 63 6c 61 73 73 3d /span> <i class=
1f10: 22 61 72 67 22 3e 68 6f 73 74 3c 2f 69 3e 20 3c "arg">host</i> <
1f20: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 70 6f i class="arg">po
1f30: 72 74 3c 2f 69 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a rt</i></a></dt>.
1f40: 3c 64 64 3e 3c 70 3e 54 68 69 73 20 69 73 20 61 <dd><p>This is a
1f50: 20 68 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e helper function
1f60: 20 74 68 61 74 20 75 74 69 6c 69 7a 65 73 20 74 that utilizes t
1f70: 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 63 6f he underlying co
1f80: 6d 6d 61 6e 64 73 20 3c 62 20 63 6c 61 73 73 3d mmands <b class=
1f90: 22 73 79 73 63 6d 64 22 3e 73 6f 63 6b 65 74 3c "syscmd">socket<
1fa0: 2f 62 3e 0a 61 6e 64 20 3c 62 20 63 6c 61 73 73 /b>.and <b class
1fb0: 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 69 6d 70 6f ="cmd">tls::impo
1fc0: 72 74 3c 2f 62 3e 20 74 6f 20 63 72 65 61 74 65 rt</b> to create
1fd0: 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e the connection.
1fe0: 20 49 74 20 62 65 68 61 76 65 73 20 74 68 65 20 It behaves the
1ff0: 73 61 6d 65 20 61 73 20 74 68 65 0a 6e 61 74 69 same as the.nati
2000: 76 65 20 54 43 4c 20 3c 62 20 63 6c 61 73 73 3d ve TCL <b class=
2010: 22 73 79 73 63 6d 64 22 3e 73 6f 63 6b 65 74 3c "syscmd">socket<
2020: 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2c 20 62 75 74 /b> command, but
2030: 20 61 6c 73 6f 20 73 75 70 70 6f 72 74 73 20 74 also supports t
2040: 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 he <b class="cmd
2050: 22 3e 74 6c 73 3a 69 6d 70 6f 72 74 3c 2f 62 3e ">tls:import</b>
2060: 0a 63 6f 6d 6d 61 6e 64 20 6f 70 74 69 6f 6e 73 .command options
2070: 20 77 69 74 68 20 6f 6e 65 20 61 64 64 69 74 69 with one additi
2080: 6f 6e 61 6c 20 6f 70 74 69 6f 6e 2e 20 49 74 20 onal option. It
2090: 72 65 74 75 72 6e 73 20 74 68 65 20 63 68 61 6e returns the chan
20a0: 6e 65 6c 20 68 61 6e 64 6c 65 20 69 64 0a 66 6f nel handle id.fo
20b0: 72 20 74 68 65 20 6e 65 77 20 73 6f 63 6b 65 74 r the new socket
20c0: 2e 3c 2f 70 3e 0a 3c 64 6c 20 63 6c 61 73 73 3d .</p>.<dl class=
20d0: 22 64 6f 63 74 6f 6f 6c 73 5f 6f 70 74 69 6f 6e "doctools_option
20e0: 73 22 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 s">.<dt><b class
20f0: 3d 22 6f 70 74 69 6f 6e 22 3e 2d 61 75 74 6f 73 ="option">-autos
2100: 65 72 76 65 72 6e 61 6d 65 3c 2f 62 3e 20 3c 69 ervername</b> <i
2110: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f class="arg">boo
2120: 6c 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c l</i></dt>.<dd><
2130: 70 3e 49 66 20 3c 62 20 63 6c 61 73 73 3d 22 63 p>If <b class="c
2140: 6f 6e 73 74 22 3e 74 72 75 65 3c 2f 62 3e 2c 20 onst">true</b>,
2150: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 73 65 automatically se
2160: 74 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 t the <b class="
2170: 6f 70 74 69 6f 6e 22 3e 2d 73 65 72 76 65 72 6e option">-servern
2180: 61 6d 65 3c 2f 62 3e 20 61 72 67 75 6d 65 6e 74 ame</b> argument
2190: 20 74 6f 20 74 68 65 0a 3c 65 6d 3e 68 6f 73 74 to the.<em>host
21a0: 3c 2f 65 6d 3e 20 61 72 67 75 6d 65 6e 74 2e 20 </em> argument.
21b0: 44 65 66 61 75 6c 74 20 69 73 20 3c 62 20 63 6c Default is <b cl
21c0: 61 73 73 3d 22 63 6f 6e 73 74 22 3e 66 61 6c 73 ass="const">fals
21d0: 65 3c 2f 62 3e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a e</b>.</p></dd>.
21e0: 3c 2f 64 6c 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c </dl></dd>.<dt><
21f0: 61 20 6e 61 6d 65 3d 22 33 22 3e 3c 62 20 63 6c a name="3"><b cl
2200: 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 73 ass="cmd">tls::s
2210: 6f 63 6b 65 74 3c 2f 62 3e 20 3c 62 20 63 6c 61 ocket</b> <b cla
2220: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 73 65 72 ss="option">-ser
2230: 76 65 72 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 ver</b> <i class
2240: 3d 22 61 72 67 22 3e 63 6f 6d 6d 61 6e 64 3c 2f ="arg">command</
2250: 69 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 i> <span class="
2260: 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 opt">?<i class="
2270: 61 72 67 22 3e 2d 6f 70 74 69 6f 6e 3c 2f 69 3e arg">-option</i>
2280: 3f 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 ?</span> <span c
2290: 6c 61 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 lass="opt">?<i c
22a0: 6c 61 73 73 3d 22 61 72 67 22 3e 76 61 6c 75 65 lass="arg">value
22b0: 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 3c 73 70 </i>?</span> <sp
22c0: 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f an class="opt">?
22d0: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 2d <i class="arg">-
22e0: 6f 70 74 69 6f 6e 20 76 61 6c 75 65 20 2e 2e 2e option value ...
22f0: 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 3c 69 20 </i>?</span> <i
2300: 63 6c 61 73 73 3d 22 61 72 67 22 3e 70 6f 72 74 class="arg">port
2310: 3c 2f 69 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 3c 64 </i></a></dt>.<d
2320: 64 3e 3c 70 3e 53 61 6d 65 20 61 73 20 70 72 65 d><p>Same as pre
2330: 76 69 6f 75 73 2c 20 62 75 74 20 69 6e 73 74 65 vious, but inste
2340: 61 64 20 63 72 65 61 74 65 73 20 61 20 73 65 72 ad creates a ser
2350: 76 65 72 20 73 6f 63 6b 65 74 20 66 6f 72 20 63 ver socket for c
2360: 6c 69 65 6e 74 73 20 74 6f 20 63 6f 6e 6e 65 63 lients to connec
2370: 74 20 74 6f 0a 6a 75 73 74 20 6c 69 6b 65 20 74 t to.just like t
2380: 68 65 20 54 63 6c 20 3c 62 20 63 6c 61 73 73 3d he Tcl <b class=
2390: 22 73 79 73 63 6d 64 22 3e 73 6f 63 6b 65 74 20 "syscmd">socket
23a0: 2d 73 65 72 76 65 72 3c 2f 62 3e 20 63 6f 6d 6d -server</b> comm
23b0: 61 6e 64 2e 20 49 74 20 72 65 74 75 72 6e 73 20 and. It returns
23c0: 74 68 65 20 63 68 61 6e 6e 65 6c 0a 68 61 6e 64 the channel.hand
23d0: 6c 65 20 69 64 20 66 6f 72 20 74 68 65 20 6e 65 le id for the ne
23e0: 77 20 73 6f 63 6b 65 74 2e 3c 2f 70 3e 3c 2f 64 w socket.</p></d
23f0: 64 3e 0a 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 d>.<dt><a name="
2400: 34 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 4"><b class="cmd
2410: 22 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c 2f 62 ">tls::import</b
2420: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
2430: 3e 63 68 61 6e 6e 65 6c 3c 2f 69 3e 20 3c 73 70 >channel</i> <sp
2440: 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f an class="opt">?
2450: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 2d <i class="arg">-
2460: 6f 70 74 69 6f 6e 3c 2f 69 3e 3f 3c 2f 73 70 61 option</i>?</spa
2470: 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 n> <span class="
2480: 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 opt">?<i class="
2490: 61 72 67 22 3e 76 61 6c 75 65 3c 2f 69 3e 3f 3c arg">value</i>?<
24a0: 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 /span> <span cla
24b0: 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 ss="opt">?<i cla
24c0: 73 73 3d 22 61 72 67 22 3e 2d 6f 70 74 69 6f 6e ss="arg">-option
24d0: 20 76 61 6c 75 65 20 2e 2e 2e 3c 2f 69 3e 3f 3c value ...</i>?<
24e0: 2f 73 70 61 6e 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a /span></a></dt>.
24f0: 3c 64 64 3e 3c 70 3e 53 74 61 72 74 20 54 4c 53 <dd><p>Start TLS
2500: 20 65 6e 63 72 79 70 74 69 6f 6e 20 6f 6e 20 54 encryption on T
2510: 43 4c 20 63 68 61 6e 6e 65 6c 20 3c 69 20 63 6c CL channel <i cl
2520: 61 73 73 3d 22 61 72 67 22 3e 63 68 61 6e 6e 65 ass="arg">channe
2530: 6c 3c 2f 69 3e 20 76 69 61 20 61 20 73 74 61 63 l</i> via a stac
2540: 6b 65 64 20 63 68 61 6e 6e 65 6c 2e 20 49 74 0a ked channel. It.
2550: 6e 65 65 64 20 6e 6f 74 20 62 65 20 61 20 73 6f need not be a so
2560: 63 6b 65 74 2c 20 62 75 74 20 6d 75 73 74 20 70 cket, but must p
2570: 72 6f 76 69 64 65 20 62 69 2d 64 69 72 65 63 74 rovide bi-direct
2580: 69 6f 6e 61 6c 20 66 6c 6f 77 2e 20 41 6c 73 6f ional flow. Also
2590: 20 73 65 74 73 20 73 65 73 73 69 6f 6e 0a 70 61 sets session.pa
25a0: 72 61 6d 65 74 65 72 73 20 66 6f 72 20 53 53 4c rameters for SSL
25b0: 20 68 61 6e 64 73 68 61 6b 65 2e 20 56 61 6c 69 handshake. Vali
25c0: 64 20 6f 70 74 69 6f 6e 73 20 61 72 65 3a 3c 2f d options are:</
25d0: 70 3e 0a 3c 64 6c 20 63 6c 61 73 73 3d 22 64 6f p>.<dl class="do
25e0: 63 74 6f 6f 6c 73 5f 6f 70 74 69 6f 6e 73 22 3e ctools_options">
25f0: 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f .<dt><b class="o
2600: 70 74 69 6f 6e 22 3e 2d 61 6c 70 6e 3c 2f 62 3e ption">-alpn</b>
2610: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
2620: 6c 69 73 74 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 list</i></dt>.<d
2630: 64 3e 3c 70 3e 4c 69 73 74 20 6f 66 20 70 72 6f d><p>List of pro
2640: 74 6f 63 6f 6c 73 20 74 6f 20 6f 66 66 65 72 20 tocols to offer
2650: 64 75 72 69 6e 67 20 41 70 70 6c 69 63 61 74 69 during Applicati
2660: 6f 6e 2d 4c 61 79 65 72 20 50 72 6f 74 6f 63 6f on-Layer Protoco
2670: 6c 20 4e 65 67 6f 74 69 61 74 69 6f 6e 0a 28 41 l Negotiation.(A
2680: 4c 50 4e 29 2e 20 46 6f 72 20 65 78 61 6d 70 6c LPN). For exampl
2690: 65 3a 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e e: <b class="con
26a0: 73 74 22 3e 68 32 3c 2f 62 3e 20 61 6e 64 20 3c st">h2</b> and <
26b0: 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e b class="const">
26c0: 68 74 74 70 2f 31 2e 31 3c 2f 62 3e 2c 20 62 75 http/1.1</b>, bu
26d0: 74 20 6e 6f 74 20 3c 62 20 63 6c 61 73 73 3d 22 t not <b class="
26e0: 63 6f 6e 73 74 22 3e 68 33 3c 2f 62 3e 20 6f 72 const">h3</b> or
26f0: 0a 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 .<b class="const
2700: 22 3e 71 75 69 63 3c 2f 62 3e 2e 3c 2f 70 3e 3c ">quic</b>.</p><
2710: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
2720: 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 64 69 s="option">-cadi
2730: 72 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 r</b> <i class="
2740: 61 72 67 22 3e 64 69 72 65 63 74 6f 72 79 3c 2f arg">directory</
2750: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 i></dt>.<dd><p>S
2760: 70 65 63 69 66 69 65 73 20 74 68 65 20 64 69 72 pecifies the dir
2770: 65 63 74 6f 72 79 20 77 68 65 72 65 20 74 68 65 ectory where the
2780: 20 43 65 72 74 69 66 69 63 61 74 65 20 41 75 74 Certificate Aut
2790: 68 6f 72 69 74 79 20 28 43 41 29 20 63 65 72 74 hority (CA) cert
27a0: 69 66 69 63 61 74 65 73 20 61 72 65 0a 73 74 6f ificates are.sto
27b0: 72 65 64 2e 20 54 68 65 20 64 65 66 61 75 6c 74 red. The default
27c0: 20 69 73 20 70 6c 61 74 66 6f 72 6d 20 73 70 65 is platform spe
27d0: 63 69 66 69 63 20 61 6e 64 20 63 61 6e 20 62 65 cific and can be
27e0: 20 73 65 74 20 61 74 20 63 6f 6d 70 69 6c 65 20 set at compile
27f0: 74 69 6d 65 2e 20 54 68 65 0a 64 65 66 61 75 6c time. The.defaul
2800: 74 20 6c 6f 63 61 74 69 6f 6e 20 63 61 6e 20 62 t location can b
2810: 65 20 6f 76 65 72 72 69 64 64 65 6e 20 62 79 20 e overridden by
2820: 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 76 61 the <b class="va
2830: 72 69 61 62 6c 65 22 3e 53 53 4c 5f 43 45 52 54 riable">SSL_CERT
2840: 5f 44 49 52 3c 2f 62 3e 20 65 6e 76 69 72 6f 6e _DIR</b> environ
2850: 6d 65 6e 74 0a 76 61 72 69 61 62 6c 65 2e 20 53 ment.variable. S
2860: 65 65 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ee <span class="
2870: 73 65 63 74 72 65 66 22 3e 3c 61 20 68 72 65 66 sectref"><a href
2880: 3d 22 23 73 65 63 74 69 6f 6e 33 22 3e 43 65 72 ="#section3">Cer
2890: 74 69 66 69 63 61 74 65 20 56 61 6c 69 64 61 74 tificate Validat
28a0: 69 6f 6e 3c 2f 61 3e 3c 2f 73 70 61 6e 3e 20 66 ion</a></span> f
28b0: 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e or more details.
28c0: 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 </p></dd>.<dt><b
28d0: 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e class="option">
28e0: 2d 63 61 66 69 6c 65 3c 2f 62 3e 20 3c 69 20 63 -cafile</b> <i c
28f0: 6c 61 73 73 3d 22 61 72 67 22 3e 66 69 6c 65 6e lass="arg">filen
2900: 61 6d 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 ame</i></dt>.<dd
2910: 3e 3c 70 3e 53 70 65 63 69 66 69 65 73 20 74 68 ><p>Specifies th
2920: 65 20 66 69 6c 65 20 77 69 74 68 20 74 68 65 20 e file with the
2930: 43 65 72 74 69 66 69 63 61 74 65 20 41 75 74 68 Certificate Auth
2940: 6f 72 69 74 79 20 28 43 41 29 20 63 65 72 74 69 ority (CA) certi
2950: 66 69 63 61 74 65 73 20 74 6f 20 75 73 65 20 69 ficates to use i
2960: 6e 0a 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 n.<b class="cons
2970: 74 22 3e 50 45 4d 3c 2f 62 3e 20 66 69 6c 65 20 t">PEM</b> file
2980: 66 6f 72 6d 61 74 2e 20 54 68 65 20 64 65 66 61 format. The defa
2990: 75 6c 74 20 69 73 20 26 71 75 6f 74 3b 3c 62 20 ult is "<b
29a0: 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 65 72 class="file">cer
29b0: 74 2e 70 65 6d 3c 2f 62 3e 26 71 75 6f 74 3b 2c t.pem</b>",
29c0: 20 69 6e 20 74 68 65 20 4f 70 65 6e 53 53 4c 0a in the OpenSSL.
29d0: 64 69 72 65 63 74 6f 72 79 2e 20 54 68 65 20 64 directory. The d
29e0: 65 66 61 75 6c 74 20 66 69 6c 65 20 63 61 6e 20 efault file can
29f0: 62 65 20 6f 76 65 72 72 69 64 64 65 6e 20 62 79 be overridden by
2a00: 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 76 the <b class="v
2a10: 61 72 69 61 62 6c 65 22 3e 53 53 4c 5f 43 45 52 ariable">SSL_CER
2a20: 54 5f 46 49 4c 45 3c 2f 62 3e 20 65 6e 76 69 72 T_FILE</b> envir
2a30: 6f 6e 6d 65 6e 74 0a 76 61 72 69 61 62 6c 65 2e onment.variable.
2a40: 20 53 65 65 20 3c 73 70 61 6e 20 63 6c 61 73 73 See <span class
2a50: 3d 22 73 65 63 74 72 65 66 22 3e 3c 61 20 68 72 ="sectref"><a hr
2a60: 65 66 3d 22 23 73 65 63 74 69 6f 6e 33 22 3e 43 ef="#section3">C
2a70: 65 72 74 69 66 69 63 61 74 65 20 56 61 6c 69 64 ertificate Valid
2a80: 61 74 69 6f 6e 3c 2f 61 3e 3c 2f 73 70 61 6e 3e ation</a></span>
2a90: 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c for more detail
2aa0: 73 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e s.</p></dd>.<dt>
2ab0: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
2ac0: 22 3e 2d 63 61 73 74 6f 72 65 3c 2f 62 3e 20 3c ">-castore</b> <
2ad0: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 55 52 i class="arg">UR
2ae0: 49 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c I</i></dt>.<dd><
2af0: 70 3e 53 70 65 63 69 66 69 65 73 20 74 68 65 20 p>Specifies the
2b00: 55 6e 69 66 6f 72 6d 20 52 65 73 6f 75 72 63 65 Uniform Resource
2b10: 20 49 64 65 6e 74 69 66 69 65 72 20 28 55 52 49 Identifier (URI
2b20: 29 20 66 6f 72 20 74 68 65 20 43 65 72 74 69 66 ) for the Certif
2b30: 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 79 0a icate Authority.
2b40: 28 43 41 29 20 73 74 6f 72 65 2c 20 77 68 69 63 (CA) store, whic
2b50: 68 20 6d 61 79 20 62 65 20 61 20 73 69 6e 67 6c h may be a singl
2b60: 65 20 63 6f 6e 74 61 69 6e 65 72 20 6f 72 20 61 e container or a
2b70: 20 63 61 74 61 6c 6f 67 20 6f 66 20 63 6f 6e 74 catalog of cont
2b80: 61 69 6e 65 72 73 2e 0a 53 74 61 72 74 69 6e 67 ainers..Starting
2b90: 20 77 69 74 68 20 4f 70 65 6e 53 53 4c 20 33 2e with OpenSSL 3.
2ba0: 32 20 6f 6e 20 4d 53 20 57 69 6e 64 6f 77 73 2c 2 on MS Windows,
2bb0: 20 73 65 74 20 74 6f 20 26 71 75 6f 74 3b 3c 62 set to "<b
2bc0: 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 6f class="const">o
2bd0: 72 67 2e 6f 70 65 6e 73 73 6c 2e 77 69 6e 73 74 rg.openssl.winst
2be0: 6f 72 65 3a 2f 2f 3c 2f 62 3e 26 71 75 6f 74 3b ore://</b>"
2bf0: 0a 74 6f 20 75 73 65 20 74 68 65 20 62 75 69 6c .to use the buil
2c00: 74 2d 69 6e 20 4d 53 20 57 69 6e 64 6f 77 73 20 t-in MS Windows
2c10: 43 65 72 74 69 66 69 63 61 74 65 20 53 74 6f 72 Certificate Stor
2c20: 65 2e 20 53 65 65 0a 3c 73 70 61 6e 20 63 6c 61 e. See.<span cla
2c30: 73 73 3d 22 73 65 63 74 72 65 66 22 3e 3c 61 20 ss="sectref"><a
2c40: 68 72 65 66 3d 22 23 73 65 63 74 69 6f 6e 33 22 href="#section3"
2c50: 3e 43 65 72 74 69 66 69 63 61 74 65 20 56 61 6c >Certificate Val
2c60: 69 64 61 74 69 6f 6e 3c 2f 61 3e 3c 2f 73 70 61 idation</a></spa
2c70: 6e 3e 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 n> for more deta
2c80: 69 6c 73 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 ils.</p></dd>.<d
2c90: 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 t><b class="opti
2ca0: 6f 6e 22 3e 2d 63 65 72 74 66 69 6c 65 3c 2f 62 on">-certfile</b
2cb0: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
2cc0: 3e 66 69 6c 65 6e 61 6d 65 3c 2f 69 3e 3c 2f 64 >filename</i></d
2cd0: 74 3e 0a 3c 64 64 3e 3c 70 3e 53 70 65 63 69 66 t>.<dd><p>Specif
2ce0: 69 65 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 ies the name of
2cf0: 74 68 65 20 66 69 6c 65 20 77 69 74 68 20 74 68 the file with th
2d00: 65 20 63 65 72 74 69 66 69 63 61 74 65 20 74 6f e certificate to
2d10: 20 75 73 65 20 69 6e 20 50 45 4d 20 66 6f 72 6d use in PEM form
2d20: 61 74 0a 61 73 20 74 68 65 20 6c 6f 63 61 6c 20 at.as the local
2d30: 28 63 6c 69 65 6e 74 20 6f 72 20 73 65 72 76 65 (client or serve
2d40: 72 29 20 63 65 72 74 69 66 69 63 61 74 65 2e 20 r) certificate.
2d50: 49 74 20 61 6c 73 6f 20 63 6f 6e 74 61 69 6e 73 It also contains
2d60: 20 74 68 65 20 70 75 62 6c 69 63 20 6b 65 79 2e the public key.
2d70: 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 </p></dd>.<dt><b
2d80: 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e class="option">
2d90: 2d 63 65 72 74 3c 2f 62 3e 20 3c 69 20 63 6c 61 -cert</b> <i cla
2da0: 73 73 3d 22 61 72 67 22 3e 73 74 72 69 6e 67 3c ss="arg">string<
2db0: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
2dc0: 53 70 65 63 69 66 69 65 73 20 74 68 65 20 63 65 Specifies the ce
2dd0: 72 74 69 66 69 63 61 74 65 20 74 6f 20 75 73 65 rtificate to use
2de0: 20 61 73 20 61 20 44 45 52 20 65 6e 63 6f 64 65 as a DER encode
2df0: 64 20 73 74 72 69 6e 67 20 28 58 2e 35 30 39 20 d string (X.509
2e00: 44 45 52 29 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c DER).</p></dd>.<
2e10: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 dt><b class="opt
2e20: 69 6f 6e 22 3e 2d 63 69 70 68 65 72 3c 2f 62 3e ion">-cipher</b>
2e30: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
2e40: 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a string</i></dt>.
2e50: 3c 64 64 3e 3c 70 3e 53 70 65 63 69 66 69 65 73 <dd><p>Specifies
2e60: 20 74 68 65 20 6c 69 73 74 20 6f 66 20 63 69 70 the list of cip
2e70: 68 65 72 73 20 74 6f 20 75 73 65 20 66 6f 72 20 hers to use for
2e80: 54 4c 53 20 31 2e 32 20 61 6e 64 20 65 61 72 6c TLS 1.2 and earl
2e90: 69 65 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 2e ier connections.
2ea0: 0a 53 74 72 69 6e 67 20 69 73 20 61 20 63 6f 6c .String is a col
2eb0: 6f 6e 20 26 71 75 6f 74 3b 3c 62 20 63 6c 61 73 on "<b clas
2ec0: 73 3d 22 63 6f 6e 73 74 22 3e 3a 3c 2f 62 3e 26 s="const">:</b>&
2ed0: 71 75 6f 74 3b 20 73 65 70 61 72 61 74 65 64 20 quot; separated
2ee0: 6c 69 73 74 20 6f 66 20 63 69 70 68 65 72 73 2e list of ciphers.
2ef0: 0a 43 69 70 68 65 72 73 20 63 61 6e 20 62 65 20 .Ciphers can be
2f00: 63 6f 6d 62 69 6e 65 64 20 75 73 69 6e 67 20 74 combined using t
2f10: 68 65 20 26 71 75 6f 74 3b 3c 62 20 63 6c 61 73 he "<b clas
2f20: 73 3d 22 63 6f 6e 73 74 22 3e 2b 3c 2f 62 3e 26 s="const">+</b>&
2f30: 71 75 6f 74 3b 20 63 68 61 72 61 63 74 65 72 2e quot; character.
2f40: 0a 50 72 65 66 69 78 65 73 20 63 61 6e 20 62 65 .Prefixes can be
2f50: 20 75 73 65 64 20 74 6f 20 70 65 72 6d 61 6e 65 used to permane
2f60: 6e 74 6c 79 20 72 65 6d 6f 76 65 20 26 71 75 6f ntly remove &quo
2f70: 74 3b 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 t;<b class="cons
2f80: 74 22 3e 21 3c 2f 62 3e 26 71 75 6f 74 3b 2c 20 t">!</b>",
2f90: 64 65 6c 65 74 65 20 26 71 75 6f 74 3b 3c 62 20 delete "<b
2fa0: 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 2d 3c class="const">-<
2fb0: 2f 62 3e 26 71 75 6f 74 3b 2c 20 6f 72 0a 6d 6f /b>", or.mo
2fc0: 76 65 20 74 6f 20 74 68 65 20 65 6e 64 20 26 71 ve to the end &q
2fd0: 75 6f 74 3b 3c 62 20 63 6c 61 73 73 3d 22 63 6f uot;<b class="co
2fe0: 6e 73 74 22 3e 2b 3c 2f 62 3e 26 71 75 6f 74 3b nst">+</b>"
2ff0: 20 61 20 73 70 65 63 69 66 69 65 64 20 63 69 70 a specified cip
3000: 68 65 72 2e 0a 4b 65 79 77 6f 72 64 73 20 3c 62 her..Keywords <b
3010: 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 40 class="const">@
3020: 53 54 52 45 4e 47 54 48 3c 2f 62 3e 20 28 73 6f STRENGTH</b> (so
3030: 72 74 20 62 79 20 61 6c 67 6f 72 69 74 68 6d 20 rt by algorithm
3040: 6b 65 79 20 6c 65 6e 67 74 68 29 2c 0a 3c 62 20 key length),.<b
3050: 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 40 53 class="const">@S
3060: 45 43 4c 45 56 45 4c 3d 3c 2f 62 3e 3c 65 6d 3e ECLEVEL=</b><em>
3070: 6e 3c 2f 65 6d 3e 20 28 73 65 74 20 73 65 63 75 n</em> (set secu
3080: 72 69 74 79 20 6c 65 76 65 6c 20 74 6f 20 6e 29 rity level to n)
3090: 2c 20 61 6e 64 0a 3c 62 20 63 6c 61 73 73 3d 22 , and.<b class="
30a0: 63 6f 6e 73 74 22 3e 44 45 46 41 55 4c 54 3c 2f const">DEFAULT</
30b0: 62 3e 20 28 75 73 65 20 64 65 66 61 75 6c 74 20 b> (use default
30c0: 63 69 70 68 65 72 20 6c 69 73 74 2c 20 61 74 20 cipher list, at
30d0: 73 74 61 72 74 20 6f 6e 6c 79 29 20 63 61 6e 20 start only) can
30e0: 61 6c 73 6f 20 62 65 20 73 70 65 63 69 66 69 65 also be specifie
30f0: 64 2e 0a 53 65 65 20 74 68 65 20 3c 61 20 68 72 d..See the <a hr
3100: 65 66 3d 22 68 74 74 70 73 3a 2f 2f 64 6f 63 73 ef="https://docs
3110: 2e 6f 70 65 6e 73 73 6c 2e 6f 72 67 2f 6d 61 73 .openssl.org/mas
3120: 74 65 72 2f 6d 61 6e 31 2f 6f 70 65 6e 73 73 6c ter/man1/openssl
3130: 2d 63 69 70 68 65 72 73 2f 23 6f 70 74 69 6f 6e -ciphers/#option
3140: 73 22 3e 4f 70 65 6e 53 53 4c 3c 2f 61 3e 0a 64 s">OpenSSL</a>.d
3150: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 ocumentation for
3160: 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 20 6f the full list o
3170: 66 20 76 61 6c 69 64 20 76 61 6c 75 65 73 2e 3c f valid values.<
3180: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
3190: 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d class="option">-
31a0: 63 69 70 68 65 72 73 75 69 74 65 73 3c 2f 62 3e ciphersuites</b>
31b0: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
31c0: 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a string</i></dt>.
31d0: 3c 64 64 3e 3c 70 3e 53 70 65 63 69 66 69 65 73 <dd><p>Specifies
31e0: 20 74 68 65 20 6c 69 73 74 20 6f 66 20 63 69 70 the list of cip
31f0: 68 65 72 20 73 75 69 74 65 73 20 74 6f 20 75 73 her suites to us
3200: 65 20 66 6f 72 20 54 4c 53 20 31 2e 33 20 61 73 e for TLS 1.3 as
3210: 20 61 20 63 6f 6c 6f 6e 0a 26 71 75 6f 74 3b 3c a colon."<
3220: 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e b class="const">
3230: 3a 3c 2f 62 3e 26 71 75 6f 74 3b 20 73 65 70 61 :</b>" sepa
3240: 72 61 74 65 64 20 6c 69 73 74 20 6f 66 20 63 69 rated list of ci
3250: 70 68 65 72 20 73 75 69 74 65 20 6e 61 6d 65 73 pher suite names
3260: 2e 20 53 65 65 20 74 68 65 0a 3c 61 20 68 72 65 . See the.<a hre
3270: 66 3d 22 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e f="https://docs.
3280: 6f 70 65 6e 73 73 6c 2e 6f 72 67 2f 6d 61 73 74 openssl.org/mast
3290: 65 72 2f 6d 61 6e 31 2f 6f 70 65 6e 73 73 6c 2d er/man1/openssl-
32a0: 63 69 70 68 65 72 73 2f 23 6f 70 74 69 6f 6e 73 ciphers/#options
32b0: 22 3e 4f 70 65 6e 53 53 4c 3c 2f 61 3e 0a 64 6f ">OpenSSL</a>.do
32c0: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 cumentation for
32d0: 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 20 6f 66 the full list of
32e0: 20 76 61 6c 69 64 20 76 61 6c 75 65 73 2e 3c 2f valid values.</
32f0: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 p></dd>.<dt><b c
3300: 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 lass="option">-c
3310: 6f 6d 6d 61 6e 64 3c 2f 62 3e 20 3c 69 20 63 6c ommand</b> <i cl
3320: 61 73 73 3d 22 61 72 67 22 3e 63 61 6c 6c 62 61 ass="arg">callba
3330: 63 6b 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e ck</i></dt>.<dd>
3340: 3c 70 3e 53 70 65 63 69 66 69 65 73 20 74 68 65 <p>Specifies the
3350: 20 63 61 6c 6c 62 61 63 6b 20 63 6f 6d 6d 61 6e callback comman
3360: 64 20 74 6f 20 62 65 20 69 6e 76 6f 6b 65 64 20 d to be invoked
3370: 61 74 20 73 65 76 65 72 61 6c 20 70 6f 69 6e 74 at several point
3380: 73 20 64 75 72 69 6e 67 20 74 68 65 0a 68 61 6e s during the.han
3390: 64 73 68 61 6b 65 20 74 6f 20 70 61 73 73 20 65 dshake to pass e
33a0: 72 72 6f 72 73 2c 20 74 72 61 63 69 6e 67 20 69 rrors, tracing i
33b0: 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 61 6e 64 20 nformation, and
33c0: 70 72 6f 74 6f 63 6f 6c 20 6d 65 73 73 61 67 65 protocol message
33d0: 73 2e 0a 53 65 65 20 3c 73 70 61 6e 20 63 6c 61 s..See <span cla
33e0: 73 73 3d 22 73 65 63 74 72 65 66 22 3e 3c 61 20 ss="sectref"><a
33f0: 68 72 65 66 3d 22 23 73 65 63 74 69 6f 6e 34 22 href="#section4"
3400: 3e 43 61 6c 6c 62 61 63 6b 20 4f 70 74 69 6f 6e >Callback Option
3410: 73 3c 2f 61 3e 3c 2f 73 70 61 6e 3e 20 66 6f 72 s</a></span> for
3420: 20 6d 6f 72 65 20 69 6e 66 6f 2e 3c 2f 70 3e 3c more info.</p><
3430: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
3440: 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 64 68 70 61 s="option">-dhpa
3450: 72 61 6d 73 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 rams</b> <i clas
3460: 73 3d 22 61 72 67 22 3e 66 69 6c 65 6e 61 6d 65 s="arg">filename
3470: 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 </i></dt>.<dd><p
3480: 3e 53 70 65 63 69 66 69 65 73 20 74 68 65 20 44 >Specifies the D
3490: 69 66 66 69 65 2d 48 65 6c 6c 6d 61 6e 20 28 44 iffie-Hellman (D
34a0: 48 29 20 70 61 72 61 6d 65 74 65 72 73 20 66 69 H) parameters fi
34b0: 6c 65 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 le.</p></dd>.<dt
34c0: 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f ><b class="optio
34d0: 6e 22 3e 2d 6b 65 79 66 69 6c 65 3c 2f 62 3e 20 n">-keyfile</b>
34e0: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 66 <i class="arg">f
34f0: 69 6c 65 6e 61 6d 65 3c 2f 69 3e 3c 2f 64 74 3e ilename</i></dt>
3500: 0a 3c 64 64 3e 3c 70 3e 53 70 65 63 69 66 69 65 .<dd><p>Specifie
3510: 73 20 74 68 65 20 70 72 69 76 61 74 65 20 6b 65 s the private ke
3520: 79 20 66 69 6c 65 2e 20 54 68 65 20 64 65 66 61 y file. The defa
3530: 75 6c 74 20 69 73 20 74 6f 20 75 73 65 20 74 68 ult is to use th
3540: 65 20 66 69 6c 65 0a 73 70 65 63 69 66 69 65 64 e file.specified
3550: 20 62 79 20 74 68 65 20 3c 69 20 63 6c 61 73 73 by the <i class
3560: 3d 22 61 72 67 22 3e 2d 63 65 72 74 66 69 6c 65 ="arg">-certfile
3570: 3c 2f 69 3e 20 6f 70 74 69 6f 6e 2e 3c 2f 70 3e </i> option.</p>
3580: 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 </dd>.<dt><b cla
3590: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 6b 65 79 ss="option">-key
35a0: 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 </b> <i class="a
35b0: 72 67 22 3e 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f rg">string</i></
35c0: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 70 65 63 69 dt>.<dd><p>Speci
35d0: 66 69 65 73 20 74 68 65 20 70 72 69 76 61 74 65 fies the private
35e0: 20 6b 65 79 20 74 6f 20 75 73 65 20 61 73 20 61 key to use as a
35f0: 20 44 45 52 20 65 6e 63 6f 64 65 64 20 73 74 72 DER encoded str
3600: 69 6e 67 20 28 50 4b 43 53 23 31 20 44 45 52 29 ing (PKCS#1 DER)
3610: 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c .</p></dd>.<dt><
3620: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
3630: 3e 2d 6d 6f 64 65 6c 3c 2f 62 3e 20 3c 69 20 63 >-model</b> <i c
3640: 6c 61 73 73 3d 22 61 72 67 22 3e 63 68 61 6e 6e lass="arg">chann
3650: 65 6c 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e el</i></dt>.<dd>
3660: 3c 70 3e 46 6f 72 63 65 20 74 68 69 73 20 63 68 <p>Force this ch
3670: 61 6e 6e 65 6c 20 74 6f 20 73 68 61 72 65 20 74 annel to share t
3680: 68 65 20 73 61 6d 65 20 3c 69 20 63 6c 61 73 73 he same <i class
3690: 3d 22 74 65 72 6d 22 3e 53 53 4c 5f 43 54 58 3c ="term">SSL_CTX<
36a0: 2f 69 3e 20 73 74 72 75 63 74 75 72 65 20 61 73 /i> structure as
36b0: 20 74 68 65 0a 73 70 65 63 69 66 69 65 64 20 3c the.specified <
36c0: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 63 68 i class="arg">ch
36d0: 61 6e 6e 65 6c 3c 2f 69 3e 2c 20 61 6e 64 20 74 annel</i>, and t
36e0: 68 65 72 65 66 6f 72 65 20 73 68 61 72 65 20 63 herefore share c
36f0: 6f 6e 66 69 67 2c 20 63 61 6c 6c 62 61 63 6b 73 onfig, callbacks
3700: 2c 20 65 74 63 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a , etc.</p></dd>.
3710: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 <dt><b class="op
3720: 74 69 6f 6e 22 3e 2d 70 61 73 73 77 6f 72 64 3c tion">-password<
3730: 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 /b> <i class="ar
3740: 67 22 3e 63 61 6c 6c 62 61 63 6b 3c 2f 69 3e 3c g">callback</i><
3750: 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 70 65 63 /dt>.<dd><p>Spec
3760: 69 66 69 65 73 20 74 68 65 20 63 61 6c 6c 62 61 ifies the callba
3770: 63 6b 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 69 6e ck command to in
3780: 76 6f 6b 65 20 77 68 65 6e 20 4f 70 65 6e 53 53 voke when OpenSS
3790: 4c 20 6e 65 65 64 73 20 74 6f 20 6f 62 74 61 69 L needs to obtai
37a0: 6e 20 61 0a 70 61 73 73 77 6f 72 64 2e 20 54 68 n a.password. Th
37b0: 69 73 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 is is typically
37c0: 75 73 65 64 20 74 6f 20 75 6e 6c 6f 63 6b 20 74 used to unlock t
37d0: 68 65 20 70 72 69 76 61 74 65 20 6b 65 79 20 6f he private key o
37e0: 66 20 61 20 63 65 72 74 69 66 69 63 61 74 65 2e f a certificate.
37f0: 0a 54 68 65 20 63 61 6c 6c 62 61 63 6b 20 73 68 .The callback sh
3800: 6f 75 6c 64 20 72 65 74 75 72 6e 20 61 20 70 61 ould return a pa
3810: 73 73 77 6f 72 64 20 73 74 72 69 6e 67 2e 20 53 ssword string. S
3820: 65 65 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ee <span class="
3830: 73 65 63 74 72 65 66 22 3e 3c 61 20 68 72 65 66 sectref"><a href
3840: 3d 22 23 73 65 63 74 69 6f 6e 34 22 3e 43 61 6c ="#section4">Cal
3850: 6c 62 61 63 6b 20 4f 70 74 69 6f 6e 73 3c 2f 61 lback Options</a
3860: 3e 3c 2f 73 70 61 6e 3e 0a 66 6f 72 20 6d 6f 72 ></span>.for mor
3870: 65 20 69 6e 66 6f 2e 3c 2f 70 3e 3c 2f 64 64 3e e info.</p></dd>
3880: 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f .<dt><b class="o
3890: 70 74 69 6f 6e 22 3e 2d 70 6f 73 74 5f 68 61 6e ption">-post_han
38a0: 64 73 68 61 6b 65 3c 2f 62 3e 20 3c 69 20 63 6c dshake</b> <i cl
38b0: 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f 6c 3c 2f ass="arg">bool</
38c0: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 41 i></dt>.<dd><p>A
38d0: 6c 6c 6f 77 20 70 6f 73 74 2d 68 61 6e 64 73 68 llow post-handsh
38e0: 61 6b 65 20 73 65 73 73 69 6f 6e 20 74 69 63 6b ake session tick
38f0: 65 74 20 75 70 64 61 74 65 73 2e 3c 2f 70 3e 3c et updates.</p><
3900: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
3910: 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 72 65 71 75 s="option">-requ
3920: 65 73 74 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 est</b> <i class
3930: 3d 22 61 72 67 22 3e 62 6f 6f 6c 3c 2f 69 3e 3c ="arg">bool</i><
3940: 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 52 65 71 75 /dt>.<dd><p>Requ
3950: 65 73 74 20 61 20 63 65 72 74 69 66 69 63 61 74 est a certificat
3960: 65 20 66 72 6f 6d 20 74 68 65 20 70 65 65 72 20 e from the peer
3970: 64 75 72 69 6e 67 20 74 68 65 20 53 53 4c 20 68 during the SSL h
3980: 61 6e 64 73 68 61 6b 65 2e 20 54 68 69 73 20 69 andshake. This i
3990: 73 20 6e 65 65 64 65 64 0a 74 6f 20 64 6f 20 43 s needed.to do C
39a0: 65 72 74 69 66 69 63 61 74 65 20 56 61 6c 69 64 ertificate Valid
39b0: 61 74 69 6f 6e 2e 20 53 74 61 72 74 69 6e 67 20 ation. Starting
39c0: 69 6e 20 54 63 6c 54 4c 53 20 31 2e 38 2c 20 74 in TclTLS 1.8, t
39d0: 68 65 20 64 65 66 61 75 6c 74 20 69 73 0a 3c 62 he default is.<b
39e0: 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 74 class="const">t
39f0: 72 75 65 3c 2f 62 3e 2e 0a 53 65 65 20 3c 73 70 rue</b>..See <sp
3a00: 61 6e 20 63 6c 61 73 73 3d 22 73 65 63 74 72 65 an class="sectre
3a10: 66 22 3e 3c 61 20 68 72 65 66 3d 22 23 73 65 63 f"><a href="#sec
3a20: 74 69 6f 6e 33 22 3e 43 65 72 74 69 66 69 63 61 tion3">Certifica
3a30: 74 65 20 56 61 6c 69 64 61 74 69 6f 6e 3c 2f 61 te Validation</a
3a40: 3e 3c 2f 73 70 61 6e 3e 20 66 6f 72 20 6d 6f 72 ></span> for mor
3a50: 65 20 64 65 74 61 69 6c 73 2e 3c 2f 70 3e 3c 2f e details.</p></
3a60: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
3a70: 3d 22 6f 70 74 69 6f 6e 22 3e 2d 72 65 71 75 69 ="option">-requi
3a80: 72 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d re</b> <i class=
3a90: 22 61 72 67 22 3e 62 6f 6f 6c 3c 2f 69 3e 3c 2f "arg">bool</i></
3aa0: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 52 65 71 75 69 dt>.<dd><p>Requi
3ab0: 72 65 20 61 20 76 61 6c 69 64 20 63 65 72 74 69 re a valid certi
3ac0: 66 69 63 61 74 65 20 66 72 6f 6d 20 74 68 65 20 ficate from the
3ad0: 70 65 65 72 20 64 75 72 69 6e 67 20 74 68 65 20 peer during the
3ae0: 53 53 4c 20 68 61 6e 64 73 68 61 6b 65 2e 20 49 SSL handshake. I
3af0: 66 20 74 68 69 73 20 69 73 0a 73 65 74 20 74 6f f this is.set to
3b00: 20 74 72 75 65 2c 20 74 68 65 6e 20 3c 62 20 63 true, then <b c
3b10: 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 72 lass="option">-r
3b20: 65 71 75 65 73 74 3c 2f 62 3e 20 6d 75 73 74 20 equest</b> must
3b30: 61 6c 73 6f 20 62 65 20 73 65 74 20 74 6f 20 74 also be set to t
3b40: 72 75 65 20 61 6e 64 20 61 20 65 69 74 68 65 72 rue and a either
3b50: 0a 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f .<b class="optio
3b60: 6e 22 3e 2d 63 61 64 69 72 3c 2f 62 3e 2c 20 3c n">-cadir</b>, <
3b70: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
3b80: 3e 2d 63 61 66 69 6c 65 3c 2f 62 3e 2c 20 3c 62 >-cafile</b>, <b
3b90: 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e class="option">
3ba0: 2d 63 61 73 74 6f 72 65 3c 2f 62 3e 2c 20 6f 72 -castore</b>, or
3bb0: 20 61 20 70 6c 61 74 66 6f 72 6d 20 64 65 66 61 a platform defa
3bc0: 75 6c 74 0a 6d 75 73 74 20 62 65 20 70 72 6f 76 ult.must be prov
3bd0: 69 64 65 64 20 69 6e 20 6f 72 64 65 72 20 74 6f ided in order to
3be0: 20 76 61 6c 69 64 61 74 65 20 61 67 61 69 6e 73 validate agains
3bf0: 74 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 t. The default i
3c00: 6e 20 54 63 6c 54 4c 53 20 31 2e 38 20 61 6e 64 n TclTLS 1.8 and
3c10: 0a 65 61 72 6c 69 65 72 20 76 65 72 73 69 6f 6e .earlier version
3c20: 73 20 69 73 20 3c 62 20 63 6c 61 73 73 3d 22 63 s is <b class="c
3c30: 6f 6e 73 74 22 3e 66 61 6c 73 65 3c 2f 62 3e 20 onst">false</b>
3c40: 73 69 6e 63 65 20 6e 6f 74 20 61 6c 6c 20 70 6c since not all pl
3c50: 61 74 66 6f 72 6d 73 20 68 61 76 65 20 63 65 72 atforms have cer
3c60: 74 69 66 69 63 61 74 65 73 20 74 6f 0a 76 61 6c tificates to.val
3c70: 69 64 61 74 65 20 61 67 61 69 6e 73 74 20 69 6e idate against in
3c80: 20 61 20 66 6f 72 6d 20 63 6f 6d 70 61 74 69 62 a form compatib
3c90: 6c 65 20 77 69 74 68 20 4f 70 65 6e 53 53 4c 2e le with OpenSSL.
3ca0: 0a 53 65 65 20 3c 73 70 61 6e 20 63 6c 61 73 73 .See <span class
3cb0: 3d 22 73 65 63 74 72 65 66 22 3e 3c 61 20 68 72 ="sectref"><a hr
3cc0: 65 66 3d 22 23 73 65 63 74 69 6f 6e 33 22 3e 43 ef="#section3">C
3cd0: 65 72 74 69 66 69 63 61 74 65 20 56 61 6c 69 64 ertificate Valid
3ce0: 61 74 69 6f 6e 3c 2f 61 3e 3c 2f 73 70 61 6e 3e ation</a></span>
3cf0: 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c for more detail
3d00: 73 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e s.</p></dd>.<dt>
3d10: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
3d20: 22 3e 2d 73 65 63 75 72 69 74 79 5f 6c 65 76 65 ">-security_leve
3d30: 6c 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 l</b> <i class="
3d40: 61 72 67 22 3e 69 6e 74 65 67 65 72 3c 2f 69 3e arg">integer</i>
3d50: 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 70 65 </dt>.<dd><p>Spe
3d60: 63 69 66 69 65 73 20 74 68 65 20 73 65 63 75 72 cifies the secur
3d70: 69 74 79 20 6c 65 76 65 6c 20 28 76 61 6c 75 65 ity level (value
3d80: 20 66 72 6f 6d 20 30 20 74 6f 20 35 29 2e 20 54 from 0 to 5). T
3d90: 68 65 20 73 65 63 75 72 69 74 79 20 6c 65 76 65 he security leve
3da0: 6c 20 61 66 66 65 63 74 73 0a 74 68 65 20 61 6c l affects.the al
3db0: 6c 6f 77 65 64 20 63 69 70 68 65 72 20 73 75 69 lowed cipher sui
3dc0: 74 65 20 65 6e 63 72 79 70 74 69 6f 6e 20 61 6c te encryption al
3dd0: 67 6f 72 69 74 68 6d 73 2c 20 73 75 70 70 6f 72 gorithms, suppor
3de0: 74 65 64 20 45 43 43 20 63 75 72 76 65 73 2c 0a ted ECC curves,.
3df0: 73 75 70 70 6f 72 74 65 64 20 73 69 67 6e 61 74 supported signat
3e00: 75 72 65 20 61 6c 67 6f 72 69 74 68 6d 73 2c 20 ure algorithms,
3e10: 44 48 20 70 61 72 61 6d 65 74 65 72 20 73 69 7a DH parameter siz
3e20: 65 73 2c 20 63 65 72 74 69 66 69 63 61 74 65 20 es, certificate
3e30: 6b 65 79 20 73 69 7a 65 73 0a 61 6e 64 20 73 69 key sizes.and si
3e40: 67 6e 61 74 75 72 65 20 61 6c 67 6f 72 69 74 68 gnature algorith
3e50: 6d 73 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 ms. The default
3e60: 69 73 20 31 20 70 72 69 6f 72 20 74 6f 20 4f 70 is 1 prior to Op
3e70: 65 6e 53 53 4c 20 33 2e 32 20 61 6e 64 20 32 0a enSSL 3.2 and 2.
3e80: 74 68 65 72 65 61 66 74 65 72 2e 20 4c 65 76 65 thereafter. Leve
3e90: 6c 20 33 20 61 6e 64 20 68 69 67 68 65 72 20 64 l 3 and higher d
3ea0: 69 73 61 62 6c 65 20 73 75 70 70 6f 72 74 20 66 isable support f
3eb0: 6f 72 20 73 65 73 73 69 6f 6e 20 74 69 63 6b 65 or session ticke
3ec0: 74 73 20 61 6e 64 0a 6f 6e 6c 79 20 61 63 63 65 ts and.only acce
3ed0: 70 74 20 63 69 70 68 65 72 20 73 75 69 74 65 73 pt cipher suites
3ee0: 20 74 68 61 74 20 70 72 6f 76 69 64 65 20 66 6f that provide fo
3ef0: 72 77 61 72 64 20 73 65 63 72 65 63 79 2e 3c 2f rward secrecy.</
3f00: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 p></dd>.<dt><b c
3f10: 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 73 lass="option">-s
3f20: 65 72 76 65 72 3c 2f 62 3e 20 3c 69 20 63 6c 61 erver</b> <i cla
3f30: 73 73 3d 22 61 72 67 22 3e 62 6f 6f 6c 3c 2f 69 ss="arg">bool</i
3f40: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 70 ></dt>.<dd><p>Sp
3f50: 65 63 69 66 69 65 73 20 77 68 65 74 68 65 72 20 ecifies whether
3f60: 74 6f 20 61 63 74 20 61 73 20 61 20 73 65 72 76 to act as a serv
3f70: 65 72 20 61 6e 64 20 72 65 73 70 6f 6e 64 20 77 er and respond w
3f80: 69 74 68 20 61 20 73 65 72 76 65 72 20 68 61 6e ith a server han
3f90: 64 73 68 61 6b 65 20 77 68 65 6e 20 61 0a 63 6c dshake when a.cl
3fa0: 69 65 6e 74 20 63 6f 6e 6e 65 63 74 73 20 61 6e ient connects an
3fb0: 64 20 70 72 6f 76 69 64 65 73 20 61 20 63 6c 69 d provides a cli
3fc0: 65 6e 74 20 68 61 6e 64 73 68 61 6b 65 2e 20 54 ent handshake. T
3fd0: 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 3c 62 he default is <b
3fe0: 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 66 class="const">f
3ff0: 61 6c 73 65 3c 2f 62 3e 2e 3c 2f 70 3e 3c 2f 64 alse</b>.</p></d
4000: 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d d>.<dt><b class=
4010: 22 6f 70 74 69 6f 6e 22 3e 2d 73 65 72 76 65 72 "option">-server
4020: 6e 61 6d 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 name</b> <i clas
4030: 73 3d 22 61 72 67 22 3e 68 6f 73 74 6e 61 6d 65 s="arg">hostname
4040: 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 </i></dt>.<dd><p
4050: 3e 53 70 65 63 69 66 79 20 74 68 65 20 70 65 65 >Specify the pee
4060: 72 27 73 20 68 6f 73 74 6e 61 6d 65 2e 20 54 68 r's hostname. Th
4070: 69 73 20 69 73 20 75 73 65 64 20 74 6f 20 73 65 is is used to se
4080: 74 20 74 68 65 20 54 4c 53 20 53 65 72 76 65 72 t the TLS Server
4090: 20 4e 61 6d 65 0a 49 6e 64 69 63 61 74 69 6f 6e Name.Indication
40a0: 20 28 53 4e 49 29 20 65 78 74 65 6e 73 69 6f 6e (SNI) extension
40b0: 2e 20 53 65 74 20 74 68 69 73 20 74 6f 20 74 68 . Set this to th
40c0: 65 20 65 78 70 65 63 74 65 64 20 73 65 72 76 65 e expected serve
40d0: 72 6e 61 6d 65 20 69 6e 20 74 68 65 0a 73 65 72 rname in the.ser
40e0: 76 65 72 27 73 20 63 65 72 74 69 66 69 63 61 74 ver's certificat
40f0: 65 20 6f 72 20 6f 6e 65 20 6f 66 20 74 68 65 20 e or one of the
4100: 53 75 62 6a 65 63 74 20 41 6c 74 65 72 6e 61 74 Subject Alternat
4110: 65 20 4e 61 6d 65 73 20 28 53 41 4e 29 2e 3c 2f e Names (SAN).</
4120: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 p></dd>.<dt><b c
4130: 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 73 lass="option">-s
4140: 65 73 73 69 6f 6e 5f 69 64 3c 2f 62 3e 20 3c 69 ession_id</b> <i
4150: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 62 69 6e class="arg">bin
4160: 61 72 79 5f 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f ary_string</i></
4170: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 70 65 63 69 dt>.<dd><p>Speci
4180: 66 69 65 73 20 74 68 65 20 73 65 73 73 69 6f 6e fies the session
4190: 20 69 64 20 74 6f 20 72 65 73 75 6d 65 20 61 20 id to resume a
41a0: 73 65 73 73 69 6f 6e 2e 20 4e 6f 74 20 73 75 70 session. Not sup
41b0: 70 6f 72 74 65 64 20 79 65 74 2e 3c 2f 70 3e 3c ported yet.</p><
41c0: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
41d0: 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 73 73 6c 32 s="option">-ssl2
41e0: 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 </b> <i class="a
41f0: 72 67 22 3e 62 6f 6f 6c 3c 2f 69 3e 3c 2f 64 74 rg">bool</i></dt
4200: 3e 0a 3c 64 64 3e 3c 70 3e 45 6e 61 62 6c 65 20 >.<dd><p>Enable
4210: 75 73 65 20 6f 66 20 53 53 4c 20 76 32 2e 20 54 use of SSL v2. T
4220: 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 3c 62 he default is <b
4230: 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 66 class="const">f
4240: 61 6c 73 65 3c 2f 62 3e 2e 20 4e 6f 74 65 3a 20 alse</b>. Note:
4250: 52 65 63 65 6e 74 20 76 65 72 73 69 6f 6e 73 20 Recent versions
4260: 6f 66 0a 4f 70 65 6e 53 53 4c 20 6e 6f 20 6c 6f of.OpenSSL no lo
4270: 6e 67 65 72 20 73 75 70 70 6f 72 74 20 53 53 4c nger support SSL
4280: 76 32 2c 20 73 6f 20 74 68 69 73 20 6d 61 79 20 v2, so this may
4290: 6e 6f 74 20 68 61 76 65 20 61 6e 79 20 65 66 66 not have any eff
42a0: 65 63 74 2e 20 53 65 65 20 74 68 65 0a 3c 62 20 ect. See the.<b
42b0: 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a class="cmd">tls:
42c0: 3a 70 72 6f 74 6f 63 6f 6c 73 3c 2f 62 3e 20 63 :protocols</b> c
42d0: 6f 6d 6d 61 6e 64 20 66 6f 72 20 73 75 70 70 6f ommand for suppo
42e0: 72 74 65 64 20 70 72 6f 74 6f 63 6f 6c 73 2e 3c rted protocols.<
42f0: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
4300: 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d class="option">-
4310: 73 73 6c 33 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 ssl3</b> <i clas
4320: 73 3d 22 61 72 67 22 3e 62 6f 6f 6c 3c 2f 69 3e s="arg">bool</i>
4330: 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 45 6e 61 </dt>.<dd><p>Ena
4340: 62 6c 65 20 75 73 65 20 6f 66 20 53 53 4c 20 76 ble use of SSL v
4350: 33 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 3. The default i
4360: 73 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 s <b class="cons
4370: 74 22 3e 66 61 6c 73 65 3c 2f 62 3e 2e 20 4e 6f t">false</b>. No
4380: 74 65 3a 20 52 65 63 65 6e 74 20 76 65 72 73 69 te: Recent versi
4390: 6f 6e 73 0a 6f 66 20 4f 70 65 6e 53 53 4c 20 6d ons.of OpenSSL m
43a0: 61 79 20 68 61 76 65 20 74 68 69 73 20 64 69 73 ay have this dis
43b0: 61 62 6c 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 abled at compile
43c0: 20 74 69 6d 65 2c 20 73 6f 20 74 68 69 73 20 6d time, so this m
43d0: 61 79 20 6e 6f 74 20 68 61 76 65 20 61 6e 79 0a ay not have any.
43e0: 65 66 66 65 63 74 2e 20 53 65 65 20 74 68 65 20 effect. See the
43f0: 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 <b class="cmd">t
4400: 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 3c 2f 62 ls::protocols</b
4410: 3e 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 73 75 > command for su
4420: 70 70 6f 72 74 65 64 20 70 72 6f 74 6f 63 6f 6c pported protocol
4430: 73 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e s.</p></dd>.<dt>
4440: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
4450: 22 3e 2d 74 6c 73 31 3c 2f 62 3e 20 3c 69 20 63 ">-tls1</b> <i c
4460: 6c 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f 6c 3c lass="arg">bool<
4470: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
4480: 45 6e 61 62 6c 65 20 75 73 65 20 6f 66 20 54 4c Enable use of TL
4490: 53 20 76 31 2e 20 54 68 65 20 64 65 66 61 75 6c S v1. The defaul
44a0: 74 20 69 73 20 3c 62 20 63 6c 61 73 73 3d 22 63 t is <b class="c
44b0: 6f 6e 73 74 22 3e 74 72 75 65 3c 2f 62 3e 2e 20 onst">true</b>.
44c0: 4e 6f 74 65 3a 20 54 4c 53 20 31 2e 30 20 6e 65 Note: TLS 1.0 ne
44d0: 65 64 73 0a 53 48 41 31 20 74 6f 20 6f 70 65 72 eds.SHA1 to oper
44e0: 61 74 65 2c 20 77 68 69 63 68 20 69 73 20 6f 6e ate, which is on
44f0: 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 ly available in
4500: 73 65 63 75 72 69 74 79 20 6c 65 76 65 6c 20 30 security level 0
4510: 20 66 6f 72 20 4f 70 65 6e 20 53 53 4c 20 33 2e for Open SSL 3.
4520: 30 2b 2e 0a 53 65 65 20 74 68 65 20 3c 69 20 63 0+..See the <i c
4530: 6c 61 73 73 3d 22 61 72 67 22 3e 2d 73 65 63 75 lass="arg">-secu
4540: 72 69 74 79 5f 6c 65 76 65 6c 3c 2f 69 3e 20 6f rity_level</i> o
4550: 70 74 69 6f 6e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a ption.</p></dd>.
4560: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 <dt><b class="op
4570: 74 69 6f 6e 22 3e 2d 74 6c 73 31 2e 31 3c 2f 62 tion">-tls1.1</b
4580: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
4590: 3e 62 6f 6f 6c 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c >bool</i></dt>.<
45a0: 64 64 3e 3c 70 3e 45 6e 61 62 6c 65 20 75 73 65 dd><p>Enable use
45b0: 20 6f 66 20 54 4c 53 20 76 31 2e 31 2e 20 54 68 of TLS v1.1. Th
45c0: 65 20 64 65 66 61 75 6c 74 20 69 73 20 3c 62 20 e default is <b
45d0: 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 74 72 class="const">tr
45e0: 75 65 3c 2f 62 3e 2e 20 4e 6f 74 65 3a 20 54 4c ue</b>. Note: TL
45f0: 53 20 31 2e 31 20 6e 65 65 64 73 0a 53 48 41 31 S 1.1 needs.SHA1
4600: 20 74 6f 20 6f 70 65 72 61 74 65 2c 20 77 68 69 to operate, whi
4610: 63 68 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 6c ch is only avail
4620: 61 62 6c 65 20 69 6e 20 73 65 63 75 72 69 74 79 able in security
4630: 20 6c 65 76 65 6c 20 30 20 66 6f 72 20 4f 70 65 level 0 for Ope
4640: 6e 20 53 53 4c 20 33 2e 30 2b 2e 0a 53 65 65 20 n SSL 3.0+..See
4650: 74 68 65 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 the <i class="ar
4660: 67 22 3e 2d 73 65 63 75 72 69 74 79 5f 6c 65 76 g">-security_lev
4670: 65 6c 3c 2f 69 3e 20 6f 70 74 69 6f 6e 2e 3c 2f el</i> option.</
4680: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 p></dd>.<dt><b c
4690: 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 74 lass="option">-t
46a0: 6c 73 31 2e 32 3c 2f 62 3e 20 3c 69 20 63 6c 61 ls1.2</b> <i cla
46b0: 73 73 3d 22 61 72 67 22 3e 62 6f 6f 6c 3c 2f 69 ss="arg">bool</i
46c0: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 45 6e ></dt>.<dd><p>En
46d0: 61 62 6c 65 20 75 73 65 20 6f 66 20 54 4c 53 20 able use of TLS
46e0: 76 31 2e 32 2e 20 54 68 65 20 64 65 66 61 75 6c v1.2. The defaul
46f0: 74 20 69 73 20 3c 62 20 63 6c 61 73 73 3d 22 63 t is <b class="c
4700: 6f 6e 73 74 22 3e 74 72 75 65 3c 2f 62 3e 2e 3c onst">true</b>.<
4710: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
4720: 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d class="option">-
4730: 74 6c 73 31 2e 33 3c 2f 62 3e 20 3c 69 20 63 6c tls1.3</b> <i cl
4740: 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f 6c 3c 2f ass="arg">bool</
4750: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 45 i></dt>.<dd><p>E
4760: 6e 61 62 6c 65 20 75 73 65 20 6f 66 20 54 4c 53 nable use of TLS
4770: 20 76 31 2e 33 2e 20 54 68 65 20 64 65 66 61 75 v1.3. The defau
4780: 6c 74 20 69 73 20 3c 62 20 63 6c 61 73 73 3d 22 lt is <b class="
4790: 63 6f 6e 73 74 22 3e 74 72 75 65 3c 2f 62 3e 2e const">true</b>.
47a0: 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 </p></dd>.<dt><b
47b0: 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e class="option">
47c0: 2d 76 61 6c 69 64 61 74 65 63 6f 6d 6d 61 6e 64 -validatecommand
47d0: 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 </b> <i class="a
47e0: 72 67 22 3e 63 61 6c 6c 62 61 63 6b 3c 2f 69 3e rg">callback</i>
47f0: 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 70 65 </dt>.<dd><p>Spe
4800: 63 69 66 69 65 73 20 74 68 65 20 63 61 6c 6c 62 cifies the callb
4810: 61 63 6b 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 69 ack command to i
4820: 6e 76 6f 6b 65 20 74 6f 20 76 61 6c 69 64 61 74 nvoke to validat
4830: 65 20 74 68 65 20 70 65 65 72 20 63 65 72 74 69 e the peer certi
4840: 66 69 63 61 74 65 73 0a 61 6e 64 20 6f 74 68 65 ficates.and othe
4850: 72 20 63 6f 6e 66 69 67 20 69 6e 66 6f 20 64 75 r config info du
4860: 72 69 6e 67 20 74 68 65 20 70 72 6f 74 6f 63 6f ring the protoco
4870: 6c 20 6e 65 67 6f 74 69 61 74 69 6f 6e 20 70 68 l negotiation ph
4880: 61 73 65 2e 20 54 68 69 73 20 63 61 6e 20 62 65 ase. This can be
4890: 20 75 73 65 64 0a 62 79 20 54 43 4c 20 73 63 72 used.by TCL scr
48a0: 69 70 74 73 20 74 6f 20 70 65 72 66 6f 72 6d 20 ipts to perform
48b0: 74 68 65 69 72 20 6f 77 6e 20 43 65 72 74 69 66 their own Certif
48c0: 69 63 61 74 65 20 56 61 6c 69 64 61 74 69 6f 6e icate Validation
48d0: 20 74 6f 20 73 75 70 70 6c 65 6d 65 6e 74 20 74 to supplement t
48e0: 68 65 0a 64 65 66 61 75 6c 74 20 76 61 6c 69 64 he.default valid
48f0: 61 74 69 6f 6e 20 70 72 6f 76 69 64 65 64 20 62 ation provided b
4900: 79 20 4f 70 65 6e 53 53 4c 2e 20 54 68 65 20 73 y OpenSSL. The s
4910: 63 72 69 70 74 20 6d 75 73 74 20 72 65 74 75 72 cript must retur
4920: 6e 20 61 20 62 6f 6f 6c 65 61 6e 20 74 72 75 65 n a boolean true
4930: 0a 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 68 65 .to continue the
4940: 20 6e 65 67 6f 74 69 61 74 69 6f 6e 2e 20 53 65 negotiation. Se
4950: 65 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 e <span class="s
4960: 65 63 74 72 65 66 22 3e 3c 61 20 68 72 65 66 3d ectref"><a href=
4970: 22 23 73 65 63 74 69 6f 6e 34 22 3e 43 61 6c 6c "#section4">Call
4980: 62 61 63 6b 20 4f 70 74 69 6f 6e 73 3c 2f 61 3e back Options</a>
4990: 3c 2f 73 70 61 6e 3e 20 66 6f 72 20 6d 6f 72 65 </span> for more
49a0: 20 69 6e 66 6f 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a info.</p></dd>.
49b0: 3c 2f 64 6c 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c </dl></dd>.<dt><
49c0: 61 20 6e 61 6d 65 3d 22 35 22 3e 3c 62 20 63 6c a name="5"><b cl
49d0: 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 75 ass="cmd">tls::u
49e0: 6e 69 6d 70 6f 72 74 3c 2f 62 3e 20 3c 69 20 63 nimport</b> <i c
49f0: 6c 61 73 73 3d 22 61 72 67 22 3e 63 68 61 6e 6e lass="arg">chann
4a00: 65 6c 3c 2f 69 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a el</i></a></dt>.
4a10: 3c 64 64 3e 3c 70 3e 43 6f 6d 70 6c 69 6d 65 6e <dd><p>Complimen
4a20: 74 20 74 6f 20 3c 62 20 63 6c 61 73 73 3d 22 63 t to <b class="c
4a30: 6d 64 22 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c md">tls::import<
4a40: 2f 62 3e 2e 20 55 73 65 64 20 74 6f 20 72 65 6d /b>. Used to rem
4a50: 6f 76 65 20 74 68 65 20 74 6f 70 20 6c 65 76 65 ove the top leve
4a60: 6c 20 73 74 61 63 6b 65 64 20 63 68 61 6e 6e 65 l stacked channe
4a70: 6c 0a 66 72 6f 6d 20 3c 69 20 63 6c 61 73 73 3d l.from <i class=
4a80: 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c 3c 2f 69 "arg">channel</i
4a90: 3e 2e 20 54 68 69 73 20 75 6e 73 74 61 63 6b 73 >. This unstacks
4aa0: 20 74 68 65 20 65 6e 63 72 79 70 74 69 6f 6e 20 the encryption
4ab0: 6f 66 20 61 20 72 65 67 75 6c 61 72 20 54 43 4c of a regular TCL
4ac0: 20 63 68 61 6e 6e 65 6c 2e 20 41 6e 0a 65 72 72 channel. An.err
4ad0: 6f 72 20 69 73 20 74 68 72 6f 77 6e 20 69 66 20 or is thrown if
4ae0: 54 4c 53 20 69 73 20 6e 6f 74 20 74 68 65 20 74 TLS is not the t
4af0: 6f 70 20 73 74 61 63 6b 65 64 20 63 68 61 6e 6e op stacked chann
4b00: 65 6c 20 74 79 70 65 2e 3c 2f 70 3e 3c 2f 64 64 el type.</p></dd
4b10: 3e 0a 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 36 >.<dt><a name="6
4b20: 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 "><b class="cmd"
4b30: 3e 74 6c 73 3a 3a 68 61 6e 64 73 68 61 6b 65 3c >tls::handshake<
4b40: 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 /b> <i class="ar
4b50: 67 22 3e 63 68 61 6e 6e 65 6c 3c 2f 69 3e 3c 2f g">channel</i></
4b60: 61 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 46 a></dt>.<dd><p>F
4b70: 6f 72 63 65 73 20 74 68 65 20 54 4c 53 20 6e 65 orces the TLS ne
4b80: 67 6f 74 69 61 74 69 6f 6e 20 68 61 6e 64 73 68 gotiation handsh
4b90: 61 6b 65 20 74 6f 20 74 61 6b 65 20 70 6c 61 63 ake to take plac
4ba0: 65 20 69 6d 6d 65 64 69 61 74 65 6c 79 2c 20 61 e immediately, a
4bb0: 6e 64 20 72 65 74 75 72 6e 73 20 30 0a 69 66 20 nd returns 0.if
4bc0: 68 61 6e 64 73 68 61 6b 65 20 69 73 20 73 74 69 handshake is sti
4bd0: 6c 6c 20 69 6e 20 70 72 6f 67 72 65 73 73 20 28 ll in progress (
4be0: 6e 6f 6e 2d 62 6c 6f 63 6b 69 6e 67 29 2c 20 6f non-blocking), o
4bf0: 72 20 31 20 69 66 20 74 68 65 20 68 61 6e 64 73 r 1 if the hands
4c00: 68 61 6b 65 20 77 61 73 0a 73 75 63 63 65 73 73 hake was.success
4c10: 66 75 6c 2e 20 49 66 20 74 68 65 20 68 61 6e 64 ful. If the hand
4c20: 73 68 61 6b 65 20 66 61 69 6c 65 64 2c 20 61 6e shake failed, an
4c30: 20 65 72 72 6f 72 20 77 69 6c 6c 20 62 65 20 72 error will be r
4c40: 65 74 75 72 6e 65 64 2e 3c 2f 70 3e 3c 2f 64 64 eturned.</p></dd
4c50: 3e 0a 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 37 >.<dt><a name="7
4c60: 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 "><b class="cmd"
4c70: 3e 74 6c 73 3a 3a 73 74 61 74 75 73 3c 2f 62 3e >tls::status</b>
4c80: 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 <span class="op
4c90: 74 22 3e 3f 3c 62 20 63 6c 61 73 73 3d 22 6f 70 t">?<b class="op
4ca0: 74 69 6f 6e 22 3e 2d 6c 6f 63 61 6c 3c 2f 62 3e tion">-local</b>
4cb0: 3f 3c 2f 73 70 61 6e 3e 20 3c 69 20 63 6c 61 73 ?</span> <i clas
4cc0: 73 3d 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c 3c s="arg">channel<
4cd0: 2f 69 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 3c 64 64 /i></a></dt>.<dd
4ce0: 3e 3c 70 3e 52 65 74 75 72 6e 73 20 74 68 65 20 ><p>Returns the
4cf0: 63 75 72 72 65 6e 74 20 73 74 61 74 75 73 20 6f current status o
4d00: 66 20 61 6e 20 53 53 4c 20 63 68 61 6e 6e 65 6c f an SSL channel
4d10: 2e 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 . The result is
4d20: 61 20 6c 69 73 74 20 6f 66 20 6b 65 79 2d 76 61 a list of key-va
4d30: 6c 75 65 0a 70 61 69 72 73 20 64 65 73 63 72 69 lue.pairs descri
4d40: 62 69 6e 67 20 74 68 65 20 53 53 4c 2c 20 63 65 bing the SSL, ce
4d50: 72 74 69 66 69 63 61 74 65 2c 20 61 6e 64 20 63 rtificate, and c
4d60: 65 72 74 69 66 69 63 61 74 65 20 76 65 72 69 66 ertificate verif
4d70: 69 63 61 74 69 6f 6e 20 73 74 61 74 75 73 2e 20 ication status.
4d80: 49 66 0a 74 68 65 20 53 53 4c 20 68 61 6e 64 73 If.the SSL hands
4d90: 68 61 6b 65 20 68 61 73 20 6e 6f 74 20 79 65 74 hake has not yet
4da0: 20 63 6f 6d 70 6c 65 74 65 64 2c 20 61 6e 20 65 completed, an e
4db0: 6d 70 74 79 20 6c 69 73 74 20 69 73 20 72 65 74 mpty list is ret
4dc0: 75 72 6e 65 64 2e 20 49 66 20 74 68 65 0a 3c 62 urned. If the.<b
4dd0: 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e class="option">
4de0: 2d 6c 6f 63 61 6c 3c 2f 62 3e 20 6f 70 74 69 6f -local</b> optio
4df0: 6e 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 n is specified,
4e00: 74 68 65 6e 20 74 68 65 20 6c 6f 63 61 6c 20 63 then the local c
4e10: 65 72 74 69 66 69 63 61 74 65 20 69 73 20 75 73 ertificate is us
4e20: 65 64 2e 20 52 65 74 75 72 6e 65 64 0a 76 61 6c ed. Returned.val
4e30: 75 65 73 20 69 6e 63 6c 75 64 65 3a 3c 2f 70 3e ues include:</p>
4e40: 0a 3c 70 3e 53 53 4c 20 53 74 61 74 75 73 3c 2f .<p>SSL Status</
4e50: 70 3e 0a 3c 64 6c 20 63 6c 61 73 73 3d 22 64 6f p>.<dl class="do
4e60: 63 74 6f 6f 6c 73 5f 64 65 66 69 6e 69 74 69 6f ctools_definitio
4e70: 6e 73 22 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 ns">.<dt><b clas
4e80: 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 61 6c 70 s="variable">alp
4e90: 6e 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 n</b> <i class="
4ea0: 61 72 67 22 3e 70 72 6f 74 6f 63 6f 6c 3c 2f 69 arg">protocol</i
4eb0: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 ></dt>.<dd><p>Th
4ec0: 65 20 70 72 6f 74 6f 63 6f 6c 20 73 65 6c 65 63 e protocol selec
4ed0: 74 65 64 20 61 66 74 65 72 20 41 70 70 6c 69 63 ted after Applic
4ee0: 61 74 69 6f 6e 2d 4c 61 79 65 72 20 50 72 6f 74 ation-Layer Prot
4ef0: 6f 63 6f 6c 20 4e 65 67 6f 74 69 61 74 69 6f 6e ocol Negotiation
4f00: 20 28 41 4c 50 4e 29 2e 3c 2f 70 3e 3c 2f 64 64 (ALPN).</p></dd
4f10: 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 >.<dt><b class="
4f20: 76 61 72 69 61 62 6c 65 22 3e 63 69 70 68 65 72 variable">cipher
4f30: 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 </b> <i class="a
4f40: 72 67 22 3e 63 69 70 68 65 72 3c 2f 69 3e 3c 2f rg">cipher</i></
4f50: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 63 dt>.<dd><p>The c
4f60: 75 72 72 65 6e 74 20 63 69 70 68 65 72 20 69 6e urrent cipher in
4f70: 20 75 73 65 20 66 6f 72 20 74 68 65 20 73 65 73 use for the ses
4f80: 73 69 6f 6e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c sion.</p></dd>.<
4f90: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 dt><b class="var
4fa0: 69 61 62 6c 65 22 3e 70 65 65 72 6e 61 6d 65 3c iable">peername<
4fb0: 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 /b> <i class="ar
4fc0: 67 22 3e 6e 61 6d 65 3c 2f 69 3e 3c 2f 64 74 3e g">name</i></dt>
4fd0: 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 70 65 65 72 .<dd><p>The peer
4fe0: 6e 61 6d 65 20 66 72 6f 6d 20 74 68 65 20 63 65 name from the ce
4ff0: 72 74 69 66 69 63 61 74 65 2e 3c 2f 70 3e 3c 2f rtificate.</p></
5000: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
5010: 3d 22 76 61 72 69 61 62 6c 65 22 3e 70 72 6f 74 ="variable">prot
5020: 6f 63 6f 6c 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 ocol</b> <i clas
5030: 73 3d 22 61 72 67 22 3e 76 65 72 73 69 6f 6e 3c s="arg">version<
5040: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
5050: 54 68 65 20 70 72 6f 74 6f 63 6f 6c 20 76 65 72 The protocol ver
5060: 73 69 6f 6e 20 75 73 65 64 20 66 6f 72 20 74 68 sion used for th
5070: 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 3a 20 53 53 e connection: SS
5080: 4c 32 2c 20 53 53 4c 33 2c 20 54 4c 53 31 2c 20 L2, SSL3, TLS1,
5090: 54 4c 53 31 2e 31 2c 20 54 4c 53 31 2e 32 2c 20 TLS1.1, TLS1.2,
50a0: 54 4c 53 31 2e 33 2c 20 6f 72 20 75 6e 6b 6e 6f TLS1.3, or unkno
50b0: 77 6e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 wn.</p></dd>.<dt
50c0: 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 ><b class="varia
50d0: 62 6c 65 22 3e 73 62 69 74 73 3c 2f 62 3e 20 3c ble">sbits</b> <
50e0: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 6e 3c i class="arg">n<
50f0: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
5100: 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 69 The number of bi
5110: 74 73 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 ts used for the
5120: 73 65 73 73 69 6f 6e 20 6b 65 79 2e 3c 2f 70 3e session key.</p>
5130: 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 </dd>.<dt><b cla
5140: 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 69 ss="variable">si
5150: 67 6e 61 74 75 72 65 48 61 73 68 41 6c 67 6f 72 gnatureHashAlgor
5160: 69 74 68 6d 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 ithm</b> <i clas
5170: 73 3d 22 61 72 67 22 3e 61 6c 67 6f 72 69 74 68 s="arg">algorith
5180: 6d 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c m</i></dt>.<dd><
5190: 70 3e 54 68 65 20 73 69 67 6e 61 74 75 72 65 20 p>The signature
51a0: 68 61 73 68 20 61 6c 67 6f 72 69 74 68 6d 2e 3c hash algorithm.<
51b0: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
51c0: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
51d0: 3e 73 69 67 6e 61 74 75 72 65 54 79 70 65 3c 2f >signatureType</
51e0: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
51f0: 22 3e 74 79 70 65 3c 2f 69 3e 3c 2f 64 74 3e 0a ">type</i></dt>.
5200: 3c 64 64 3e 3c 70 3e 54 68 65 20 73 69 67 6e 61 <dd><p>The signa
5210: 74 75 72 65 20 74 79 70 65 20 76 61 6c 75 65 2e ture type value.
5220: 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 </p></dd>.<dt><b
5230: 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 class="variable
5240: 22 3e 76 65 72 69 66 79 44 65 70 74 68 3c 2f 62 ">verifyDepth</b
5250: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
5260: 3e 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e >n</i></dt>.<dd>
5270: 3c 70 3e 4d 61 78 69 6d 75 6d 20 64 65 70 74 68 <p>Maximum depth
5280: 20 66 6f 72 20 74 68 65 20 63 65 72 74 69 66 69 for the certifi
5290: 63 61 74 65 20 63 68 61 69 6e 20 76 65 72 69 66 cate chain verif
52a0: 69 63 61 74 69 6f 6e 2e 20 44 65 66 61 75 6c 74 ication. Default
52b0: 20 69 73 20 2d 31 2c 20 74 6f 20 63 68 65 63 6b is -1, to check
52c0: 20 61 6c 6c 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c all.</p></dd>.<
52d0: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 dt><b class="var
52e0: 69 61 62 6c 65 22 3e 76 65 72 69 66 79 4d 6f 64 iable">verifyMod
52f0: 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 e</b> <i class="
5300: 61 72 67 22 3e 6c 69 73 74 3c 2f 69 3e 3c 2f 64 arg">list</i></d
5310: 74 3e 0a 3c 64 64 3e 3c 70 3e 4c 69 73 74 20 6f t>.<dd><p>List o
5320: 66 20 63 65 72 74 69 66 69 63 61 74 65 20 76 65 f certificate ve
5330: 72 69 66 69 63 61 74 69 6f 6e 20 6d 6f 64 65 73 rification modes
5340: 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c .</p></dd>.<dt><
5350: 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c b class="variabl
5360: 65 22 3e 76 65 72 69 66 79 52 65 73 75 6c 74 3c e">verifyResult<
5370: 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 /b> <i class="ar
5380: 67 22 3e 72 65 73 75 6c 74 3c 2f 69 3e 3c 2f 64 g">result</i></d
5390: 74 3e 0a 3c 64 64 3e 3c 70 3e 43 65 72 74 69 66 t>.<dd><p>Certif
53a0: 69 63 61 74 65 20 76 65 72 69 66 69 63 61 74 69 icate verificati
53b0: 6f 6e 20 72 65 73 75 6c 74 2e 3c 2f 70 3e 3c 2f on result.</p></
53c0: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
53d0: 3d 22 76 61 72 69 61 62 6c 65 22 3e 63 61 5f 6e ="variable">ca_n
53e0: 61 6d 65 73 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 ames</b> <i clas
53f0: 73 3d 22 61 72 67 22 3e 6c 69 73 74 3c 2f 69 3e s="arg">list</i>
5400: 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 4c 69 73 </dt>.<dd><p>Lis
5410: 74 20 6f 66 20 74 68 65 20 43 65 72 74 69 66 69 t of the Certifi
5420: 63 61 74 65 20 41 75 74 68 6f 72 69 74 69 65 73 cate Authorities
5430: 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65 20 used to create
5440: 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 2e the certificate.
5450: 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e 0a </p></dd>.</dl>.
5460: 3c 70 3e 43 65 72 74 69 66 69 63 61 74 65 20 53 <p>Certificate S
5470: 74 61 74 75 73 3c 2f 70 3e 0a 3c 64 6c 20 63 6c tatus</p>.<dl cl
5480: 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 64 65 ass="doctools_de
5490: 66 69 6e 69 74 69 6f 6e 73 22 3e 0a 3c 64 74 3e finitions">.<dt>
54a0: 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 <b class="variab
54b0: 6c 65 22 3e 61 6c 6c 3c 2f 62 3e 20 3c 69 20 63 le">all</b> <i c
54c0: 6c 61 73 73 3d 22 61 72 67 22 3e 73 74 72 69 6e lass="arg">strin
54d0: 67 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c g</i></dt>.<dd><
54e0: 70 3e 44 75 6d 70 20 6f 66 20 61 6c 6c 20 63 65 p>Dump of all ce
54f0: 72 74 69 66 69 63 61 74 65 20 69 6e 66 6f 2e 3c rtificate info.<
5500: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
5510: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
5520: 3e 76 65 72 73 69 6f 6e 3c 2f 62 3e 20 3c 69 20 >version</b> <i
5530: 63 6c 61 73 73 3d 22 61 72 67 22 3e 76 61 6c 75 class="arg">valu
5540: 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c e</i></dt>.<dd><
5550: 70 3e 54 68 65 20 63 65 72 74 69 66 69 63 61 74 p>The certificat
5560: 65 20 76 65 72 73 69 6f 6e 2e 3c 2f 70 3e 3c 2f e version.</p></
5570: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
5580: 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 65 72 69 ="variable">seri
5590: 61 6c 4e 75 6d 62 65 72 3c 2f 62 3e 20 3c 69 20 alNumber</b> <i
55a0: 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 74 72 69 class="arg">stri
55b0: 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e ng</i></dt>.<dd>
55c0: 3c 70 3e 54 68 65 20 73 65 72 69 61 6c 20 6e 75 <p>The serial nu
55d0: 6d 62 65 72 20 6f 66 20 74 68 65 20 63 65 72 74 mber of the cert
55e0: 69 66 69 63 61 74 65 20 61 73 20 61 20 68 65 78 ificate as a hex
55f0: 20 73 74 72 69 6e 67 2e 3c 2f 70 3e 3c 2f 64 64 string.</p></dd
5600: 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 >.<dt><b class="
5610: 76 61 72 69 61 62 6c 65 22 3e 73 69 67 6e 61 74 variable">signat
5620: 75 72 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 ure</b> <i class
5630: 3d 22 61 72 67 22 3e 61 6c 67 6f 72 69 74 68 6d ="arg">algorithm
5640: 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 </i></dt>.<dd><p
5650: 3e 43 69 70 68 65 72 20 61 6c 67 6f 72 69 74 68 >Cipher algorith
5660: 6d 20 75 73 65 64 20 66 6f 72 20 63 65 72 74 69 m used for certi
5670: 66 69 63 61 74 65 20 73 69 67 6e 61 74 75 72 65 ficate signature
5680: 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c .</p></dd>.<dt><
5690: 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c b class="variabl
56a0: 65 22 3e 69 73 73 75 65 72 3c 2f 62 3e 20 3c 69 e">issuer</b> <i
56b0: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 74 72 class="arg">str
56c0: 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 ing</i></dt>.<dd
56d0: 3e 3c 70 3e 54 68 65 20 64 69 73 74 69 6e 67 75 ><p>The distingu
56e0: 69 73 68 65 64 20 6e 61 6d 65 20 28 44 4e 29 20 ished name (DN)
56f0: 6f 66 20 74 68 65 20 63 65 72 74 69 66 69 63 61 of the certifica
5700: 74 65 20 69 73 73 75 65 72 2e 3c 2f 70 3e 3c 2f te issuer.</p></
5710: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
5720: 3d 22 76 61 72 69 61 62 6c 65 22 3e 6e 6f 74 42 ="variable">notB
5730: 65 66 6f 72 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 efore</b> <i cla
5740: 73 73 3d 22 61 72 67 22 3e 64 61 74 65 3c 2f 69 ss="arg">date</i
5750: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 ></dt>.<dd><p>Th
5760: 65 20 62 65 67 69 6e 6e 69 6e 67 20 64 61 74 65 e beginning date
5770: 20 6f 66 20 74 68 65 20 63 65 72 74 69 66 69 63 of the certific
5780: 61 74 65 20 76 61 6c 69 64 69 74 79 2e 3c 2f 70 ate validity.</p
5790: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
57a0: 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 6e ass="variable">n
57b0: 6f 74 41 66 74 65 72 3c 2f 62 3e 20 3c 69 20 63 otAfter</b> <i c
57c0: 6c 61 73 73 3d 22 61 72 67 22 3e 64 61 74 65 3c lass="arg">date<
57d0: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
57e0: 54 68 65 20 65 78 70 69 72 61 74 69 6f 6e 20 64 The expiration d
57f0: 61 74 65 20 6f 66 20 74 68 65 20 63 65 72 74 69 ate of the certi
5800: 66 69 63 61 74 65 20 76 61 6c 69 64 69 74 79 2e ficate validity.
5810: 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 </p></dd>.<dt><b
5820: 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 class="variable
5830: 22 3e 73 75 62 6a 65 63 74 3c 2f 62 3e 20 3c 69 ">subject</b> <i
5840: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 74 72 class="arg">str
5850: 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 ing</i></dt>.<dd
5860: 3e 3c 70 3e 54 68 65 20 64 69 73 74 69 6e 67 75 ><p>The distingu
5870: 69 73 68 65 64 20 6e 61 6d 65 20 28 44 4e 29 20 ished name (DN)
5880: 6f 66 20 74 68 65 20 63 65 72 74 69 66 69 63 61 of the certifica
5890: 74 65 20 73 75 62 6a 65 63 74 2e 20 46 69 65 6c te subject. Fiel
58a0: 64 73 20 69 6e 63 6c 75 64 65 3a 20 43 6f 6d 6d ds include: Comm
58b0: 6f 6e 0a 4e 61 6d 65 20 28 43 4e 29 2c 20 4f 72 on.Name (CN), Or
58c0: 67 61 6e 69 7a 61 74 69 6f 6e 20 28 4f 29 2c 20 ganization (O),
58d0: 4c 6f 63 61 6c 69 74 79 20 6f 72 20 43 69 74 79 Locality or City
58e0: 20 28 4c 29 2c 20 53 74 61 74 65 20 6f 72 20 50 (L), State or P
58f0: 72 6f 76 69 6e 63 65 20 28 53 29 2c 20 61 6e 64 rovince (S), and
5900: 0a 43 6f 75 6e 74 72 79 20 4e 61 6d 65 20 28 43 .Country Name (C
5910: 29 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e ).</p></dd>.<dt>
5920: 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 <b class="variab
5930: 6c 65 22 3e 69 73 73 75 65 72 55 6e 69 71 75 65 le">issuerUnique
5940: 49 44 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d ID</b> <i class=
5950: 22 61 72 67 22 3e 73 74 72 69 6e 67 3c 2f 69 3e "arg">string</i>
5960: 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 </dt>.<dd><p>The
5970: 20 69 73 73 75 65 72 20 75 6e 69 71 75 65 20 69 issuer unique i
5980: 64 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e d.</p></dd>.<dt>
5990: 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 <b class="variab
59a0: 6c 65 22 3e 73 75 62 6a 65 63 74 55 6e 69 71 75 le">subjectUniqu
59b0: 65 49 44 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 eID</b> <i class
59c0: 3d 22 61 72 67 22 3e 73 74 72 69 6e 67 3c 2f 69 ="arg">string</i
59d0: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 ></dt>.<dd><p>Th
59e0: 65 20 73 75 62 6a 65 63 74 20 75 6e 69 71 75 65 e subject unique
59f0: 20 69 64 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 id.</p></dd>.<d
5a00: 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 t><b class="vari
5a10: 61 62 6c 65 22 3e 6e 75 6d 5f 65 78 74 65 6e 73 able">num_extens
5a20: 69 6f 6e 73 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 ions</b> <i clas
5a30: 73 3d 22 61 72 67 22 3e 6e 3c 2f 69 3e 3c 2f 64 s="arg">n</i></d
5a40: 74 3e 0a 3c 64 64 3e 3c 70 3e 4e 75 6d 62 65 72 t>.<dd><p>Number
5a50: 20 6f 66 20 63 65 72 74 69 66 69 63 61 74 65 20 of certificate
5a60: 65 78 74 65 6e 73 69 6f 6e 73 2e 3c 2f 70 3e 3c extensions.</p><
5a70: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
5a80: 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 65 78 74 s="variable">ext
5a90: 65 6e 73 69 6f 6e 73 3c 2f 62 3e 20 3c 69 20 63 ensions</b> <i c
5aa0: 6c 61 73 73 3d 22 61 72 67 22 3e 6c 69 73 74 3c lass="arg">list<
5ab0: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
5ac0: 4c 69 73 74 20 6f 66 20 63 65 72 74 69 66 69 63 List of certific
5ad0: 61 74 65 20 65 78 74 65 6e 73 69 6f 6e 20 6e 61 ate extension na
5ae0: 6d 65 73 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 mes.</p></dd>.<d
5af0: 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 t><b class="vari
5b00: 61 62 6c 65 22 3e 61 75 74 68 6f 72 69 74 79 4b able">authorityK
5b10: 65 79 49 64 65 6e 74 69 66 69 65 72 3c 2f 62 3e eyIdentifier</b>
5b20: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
5b30: 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a string</i></dt>.
5b40: 3c 64 64 3e 3c 70 3e 41 75 74 68 6f 72 69 74 79 <dd><p>Authority
5b50: 20 4b 65 79 20 49 64 65 6e 74 69 66 69 65 72 20 Key Identifier
5b60: 28 41 4b 49 29 20 6f 66 20 74 68 65 20 49 73 73 (AKI) of the Iss
5b70: 75 69 6e 67 20 43 41 20 63 65 72 74 69 66 69 63 uing CA certific
5b80: 61 74 65 20 74 68 61 74 20 73 69 67 6e 65 64 20 ate that signed
5b90: 74 68 65 0a 53 53 4c 20 63 65 72 74 69 66 69 63 the.SSL certific
5ba0: 61 74 65 20 61 73 20 61 20 68 65 78 20 73 74 72 ate as a hex str
5bb0: 69 6e 67 2e 20 54 68 69 73 20 76 61 6c 75 65 20 ing. This value
5bc0: 6d 61 74 63 68 65 73 20 74 68 65 20 53 4b 49 20 matches the SKI
5bd0: 76 61 6c 75 65 20 6f 66 20 74 68 65 0a 49 6e 74 value of the.Int
5be0: 65 72 6d 65 64 69 61 74 65 20 43 41 20 63 65 72 ermediate CA cer
5bf0: 74 69 66 69 63 61 74 65 2e 3c 2f 70 3e 3c 2f 64 tificate.</p></d
5c00: 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d d>.<dt><b class=
5c10: 22 76 61 72 69 61 62 6c 65 22 3e 73 75 62 6a 65 "variable">subje
5c20: 63 74 4b 65 79 49 64 65 6e 74 69 66 69 65 72 3c ctKeyIdentifier<
5c30: 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 /b> <i class="ar
5c40: 67 22 3e 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 g">string</i></d
5c50: 74 3e 0a 3c 64 64 3e 3c 70 3e 53 75 62 6a 65 63 t>.<dd><p>Subjec
5c60: 74 20 4b 65 79 20 49 64 65 6e 74 69 66 69 65 72 t Key Identifier
5c70: 20 28 53 4b 49 29 20 68 61 73 68 20 6f 66 20 74 (SKI) hash of t
5c80: 68 65 20 70 75 62 6c 69 63 20 6b 65 79 20 69 6e he public key in
5c90: 73 69 64 65 20 74 68 65 20 63 65 72 74 69 66 69 side the certifi
5ca0: 63 61 74 65 20 61 73 20 61 0a 68 65 78 20 73 74 cate as a.hex st
5cb0: 72 69 6e 67 2e 20 55 73 65 64 20 74 6f 20 69 64 ring. Used to id
5cc0: 65 6e 74 69 66 79 20 63 65 72 74 69 66 69 63 61 entify certifica
5cd0: 74 65 73 20 74 68 61 74 20 63 6f 6e 74 61 69 6e tes that contain
5ce0: 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 70 75 a particular pu
5cf0: 62 6c 69 63 20 6b 65 79 2e 3c 2f 70 3e 3c 2f 64 blic key.</p></d
5d00: 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d d>.<dt><b class=
5d10: 22 76 61 72 69 61 62 6c 65 22 3e 73 75 62 6a 65 "variable">subje
5d20: 63 74 41 6c 74 4e 61 6d 65 3c 2f 62 3e 20 3c 69 ctAltName</b> <i
5d30: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 6c 69 73 class="arg">lis
5d40: 74 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c t</i></dt>.<dd><
5d50: 70 3e 4c 69 73 74 20 6f 66 20 61 6c 6c 20 6f 66 p>List of all of
5d60: 20 74 68 65 20 53 75 62 6a 65 63 74 20 41 6c 74 the Subject Alt
5d70: 65 72 6e 61 74 69 76 65 20 4e 61 6d 65 73 20 28 ernative Names (
5d80: 53 41 4e 29 20 69 6e 63 6c 75 64 69 6e 67 20 64 SAN) including d
5d90: 6f 6d 61 69 6e 20 6e 61 6d 65 73 2c 20 73 75 62 omain names, sub
5da0: 0a 64 6f 6d 61 69 6e 73 2c 20 61 6e 64 20 49 50 .domains, and IP
5db0: 20 61 64 64 72 65 73 73 65 73 20 74 68 61 74 20 addresses that
5dc0: 61 72 65 20 73 65 63 75 72 65 64 20 62 79 20 74 are secured by t
5dd0: 68 65 20 63 65 72 74 69 66 69 63 61 74 65 2e 3c he certificate.<
5de0: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
5df0: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
5e00: 3e 6f 63 73 70 3c 2f 62 3e 20 3c 69 20 63 6c 61 >ocsp</b> <i cla
5e10: 73 73 3d 22 61 72 67 22 3e 6c 69 73 74 3c 2f 69 ss="arg">list</i
5e20: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 4c 69 ></dt>.<dd><p>Li
5e30: 73 74 20 6f 66 20 61 6c 6c 20 4f 6e 6c 69 6e 65 st of all Online
5e40: 20 43 65 72 74 69 66 69 63 61 74 65 20 53 74 61 Certificate Sta
5e50: 74 75 73 20 50 72 6f 74 6f 63 6f 6c 20 28 4f 43 tus Protocol (OC
5e60: 53 50 29 20 55 52 4c 73 20 74 68 61 74 20 63 61 SP) URLs that ca
5e70: 6e 20 62 65 20 75 73 65 64 20 74 6f 0a 63 68 65 n be used to.che
5e80: 63 6b 20 74 68 65 20 76 61 6c 69 64 69 74 79 20 ck the validity
5e90: 6f 66 20 74 68 69 73 20 63 65 72 74 69 66 69 63 of this certific
5ea0: 61 74 65 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 ate.</p></dd>.<d
5eb0: 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 t><b class="vari
5ec0: 61 62 6c 65 22 3e 63 65 72 74 69 66 69 63 61 74 able">certificat
5ed0: 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 e</b> <i class="
5ee0: 61 72 67 22 3e 63 65 72 74 3c 2f 69 3e 3c 2f 64 arg">cert</i></d
5ef0: 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 50 45 t>.<dd><p>The PE
5f00: 4d 20 65 6e 63 6f 64 65 64 20 63 65 72 74 69 66 M encoded certif
5f10: 69 63 61 74 65 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a icate.</p></dd>.
5f20: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 <dt><b class="va
5f30: 72 69 61 62 6c 65 22 3e 73 69 67 6e 61 74 75 72 riable">signatur
5f40: 65 41 6c 67 6f 72 69 74 68 6d 3c 2f 62 3e 20 3c eAlgorithm</b> <
5f50: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 61 6c i class="arg">al
5f60: 67 6f 72 69 74 68 6d 3c 2f 69 3e 3c 2f 64 74 3e gorithm</i></dt>
5f70: 0a 3c 64 64 3e 3c 70 3e 43 69 70 68 65 72 20 61 .<dd><p>Cipher a
5f80: 6c 67 6f 72 69 74 68 6d 20 75 73 65 64 20 66 6f lgorithm used fo
5f90: 72 20 74 68 65 20 63 65 72 74 69 66 69 63 61 74 r the certificat
5fa0: 65 20 73 69 67 6e 61 74 75 72 65 2e 3c 2f 70 3e e signature.</p>
5fb0: 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 </dd>.<dt><b cla
5fc0: 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 69 ss="variable">si
5fd0: 67 6e 61 74 75 72 65 56 61 6c 75 65 3c 2f 62 3e gnatureValue</b>
5fe0: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
5ff0: 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a string</i></dt>.
6000: 3c 64 64 3e 3c 70 3e 43 65 72 74 69 66 69 63 61 <dd><p>Certifica
6010: 74 65 20 73 69 67 6e 61 74 75 72 65 20 61 73 20 te signature as
6020: 61 20 68 65 78 20 73 74 72 69 6e 67 2e 3c 2f 70 a hex string.</p
6030: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
6040: 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 ass="variable">s
6050: 69 67 6e 61 74 75 72 65 44 69 67 65 73 74 3c 2f ignatureDigest</
6060: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
6070: 22 3e 76 65 72 73 69 6f 6e 3c 2f 69 3e 3c 2f 64 ">version</i></d
6080: 74 3e 0a 3c 64 64 3e 3c 70 3e 43 65 72 74 69 66 t>.<dd><p>Certif
6090: 69 63 61 74 65 20 73 69 67 6e 69 6e 67 20 64 69 icate signing di
60a0: 67 65 73 74 20 61 73 20 61 20 68 65 78 20 73 74 gest as a hex st
60b0: 72 69 6e 67 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c ring.</p></dd>.<
60c0: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 dt><b class="var
60d0: 69 61 62 6c 65 22 3e 70 75 62 6c 69 63 4b 65 79 iable">publicKey
60e0: 41 6c 67 6f 72 69 74 68 6d 3c 2f 62 3e 20 3c 69 Algorithm</b> <i
60f0: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 61 6c 67 class="arg">alg
6100: 6f 72 69 74 68 6d 3c 2f 69 3e 3c 2f 64 74 3e 0a orithm</i></dt>.
6110: 3c 64 64 3e 3c 70 3e 43 65 72 74 69 66 69 63 61 <dd><p>Certifica
6120: 74 65 20 73 69 67 6e 61 74 75 72 65 20 70 75 62 te signature pub
6130: 6c 69 63 20 6b 65 79 20 61 6c 67 6f 72 69 74 68 lic key algorith
6140: 6d 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e m.</p></dd>.<dt>
6150: 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 <b class="variab
6160: 6c 65 22 3e 70 75 62 6c 69 63 4b 65 79 3c 2f 62 le">publicKey</b
6170: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
6180: 3e 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e >string</i></dt>
6190: 0a 3c 64 64 3e 3c 70 3e 43 65 72 74 69 66 69 63 .<dd><p>Certific
61a0: 61 74 65 20 73 69 67 6e 61 74 75 72 65 20 70 75 ate signature pu
61b0: 62 6c 69 63 20 6b 65 79 20 61 73 20 61 20 68 65 blic key as a he
61c0: 78 20 73 74 72 69 6e 67 2e 3c 2f 70 3e 3c 2f 64 x string.</p></d
61d0: 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d d>.<dt><b class=
61e0: 22 76 61 72 69 61 62 6c 65 22 3e 62 69 74 73 3c "variable">bits<
61f0: 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 /b> <i class="ar
6200: 67 22 3e 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 g">n</i></dt>.<d
6210: 64 3e 3c 70 3e 4e 75 6d 62 65 72 20 6f 66 20 62 d><p>Number of b
6220: 69 74 73 20 75 73 65 64 20 66 6f 72 20 63 65 72 its used for cer
6230: 74 69 66 69 63 61 74 65 20 73 69 67 6e 61 74 75 tificate signatu
6240: 72 65 20 6b 65 79 2e 3c 2f 70 3e 3c 2f 64 64 3e re key.</p></dd>
6250: 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 .<dt><b class="v
6260: 61 72 69 61 62 6c 65 22 3e 73 65 6c 66 5f 73 69 ariable">self_si
6270: 67 6e 65 64 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 gned</b> <i clas
6280: 73 3d 22 61 72 67 22 3e 62 6f 6f 6c 65 61 6e 3c s="arg">boolean<
6290: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
62a0: 57 68 65 74 68 65 72 20 74 68 65 20 63 65 72 74 Whether the cert
62b0: 69 66 69 63 61 74 65 20 73 69 67 6e 61 74 75 72 ificate signatur
62c0: 65 20 69 73 20 73 65 6c 66 20 73 69 67 6e 65 64 e is self signed
62d0: 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c .</p></dd>.<dt><
62e0: 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c b class="variabl
62f0: 65 22 3e 73 68 61 31 5f 68 61 73 68 3c 2f 62 3e e">sha1_hash</b>
6300: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
6310: 68 61 73 68 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 hash</i></dt>.<d
6320: 64 3e 3c 70 3e 54 68 65 20 53 48 41 31 20 68 61 d><p>The SHA1 ha
6330: 73 68 20 6f 66 20 74 68 65 20 63 65 72 74 69 66 sh of the certif
6340: 69 63 61 74 65 20 61 73 20 61 20 68 65 78 20 73 icate as a hex s
6350: 74 72 69 6e 67 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a tring.</p></dd>.
6360: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 <dt><b class="va
6370: 72 69 61 62 6c 65 22 3e 73 68 61 32 35 36 5f 68 riable">sha256_h
6380: 61 73 68 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 ash</b> <i class
6390: 3d 22 61 72 67 22 3e 68 61 73 68 3c 2f 69 3e 3c ="arg">hash</i><
63a0: 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 /dt>.<dd><p>The
63b0: 53 48 41 32 35 36 20 68 61 73 68 20 6f 66 20 74 SHA256 hash of t
63c0: 68 65 20 63 65 72 74 69 66 69 63 61 74 65 20 61 he certificate a
63d0: 73 20 61 20 68 65 78 20 73 74 72 69 6e 67 2e 3c s a hex string.<
63e0: 2f 70 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e 3c 2f /p></dd>.</dl></
63f0: 64 64 3e 0a 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d dd>.<dt><a name=
6400: 22 38 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d "8"><b class="cm
6410: 64 22 3e 74 6c 73 3a 3a 63 6f 6e 6e 65 63 74 69 d">tls::connecti
6420: 6f 6e 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d on</b> <i class=
6430: 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c 3c 2f 69 "arg">channel</i
6440: 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c ></a></dt>.<dd><
6450: 70 3e 52 65 74 75 72 6e 73 20 74 68 65 20 63 75 p>Returns the cu
6460: 72 72 65 6e 74 20 63 6f 6e 6e 65 63 74 69 6f 6e rrent connection
6470: 20 73 74 61 74 75 73 20 6f 66 20 61 6e 20 53 53 status of an SS
6480: 4c 20 63 68 61 6e 6e 65 6c 2e 20 54 68 65 20 72 L channel. The r
6490: 65 73 75 6c 74 20 69 73 20 61 20 6c 69 73 74 0a esult is a list.
64a0: 6f 66 20 6b 65 79 2d 76 61 6c 75 65 20 70 61 69 of key-value pai
64b0: 72 73 20 64 65 73 63 72 69 62 69 6e 67 20 74 68 rs describing th
64c0: 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 20 52 65 e connection. Re
64d0: 74 75 72 6e 65 64 20 76 61 6c 75 65 73 20 69 6e turned values in
64e0: 63 6c 75 64 65 3a 3c 2f 70 3e 0a 3c 70 3e 53 53 clude:</p>.<p>SS
64f0: 4c 20 53 74 61 74 75 73 3c 2f 70 3e 0a 3c 64 6c L Status</p>.<dl
6500: 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 class="doctools
6510: 5f 64 65 66 69 6e 69 74 69 6f 6e 73 22 3e 0a 3c _definitions">.<
6520: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 dt><b class="var
6530: 69 61 62 6c 65 22 3e 73 74 61 74 65 3c 2f 62 3e iable">state</b>
6540: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
6550: 73 74 61 74 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c state</i></dt>.<
6560: 64 64 3e 3c 70 3e 53 74 61 74 65 20 6f 66 20 74 dd><p>State of t
6570: 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 3c 2f he connection.</
6580: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 p></dd>.<dt><b c
6590: 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e lass="variable">
65a0: 73 65 72 76 65 72 6e 61 6d 65 3c 2f 62 3e 20 3c servername</b> <
65b0: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 6e 61 i class="arg">na
65c0: 6d 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e me</i></dt>.<dd>
65d0: 3c 70 3e 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 <p>The name of t
65e0: 68 65 20 63 6f 6e 6e 65 63 74 65 64 20 74 6f 20 he connected to
65f0: 73 65 72 76 65 72 2e 3c 2f 70 3e 3c 2f 64 64 3e server.</p></dd>
6600: 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 .<dt><b class="v
6610: 61 72 69 61 62 6c 65 22 3e 70 72 6f 74 6f 63 6f ariable">protoco
6620: 6c 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 l</b> <i class="
6630: 61 72 67 22 3e 76 65 72 73 69 6f 6e 3c 2f 69 3e arg">version</i>
6640: 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 </dt>.<dd><p>The
6650: 20 70 72 6f 74 6f 63 6f 6c 20 76 65 72 73 69 6f protocol versio
6660: 6e 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 63 n used for the c
6670: 6f 6e 6e 65 63 74 69 6f 6e 3a 20 53 53 4c 32 2c onnection: SSL2,
6680: 20 53 53 4c 33 2c 20 54 4c 53 31 2c 20 54 4c 53 SSL3, TLS1, TLS
6690: 31 2e 31 2c 20 54 4c 53 31 2e 32 2c 20 54 4c 53 1.1, TLS1.2, TLS
66a0: 31 2e 33 2c 20 6f 72 20 75 6e 6b 6e 6f 77 6e 2e 1.3, or unknown.
66b0: 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 </p></dd>.<dt><b
66c0: 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 class="variable
66d0: 22 3e 72 65 6e 65 67 6f 74 69 61 74 69 6f 6e 5f ">renegotiation_
66e0: 61 6c 6c 6f 77 65 64 3c 2f 62 3e 20 3c 69 20 63 allowed</b> <i c
66f0: 6c 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f 6c 65 lass="arg">boole
6700: 61 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e an</i></dt>.<dd>
6710: 3c 70 3e 57 68 65 74 68 65 72 20 70 72 6f 74 6f <p>Whether proto
6720: 63 6f 6c 20 72 65 6e 65 67 6f 74 69 61 74 69 6f col renegotiatio
6730: 6e 20 69 73 20 73 75 70 70 6f 72 74 65 64 20 6f n is supported o
6740: 72 20 6e 6f 74 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a r not.</p></dd>.
6750: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 <dt><b class="va
6760: 72 69 61 62 6c 65 22 3e 73 65 63 75 72 69 74 79 riable">security
6770: 5f 6c 65 76 65 6c 3c 2f 62 3e 20 3c 69 20 63 6c _level</b> <i cl
6780: 61 73 73 3d 22 61 72 67 22 3e 6c 65 76 65 6c 3c ass="arg">level<
6790: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
67a0: 54 68 65 20 73 65 63 75 72 69 74 79 20 6c 65 76 The security lev
67b0: 65 6c 20 75 73 65 64 20 66 6f 72 20 73 65 6c 65 el used for sele
67c0: 63 74 69 6f 6e 20 6f 66 20 63 69 70 68 65 72 73 ction of ciphers
67d0: 2c 20 6b 65 79 20 73 69 7a 65 2c 20 65 74 63 2e , key size, etc.
67e0: 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 </p></dd>.<dt><b
67f0: 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 class="variable
6800: 22 3e 73 65 73 73 69 6f 6e 5f 72 65 75 73 65 64 ">session_reused
6810: 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 </b> <i class="a
6820: 72 67 22 3e 62 6f 6f 6c 65 61 6e 3c 2f 69 3e 3c rg">boolean</i><
6830: 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 57 68 65 74 /dt>.<dd><p>Whet
6840: 68 65 72 20 74 68 65 20 73 65 73 73 69 6f 6e 20 her the session
6850: 68 61 73 20 62 65 65 6e 20 72 65 75 73 65 64 20 has been reused
6860: 6f 72 20 6e 6f 74 2e 3c 2f 70 3e 3c 2f 64 64 3e or not.</p></dd>
6870: 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 .<dt><b class="v
6880: 61 72 69 61 62 6c 65 22 3e 69 73 5f 73 65 72 76 ariable">is_serv
6890: 65 72 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d er</b> <i class=
68a0: 22 61 72 67 22 3e 62 6f 6f 6c 65 61 6e 3c 2f 69 "arg">boolean</i
68b0: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 57 68 ></dt>.<dd><p>Wh
68c0: 65 74 68 65 72 20 74 68 65 20 63 6f 6e 6e 65 63 ether the connec
68d0: 74 69 6f 6e 20 69 73 20 63 6f 6e 66 69 67 75 72 tion is configur
68e0: 65 64 20 61 73 20 61 20 73 65 72 76 65 72 20 28 ed as a server (
68f0: 31 29 20 6f 72 20 63 6c 69 65 6e 74 20 28 30 29 1) or client (0)
6900: 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c .</p></dd>.<dt><
6910: 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c b class="variabl
6920: 65 22 3e 63 6f 6d 70 72 65 73 73 69 6f 6e 3c 2f e">compression</
6930: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
6940: 22 3e 6d 6f 64 65 3c 2f 69 3e 3c 2f 64 74 3e 0a ">mode</i></dt>.
6950: 3c 64 64 3e 3c 70 3e 43 6f 6d 70 72 65 73 73 69 <dd><p>Compressi
6960: 6f 6e 20 6d 65 74 68 6f 64 2e 3c 2f 70 3e 3c 2f on method.</p></
6970: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
6980: 3d 22 76 61 72 69 61 62 6c 65 22 3e 65 78 70 61 ="variable">expa
6990: 6e 73 69 6f 6e 3c 2f 62 3e 20 3c 69 20 63 6c 61 nsion</b> <i cla
69a0: 73 73 3d 22 61 72 67 22 3e 6d 6f 64 65 3c 2f 69 ss="arg">mode</i
69b0: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 45 78 ></dt>.<dd><p>Ex
69c0: 70 61 6e 73 69 6f 6e 20 6d 65 74 68 6f 64 2e 3c pansion method.<
69d0: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
69e0: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
69f0: 3e 63 61 4c 69 73 74 3c 2f 62 3e 20 3c 69 20 63 >caList</b> <i c
6a00: 6c 61 73 73 3d 22 61 72 67 22 3e 6c 69 73 74 3c lass="arg">list<
6a10: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
6a20: 4c 69 73 74 20 6f 66 20 43 65 72 74 69 66 69 63 List of Certific
6a30: 61 74 65 20 41 75 74 68 6f 72 69 74 69 65 73 20 ate Authorities
6a40: 28 43 41 29 20 66 6f 72 20 58 2e 35 30 39 20 63 (CA) for X.509 c
6a50: 65 72 74 69 66 69 63 61 74 65 2e 3c 2f 70 3e 3c ertificate.</p><
6a60: 2f 64 64 3e 0a 3c 2f 64 6c 3e 0a 3c 70 3e 43 69 /dd>.</dl>.<p>Ci
6a70: 70 68 65 72 20 49 6e 66 6f 3c 2f 70 3e 0a 3c 64 pher Info</p>.<d
6a80: 6c 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c l class="doctool
6a90: 73 5f 64 65 66 69 6e 69 74 69 6f 6e 73 22 3e 0a s_definitions">.
6aa0: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 <dt><b class="va
6ab0: 72 69 61 62 6c 65 22 3e 63 69 70 68 65 72 3c 2f riable">cipher</
6ac0: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
6ad0: 22 3e 63 69 70 68 65 72 3c 2f 69 3e 3c 2f 64 74 ">cipher</i></dt
6ae0: 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 63 75 72 >.<dd><p>The cur
6af0: 72 65 6e 74 20 63 69 70 68 65 72 20 69 6e 20 75 rent cipher in u
6b00: 73 65 20 66 6f 72 20 74 68 65 20 63 6f 6e 6e 65 se for the conne
6b10: 63 74 69 6f 6e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a ction.</p></dd>.
6b20: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 <dt><b class="va
6b30: 72 69 61 62 6c 65 22 3e 73 74 61 6e 64 61 72 64 riable">standard
6b40: 5f 6e 61 6d 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 _name</b> <i cla
6b50: 73 73 3d 22 61 72 67 22 3e 6e 61 6d 65 3c 2f 69 ss="arg">name</i
6b60: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 ></dt>.<dd><p>Th
6b70: 65 20 73 74 61 6e 64 61 72 64 20 52 46 43 20 6e e standard RFC n
6b80: 61 6d 65 20 6f 66 20 63 69 70 68 65 72 2e 3c 2f ame of cipher.</
6b90: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 p></dd>.<dt><b c
6ba0: 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e lass="variable">
6bb0: 61 6c 67 6f 72 69 74 68 6d 5f 62 69 74 73 3c 2f algorithm_bits</
6bc0: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
6bd0: 22 3e 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 ">n</i></dt>.<dd
6be0: 3e 3c 70 3e 54 68 65 20 6e 75 6d 62 65 72 20 6f ><p>The number o
6bf0: 66 20 70 72 6f 63 65 73 73 65 64 20 62 69 74 73 f processed bits
6c00: 20 75 73 65 64 20 66 6f 72 20 63 69 70 68 65 72 used for cipher
6c10: 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c .</p></dd>.<dt><
6c20: 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c b class="variabl
6c30: 65 22 3e 73 65 63 72 65 74 5f 62 69 74 73 3c 2f e">secret_bits</
6c40: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
6c50: 22 3e 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 ">n</i></dt>.<dd
6c60: 3e 3c 70 3e 54 68 65 20 6e 75 6d 62 65 72 20 6f ><p>The number o
6c70: 66 20 73 65 63 72 65 74 20 62 69 74 73 20 75 73 f secret bits us
6c80: 65 64 20 66 6f 72 20 63 69 70 68 65 72 2e 3c 2f ed for cipher.</
6c90: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 p></dd>.<dt><b c
6ca0: 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e lass="variable">
6cb0: 6d 69 6e 5f 76 65 72 73 69 6f 6e 3c 2f 62 3e 20 min_version</b>
6cc0: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 76 <i class="arg">v
6cd0: 65 72 73 69 6f 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a ersion</i></dt>.
6ce0: 3c 64 64 3e 3c 70 3e 54 68 65 20 6d 69 6e 69 6d <dd><p>The minim
6cf0: 75 6d 20 70 72 6f 74 6f 63 6f 6c 20 76 65 72 73 um protocol vers
6d00: 69 6f 6e 20 66 6f 72 20 63 69 70 68 65 72 2e 3c ion for cipher.<
6d10: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
6d20: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
6d30: 3e 63 69 70 68 65 72 5f 69 73 5f 61 65 61 64 3c >cipher_is_aead<
6d40: 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 /b> <i class="ar
6d50: 67 22 3e 62 6f 6f 6c 65 61 6e 3c 2f 69 3e 3c 2f g">boolean</i></
6d60: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 57 68 65 74 68 dt>.<dd><p>Wheth
6d70: 65 72 20 74 68 65 20 63 69 70 68 65 72 20 69 73 er the cipher is
6d80: 20 41 75 74 68 65 6e 74 69 63 61 74 65 64 20 45 Authenticated E
6d90: 6e 63 72 79 70 74 69 6f 6e 20 77 69 74 68 20 41 ncryption with A
6da0: 73 73 6f 63 69 61 74 65 64 20 44 61 74 61 20 28 ssociated Data (
6db0: 41 45 41 44 29 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a AEAD).</p></dd>.
6dc0: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 <dt><b class="va
6dd0: 72 69 61 62 6c 65 22 3e 63 69 70 68 65 72 5f 69 riable">cipher_i
6de0: 64 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 d</b> <i class="
6df0: 61 72 67 22 3e 69 64 3c 2f 69 3e 3c 2f 64 74 3e arg">id</i></dt>
6e00: 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 4f 70 65 6e .<dd><p>The Open
6e10: 53 53 4c 20 63 69 70 68 65 72 20 69 64 2e 3c 2f SSL cipher id.</
6e20: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 p></dd>.<dt><b c
6e30: 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e lass="variable">
6e40: 64 65 73 63 72 69 70 74 69 6f 6e 3c 2f 62 3e 20 description</b>
6e50: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 <i class="arg">s
6e60: 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c tring</i></dt>.<
6e70: 64 64 3e 3c 70 3e 41 20 74 65 78 74 20 64 65 73 dd><p>A text des
6e80: 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 cription of the
6e90: 63 69 70 68 65 72 2e 3c 2f 70 3e 3c 2f 64 64 3e cipher.</p></dd>
6ea0: 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 .<dt><b class="v
6eb0: 61 72 69 61 62 6c 65 22 3e 68 61 6e 64 73 68 61 ariable">handsha
6ec0: 6b 65 5f 64 69 67 65 73 74 3c 2f 62 3e 20 3c 69 ke_digest</b> <i
6ed0: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f class="arg">boo
6ee0: 6c 65 61 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 lean</i></dt>.<d
6ef0: 64 3e 3c 70 3e 44 69 67 65 73 74 20 75 73 65 64 d><p>Digest used
6f00: 20 64 75 72 69 6e 67 20 68 61 6e 64 73 68 61 6b during handshak
6f10: 65 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c e.</p></dd>.</dl
6f20: 3e 0a 3c 70 3e 53 65 73 73 69 6f 6e 20 49 6e 66 >.<p>Session Inf
6f30: 6f 3c 2f 70 3e 0a 3c 64 6c 20 63 6c 61 73 73 3d o</p>.<dl class=
6f40: 22 64 6f 63 74 6f 6f 6c 73 5f 64 65 66 69 6e 69 "doctools_defini
6f50: 74 69 6f 6e 73 22 3e 0a 3c 64 74 3e 3c 62 20 63 tions">.<dt><b c
6f60: 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e lass="variable">
6f70: 61 6c 70 6e 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 alpn</b> <i clas
6f80: 73 3d 22 61 72 67 22 3e 70 72 6f 74 6f 63 6f 6c s="arg">protocol
6f90: 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 </i></dt>.<dd><p
6fa0: 3e 54 68 65 20 70 72 6f 74 6f 63 6f 6c 20 73 65 >The protocol se
6fb0: 6c 65 63 74 65 64 20 61 66 74 65 72 20 41 70 70 lected after App
6fc0: 6c 69 63 61 74 69 6f 6e 2d 4c 61 79 65 72 20 50 lication-Layer P
6fd0: 72 6f 74 6f 63 6f 6c 20 4e 65 67 6f 74 69 61 74 rotocol Negotiat
6fe0: 69 6f 6e 20 28 41 4c 50 4e 29 2e 3c 2f 70 3e 3c ion (ALPN).</p><
6ff0: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
7000: 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 72 65 73 s="variable">res
7010: 75 6d 61 62 6c 65 3c 2f 62 3e 20 3c 69 20 63 6c umable</b> <i cl
7020: 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f 6c 65 61 ass="arg">boolea
7030: 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c n</i></dt>.<dd><
7040: 70 3e 57 68 65 74 68 65 72 20 74 68 65 20 73 65 p>Whether the se
7050: 73 73 69 6f 6e 20 63 61 6e 20 62 65 20 72 65 73 ssion can be res
7060: 75 6d 65 64 20 6f 72 20 6e 6f 74 2e 3c 2f 70 3e umed or not.</p>
7070: 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 </dd>.<dt><b cla
7080: 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 74 ss="variable">st
7090: 61 72 74 5f 74 69 6d 65 3c 2f 62 3e 20 3c 69 20 art_time</b> <i
70a0: 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 65 63 6f class="arg">seco
70b0: 6e 64 73 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 nds</i></dt>.<dd
70c0: 3e 3c 70 3e 54 69 6d 65 20 73 69 6e 63 65 20 73 ><p>Time since s
70d0: 65 73 73 69 6f 6e 20 73 74 61 72 74 65 64 20 69 ession started i
70e0: 6e 20 73 65 63 6f 6e 64 73 20 73 69 6e 63 65 20 n seconds since
70f0: 65 70 6f 63 68 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a epoch.</p></dd>.
7100: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 <dt><b class="va
7110: 72 69 61 62 6c 65 22 3e 74 69 6d 65 6f 75 74 3c riable">timeout<
7120: 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 /b> <i class="ar
7130: 67 22 3e 73 65 63 6f 6e 64 73 3c 2f 69 3e 3c 2f g">seconds</i></
7140: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 4d 61 78 20 64 dt>.<dd><p>Max d
7150: 75 72 61 74 69 6f 6e 20 6f 66 20 73 65 73 73 69 uration of sessi
7160: 6f 6e 20 69 6e 20 73 65 63 6f 6e 64 73 20 62 65 on in seconds be
7170: 66 6f 72 65 20 74 69 6d 65 2d 6f 75 74 2e 3c 2f fore time-out.</
7180: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 p></dd>.<dt><b c
7190: 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e lass="variable">
71a0: 6c 69 66 65 74 69 6d 65 3c 2f 62 3e 20 3c 69 20 lifetime</b> <i
71b0: 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 65 63 6f class="arg">seco
71c0: 6e 64 73 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 nds</i></dt>.<dd
71d0: 3e 3c 70 3e 53 65 73 73 69 6f 6e 20 74 69 63 6b ><p>Session tick
71e0: 65 74 20 6c 69 66 65 74 69 6d 65 20 68 69 6e 74 et lifetime hint
71f0: 20 69 6e 20 73 65 63 6f 6e 64 73 2e 3c 2f 70 3e in seconds.</p>
7200: 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 </dd>.<dt><b cla
7210: 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 65 ss="variable">se
7220: 73 73 69 6f 6e 5f 69 64 3c 2f 62 3e 20 3c 69 20 ssion_id</b> <i
7230: 63 6c 61 73 73 3d 22 61 72 67 22 3e 62 69 6e 61 class="arg">bina
7240: 72 79 5f 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 ry_string</i></d
7250: 74 3e 0a 3c 64 64 3e 3c 70 3e 55 6e 69 71 75 65 t>.<dd><p>Unique
7260: 20 73 65 73 73 69 6f 6e 20 69 64 20 66 6f 72 20 session id for
7270: 75 73 65 20 69 6e 20 72 65 73 75 6d 69 6e 67 20 use in resuming
7280: 74 68 65 20 73 65 73 73 69 6f 6e 2e 3c 2f 70 3e the session.</p>
7290: 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 </dd>.<dt><b cla
72a0: 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 65 ss="variable">se
72b0: 73 73 69 6f 6e 5f 74 69 63 6b 65 74 3c 2f 62 3e ssion_ticket</b>
72c0: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
72d0: 62 69 6e 61 72 79 5f 73 74 72 69 6e 67 3c 2f 69 binary_string</i
72e0: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 55 6e ></dt>.<dd><p>Un
72f0: 69 71 75 65 20 73 65 73 73 69 6f 6e 20 74 69 63 ique session tic
7300: 6b 65 74 20 66 6f 72 20 75 73 65 20 69 6e 20 72 ket for use in r
7310: 65 73 75 6d 69 6e 67 20 74 68 65 20 73 65 73 73 esuming the sess
7320: 69 6f 6e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 ion.</p></dd>.<d
7330: 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 t><b class="vari
7340: 61 62 6c 65 22 3e 74 69 63 6b 65 74 5f 61 70 70 able">ticket_app
7350: 5f 64 61 74 61 3c 2f 62 3e 20 3c 69 20 63 6c 61 _data</b> <i cla
7360: 73 73 3d 22 61 72 67 22 3e 62 69 6e 61 72 79 5f ss="arg">binary_
7370: 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a string</i></dt>.
7380: 3c 64 64 3e 3c 70 3e 55 6e 69 71 75 65 20 73 65 <dd><p>Unique se
7390: 73 73 69 6f 6e 20 74 69 63 6b 65 74 20 61 70 70 ssion ticket app
73a0: 6c 69 63 61 74 69 6f 6e 20 64 61 74 61 2e 3c 2f lication data.</
73b0: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 p></dd>.<dt><b c
73c0: 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e lass="variable">
73d0: 6d 61 73 74 65 72 5f 6b 65 79 3c 2f 62 3e 20 3c master_key</b> <
73e0: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 62 69 i class="arg">bi
73f0: 6e 61 72 79 5f 73 74 72 69 6e 67 3c 2f 69 3e 3c nary_string</i><
7400: 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 55 6e 69 71 /dt>.<dd><p>Uniq
7410: 75 65 20 73 65 73 73 69 6f 6e 20 6d 61 73 74 65 ue session maste
7420: 72 20 6b 65 79 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a r key.</p></dd>.
7430: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 <dt><b class="va
7440: 72 69 61 62 6c 65 22 3e 73 65 73 73 69 6f 6e 5f riable">session_
7450: 63 61 63 68 65 5f 6d 6f 64 65 3c 2f 62 3e 20 3c cache_mode</b> <
7460: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 6d 6f i class="arg">mo
7470: 64 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e de</i></dt>.<dd>
7480: 3c 70 3e 53 65 72 76 65 72 20 63 61 63 68 65 20 <p>Server cache
7490: 6d 6f 64 65 20 28 63 6c 69 65 6e 74 2c 20 73 65 mode (client, se
74a0: 72 76 65 72 2c 20 6f 72 20 62 6f 74 68 29 2e 3c rver, or both).<
74b0: 2f 70 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e 3c 2f /p></dd>.</dl></
74c0: 64 64 3e 0a 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d dd>.<dt><a name=
74d0: 22 39 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d "9"><b class="cm
74e0: 64 22 3e 74 6c 73 3a 3a 63 69 70 68 65 72 73 3c d">tls::ciphers<
74f0: 2f 62 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d /b> <span class=
7500: 22 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d "opt">?<i class=
7510: 22 61 72 67 22 3e 70 72 6f 74 6f 63 6f 6c 3c 2f "arg">protocol</
7520: 69 3e 3f 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e i>?</span> <span
7530: 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 class="opt">?<i
7540: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 76 65 72 class="arg">ver
7550: 62 6f 73 65 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e bose</i>?</span>
7560: 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 <span class="op
7570: 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 72 t">?<i class="ar
7580: 67 22 3e 73 75 70 70 6f 72 74 65 64 3c 2f 69 3e g">supported</i>
7590: 3f 3c 2f 73 70 61 6e 3e 3c 2f 61 3e 3c 2f 64 74 ?</span></a></dt
75a0: 3e 0a 3c 64 64 3e 3c 70 3e 57 69 74 68 6f 75 74 >.<dd><p>Without
75b0: 20 61 6e 79 20 61 72 67 73 2c 20 72 65 74 75 72 any args, retur
75c0: 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c ns a list of all
75d0: 20 73 79 6d 6d 65 74 72 69 63 20 63 69 70 68 65 symmetric ciphe
75e0: 72 73 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 rs for use with
75f0: 74 68 65 0a 3c 69 20 63 6c 61 73 73 3d 22 61 72 the.<i class="ar
7600: 67 22 3e 2d 63 69 70 68 65 72 3c 2f 69 3e 20 6f g">-cipher</i> o
7610: 70 74 69 6f 6e 2e 20 57 69 74 68 20 3c 69 20 63 ption. With <i c
7620: 6c 61 73 73 3d 22 61 72 67 22 3e 70 72 6f 74 6f lass="arg">proto
7630: 63 6f 6c 3c 2f 69 3e 2c 20 6f 6e 6c 79 20 74 68 col</i>, only th
7640: 65 20 63 69 70 68 65 72 73 20 73 75 70 70 6f 72 e ciphers suppor
7650: 74 65 64 20 66 6f 72 20 74 68 61 74 0a 70 72 6f ted for that.pro
7660: 74 6f 63 6f 6c 20 61 72 65 20 72 65 74 75 72 6e tocol are return
7670: 65 64 2e 20 53 65 65 20 74 68 65 20 3c 62 20 63 ed. See the <b c
7680: 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a lass="cmd">tls::
7690: 70 72 6f 74 6f 63 6f 6c 73 3c 2f 62 3e 20 63 6f protocols</b> co
76a0: 6d 6d 61 6e 64 20 66 6f 72 20 74 68 65 20 73 75 mmand for the su
76b0: 70 70 6f 72 74 65 64 0a 70 72 6f 74 6f 63 6f 6c pported.protocol
76c0: 73 2e 20 49 66 20 3c 69 20 63 6c 61 73 73 3d 22 s. If <i class="
76d0: 61 72 67 22 3e 76 65 72 62 6f 73 65 3c 2f 69 3e arg">verbose</i>
76e0: 20 69 73 20 73 70 65 63 69 66 69 65 64 20 61 73 is specified as
76f0: 20 74 72 75 65 20 74 68 65 6e 20 61 20 76 65 72 true then a ver
7700: 62 6f 73 65 2c 20 68 75 6d 61 6e 20 72 65 61 64 bose, human read
7710: 61 62 6c 65 0a 6c 69 73 74 20 69 73 20 72 65 74 able.list is ret
7720: 75 72 6e 65 64 20 77 69 74 68 20 61 64 64 69 74 urned with addit
7730: 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f ional informatio
7740: 6e 20 6f 6e 20 74 68 65 20 63 69 70 68 65 72 2e n on the cipher.
7750: 20 49 66 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 If <i class="ar
7760: 67 22 3e 73 75 70 70 6f 72 74 65 64 3c 2f 69 3e g">supported</i>
7770: 0a 69 73 20 73 70 65 63 69 66 69 65 64 20 61 73 .is specified as
7780: 20 74 72 75 65 2c 20 74 68 65 6e 20 6f 6e 6c 79 true, then only
7790: 20 74 68 65 20 63 69 70 68 65 72 73 20 73 75 70 the ciphers sup
77a0: 70 6f 72 74 65 64 20 66 6f 72 20 70 72 6f 74 6f ported for proto
77b0: 63 6f 6c 20 77 69 6c 6c 20 62 65 20 6c 69 73 74 col will be list
77c0: 65 64 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 ed.</p></dd>.<dt
77d0: 3e 3c 61 20 6e 61 6d 65 3d 22 31 30 22 3e 3c 62 ><a name="10"><b
77e0: 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 class="cmd">tls
77f0: 3a 3a 70 72 6f 74 6f 63 6f 6c 73 3c 2f 62 3e 3c ::protocols</b><
7800: 2f 61 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /a></dt>.<dd><p>
7810: 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f Returns a list o
7820: 66 20 74 68 65 20 73 75 70 70 6f 72 74 65 64 20 f the supported
7830: 53 53 4c 2f 54 4c 53 20 70 72 6f 74 6f 63 6f 6c SSL/TLS protocol
7840: 73 2e 20 56 61 6c 69 64 20 76 61 6c 75 65 73 20 s. Valid values
7850: 61 72 65 3a 0a 3c 62 20 63 6c 61 73 73 3d 22 63 are:.<b class="c
7860: 6f 6e 73 74 22 3e 73 73 6c 32 3c 2f 62 3e 2c 20 onst">ssl2</b>,
7870: 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 <b class="const"
7880: 3e 73 73 6c 33 3c 2f 62 3e 2c 20 3c 62 20 63 6c >ssl3</b>, <b cl
7890: 61 73 73 3d 22 63 6f 6e 73 74 22 3e 74 6c 73 31 ass="const">tls1
78a0: 3c 2f 62 3e 2c 20 3c 62 20 63 6c 61 73 73 3d 22 </b>, <b class="
78b0: 63 6f 6e 73 74 22 3e 74 6c 73 31 2e 31 3c 2f 62 const">tls1.1</b
78c0: 3e 2c 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e >, <b class="con
78d0: 73 74 22 3e 74 6c 73 31 2e 32 3c 2f 62 3e 2c 20 st">tls1.2</b>,
78e0: 61 6e 64 0a 3c 62 20 63 6c 61 73 73 3d 22 63 6f and.<b class="co
78f0: 6e 73 74 22 3e 74 6c 73 31 2e 33 3c 2f 62 3e 2e nst">tls1.3</b>.
7900: 20 45 78 61 63 74 20 6c 69 73 74 20 64 65 70 65 Exact list depe
7910: 6e 64 73 20 6f 6e 20 4f 70 65 6e 53 53 4c 20 76 nds on OpenSSL v
7920: 65 72 73 69 6f 6e 20 61 6e 64 20 63 6f 6d 70 69 ersion and compi
7930: 6c 65 20 74 69 6d 65 20 66 6c 61 67 73 2e 3c 2f le time flags.</
7940: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 61 20 6e p></dd>.<dt><a n
7950: 61 6d 65 3d 22 31 31 22 3e 3c 62 20 63 6c 61 73 ame="11"><b clas
7960: 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 76 65 72 s="cmd">tls::ver
7970: 73 69 6f 6e 3c 2f 62 3e 3c 2f 61 3e 3c 2f 64 74 sion</b></a></dt
7980: 3e 0a 3c 64 64 3e 3c 70 3e 52 65 74 75 72 6e 73 >.<dd><p>Returns
7990: 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 76 65 72 the OpenSSL ver
79a0: 73 69 6f 6e 20 73 74 72 69 6e 67 2e 3c 2f 70 3e sion string.</p>
79b0: 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e 0a 3c 2f 64 69 </dd>.</dl>.</di
79c0: 76 3e 0a 3c 64 69 76 20 69 64 3d 22 73 65 63 74 v>.<div id="sect
79d0: 69 6f 6e 33 22 20 63 6c 61 73 73 3d 22 64 6f 63 ion3" class="doc
79e0: 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e 3c tools_section"><
79f0: 68 32 3e 3c 61 20 6e 61 6d 65 3d 22 73 65 63 74 h2><a name="sect
7a00: 69 6f 6e 33 22 3e 43 65 72 74 69 66 69 63 61 74 ion3">Certificat
7a10: 65 20 56 61 6c 69 64 61 74 69 6f 6e 3c 2f 61 3e e Validation</a>
7a20: 3c 2f 68 32 3e 0a 3c 64 69 76 20 69 64 3d 22 73 </h2>.<div id="s
7a30: 75 62 73 65 63 74 69 6f 6e 31 22 20 63 6c 61 73 ubsection1" clas
7a40: 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 75 62 73 s="doctools_subs
7a50: 65 63 74 69 6f 6e 22 3e 3c 68 33 3e 3c 61 20 6e ection"><h3><a n
7a60: 61 6d 65 3d 22 73 75 62 73 65 63 74 69 6f 6e 31 ame="subsection1
7a70: 22 3e 50 4b 49 20 61 6e 64 20 43 65 72 74 69 66 ">PKI and Certif
7a80: 69 63 61 74 65 73 3c 2f 61 3e 3c 2f 68 33 3e 0a icates</a></h3>.
7a90: 3c 70 3e 55 73 69 6e 67 20 74 68 65 20 50 75 62 <p>Using the Pub
7aa0: 6c 69 63 20 4b 65 79 20 49 6e 66 72 61 73 74 72 lic Key Infrastr
7ab0: 75 63 74 75 72 65 20 28 50 4b 49 29 2c 20 65 61 ucture (PKI), ea
7ac0: 63 68 20 75 73 65 72 20 63 72 65 61 74 65 73 20 ch user creates
7ad0: 61 20 70 72 69 76 61 74 65 20 6b 65 79 20 74 68 a private key th
7ae0: 61 74 0a 6f 6e 6c 79 20 74 68 65 79 20 6b 6e 6f at.only they kno
7af0: 77 20 61 62 6f 75 74 20 61 6e 64 20 61 20 70 75 w about and a pu
7b00: 62 6c 69 63 20 6b 65 79 20 74 68 65 79 20 63 61 blic key they ca
7b10: 6e 20 65 78 63 68 61 6e 67 65 20 77 69 74 68 20 n exchange with
7b20: 6f 74 68 65 72 73 20 66 6f 72 20 75 73 65 20 69 others for use i
7b30: 6e 0a 65 6e 63 72 79 70 74 69 6e 67 20 61 6e 64 n.encrypting and
7b40: 20 64 65 63 72 79 70 74 69 6e 67 20 64 61 74 61 decrypting data
7b50: 2e 20 54 68 65 20 70 72 6f 63 65 73 73 20 69 73 . The process is
7b60: 20 74 68 65 20 73 65 6e 64 65 72 20 65 6e 63 72 the sender encr
7b70: 79 70 74 73 20 74 68 65 69 72 20 64 61 74 61 0a ypts their data.
7b80: 75 73 69 6e 67 20 74 68 65 69 72 20 70 72 69 76 using their priv
7b90: 61 74 65 20 6b 65 79 20 61 6e 64 20 74 68 65 20 ate key and the
7ba0: 72 65 63 65 69 76 65 72 27 73 20 70 75 62 6c 69 receiver's publi
7bb0: 63 20 6b 65 79 2e 20 54 68 65 20 64 61 74 61 20 c key. The data
7bc0: 69 73 20 74 68 65 6e 20 73 65 6e 74 0a 74 6f 20 is then sent.to
7bd0: 74 68 65 20 72 65 63 65 69 76 65 72 2e 20 49 6e the receiver. In
7be0: 20 61 20 73 69 6d 69 6c 61 72 20 6d 61 6e 6e 65 a similar manne
7bf0: 72 2c 20 74 68 65 20 72 65 63 65 69 76 65 72 20 r, the receiver
7c00: 75 73 65 73 20 74 68 65 69 72 20 70 72 69 76 61 uses their priva
7c10: 74 65 20 6b 65 79 20 61 6e 64 0a 74 68 65 20 73 te key and.the s
7c20: 65 6e 64 65 72 27 73 20 70 75 62 6c 69 63 20 6b ender's public k
7c30: 65 79 20 74 6f 20 64 65 63 72 79 70 74 20 74 68 ey to decrypt th
7c40: 65 20 64 61 74 61 2e 20 54 68 69 73 20 70 72 6f e data. This pro
7c50: 76 69 64 65 73 20 64 61 74 61 20 69 6e 74 65 67 vides data integ
7c60: 72 69 74 79 2c 20 74 6f 0a 65 6e 73 75 72 65 20 rity, to.ensure
7c70: 74 68 65 20 64 61 74 61 20 63 61 6e 27 74 20 62 the data can't b
7c80: 65 20 76 69 65 77 65 64 20 6f 72 20 61 6c 74 65 e viewed or alte
7c90: 72 65 64 20 64 75 72 69 6e 67 20 74 72 61 6e 73 red during trans
7ca0: 70 6f 72 74 2e 20 53 65 65 20 74 68 65 0a 3c 62 port. See the.<b
7cb0: 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e class="option">
7cc0: 2d 6b 65 79 3c 2f 62 3e 20 61 6e 64 20 3c 62 20 -key</b> and <b
7cd0: 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d class="option">-
7ce0: 6b 65 79 66 69 6c 65 3c 2f 62 3e 20 6f 70 74 69 keyfile</b> opti
7cf0: 6f 6e 73 20 66 6f 72 20 68 6f 77 20 74 6f 20 73 ons for how to s
7d00: 70 65 63 69 66 79 20 74 68 65 20 70 72 69 76 61 pecify the priva
7d10: 74 65 20 6b 65 79 2e 0a 41 6c 73 6f 20 73 65 65 te key..Also see
7d20: 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 6f the <b class="o
7d30: 70 74 69 6f 6e 22 3e 2d 70 61 73 73 77 6f 72 64 ption">-password
7d40: 3c 2f 62 3e 20 6f 70 74 69 6f 6e 20 66 6f 72 20 </b> option for
7d50: 68 6f 77 20 74 6f 20 70 72 6f 76 69 64 65 20 74 how to provide t
7d60: 68 65 20 70 61 73 73 77 6f 72 64 2e 3c 2f 70 3e he password.</p>
7d70: 0a 3c 70 3e 49 6e 20 6f 72 64 65 72 20 74 6f 20 .<p>In order to
7d80: 70 72 6f 76 69 64 65 20 61 75 74 68 65 6e 74 69 provide authenti
7d90: 63 61 74 69 6f 6e 2c 20 69 2e 65 2e 20 65 6e 73 cation, i.e. ens
7da0: 75 72 69 6e 67 20 73 6f 6d 65 6f 6e 65 20 69 73 uring someone is
7db0: 20 77 68 6f 20 74 68 65 79 20 73 61 79 20 74 68 who they say th
7dc0: 65 79 0a 61 72 65 2c 20 74 68 65 20 70 75 62 6c ey.are, the publ
7dd0: 69 63 20 6b 65 79 20 61 6e 64 20 75 73 65 72 20 ic key and user
7de0: 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 20 69 identification i
7df0: 6e 66 6f 20 69 73 20 73 74 6f 72 65 64 20 69 6e nfo is stored in
7e00: 20 61 20 58 2e 35 30 39 0a 63 65 72 74 69 66 69 a X.509.certifi
7e10: 63 61 74 65 20 61 6e 64 20 74 68 61 74 20 63 65 cate and that ce
7e20: 72 74 69 66 69 63 61 74 65 20 69 73 20 61 75 74 rtificate is aut
7e30: 68 65 6e 74 69 63 61 74 65 64 20 28 69 2e 65 2e henticated (i.e.
7e40: 20 73 69 67 6e 65 64 29 20 62 79 20 61 20 43 65 signed) by a Ce
7e50: 72 74 69 66 69 63 61 74 65 0a 41 75 74 68 6f 72 rtificate.Author
7e60: 69 74 79 20 28 43 41 29 2e 20 55 73 65 72 73 20 ity (CA). Users
7e70: 63 61 6e 20 74 68 65 6e 20 65 78 63 68 61 6e 67 can then exchang
7e80: 65 20 74 68 65 73 65 20 63 65 72 74 69 66 69 63 e these certific
7e90: 61 74 65 73 20 64 75 72 69 6e 67 20 74 68 65 20 ates during the
7ea0: 54 4c 53 0a 69 6e 69 74 69 61 6c 69 7a 61 74 69 TLS.initializati
7eb0: 6f 6e 20 70 72 6f 63 65 73 73 20 61 6e 64 20 63 on process and c
7ec0: 68 65 63 6b 20 74 68 65 6d 20 61 67 61 69 6e 73 heck them agains
7ed0: 74 20 74 68 65 20 72 6f 6f 74 20 43 41 20 63 65 t the root CA ce
7ee0: 72 74 69 66 69 63 61 74 65 73 20 74 6f 20 65 6e rtificates to en
7ef0: 73 75 72 65 0a 74 68 65 79 20 61 72 65 20 76 61 sure.they are va
7f00: 6c 69 64 2e 20 54 68 69 73 20 69 73 20 68 61 6e lid. This is han
7f10: 64 6c 65 64 20 62 79 20 4f 70 65 6e 53 53 4c 20 dled by OpenSSL
7f20: 76 69 61 20 74 68 65 20 3c 62 20 63 6c 61 73 73 via the <b class
7f30: 3d 22 6f 70 74 69 6f 6e 22 3e 2d 72 65 71 75 65 ="option">-reque
7f40: 73 74 3c 2f 62 3e 20 61 6e 64 0a 3c 62 20 63 6c st</b> and.<b cl
7f50: 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 72 65 ass="option">-re
7f60: 71 75 69 72 65 3c 2f 62 3e 20 6f 70 74 69 6f 6e quire</b> option
7f70: 73 2e 20 53 65 65 20 74 68 65 20 3c 62 20 63 6c s. See the <b cl
7f80: 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 ass="option">-ca
7f90: 64 69 72 3c 2f 62 3e 2c 20 3c 62 20 63 6c 61 73 dir</b>, <b clas
7fa0: 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 64 69 s="option">-cadi
7fb0: 72 3c 2f 62 3e 2c 20 61 6e 64 0a 3c 62 20 63 6c r</b>, and.<b cl
7fc0: 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 ass="option">-ca
7fd0: 73 74 6f 72 65 3c 2f 62 3e 20 6f 70 74 69 6f 6e store</b> option
7fe0: 73 20 66 6f 72 20 68 6f 77 20 74 70 20 73 70 65 s for how tp spe
7ff0: 63 69 66 79 20 77 68 65 72 65 20 74 6f 20 66 69 cify where to fi
8000: 6e 64 20 74 68 65 20 43 41 20 63 65 72 74 69 66 nd the CA certif
8010: 69 63 61 74 65 73 2e 0a 4f 70 74 69 6f 6e 61 6c icates..Optional
8020: 6c 79 2c 20 69 6e 20 61 20 66 75 74 75 72 65 20 ly, in a future
8030: 72 65 6c 65 61 73 65 2c 20 74 68 65 79 20 63 61 release, they ca
8040: 6e 20 61 6c 73 6f 20 62 65 20 63 68 65 63 6b 65 n also be checke
8050: 64 20 61 67 61 69 6e 73 74 20 74 68 65 20 43 65 d against the Ce
8060: 72 74 69 66 69 63 61 74 65 0a 52 65 76 6f 63 61 rtificate.Revoca
8070: 74 69 6f 6e 20 4c 69 73 74 20 28 43 52 4c 29 20 tion List (CRL)
8080: 6f 66 20 72 65 76 6f 6b 65 64 20 63 65 72 74 69 of revoked certi
8090: 66 69 63 61 74 65 73 2e 20 43 65 72 74 69 66 69 ficates. Certifi
80a0: 63 61 74 65 73 20 63 61 6e 20 61 6c 73 6f 20 62 cates can also b
80b0: 65 0a 73 65 6c 66 2d 73 69 67 6e 65 64 2c 20 62 e.self-signed, b
80c0: 75 74 20 74 68 65 79 20 61 72 65 20 62 79 20 64 ut they are by d
80d0: 65 66 61 75 6c 74 20 6e 6f 74 20 74 72 75 73 74 efault not trust
80e0: 65 64 20 75 6e 6c 65 73 73 20 79 6f 75 20 61 64 ed unless you ad
80f0: 64 20 74 68 65 6d 20 74 6f 20 79 6f 75 72 0a 63 d them to your.c
8100: 65 72 74 69 66 69 63 61 74 65 20 73 74 6f 72 65 ertificate store
8110: 2e 3c 2f 70 3e 0a 3c 70 3e 54 79 70 69 63 61 6c .</p>.<p>Typical
8120: 6c 79 20 77 68 65 6e 20 76 69 73 69 74 69 6e 67 ly when visiting
8130: 20 77 65 62 20 73 69 74 65 73 2c 20 6f 6e 6c 79 web sites, only
8140: 20 74 68 65 20 63 6c 69 65 6e 74 20 6e 65 65 64 the client need
8150: 73 20 74 6f 20 63 68 65 63 6b 20 74 68 65 20 73 s to check the s
8160: 65 72 76 65 72 27 73 0a 63 65 72 74 69 66 69 63 erver's.certific
8170: 61 74 65 20 74 6f 20 65 6e 73 75 72 65 20 69 74 ate to ensure it
8180: 20 69 73 20 76 61 6c 69 64 2e 20 54 68 65 20 73 is valid. The s
8190: 65 72 76 65 72 20 64 6f 65 73 6e 27 74 20 6e 65 erver doesn't ne
81a0: 65 64 20 74 6f 20 63 68 65 63 6b 20 74 68 65 20 ed to check the
81b0: 63 6c 69 65 6e 74 0a 63 65 72 74 69 66 69 63 61 client.certifica
81c0: 74 65 20 75 6e 6c 65 73 73 20 79 6f 75 20 6e 65 te unless you ne
81d0: 65 64 20 74 6f 20 61 75 74 68 65 6e 74 69 63 61 ed to authentica
81e0: 74 65 20 77 69 74 68 20 74 68 65 6d 20 74 6f 20 te with them to
81f0: 6c 6f 67 69 6e 2c 20 65 74 63 2e 20 53 65 65 20 login, etc. See
8200: 74 68 65 0a 3c 62 20 63 6c 61 73 73 3d 22 6f 70 the.<b class="op
8210: 74 69 6f 6e 22 3e 2d 63 65 72 74 3c 2f 62 3e 20 tion">-cert</b>
8220: 61 6e 64 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 and <b class="op
8230: 74 69 6f 6e 22 3e 2d 63 65 72 74 66 69 6c 65 3c tion">-certfile<
8240: 2f 62 3e 20 6f 70 74 69 6f 6e 73 20 69 66 20 79 /b> options if y
8250: 6f 75 20 6e 65 65 64 20 74 6f 20 70 72 6f 76 69 ou need to provi
8260: 64 65 20 61 20 63 65 72 74 69 66 69 63 61 74 65 de a certificate
8270: 2e 3c 2f 70 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 .</p>.</div>.<di
8280: 76 20 69 64 3d 22 73 75 62 73 65 63 74 69 6f 6e v id="subsection
8290: 32 22 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 2" class="doctoo
82a0: 6c 73 5f 73 75 62 73 65 63 74 69 6f 6e 22 3e 3c ls_subsection"><
82b0: 68 33 3e 3c 61 20 6e 61 6d 65 3d 22 73 75 62 73 h3><a name="subs
82c0: 65 63 74 69 6f 6e 32 22 3e 53 75 6d 6d 61 72 79 ection2">Summary
82d0: 20 6f 66 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 of command line
82e0: 20 6f 70 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 68 33 options</a></h3
82f0: 3e 0a 3c 70 3e 54 68 65 20 66 6f 6c 6c 6f 77 69 >.<p>The followi
8300: 6e 67 20 6f 70 74 69 6f 6e 73 20 61 72 65 20 75 ng options are u
8310: 73 65 64 20 66 6f 72 20 70 65 65 72 20 63 65 72 sed for peer cer
8320: 74 69 66 69 63 61 74 65 20 76 61 6c 69 64 61 74 tificate validat
8330: 69 6f 6e 3a 3c 2f 70 3e 0a 3c 64 6c 20 63 6c 61 ion:</p>.<dl cla
8340: 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 6f 70 74 ss="doctools_opt
8350: 69 6f 6e 73 22 3e 0a 3c 64 74 3e 3c 62 20 63 6c ions">.<dt><b cl
8360: 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 ass="option">-ca
8370: 64 69 72 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 dir</b> <i class
8380: 3d 22 61 72 67 22 3e 64 69 72 65 63 74 6f 72 79 ="arg">directory
8390: 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 </i></dt>.<dd><p
83a0: 3e 53 70 65 63 69 66 69 65 73 20 74 68 65 20 64 >Specifies the d
83b0: 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 20 74 irectory where t
83c0: 68 65 20 43 65 72 74 69 66 69 63 61 74 65 20 41 he Certificate A
83d0: 75 74 68 6f 72 69 74 79 20 28 43 41 29 20 63 65 uthority (CA) ce
83e0: 72 74 69 66 69 63 61 74 65 73 20 61 72 65 0a 73 rtificates are.s
83f0: 74 6f 72 65 64 2e 20 54 68 65 20 64 65 66 61 75 tored. The defau
8400: 6c 74 20 69 73 20 70 6c 61 74 66 6f 72 6d 20 73 lt is platform s
8410: 70 65 63 69 66 69 63 2c 20 62 75 74 20 69 73 20 pecific, but is
8420: 75 73 75 61 6c 6c 79 20 26 71 75 6f 74 3b 3c 62 usually "<b
8430: 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 2f 65 class="file">/e
8440: 74 63 2f 73 73 6c 2f 63 65 72 74 73 3c 2f 62 3e tc/ssl/certs</b>
8450: 26 71 75 6f 74 3b 20 6f 6e 0a 4c 69 6e 75 78 2f " on.Linux/
8460: 55 6e 69 78 20 73 79 73 74 65 6d 73 2e 20 54 68 Unix systems. Th
8470: 65 20 64 65 66 61 75 6c 74 20 6c 6f 63 61 74 69 e default locati
8480: 6f 6e 20 63 61 6e 20 62 65 20 6f 76 65 72 72 69 on can be overri
8490: 64 64 65 6e 20 62 79 20 74 68 65 0a 3c 62 20 63 dden by the.<b c
84a0: 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e lass="variable">
84b0: 53 53 4c 5f 43 45 52 54 5f 44 49 52 3c 2f 62 3e SSL_CERT_DIR</b>
84c0: 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 environment var
84d0: 69 61 62 6c 65 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a iable.</p></dd>.
84e0: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 <dt><b class="op
84f0: 74 69 6f 6e 22 3e 2d 63 61 66 69 6c 65 3c 2f 62 tion">-cafile</b
8500: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
8510: 3e 66 69 6c 65 6e 61 6d 65 3c 2f 69 3e 3c 2f 64 >filename</i></d
8520: 74 3e 0a 3c 64 64 3e 3c 70 3e 53 70 65 63 69 66 t>.<dd><p>Specif
8530: 69 65 73 20 74 68 65 20 66 69 6c 65 20 77 69 74 ies the file wit
8540: 68 20 74 68 65 20 43 65 72 74 69 66 69 63 61 74 h the Certificat
8550: 65 20 41 75 74 68 6f 72 69 74 79 20 28 43 41 29 e Authority (CA)
8560: 20 63 65 72 74 69 66 69 63 61 74 65 73 20 74 6f certificates to
8570: 20 75 73 65 20 69 6e 0a 3c 62 20 63 6c 61 73 73 use in.<b class
8580: 3d 22 63 6f 6e 73 74 22 3e 50 45 4d 3c 2f 62 3e ="const">PEM</b>
8590: 20 66 69 6c 65 20 66 6f 72 6d 61 74 2e 20 54 68 file format. Th
85a0: 65 20 64 65 66 61 75 6c 74 20 69 73 20 26 71 75 e default is &qu
85b0: 6f 74 3b 3c 62 20 63 6c 61 73 73 3d 22 66 69 6c ot;<b class="fil
85c0: 65 22 3e 63 65 72 74 2e 70 65 6d 3c 2f 62 3e 26 e">cert.pem</b>&
85d0: 71 75 6f 74 3b 2c 20 69 6e 20 74 68 65 20 4f 70 quot;, in the Op
85e0: 65 6e 53 53 4c 0a 64 69 72 65 63 74 6f 72 79 2e enSSL.directory.
85f0: 20 4f 6e 20 4c 69 6e 75 78 2f 55 6e 69 78 20 73 On Linux/Unix s
8600: 79 73 74 65 6d 73 2c 20 74 68 69 73 20 69 73 20 ystems, this is
8610: 75 73 75 61 6c 6c 79 20 26 71 75 6f 74 3b 3c 62 usually "<b
8620: 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 2f 65 class="file">/e
8630: 74 63 2f 73 73 6c 2f 63 61 2d 62 75 6e 64 6c 65 tc/ssl/ca-bundle
8640: 2e 70 65 6d 3c 2f 62 3e 26 71 75 6f 74 3b 2e 0a .pem</b>"..
8650: 54 68 65 20 64 65 66 61 75 6c 74 20 66 69 6c 65 The default file
8660: 20 63 61 6e 20 62 65 20 6f 76 65 72 72 69 64 64 can be overridd
8670: 65 6e 20 62 79 20 74 68 65 20 3c 62 20 63 6c 61 en by the <b cla
8680: 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 53 53 ss="variable">SS
8690: 4c 5f 43 45 52 54 5f 46 49 4c 45 3c 2f 62 3e 20 L_CERT_FILE</b>
86a0: 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a 76 61 72 69 environment.vari
86b0: 61 62 6c 65 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c able.</p></dd>.<
86c0: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 dt><b class="opt
86d0: 69 6f 6e 22 3e 2d 63 61 73 74 6f 72 65 3c 2f 62 ion">-castore</b
86e0: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
86f0: 3e 55 52 49 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 >URI</i></dt>.<d
8700: 64 3e 3c 70 3e 53 70 65 63 69 66 69 65 73 20 74 d><p>Specifies t
8710: 68 65 20 55 6e 69 66 6f 72 6d 20 52 65 73 6f 75 he Uniform Resou
8720: 72 63 65 20 49 64 65 6e 74 69 66 69 65 72 20 28 rce Identifier (
8730: 55 52 49 29 20 66 6f 72 20 74 68 65 20 43 65 72 URI) for the Cer
8740: 74 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 tificate Authori
8750: 74 79 0a 28 43 41 29 20 73 74 6f 72 65 2c 20 77 ty.(CA) store, w
8760: 68 69 63 68 20 6d 61 79 20 62 65 20 61 20 73 69 hich may be a si
8770: 6e 67 6c 65 20 63 6f 6e 74 61 69 6e 65 72 20 6f ngle container o
8780: 72 20 61 20 63 61 74 61 6c 6f 67 20 6f 66 20 63 r a catalog of c
8790: 6f 6e 74 61 69 6e 65 72 73 2e 0a 53 74 61 72 74 ontainers..Start
87a0: 69 6e 67 20 77 69 74 68 20 4f 70 65 6e 53 53 4c ing with OpenSSL
87b0: 20 33 2e 32 20 6f 6e 20 4d 53 20 57 69 6e 64 6f 3.2 on MS Windo
87c0: 77 73 2c 20 73 65 74 20 74 6f 20 26 71 75 6f 74 ws, set to "
87d0: 3b 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 ;<b class="const
87e0: 22 3e 6f 72 67 2e 6f 70 65 6e 73 73 6c 2e 77 69 ">org.openssl.wi
87f0: 6e 73 74 6f 72 65 3a 2f 2f 3c 2f 62 3e 26 71 75 nstore://</b>&qu
8800: 6f 74 3b 0a 74 6f 20 75 73 65 20 74 68 65 20 62 ot;.to use the b
8810: 75 69 6c 74 2d 69 6e 20 4d 53 20 57 69 6e 64 6f uilt-in MS Windo
8820: 77 73 20 43 65 72 74 69 66 69 63 61 74 65 20 53 ws Certificate S
8830: 74 6f 72 65 2e 0a 54 68 69 73 20 73 74 6f 72 65 tore..This store
8840: 20 6f 6e 6c 79 20 73 75 70 70 6f 72 74 73 20 72 only supports r
8850: 6f 6f 74 20 63 65 72 74 69 66 69 63 61 74 65 20 oot certificate
8860: 73 74 6f 72 65 73 2e 20 53 65 65 0a 3c 73 70 61 stores. See.<spa
8870: 6e 20 63 6c 61 73 73 3d 22 73 65 63 74 72 65 66 n class="sectref
8880: 22 3e 3c 61 20 68 72 65 66 3d 22 23 73 65 63 74 "><a href="#sect
8890: 69 6f 6e 33 22 3e 43 65 72 74 69 66 69 63 61 74 ion3">Certificat
88a0: 65 20 56 61 6c 69 64 61 74 69 6f 6e 3c 2f 61 3e e Validation</a>
88b0: 3c 2f 73 70 61 6e 3e 20 66 6f 72 20 6d 6f 72 65 </span> for more
88c0: 20 64 65 74 61 69 6c 73 2e 3c 2f 70 3e 3c 2f 64 details.</p></d
88d0: 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d d>.<dt><b class=
88e0: 22 6f 70 74 69 6f 6e 22 3e 2d 72 65 71 75 65 73 "option">-reques
88f0: 74 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 t</b> <i class="
8900: 61 72 67 22 3e 62 6f 6f 6c 3c 2f 69 3e 3c 2f 64 arg">bool</i></d
8910: 74 3e 0a 3c 64 64 3e 3c 70 3e 52 65 71 75 65 73 t>.<dd><p>Reques
8920: 74 20 61 20 63 65 72 74 69 66 69 63 61 74 65 20 t a certificate
8930: 66 72 6f 6d 20 74 68 65 20 70 65 65 72 20 64 75 from the peer du
8940: 72 69 6e 67 20 74 68 65 20 53 53 4c 20 68 61 6e ring the SSL han
8950: 64 73 68 61 6b 65 2e 20 54 68 69 73 20 69 73 20 dshake. This is
8960: 6e 65 65 64 65 64 0a 74 6f 20 64 6f 20 43 65 72 needed.to do Cer
8970: 74 69 66 69 63 61 74 65 20 56 61 6c 69 64 61 74 tificate Validat
8980: 69 6f 6e 2e 20 53 74 61 72 74 69 6e 67 20 69 6e ion. Starting in
8990: 20 54 63 6c 54 4c 53 20 31 2e 38 2c 20 74 68 65 TclTLS 1.8, the
89a0: 20 64 65 66 61 75 6c 74 20 69 73 0a 3c 62 20 63 default is.<b c
89b0: 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 74 72 75 lass="const">tru
89c0: 65 3c 2f 62 3e 2e 20 49 6e 20 61 64 64 69 74 69 e</b>. In additi
89d0: 6f 6e 2c 20 74 68 65 20 63 6c 69 65 6e 74 20 63 on, the client c
89e0: 61 6e 20 6d 61 6e 75 61 6c 6c 79 20 69 6e 73 70 an manually insp
89f0: 65 63 74 20 61 6e 64 20 61 63 63 65 70 74 20 6f ect and accept o
8a00: 72 20 72 65 6a 65 63 74 0a 65 61 63 68 20 63 65 r reject.each ce
8a10: 72 74 69 66 69 63 61 74 65 20 75 73 69 6e 67 20 rtificate using
8a20: 74 68 65 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 the <i class="ar
8a30: 67 22 3e 2d 76 61 6c 69 64 61 74 65 63 6f 6d 6d g">-validatecomm
8a40: 61 6e 64 3c 2f 69 3e 20 6f 70 74 69 6f 6e 2e 3c and</i> option.<
8a50: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
8a60: 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d class="option">-
8a70: 72 65 71 75 69 72 65 3c 2f 62 3e 20 3c 69 20 63 require</b> <i c
8a80: 6c 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f 6c 3c lass="arg">bool<
8a90: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
8aa0: 52 65 71 75 69 72 65 20 61 20 76 61 6c 69 64 20 Require a valid
8ab0: 63 65 72 74 69 66 69 63 61 74 65 20 66 72 6f 6d certificate from
8ac0: 20 74 68 65 20 70 65 65 72 20 64 75 72 69 6e 67 the peer during
8ad0: 20 74 68 65 20 53 53 4c 20 68 61 6e 64 73 68 61 the SSL handsha
8ae0: 6b 65 2e 20 49 66 20 74 68 69 73 20 69 73 0a 73 ke. If this is.s
8af0: 65 74 20 74 6f 20 74 72 75 65 2c 20 74 68 65 6e et to true, then
8b00: 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f <b class="optio
8b10: 6e 22 3e 2d 72 65 71 75 65 73 74 3c 2f 62 3e 20 n">-request</b>
8b20: 6d 75 73 74 20 61 6c 73 6f 20 62 65 20 73 65 74 must also be set
8b30: 20 74 6f 20 74 72 75 65 20 61 6e 64 20 61 20 65 to true and a e
8b40: 69 74 68 65 72 0a 3c 62 20 63 6c 61 73 73 3d 22 ither.<b class="
8b50: 6f 70 74 69 6f 6e 22 3e 2d 63 61 64 69 72 3c 2f option">-cadir</
8b60: 62 3e 2c 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 b>, <b class="op
8b70: 74 69 6f 6e 22 3e 2d 63 61 66 69 6c 65 3c 2f 62 tion">-cafile</b
8b80: 3e 2c 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 >, <b class="opt
8b90: 69 6f 6e 22 3e 2d 63 61 73 74 6f 72 65 3c 2f 62 ion">-castore</b
8ba0: 3e 2c 20 6f 72 20 61 20 70 6c 61 74 66 6f 72 6d >, or a platform
8bb0: 20 64 65 66 61 75 6c 74 0a 6d 75 73 74 20 62 65 default.must be
8bc0: 20 70 72 6f 76 69 64 65 64 20 69 6e 20 6f 72 64 provided in ord
8bd0: 65 72 20 74 6f 20 76 61 6c 69 64 61 74 65 20 61 er to validate a
8be0: 67 61 69 6e 73 74 2e 20 54 68 65 20 64 65 66 61 gainst. The defa
8bf0: 75 6c 74 20 69 6e 20 54 63 6c 54 4c 53 20 31 2e ult in TclTLS 1.
8c00: 38 20 61 6e 64 0a 65 61 72 6c 69 65 72 20 76 65 8 and.earlier ve
8c10: 72 73 69 6f 6e 73 20 69 73 20 3c 62 20 63 6c 61 rsions is <b cla
8c20: 73 73 3d 22 63 6f 6e 73 74 22 3e 66 61 6c 73 65 ss="const">false
8c30: 3c 2f 62 3e 20 73 69 6e 63 65 20 6e 6f 74 20 61 </b> since not a
8c40: 6c 6c 20 70 6c 61 74 66 6f 72 6d 73 20 68 61 76 ll platforms hav
8c50: 65 20 63 65 72 74 69 66 69 63 61 74 65 73 20 74 e certificates t
8c60: 6f 0a 76 61 6c 69 64 61 74 65 20 61 67 61 69 6e o.validate again
8c70: 73 74 20 69 6e 20 61 20 66 6f 72 6d 20 63 6f 6d st in a form com
8c80: 70 61 74 69 62 6c 65 20 77 69 74 68 20 4f 70 65 patible with Ope
8c90: 6e 53 53 4c 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c nSSL.</p></dd>.<
8ca0: 2f 64 6c 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76 /dl>.</div>.<div
8cb0: 20 69 64 3d 22 73 75 62 73 65 63 74 69 6f 6e 33 id="subsection3
8cc0: 22 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c " class="doctool
8cd0: 73 5f 73 75 62 73 65 63 74 69 6f 6e 22 3e 3c 68 s_subsection"><h
8ce0: 33 3e 3c 61 20 6e 61 6d 65 3d 22 73 75 62 73 65 3><a name="subse
8cf0: 63 74 69 6f 6e 33 22 3e 57 68 65 6e 20 61 72 65 ction3">When are
8d00: 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 6f 70 command line op
8d10: 74 69 6f 6e 73 20 6e 65 65 64 65 64 3f 3c 2f 61 tions needed?</a
8d20: 3e 3c 2f 68 33 3e 0a 3c 70 3e 49 6e 20 54 63 6c ></h3>.<p>In Tcl
8d30: 54 4c 53 20 31 2e 38 20 61 6e 64 20 65 61 72 6c TLS 1.8 and earl
8d40: 69 65 72 20 76 65 72 73 69 6f 6e 73 2c 20 63 65 ier versions, ce
8d50: 72 74 69 66 69 63 61 74 65 20 76 61 6c 69 64 61 rtificate valida
8d60: 74 69 6f 6e 20 69 73 0a 3c 65 6d 3e 4e 4f 54 3c tion is.<em>NOT<
8d70: 2f 65 6d 3e 20 65 6e 61 62 6c 65 64 20 62 79 20 /em> enabled by
8d80: 64 65 66 61 75 6c 74 2e 20 54 68 69 73 20 6c 69 default. This li
8d90: 6d 69 74 61 74 69 6f 6e 20 69 73 20 64 75 65 20 mitation is due
8da0: 74 6f 20 74 68 65 20 6c 61 63 6b 20 6f 66 20 61 to the lack of a
8db0: 20 63 6f 6d 6d 6f 6e 0a 63 72 6f 73 73 20 70 6c common.cross pl
8dc0: 61 74 66 6f 72 6d 20 64 61 74 61 62 61 73 65 20 atform database
8dd0: 6f 66 20 43 65 72 74 69 66 69 63 61 74 65 20 41 of Certificate A
8de0: 75 74 68 6f 72 69 74 79 20 28 43 41 29 20 70 72 uthority (CA) pr
8df0: 6f 76 69 64 65 64 20 63 65 72 74 69 66 69 63 61 ovided certifica
8e00: 74 65 73 20 74 6f 0a 76 61 6c 69 64 61 74 65 20 tes to.validate
8e10: 61 67 61 69 6e 73 74 2e 20 4d 61 6e 79 20 4c 69 against. Many Li
8e20: 6e 75 78 20 73 79 73 74 65 6d 73 20 6e 61 74 69 nux systems nati
8e30: 76 65 6c 79 20 73 75 70 70 6f 72 74 20 4f 70 65 vely support Ope
8e40: 6e 53 53 4c 20 61 6e 64 20 74 68 75 73 20 68 61 nSSL and thus ha
8e50: 76 65 0a 74 68 65 73 65 20 63 65 72 74 69 66 69 ve.these certifi
8e60: 63 61 74 65 73 20 69 6e 73 74 61 6c 6c 65 64 20 cates installed
8e70: 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 4f as part of the O
8e80: 53 2c 20 62 75 74 20 4d 61 63 4f 53 20 61 6e 64 S, but MacOS and
8e90: 20 4d 53 20 57 69 6e 64 6f 77 73 20 64 6f 20 6e MS Windows do n
8ea0: 6f 74 2e 0a 49 6e 20 6f 72 64 65 72 20 74 6f 20 ot..In order to
8eb0: 75 73 65 20 74 68 65 20 3c 62 20 63 6c 61 73 73 use the <b class
8ec0: 3d 22 6f 70 74 69 6f 6e 22 3e 2d 72 65 71 75 69 ="option">-requi
8ed0: 72 65 3c 2f 62 3e 20 6f 70 74 69 6f 6e 2c 20 6f re</b> option, o
8ee0: 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 ne of the follow
8ef0: 69 6e 67 0a 6d 75 73 74 20 62 65 20 74 72 75 65 ing.must be true
8f00: 3a 3c 2f 70 3e 0a 3c 75 6c 20 63 6c 61 73 73 3d :</p>.<ul class=
8f10: 22 64 6f 63 74 6f 6f 6c 73 5f 69 74 65 6d 69 7a "doctools_itemiz
8f20: 65 64 22 3e 0a 3c 6c 69 3e 3c 70 3e 4f 6e 20 4c ed">.<li><p>On L
8f30: 69 6e 75 78 20 61 6e 64 20 55 6e 69 78 20 73 79 inux and Unix sy
8f40: 73 74 65 6d 73 20 77 69 74 68 20 4f 70 65 6e 53 stems with OpenS
8f50: 53 4c 20 61 6c 72 65 61 64 79 20 69 6e 73 74 61 SL already insta
8f60: 6c 6c 65 64 20 6f 72 20 69 66 20 74 68 65 20 43 lled or if the C
8f70: 41 0a 63 65 72 74 69 66 69 63 61 74 65 73 20 61 A.certificates a
8f80: 72 65 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 re available in
8f90: 50 45 4d 20 66 6f 72 6d 61 74 2c 20 61 6e 64 20 PEM format, and
8fa0: 69 66 20 74 68 65 79 20 61 72 65 20 73 74 6f 72 if they are stor
8fb0: 65 64 20 69 6e 20 74 68 65 0a 73 74 61 6e 64 61 ed in the.standa
8fc0: 72 64 20 6c 6f 63 61 74 69 6f 6e 73 2c 20 6f 72 rd locations, or
8fd0: 20 69 66 20 74 68 65 20 3c 62 20 63 6c 61 73 73 if the <b class
8fe0: 3d 22 76 61 72 69 61 62 6c 65 22 3e 53 53 4c 5f ="variable">SSL_
8ff0: 43 45 52 54 5f 44 49 52 3c 2f 62 3e 20 6f 72 20 CERT_DIR</b> or
9000: 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 <b class="variab
9010: 6c 65 22 3e 53 53 4c 5f 43 45 52 54 5f 46 49 4c le">SSL_CERT_FIL
9020: 45 3c 2f 62 3e 0a 65 6e 76 69 72 6f 6e 6d 65 6e E</b>.environmen
9030: 74 20 76 61 72 69 61 62 6c 65 73 20 61 72 65 20 t variables are
9040: 73 65 74 2c 20 74 68 65 6e 20 3c 62 20 63 6c 61 set, then <b cla
9050: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 64 ss="option">-cad
9060: 69 72 3c 2f 62 3e 2c 20 3c 62 20 63 6c 61 73 73 ir</b>, <b class
9070: 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 64 69 72 ="option">-cadir
9080: 3c 2f 62 3e 2c 0a 61 6e 64 20 3c 62 20 63 6c 61 </b>,.and <b cla
9090: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 73 ss="option">-cas
90a0: 74 6f 72 65 3c 2f 62 3e 20 61 72 65 6e 27 74 20 tore</b> aren't
90b0: 6e 65 65 64 65 64 2e 3c 2f 70 3e 3c 2f 6c 69 3e needed.</p></li>
90c0: 0a 3c 6c 69 3e 3c 70 3e 49 66 20 4f 70 65 6e 53 .<li><p>If OpenS
90d0: 53 4c 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c SL is not instal
90e0: 6c 65 64 20 69 6e 20 74 68 65 20 64 65 66 61 75 led in the defau
90f0: 6c 74 20 6c 6f 63 61 74 69 6f 6e 2c 20 6f 72 20 lt location, or
9100: 77 68 65 6e 20 75 73 69 6e 67 20 4d 61 63 20 4f when using Mac O
9110: 53 0a 6f 72 20 4d 53 20 57 69 6e 64 6f 77 73 20 S.or MS Windows
9120: 61 6e 64 20 4f 70 65 6e 53 53 4c 20 69 73 20 69 and OpenSSL is i
9130: 6e 73 74 61 6c 6c 65 64 2c 20 74 68 65 20 3c 62 nstalled, the <b
9140: 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 class="variable
9150: 22 3e 53 53 4c 5f 43 45 52 54 5f 44 49 52 3c 2f ">SSL_CERT_DIR</
9160: 62 3e 20 61 6e 64 2f 6f 72 0a 3c 62 20 63 6c 61 b> and/or.<b cla
9170: 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 53 53 ss="variable">SS
9180: 4c 5f 43 45 52 54 5f 46 49 4c 45 3c 2f 62 3e 20 L_CERT_FILE</b>
9190: 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 environment vari
91a0: 61 62 6c 65 73 20 6f 72 20 74 68 65 20 6f 6e 65 ables or the one
91b0: 20 6f 66 20 74 68 65 20 3c 62 20 63 6c 61 73 73 of the <b class
91c0: 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 64 69 72 ="option">-cadir
91d0: 3c 2f 62 3e 2c 0a 3c 62 20 63 6c 61 73 73 3d 22 </b>,.<b class="
91e0: 6f 70 74 69 6f 6e 22 3e 2d 63 61 64 69 72 3c 2f option">-cadir</
91f0: 62 3e 2c 20 6f 72 20 3c 62 20 63 6c 61 73 73 3d b>, or <b class=
9200: 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 73 74 6f 72 "option">-castor
9210: 65 3c 2f 62 3e 20 6f 70 74 69 6f 6e 73 20 6d 75 e</b> options mu
9220: 73 74 20 62 65 20 64 65 66 69 6e 65 64 2e 3c 2f st be defined.</
9230: 70 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 70 3e 4f p></li>.<li><p>O
9240: 6e 20 4d 53 20 57 69 6e 64 6f 77 73 2c 20 73 74 n MS Windows, st
9250: 61 72 74 69 6e 67 20 69 6e 20 4f 70 65 6e 53 53 arting in OpenSS
9260: 4c 20 33 2e 32 2c 20 69 74 20 69 73 20 6e 6f 77 L 3.2, it is now
9270: 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 61 63 63 possible to acc
9280: 65 73 73 20 74 68 65 0a 62 75 69 6c 74 2d 69 6e ess the.built-in
9290: 20 57 69 6e 64 6f 77 73 20 43 65 72 74 69 66 69 Windows Certifi
92a0: 63 61 74 65 20 53 74 6f 72 65 20 66 72 6f 6d 20 cate Store from
92b0: 4f 70 65 6e 53 53 4c 2e 20 54 68 69 73 20 63 61 OpenSSL. This ca
92c0: 6e 20 75 74 69 6c 69 7a 65 64 20 62 79 0a 73 65 n utilized by.se
92d0: 74 74 69 6e 67 20 74 68 65 20 3c 62 20 63 6c 61 tting the <b cla
92e0: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 73 ss="option">-cas
92f0: 74 6f 72 65 3c 2f 62 3e 20 6f 70 74 69 6f 6e 20 tore</b> option
9300: 74 6f 20 26 71 75 6f 74 3b 3c 62 20 63 6c 61 73 to "<b clas
9310: 73 3d 22 63 6f 6e 73 74 22 3e 6f 72 67 2e 6f 70 s="const">org.op
9320: 65 6e 73 73 6c 2e 77 69 6e 73 74 6f 72 65 3a 2f enssl.winstore:/
9330: 2f 3c 2f 62 3e 26 71 75 6f 74 3b 2e 3c 2f 70 3e /</b>".</p>
9340: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 70 3e 49 66 20 </li>.<li><p>If
9350: 4f 70 65 6e 53 53 4c 20 69 73 20 6e 6f 74 20 69 OpenSSL is not i
9360: 6e 73 74 61 6c 6c 65 64 20 6f 72 20 74 68 65 20 nstalled or the
9370: 43 41 20 63 65 72 74 69 66 69 63 61 74 65 73 20 CA certificates
9380: 61 72 65 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c are not availabl
9390: 65 20 69 6e 20 50 45 4d 0a 66 6f 72 6d 61 74 2c e in PEM.format,
93a0: 20 74 68 65 20 43 41 20 63 65 72 74 69 66 69 63 the CA certific
93b0: 61 74 65 73 20 6d 75 73 74 20 62 65 20 64 6f 77 ates must be dow
93c0: 6e 6c 6f 61 64 65 64 20 61 6e 64 20 69 6e 73 74 nloaded and inst
93d0: 61 6c 6c 65 64 20 77 69 74 68 20 74 68 65 20 75 alled with the u
93e0: 73 65 72 0a 73 6f 66 74 77 61 72 65 2e 20 54 68 ser.software. Th
93f0: 65 20 43 55 52 4c 20 74 65 61 6d 20 6d 61 6b 65 e CURL team make
9400: 73 20 74 68 65 6d 20 61 76 61 69 6c 61 62 6c 65 s them available
9410: 20 61 74 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 at.<a href="htt
9420: 70 73 3a 2f 2f 63 75 72 6c 2e 73 65 2f 64 6f 63 ps://curl.se/doc
9430: 73 2f 63 61 65 78 74 72 61 63 74 2e 68 74 6d 6c s/caextract.html
9440: 22 3e 43 41 20 63 65 72 74 69 66 69 63 61 74 65 ">CA certificate
9450: 73 20 65 78 74 72 61 63 74 65 64 0a 66 72 6f 6d s extracted.from
9460: 20 4d 6f 7a 69 6c 6c 61 3c 2f 61 3e 20 69 6e 20 Mozilla</a> in
9470: 74 68 65 20 26 71 75 6f 74 3b 3c 62 20 63 6c 61 the "<b cla
9480: 73 73 3d 22 66 69 6c 65 22 3e 63 61 63 65 72 74 ss="file">cacert
9490: 2e 70 65 6d 3c 2f 62 3e 26 71 75 6f 74 3b 20 66 .pem</b>" f
94a0: 69 6c 65 2e 20 59 6f 75 20 6d 75 73 74 20 74 68 ile. You must th
94b0: 65 6e 20 65 69 74 68 65 72 20 73 65 74 20 74 68 en either set th
94c0: 65 0a 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 e.<b class="vari
94d0: 61 62 6c 65 22 3e 53 53 4c 5f 43 45 52 54 5f 44 able">SSL_CERT_D
94e0: 49 52 3c 2f 62 3e 20 61 6e 64 2f 6f 72 20 3c 62 IR</b> and/or <b
94f0: 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 class="variable
9500: 22 3e 53 53 4c 5f 43 45 52 54 5f 46 49 4c 45 3c ">SSL_CERT_FILE<
9510: 2f 62 3e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 /b> environment
9520: 76 61 72 69 61 62 6c 65 73 20 6f 72 20 74 68 65 variables or the
9530: 0a 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f .<b class="optio
9540: 6e 22 3e 2d 63 61 64 69 72 3c 2f 62 3e 20 6f 72 n">-cadir</b> or
9550: 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f <b class="optio
9560: 6e 22 3e 2d 63 61 66 69 6c 65 3c 2f 62 3e 20 6f n">-cafile</b> o
9570: 70 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 43 41 ptions to the CA
9580: 20 63 65 72 74 20 66 69 6c 65 27 73 20 69 6e 73 cert file's ins
9590: 74 61 6c 6c 0a 6c 6f 63 61 74 69 6f 6e 2e 20 49 tall.location. I
95a0: 74 20 69 73 20 79 6f 75 72 20 72 65 73 70 6f 6e t is your respon
95b0: 73 69 62 69 6c 69 74 79 20 74 6f 20 6b 65 65 70 sibility to keep
95c0: 20 74 68 69 73 20 66 69 6c 65 20 75 70 20 74 6f this file up to
95d0: 20 64 61 74 65 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a date.</p></li>.
95e0: 3c 2f 75 6c 3e 0a 3c 2f 64 69 76 3e 0a 3c 2f 64 </ul>.</div>.</d
95f0: 69 76 3e 0a 3c 64 69 76 20 69 64 3d 22 73 65 63 iv>.<div id="sec
9600: 74 69 6f 6e 34 22 20 63 6c 61 73 73 3d 22 64 6f tion4" class="do
9610: 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e ctools_section">
9620: 3c 68 32 3e 3c 61 20 6e 61 6d 65 3d 22 73 65 63 <h2><a name="sec
9630: 74 69 6f 6e 34 22 3e 43 61 6c 6c 62 61 63 6b 20 tion4">Callback
9640: 4f 70 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 68 32 3e Options</a></h2>
9650: 0a 3c 70 3e 41 73 20 70 72 65 76 69 6f 75 73 6c .<p>As previousl
9660: 79 20 64 65 73 63 72 69 62 65 64 2c 20 65 61 63 y described, eac
9670: 68 20 63 68 61 6e 6e 65 6c 20 63 61 6e 20 62 65 h channel can be
9680: 20 67 69 76 65 6e 20 74 68 65 69 72 20 6f 77 6e given their own
9690: 20 63 61 6c 6c 62 61 63 6b 73 0a 74 6f 20 68 61 callbacks.to ha
96a0: 6e 64 6c 65 20 69 6e 74 65 72 6d 65 64 69 61 74 ndle intermediat
96b0: 65 20 70 72 6f 63 65 73 73 69 6e 67 20 62 79 20 e processing by
96c0: 74 68 65 20 4f 70 65 6e 53 53 4c 20 6c 69 62 72 the OpenSSL libr
96d0: 61 72 79 2c 20 75 73 69 6e 67 20 74 68 65 0a 3c ary, using the.<
96e0: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
96f0: 3e 2d 63 6f 6d 6d 61 6e 64 3c 2f 62 3e 2c 20 3c >-command</b>, <
9700: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
9710: 3e 2d 70 61 73 73 77 6f 72 64 3c 2f 62 3e 2c 20 >-password</b>,
9720: 61 6e 64 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 and <b class="op
9730: 74 69 6f 6e 22 3e 2d 76 61 6c 69 64 61 74 65 5f tion">-validate_
9740: 63 6f 6d 6d 61 6e 64 3c 2f 62 3e 20 6f 70 74 69 command</b> opti
9750: 6f 6e 73 0a 70 61 73 73 65 64 20 74 6f 20 65 69 ons.passed to ei
9760: 74 68 65 72 20 6f 66 20 3c 62 20 63 6c 61 73 73 ther of <b class
9770: 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 73 6f 63 6b ="cmd">tls::sock
9780: 65 74 3c 2f 62 3e 20 6f 72 20 3c 62 20 63 6c 61 et</b> or <b cla
9790: 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 69 6d ss="cmd">tls::im
97a0: 70 6f 72 74 3c 2f 62 3e 2e 0a 55 6e 6c 69 6b 65 port</b>..Unlike
97b0: 20 70 72 65 76 69 6f 75 73 20 76 65 72 73 69 6f previous versio
97c0: 6e 73 20 6f 66 20 54 63 6c 54 4c 53 2c 20 6f 6e ns of TclTLS, on
97d0: 6c 79 20 69 66 20 74 68 65 20 63 61 6c 6c 62 61 ly if the callba
97e0: 63 6b 20 67 65 6e 65 72 61 74 65 73 20 61 6e 20 ck generates an
97f0: 65 72 72 6f 72 2c 0a 77 69 6c 6c 20 74 68 65 20 error,.will the
9800: 3c 62 20 63 6c 61 73 73 3d 22 73 79 73 63 6d 64 <b class="syscmd
9810: 22 3e 62 67 65 72 72 6f 72 3c 2f 62 3e 20 63 6f ">bgerror</b> co
9820: 6d 6d 61 6e 64 20 62 65 20 69 6e 76 6f 6b 65 64 mmand be invoked
9830: 20 77 69 74 68 20 74 68 65 20 65 72 72 6f 72 20 with the error
9840: 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 3c 2f 70 3e information.</p>
9850: 0a 3c 64 69 76 20 69 64 3d 22 73 75 62 73 65 63 .<div id="subsec
9860: 74 69 6f 6e 34 22 20 63 6c 61 73 73 3d 22 64 6f tion4" class="do
9870: 63 74 6f 6f 6c 73 5f 73 75 62 73 65 63 74 69 6f ctools_subsectio
9880: 6e 22 3e 3c 68 33 3e 3c 61 20 6e 61 6d 65 3d 22 n"><h3><a name="
9890: 73 75 62 73 65 63 74 69 6f 6e 34 22 3e 56 61 6c subsection4">Val
98a0: 75 65 73 20 66 6f 72 20 43 6f 6d 6d 61 6e 64 20 ues for Command
98b0: 43 61 6c 6c 62 61 63 6b 3c 2f 61 3e 3c 2f 68 33 Callback</a></h3
98c0: 3e 0a 3c 70 3e 54 68 65 20 63 61 6c 6c 62 61 63 >.<p>The callbac
98d0: 6b 20 66 6f 72 20 74 68 65 20 3c 62 20 63 6c 61 k for the <b cla
98e0: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 6f 6d ss="option">-com
98f0: 6d 61 6e 64 3c 2f 62 3e 20 6f 70 74 69 6f 6e 20 mand</b> option
9900: 69 73 20 69 6e 76 6f 6b 65 64 20 61 74 20 73 65 is invoked at se
9910: 76 65 72 61 6c 20 70 6f 69 6e 74 73 20 64 75 72 veral points dur
9920: 69 6e 67 20 74 68 65 0a 4f 70 65 6e 53 53 4c 20 ing the.OpenSSL
9930: 68 61 6e 64 73 68 61 6b 65 20 61 6e 64 20 64 75 handshake and du
9940: 72 69 6e 67 20 72 6f 75 74 69 6e 65 20 6f 70 65 ring routine ope
9950: 72 61 74 69 6f 6e 73 2e 20 53 65 65 20 62 65 6c rations. See bel
9960: 6f 77 20 66 6f 72 20 74 68 65 20 70 6f 73 73 69 ow for the possi
9970: 62 6c 65 0a 61 72 67 75 6d 65 6e 74 73 20 70 61 ble.arguments pa
9980: 73 73 65 64 20 74 6f 20 74 68 65 20 63 61 6c 6c ssed to the call
9990: 62 61 63 6b 20 73 63 72 69 70 74 2e 20 56 61 6c back script. Val
99a0: 75 65 73 20 72 65 74 75 72 6e 65 64 20 66 72 6f ues returned fro
99b0: 6d 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 61 m the callback a
99c0: 72 65 0a 69 67 6e 6f 72 65 64 2e 3c 2f 70 3e 0a re.ignored.</p>.
99d0: 3c 64 6c 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f <dl class="docto
99e0: 6f 6c 73 5f 6f 70 74 69 6f 6e 73 22 3e 0a 3c 64 ols_options">.<d
99f0: 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 t><b class="opti
9a00: 6f 6e 22 3e 65 72 72 6f 72 3c 2f 62 3e 20 3c 69 on">error</b> <i
9a10: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 63 68 61 class="arg">cha
9a20: 6e 6e 65 6c 49 64 20 6d 65 73 73 61 67 65 3c 2f nnelId message</
9a30: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 i></dt>.<dd><p>T
9a40: 68 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c his form of call
9a50: 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20 back is invoked
9a60: 77 68 65 6e 65 76 65 72 20 61 6e 20 65 72 72 6f whenever an erro
9a70: 72 20 6f 63 63 75 72 73 20 64 75 72 69 6e 67 20 r occurs during
9a80: 74 68 65 20 69 6e 69 74 69 61 6c 0a 63 6f 6e 6e the initial.conn
9a90: 65 63 74 69 6f 6e 2c 20 68 61 6e 64 73 68 61 6b ection, handshak
9aa0: 65 2c 20 6f 72 20 49 2f 4f 20 6f 70 65 72 61 74 e, or I/O operat
9ab0: 69 6f 6e 73 2e 20 54 68 65 20 3c 69 20 63 6c 61 ions. The <i cla
9ac0: 73 73 3d 22 61 72 67 22 3e 6d 65 73 73 61 67 65 ss="arg">message
9ad0: 3c 2f 69 3e 20 61 72 67 75 6d 65 6e 74 20 63 61 </i> argument ca
9ae0: 6e 20 62 65 0a 66 72 6f 6d 20 74 68 65 20 54 63 n be.from the Tc
9af0: 6c 5f 45 72 72 6e 6f 4d 73 67 2c 20 4f 70 65 6e l_ErrnoMsg, Open
9b00: 53 53 4c 20 66 75 6e 63 74 69 6f 6e 20 3c 62 20 SSL function <b
9b10: 63 6c 61 73 73 3d 22 66 75 6e 63 74 69 6f 6e 22 class="function"
9b20: 3e 45 52 52 5f 72 65 61 73 6f 6e 5f 65 72 72 6f >ERR_reason_erro
9b30: 72 5f 73 74 72 69 6e 67 28 29 3c 2f 62 3e 2c 0a r_string()</b>,.
9b40: 6f 72 20 61 20 63 75 73 74 6f 6d 20 6d 65 73 73 or a custom mess
9b50: 61 67 65 2e 20 54 68 69 73 20 63 61 6c 6c 62 61 age. This callba
9b60: 63 6b 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 ck is new for Tc
9b70: 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 lTLS 1.8.</p></d
9b80: 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d d>.<dt><b class=
9b90: 22 6f 70 74 69 6f 6e 22 3e 69 6e 66 6f 3c 2f 62 "option">info</b
9ba0: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
9bb0: 3e 63 68 61 6e 6e 65 6c 49 64 20 6d 61 6a 6f 72 >channelId major
9bc0: 20 6d 69 6e 6f 72 20 6d 65 73 73 61 67 65 20 74 minor message t
9bd0: 79 70 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 ype</i></dt>.<dd
9be0: 3e 3c 70 3e 54 68 69 73 20 66 6f 72 6d 20 6f 66 ><p>This form of
9bf0: 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 callback is inv
9c00: 6f 6b 65 64 20 62 79 20 74 68 65 20 4f 70 65 6e oked by the Open
9c10: 53 53 4c 20 66 75 6e 63 74 69 6f 6e 0a 3c 62 20 SSL function.<b
9c20: 63 6c 61 73 73 3d 22 66 75 6e 63 74 69 6f 6e 22 class="function"
9c30: 3e 53 53 4c 5f 73 65 74 5f 69 6e 66 6f 5f 63 61 >SSL_set_info_ca
9c40: 6c 6c 62 61 63 6b 28 29 3c 2f 62 3e 20 64 75 72 llback()</b> dur
9c50: 69 6e 67 20 74 68 65 20 69 6e 69 74 69 61 6c 20 ing the initial
9c60: 63 6f 6e 6e 65 63 74 69 6f 6e 20 61 6e 64 20 68 connection and h
9c70: 61 6e 64 73 68 61 6b 65 0a 6f 70 65 72 61 74 69 andshake.operati
9c80: 6f 6e 73 2e 20 54 68 65 20 61 72 67 75 6d 65 6e ons. The argumen
9c90: 74 73 20 61 72 65 3a 3c 2f 70 3e 0a 3c 64 6c 20 ts are:</p>.<dl
9ca0: 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f class="doctools_
9cb0: 64 65 66 69 6e 69 74 69 6f 6e 73 22 3e 0a 3c 64 definitions">.<d
9cc0: 74 3e 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 t><i class="arg"
9cd0: 3e 6d 61 6a 6f 72 3c 2f 69 3e 3c 2f 64 74 3e 0a >major</i></dt>.
9ce0: 3c 64 64 3e 3c 70 3e 4d 61 6a 6f 72 20 63 61 74 <dd><p>Major cat
9cf0: 65 67 6f 72 79 20 66 6f 72 20 65 72 72 6f 72 2e egory for error.
9d00: 20 56 61 6c 69 64 20 65 6e 75 6d 73 20 61 72 65 Valid enums are
9d10: 3a 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 : <b class="cons
9d20: 74 22 3e 68 61 6e 64 73 68 61 6b 65 3c 2f 62 3e t">handshake</b>
9d30: 2c 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 , <b class="cons
9d40: 74 22 3e 61 6c 65 72 74 3c 2f 62 3e 2c 0a 3c 62 t">alert</b>,.<b
9d50: 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 63 class="const">c
9d60: 6f 6e 6e 65 63 74 3c 2f 62 3e 2c 20 3c 62 20 63 onnect</b>, <b c
9d70: 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 61 63 63 lass="const">acc
9d80: 65 70 74 3c 2f 62 3e 2e 3c 2f 70 3e 3c 2f 64 64 ept</b>.</p></dd
9d90: 3e 0a 3c 64 74 3e 3c 69 20 63 6c 61 73 73 3d 22 >.<dt><i class="
9da0: 61 72 67 22 3e 6d 69 6e 6f 72 3c 2f 69 3e 3c 2f arg">minor</i></
9db0: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 4d 69 6e 6f 72 dt>.<dd><p>Minor
9dc0: 20 63 61 74 65 67 6f 72 79 20 66 6f 72 20 65 72 category for er
9dd0: 72 6f 72 2e 20 56 61 6c 69 64 20 65 6e 75 6d 73 ror. Valid enums
9de0: 20 61 72 65 3a 20 3c 62 20 63 6c 61 73 73 3d 22 are: <b class="
9df0: 63 6f 6e 73 74 22 3e 73 74 61 72 74 3c 2f 62 3e const">start</b>
9e00: 2c 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 , <b class="cons
9e10: 74 22 3e 64 6f 6e 65 3c 2f 62 3e 2c 20 3c 62 20 t">done</b>, <b
9e20: 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 72 65 class="const">re
9e30: 61 64 3c 2f 62 3e 2c 0a 3c 62 20 63 6c 61 73 73 ad</b>,.<b class
9e40: 3d 22 63 6f 6e 73 74 22 3e 77 72 69 74 65 3c 2f ="const">write</
9e50: 62 3e 2c 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f b>, <b class="co
9e60: 6e 73 74 22 3e 6c 6f 6f 70 3c 2f 62 3e 2c 20 3c nst">loop</b>, <
9e70: 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e b class="const">
9e80: 65 78 69 74 3c 2f 62 3e 2e 3c 2f 70 3e 3c 2f 64 exit</b>.</p></d
9e90: 64 3e 0a 3c 64 74 3e 3c 69 20 63 6c 61 73 73 3d d>.<dt><i class=
9ea0: 22 61 72 67 22 3e 6d 65 73 73 61 67 65 3c 2f 69 "arg">message</i
9eb0: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 44 65 ></dt>.<dd><p>De
9ec0: 73 63 72 69 70 74 69 76 65 20 6d 65 73 73 61 67 scriptive messag
9ed0: 65 20 73 74 72 69 6e 67 20 77 68 69 63 68 20 6d e string which m
9ee0: 61 79 20 62 65 20 67 65 6e 65 72 61 74 65 64 20 ay be generated
9ef0: 65 69 74 68 65 72 20 62 79 0a 3c 62 20 63 6c 61 either by.<b cla
9f00: 73 73 3d 22 66 75 6e 63 74 69 6f 6e 22 3e 53 53 ss="function">SS
9f10: 4c 5f 73 74 61 74 65 5f 73 74 72 69 6e 67 5f 6c L_state_string_l
9f20: 6f 6e 67 28 29 3c 2f 62 3e 20 6f 72 20 3c 62 20 ong()</b> or <b
9f30: 63 6c 61 73 73 3d 22 66 75 6e 63 74 69 6f 6e 22 class="function"
9f40: 3e 53 53 4c 5f 61 6c 65 72 74 5f 64 65 73 63 5f >SSL_alert_desc_
9f50: 73 74 72 69 6e 67 5f 6c 6f 6e 67 28 29 3c 2f 62 string_long()</b
9f60: 3e 2c 0a 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 >,.depending on
9f70: 74 68 65 20 63 6f 6e 74 65 78 74 2e 3c 2f 70 3e the context.</p>
9f80: 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 69 20 63 6c 61 </dd>.<dt><i cla
9f90: 73 73 3d 22 61 72 67 22 3e 74 79 70 65 3c 2f 69 ss="arg">type</i
9fa0: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 46 6f ></dt>.<dd><p>Fo
9fb0: 72 20 61 6c 65 72 74 73 2c 20 74 68 65 20 70 6f r alerts, the po
9fc0: 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20 61 72 ssible values ar
9fd0: 65 3a 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e e: <b class="con
9fe0: 73 74 22 3e 77 61 72 6e 69 6e 67 3c 2f 62 3e 2c st">warning</b>,
9ff0: 0a 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 .<b class="const
a000: 22 3e 66 61 74 61 6c 3c 2f 62 3e 2c 20 61 6e 64 ">fatal</b>, and
a010: 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 <b class="const
a020: 22 3e 75 6e 6b 6e 6f 77 6e 3c 2f 62 3e 2e 20 46 ">unknown</b>. F
a030: 6f 72 20 6f 74 68 65 72 73 2c 20 3c 62 20 63 6c or others, <b cl
a040: 61 73 73 3d 22 63 6f 6e 73 74 22 3e 69 6e 66 6f ass="const">info
a050: 3c 2f 62 3e 20 69 73 20 75 73 65 64 2e 0a 54 68 </b> is used..Th
a060: 69 73 20 61 72 67 75 6d 65 6e 74 20 69 73 20 6e is argument is n
a070: 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 2e ew for TclTLS 1.
a080: 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c 8.</p></dd>.</dl
a090: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
a0a0: 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 6d 65 73 ass="option">mes
a0b0: 73 61 67 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 sage</b> <i clas
a0c0: 73 3d 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c 49 s="arg">channelI
a0d0: 64 20 64 69 72 65 63 74 69 6f 6e 20 76 65 72 73 d direction vers
a0e0: 69 6f 6e 20 63 6f 6e 74 65 6e 74 5f 74 79 70 65 ion content_type
a0f0: 20 6d 65 73 73 61 67 65 3c 2f 69 3e 3c 2f 64 74 message</i></dt
a100: 3e 0a 3c 64 64 3e 3c 70 3e 54 68 69 73 20 66 6f >.<dd><p>This fo
a110: 72 6d 20 6f 66 20 63 61 6c 6c 62 61 63 6b 20 69 rm of callback i
a120: 73 20 69 6e 76 6f 6b 65 64 20 62 79 20 74 68 65 s invoked by the
a130: 20 4f 70 65 6e 53 53 4c 20 66 75 6e 63 74 69 6f OpenSSL functio
a140: 6e 0a 3c 62 20 63 6c 61 73 73 3d 22 66 75 6e 63 n.<b class="func
a150: 74 69 6f 6e 22 3e 53 53 4c 5f 73 65 74 5f 6d 73 tion">SSL_set_ms
a160: 67 5f 63 61 6c 6c 62 61 63 6b 28 29 3c 2f 62 3e g_callback()</b>
a170: 20 77 68 65 6e 65 76 65 72 20 61 20 6d 65 73 73 whenever a mess
a180: 61 67 65 20 69 73 20 73 65 6e 74 20 6f 72 20 72 age is sent or r
a190: 65 63 65 69 76 65 64 20 64 75 72 69 6e 67 20 74 eceived during t
a1a0: 68 65 0a 69 6e 69 74 69 61 6c 20 63 6f 6e 6e 65 he.initial conne
a1b0: 63 74 69 6f 6e 2c 20 68 61 6e 64 73 68 61 6b 65 ction, handshake
a1c0: 2c 20 6f 72 20 49 2f 4f 20 6f 70 65 72 61 74 69 , or I/O operati
a1d0: 6f 6e 73 2e 20 49 74 20 69 73 20 6f 6e 6c 79 20 ons. It is only
a1e0: 61 76 61 69 6c 61 62 6c 65 20 77 68 65 6e 0a 4f available when.O
a1f0: 70 65 6e 53 53 4c 20 69 73 20 63 6f 6d 70 6c 69 penSSL is compli
a200: 65 64 20 77 69 74 68 20 74 68 65 20 3c 62 20 63 ed with the <b c
a210: 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 65 6e 61 lass="const">ena
a220: 62 6c 65 2d 73 73 6c 2d 74 72 61 63 65 3c 2f 62 ble-ssl-trace</b
a230: 3e 20 6f 70 74 69 6f 6e 2e 20 54 68 69 73 20 63 > option. This c
a240: 61 6c 6c 62 61 63 6b 20 69 73 0a 6e 65 77 20 66 allback is.new f
a250: 6f 72 20 54 63 6c 54 4c 53 20 31 2e 38 2e 20 54 or TclTLS 1.8. T
a260: 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 he arguments are
a270: 3a 3c 2f 70 3e 0a 3c 64 6c 20 63 6c 61 73 73 3d :</p>.<dl class=
a280: 22 64 6f 63 74 6f 6f 6c 73 5f 64 65 66 69 6e 69 "doctools_defini
a290: 74 69 6f 6e 73 22 3e 0a 3c 64 74 3e 3c 69 20 63 tions">.<dt><i c
a2a0: 6c 61 73 73 3d 22 61 72 67 22 3e 64 69 72 65 63 lass="arg">direc
a2b0: 74 69 6f 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 tion</i></dt>.<d
a2c0: 64 3e 3c 70 3e 44 69 72 65 63 74 69 6f 6e 20 69 d><p>Direction i
a2d0: 73 20 65 69 74 68 65 72 20 3c 62 20 63 6c 61 73 s either <b clas
a2e0: 73 3d 22 63 6f 6e 73 74 22 3e 53 65 6e 74 3c 2f s="const">Sent</
a2f0: 62 3e 20 6f 72 20 3c 62 20 63 6c 61 73 73 3d 22 b> or <b class="
a300: 63 6f 6e 73 74 22 3e 52 65 63 65 69 76 65 64 3c const">Received<
a310: 2f 62 3e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 /b>.</p></dd>.<d
a320: 74 3e 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 t><i class="arg"
a330: 3e 76 65 72 73 69 6f 6e 3c 2f 69 3e 3c 2f 64 74 >version</i></dt
a340: 3e 0a 3c 64 64 3e 3c 70 3e 56 65 72 73 69 6f 6e >.<dd><p>Version
a350: 20 69 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c is the protocol
a360: 20 76 65 72 73 69 6f 6e 2e 3c 2f 70 3e 3c 2f 64 version.</p></d
a370: 64 3e 0a 3c 64 74 3e 3c 69 20 63 6c 61 73 73 3d d>.<dt><i class=
a380: 22 61 72 67 22 3e 63 6f 6e 74 65 6e 74 5f 74 79 "arg">content_ty
a390: 70 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e pe</i></dt>.<dd>
a3a0: 3c 70 3e 43 6f 6e 74 65 6e 74 20 74 79 70 65 20 <p>Content type
a3b0: 69 73 20 74 68 65 20 6d 65 73 73 61 67 65 20 63 is the message c
a3c0: 6f 6e 74 65 6e 74 20 74 79 70 65 2e 3c 2f 70 3e ontent type.</p>
a3d0: 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 69 20 63 6c 61 </dd>.<dt><i cla
a3e0: 73 73 3d 22 61 72 67 22 3e 6d 65 73 73 61 67 65 ss="arg">message
a3f0: 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 </i></dt>.<dd><p
a400: 3e 4d 65 73 73 61 67 65 20 69 73 20 6d 6f 72 65 >Message is more
a410: 20 69 6e 66 6f 20 66 72 6f 6d 20 74 68 65 20 3c info from the <
a420: 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e b class="const">
a430: 53 53 4c 5f 74 72 61 63 65 3c 2f 62 3e 20 41 50 SSL_trace</b> AP
a440: 49 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c I.</p></dd>.</dl
a450: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
a460: 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 73 65 73 ass="option">ses
a470: 73 69 6f 6e 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 sion</b> <i clas
a480: 73 3d 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c 49 s="arg">channelI
a490: 64 20 73 65 73 73 69 6f 6e 5f 69 64 20 73 65 73 d session_id ses
a4a0: 73 69 6f 6e 5f 74 69 63 6b 65 74 20 6c 69 66 65 sion_ticket life
a4b0: 74 69 6d 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 time</i></dt>.<d
a4c0: 64 3e 3c 70 3e 54 68 69 73 20 66 6f 72 6d 20 6f d><p>This form o
a4d0: 66 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e f callback is in
a4e0: 76 6f 6b 65 64 20 62 79 20 74 68 65 20 4f 70 65 voked by the Ope
a4f0: 6e 53 53 4c 20 66 75 6e 63 74 69 6f 6e 0a 3c 62 nSSL function.<b
a500: 20 63 6c 61 73 73 3d 22 66 75 6e 63 74 69 6f 6e class="function
a510: 22 3e 53 53 4c 5f 43 54 58 5f 73 65 73 73 5f 73 ">SSL_CTX_sess_s
a520: 65 74 5f 6e 65 77 5f 63 62 28 29 3c 2f 62 3e 20 et_new_cb()</b>
a530: 77 68 65 6e 65 76 65 72 20 61 20 6e 65 77 20 73 whenever a new s
a540: 65 73 73 69 6f 6e 20 69 64 20 69 73 20 73 65 6e ession id is sen
a550: 74 20 62 79 20 74 68 65 0a 73 65 72 76 65 72 20 t by the.server
a560: 64 75 72 69 6e 67 20 74 68 65 20 69 6e 69 74 69 during the initi
a570: 61 6c 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 61 6e al connection an
a580: 64 20 68 61 6e 64 73 68 61 6b 65 20 61 6e 64 20 d handshake and
a590: 61 6c 73 6f 20 64 75 72 69 6e 67 20 74 68 65 20 also during the
a5a0: 73 65 73 73 69 6f 6e 0a 69 66 20 74 68 65 20 3c session.if the <
a5b0: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
a5c0: 3e 2d 70 6f 73 74 5f 68 61 6e 64 73 68 61 6b 65 >-post_handshake
a5d0: 3c 2f 62 3e 20 6f 70 74 69 6f 6e 20 69 73 20 73 </b> option is s
a5e0: 65 74 20 74 6f 20 74 72 75 65 2e 20 54 68 69 73 et to true. This
a5f0: 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 6e 65 77 callback is new
a600: 20 66 6f 72 0a 54 63 6c 54 4c 53 20 31 2e 38 2e for.TclTLS 1.8.
a610: 20 54 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 The arguments a
a620: 72 65 3a 3c 2f 70 3e 0a 3c 64 6c 20 63 6c 61 73 re:</p>.<dl clas
a630: 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 64 65 66 69 s="doctools_defi
a640: 6e 69 74 69 6f 6e 73 22 3e 0a 3c 64 74 3e 3c 69 nitions">.<dt><i
a650: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 65 73 class="arg">ses
a660: 73 69 6f 6e 5f 69 64 3c 2f 69 3e 3c 2f 64 74 3e sion_id</i></dt>
a670: 0a 3c 64 64 3e 3c 70 3e 53 65 73 73 69 6f 6e 20 .<dd><p>Session
a680: 49 64 20 69 73 20 74 68 65 20 63 75 72 72 65 6e Id is the curren
a690: 74 20 73 65 73 73 69 6f 6e 20 69 64 65 6e 74 69 t session identi
a6a0: 66 69 65 72 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 fier</p></dd>.<d
a6b0: 74 3e 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 t><i class="arg"
a6c0: 3e 73 65 73 73 69 6f 6e 5f 74 69 63 6b 65 74 3c >session_ticket<
a6d0: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
a6e0: 54 69 63 6b 65 74 20 69 73 20 74 68 65 20 73 65 Ticket is the se
a6f0: 73 73 69 6f 6e 20 74 69 63 6b 65 74 20 69 6e 66 ssion ticket inf
a700: 6f 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c o</p></dd>.<dt><
a710: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 6c 69 i class="arg">li
a720: 66 65 74 69 6d 65 3c 2f 69 3e 3c 2f 64 74 3e 0a fetime</i></dt>.
a730: 3c 64 64 3e 3c 70 3e 4c 69 66 65 74 69 6d 65 20 <dd><p>Lifetime
a740: 69 73 20 74 68 65 20 74 69 63 6b 65 74 20 6c 69 is the ticket li
a750: 66 65 74 69 6d 65 20 69 6e 20 73 65 63 6f 6e 64 fetime in second
a760: 73 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c s.</p></dd>.</dl
a770: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
a780: 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 76 65 72 ass="option">ver
a790: 69 66 79 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 ify</b> <i class
a7a0: 3d 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c 49 64 ="arg">channelId
a7b0: 20 64 65 70 74 68 20 63 65 72 74 20 73 74 61 74 depth cert stat
a7c0: 75 73 20 65 72 72 6f 72 3c 2f 69 3e 3c 2f 64 74 us error</i></dt
a7d0: 3e 0a 3c 64 64 3e 3c 70 3e 54 68 69 73 20 63 61 >.<dd><p>This ca
a7e0: 6c 6c 62 61 63 6b 20 77 61 73 20 6d 6f 76 65 64 llback was moved
a7f0: 20 74 6f 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 to <b class="op
a800: 74 69 6f 6e 22 3e 2d 76 61 6c 69 64 61 74 65 63 tion">-validatec
a810: 6f 6d 6d 61 6e 64 3c 2f 62 3e 20 69 6e 20 54 63 ommand</b> in Tc
a820: 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 lTLS 1.8.</p></d
a830: 64 3e 0a 3c 2f 64 6c 3e 0a 3c 2f 64 69 76 3e 0a d>.</dl>.</div>.
a840: 3c 64 69 76 20 69 64 3d 22 73 75 62 73 65 63 74 <div id="subsect
a850: 69 6f 6e 35 22 20 63 6c 61 73 73 3d 22 64 6f 63 ion5" class="doc
a860: 74 6f 6f 6c 73 5f 73 75 62 73 65 63 74 69 6f 6e tools_subsection
a870: 22 3e 3c 68 33 3e 3c 61 20 6e 61 6d 65 3d 22 73 "><h3><a name="s
a880: 75 62 73 65 63 74 69 6f 6e 35 22 3e 56 61 6c 75 ubsection5">Valu
a890: 65 73 20 66 6f 72 20 50 61 73 73 77 6f 72 64 20 es for Password
a8a0: 43 61 6c 6c 62 61 63 6b 3c 2f 61 3e 3c 2f 68 33 Callback</a></h3
a8b0: 3e 0a 3c 70 3e 54 68 65 20 63 61 6c 6c 62 61 63 >.<p>The callbac
a8c0: 6b 20 66 6f 72 20 74 68 65 20 3c 62 20 63 6c 61 k for the <b cla
a8d0: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 70 61 73 ss="option">-pas
a8e0: 73 77 6f 72 64 3c 2f 62 3e 20 6f 70 74 69 6f 6e sword</b> option
a8f0: 20 69 73 20 69 6e 76 6f 6b 65 64 20 62 79 20 54 is invoked by T
a900: 63 6c 54 4c 53 20 77 68 65 6e 65 76 65 72 20 4f clTLS whenever O
a910: 70 65 6e 53 53 4c 20 6e 65 65 64 73 0a 74 6f 20 penSSL needs.to
a920: 6f 62 74 61 69 6e 20 61 20 70 61 73 73 77 6f 72 obtain a passwor
a930: 64 2e 20 53 65 65 20 62 65 6c 6f 77 20 66 6f 72 d. See below for
a940: 20 74 68 65 20 70 6f 73 73 69 62 6c 65 20 61 72 the possible ar
a950: 67 75 6d 65 6e 74 73 20 70 61 73 73 65 64 20 74 guments passed t
a960: 6f 20 74 68 65 0a 63 61 6c 6c 62 61 63 6b 20 73 o the.callback s
a970: 63 72 69 70 74 2e 20 54 68 65 20 75 73 65 72 20 cript. The user
a980: 70 72 6f 76 69 64 65 64 20 70 61 73 73 77 6f 72 provided passwor
a990: 64 20 69 73 20 65 78 70 65 63 74 65 64 20 74 6f d is expected to
a9a0: 20 62 65 20 72 65 74 75 72 6e 65 64 20 62 79 20 be returned by
a9b0: 74 68 65 0a 63 61 6c 6c 62 61 63 6b 2e 3c 2f 70 the.callback.</p
a9c0: 3e 0a 3c 64 6c 20 63 6c 61 73 73 3d 22 64 6f 63 >.<dl class="doc
a9d0: 74 6f 6f 6c 73 5f 6f 70 74 69 6f 6e 73 22 3e 0a tools_options">.
a9e0: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 <dt><b class="op
a9f0: 74 69 6f 6e 22 3e 70 61 73 73 77 6f 72 64 3c 2f tion">password</
aa00: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
aa10: 22 3e 72 77 66 6c 61 67 20 73 69 7a 65 3c 2f 69 ">rwflag size</i
aa20: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 49 6e ></dt>.<dd><p>In
aa30: 76 6f 6b 65 64 20 77 68 65 6e 20 6c 6f 61 64 69 voked when loadi
aa40: 6e 67 20 6f 72 20 73 74 6f 72 69 6e 67 20 61 6e ng or storing an
aa50: 20 65 6e 63 72 79 70 74 65 64 20 50 45 4d 20 63 encrypted PEM c
aa60: 65 72 74 69 66 69 63 61 74 65 2e 20 54 68 65 20 ertificate. The
aa70: 61 72 67 75 6d 65 6e 74 73 20 61 72 65 3a 3c 2f arguments are:</
aa80: 70 3e 0a 3c 64 6c 20 63 6c 61 73 73 3d 22 64 6f p>.<dl class="do
aa90: 63 74 6f 6f 6c 73 5f 64 65 66 69 6e 69 74 69 6f ctools_definitio
aaa0: 6e 73 22 3e 0a 3c 64 74 3e 3c 69 20 63 6c 61 73 ns">.<dt><i clas
aab0: 73 3d 22 61 72 67 22 3e 72 77 66 6c 61 67 3c 2f s="arg">rwflag</
aac0: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 i></dt>.<dd><p>T
aad0: 68 65 20 72 65 61 64 2f 77 72 69 74 65 20 66 6c he read/write fl
aae0: 61 67 20 69 73 20 30 20 66 6f 72 20 72 65 61 64 ag is 0 for read
aaf0: 69 6e 67 2f 64 65 63 72 79 70 74 69 6f 6e 20 6f ing/decryption o
ab00: 72 20 31 20 66 6f 72 20 77 72 69 74 69 6e 67 2f r 1 for writing/
ab10: 65 6e 63 72 79 70 74 69 6f 6e 2e 0a 54 68 65 20 encryption..The
ab20: 6c 61 74 74 65 72 20 63 61 6e 20 62 65 20 75 73 latter can be us
ab30: 65 64 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 ed to determine
ab40: 77 68 65 6e 20 74 6f 20 70 72 6f 6d 70 74 20 74 when to prompt t
ab50: 68 65 20 75 73 65 72 20 74 6f 20 63 6f 6e 66 69 he user to confi
ab60: 72 6d 2e 0a 54 68 69 73 20 61 72 67 75 6d 65 6e rm..This argumen
ab70: 74 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c t is new for Tcl
ab80: 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 TLS 1.8.</p></dd
ab90: 3e 0a 3c 64 74 3e 3c 69 20 63 6c 61 73 73 3d 22 >.<dt><i class="
aba0: 61 72 67 22 3e 73 69 7a 65 3c 2f 69 3e 3c 2f 64 arg">size</i></d
abb0: 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 73 69 t>.<dd><p>The si
abc0: 7a 65 20 69 73 20 74 68 65 20 6d 61 78 69 6d 75 ze is the maximu
abd0: 6d 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 m length of the
abe0: 70 61 73 73 77 6f 72 64 20 69 6e 20 62 79 74 65 password in byte
abf0: 73 2e 0a 54 68 69 73 20 61 72 67 75 6d 65 6e 74 s..This argument
ac00: 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 is new for TclT
ac10: 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e LS 1.8.</p></dd>
ac20: 0a 3c 2f 64 6c 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c .</dl></dd>.</dl
ac30: 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 69 64 >.</div>.<div id
ac40: 3d 22 73 75 62 73 65 63 74 69 6f 6e 36 22 20 63 ="subsection6" c
ac50: 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 lass="doctools_s
ac60: 75 62 73 65 63 74 69 6f 6e 22 3e 3c 68 33 3e 3c ubsection"><h3><
ac70: 61 20 6e 61 6d 65 3d 22 73 75 62 73 65 63 74 69 a name="subsecti
ac80: 6f 6e 36 22 3e 56 61 6c 75 65 73 20 66 6f 72 20 on6">Values for
ac90: 56 61 6c 69 64 61 74 65 20 43 6f 6d 6d 61 6e 64 Validate Command
aca0: 20 43 61 6c 6c 62 61 63 6b 3c 2f 61 3e 3c 2f 68 Callback</a></h
acb0: 33 3e 0a 3c 70 3e 54 68 65 20 63 61 6c 6c 62 61 3>.<p>The callba
acc0: 63 6b 20 66 6f 72 20 74 68 65 20 3c 62 20 63 6c ck for the <b cl
acd0: 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 76 61 ass="option">-va
ace0: 6c 69 64 61 74 65 63 6f 6d 6d 61 6e 64 3c 2f 62 lidatecommand</b
acf0: 3e 20 6f 70 74 69 6f 6e 20 69 73 20 69 6e 76 6f > option is invo
ad00: 6b 65 64 20 64 75 72 69 6e 67 20 74 68 65 20 68 ked during the h
ad10: 61 6e 64 73 68 61 6b 65 0a 70 72 6f 63 65 73 73 andshake.process
ad20: 20 69 6e 20 6f 72 64 65 72 20 66 6f 72 20 74 68 in order for th
ad30: 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 74 6f e application to
ad40: 20 76 61 6c 69 64 61 74 65 20 74 68 65 20 70 72 validate the pr
ad50: 6f 76 69 64 65 64 20 76 61 6c 75 65 28 73 29 2e ovided value(s).
ad60: 20 53 65 65 0a 62 65 6c 6f 77 20 66 6f 72 20 74 See.below for t
ad70: 68 65 20 70 6f 73 73 69 62 6c 65 20 61 72 67 75 he possible argu
ad80: 6d 65 6e 74 73 20 70 61 73 73 65 64 20 74 6f 20 ments passed to
ad90: 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 73 63 72 the callback scr
ada0: 69 70 74 2e 20 49 66 20 6e 6f 74 0a 73 70 65 63 ipt. If not.spec
adb0: 69 66 69 65 64 2c 20 4f 70 65 6e 53 53 4c 20 77 ified, OpenSSL w
adc0: 69 6c 6c 20 61 63 63 65 70 74 20 61 6c 6c 20 76 ill accept all v
add0: 61 6c 69 64 20 63 65 72 74 69 66 69 63 61 74 65 alid certificate
ade0: 73 20 61 6e 64 20 65 78 74 65 6e 73 69 6f 6e 73 s and extensions
adf0: 2e 20 54 6f 20 72 65 6a 65 63 74 0a 74 68 65 20 . To reject.the
ae00: 76 61 6c 75 65 20 61 6e 64 20 61 62 6f 72 74 20 value and abort
ae10: 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 the connection,
ae20: 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 73 68 6f the callback sho
ae30: 75 6c 64 20 72 65 74 75 72 6e 20 30 2e 20 54 6f uld return 0. To
ae40: 20 61 63 63 65 70 74 20 74 68 65 0a 76 61 6c 75 accept the.valu
ae50: 65 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 74 e and continue t
ae60: 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 69 he connection, i
ae70: 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 t should return
ae80: 31 2e 20 54 6f 20 72 65 6a 65 63 74 20 74 68 65 1. To reject the
ae90: 20 76 61 6c 75 65 2c 20 62 75 74 0a 63 6f 6e 74 value, but.cont
aea0: 69 6e 75 65 20 74 68 65 20 63 6f 6e 6e 65 63 74 inue the connect
aeb0: 69 6f 6e 2c 20 69 74 20 73 68 6f 75 6c 64 20 72 ion, it should r
aec0: 65 74 75 72 6e 20 32 2e 20 54 68 69 73 20 63 61 eturn 2. This ca
aed0: 6c 6c 62 61 63 6b 20 69 73 20 6e 65 77 20 66 6f llback is new fo
aee0: 72 20 54 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 r TclTLS 1.8.</p
aef0: 3e 0a 3c 64 6c 20 63 6c 61 73 73 3d 22 64 6f 63 >.<dl class="doc
af00: 74 6f 6f 6c 73 5f 6f 70 74 69 6f 6e 73 22 3e 0a tools_options">.
af10: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 <dt><b class="op
af20: 74 69 6f 6e 22 3e 61 6c 70 6e 3c 2f 62 3e 20 3c tion">alpn</b> <
af30: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 63 68 i class="arg">ch
af40: 61 6e 6e 65 6c 49 64 20 70 72 6f 74 6f 63 6f 6c annelId protocol
af50: 20 6d 61 74 63 68 3c 2f 69 3e 3c 2f 64 74 3e 0a match</i></dt>.
af60: 3c 64 64 3e 3c 70 3e 46 6f 72 20 73 65 72 76 65 <dd><p>For serve
af70: 72 73 2c 20 74 68 69 73 20 66 6f 72 6d 20 6f 66 rs, this form of
af80: 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 callback is inv
af90: 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 63 6c oked when the cl
afa0: 69 65 6e 74 20 41 4c 50 4e 20 65 78 74 65 6e 73 ient ALPN extens
afb0: 69 6f 6e 20 69 73 0a 72 65 63 65 69 76 65 64 2e ion is.received.
afc0: 20 49 66 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 If <i class="ar
afd0: 67 22 3e 6d 61 74 63 68 3c 2f 69 3e 20 69 73 20 g">match</i> is
afe0: 74 72 75 65 2c 20 74 68 65 6e 20 3c 69 20 63 6c true, then <i cl
aff0: 61 73 73 3d 22 61 72 67 22 3e 70 72 6f 74 6f 63 ass="arg">protoc
b000: 6f 6c 3c 2f 69 3e 20 69 73 20 74 68 65 20 66 69 ol</i> is the fi
b010: 72 73 74 0a 3c 62 20 63 6c 61 73 73 3d 22 6f 70 rst.<b class="op
b020: 74 69 6f 6e 22 3e 2d 61 6c 70 6e 3c 2f 62 3e 20 tion">-alpn</b>
b030: 70 72 6f 74 6f 63 6f 6c 20 6f 70 74 69 6f 6e 20 protocol option
b040: 69 6e 20 63 6f 6d 6d 6f 6e 20 74 6f 20 62 6f 74 in common to bot
b050: 68 20 74 68 65 20 63 6c 69 65 6e 74 20 61 6e 64 h the client and
b060: 20 73 65 72 76 65 72 2e 0a 49 66 20 6e 6f 74 2c server..If not,
b070: 20 74 68 65 20 66 69 72 73 74 20 63 6c 69 65 6e the first clien
b080: 74 20 73 70 65 63 69 66 69 65 64 20 70 72 6f 74 t specified prot
b090: 6f 63 6f 6c 20 69 73 20 75 73 65 64 2e 20 54 68 ocol is used. Th
b0a0: 69 73 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 63 is callback is c
b0b0: 61 6c 6c 65 64 0a 61 66 74 65 72 20 74 68 65 20 alled.after the
b0c0: 48 65 6c 6c 6f 20 61 6e 64 20 41 4c 50 4e 20 63 Hello and ALPN c
b0d0: 61 6c 6c 62 61 63 6b 73 2e 3c 2f 70 3e 3c 2f 64 allbacks.</p></d
b0e0: 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d d>.<dt><b class=
b0f0: 22 6f 70 74 69 6f 6e 22 3e 68 65 6c 6c 6f 3c 2f "option">hello</
b100: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
b110: 22 3e 63 68 61 6e 6e 65 6c 49 64 20 73 65 72 76 ">channelId serv
b120: 65 72 6e 61 6d 65 3c 2f 69 3e 3c 2f 64 74 3e 0a ername</i></dt>.
b130: 3c 64 64 3e 3c 70 3e 46 6f 72 20 73 65 72 76 65 <dd><p>For serve
b140: 72 73 2c 20 74 68 69 73 20 66 6f 72 6d 20 6f 66 rs, this form of
b150: 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 callback is inv
b160: 6f 6b 65 64 20 64 75 72 69 6e 67 20 63 6c 69 65 oked during clie
b170: 6e 74 20 68 65 6c 6c 6f 20 6d 65 73 73 61 67 65 nt hello message
b180: 0a 70 72 6f 63 65 73 73 69 6e 67 2e 20 54 68 65 .processing. The
b190: 20 70 75 72 70 6f 73 65 20 69 73 20 73 6f 20 74 purpose is so t
b1a0: 68 65 20 73 65 72 76 65 72 20 63 61 6e 20 73 65 he server can se
b1b0: 6c 65 63 74 20 74 68 65 20 61 70 70 72 6f 70 72 lect the appropr
b1c0: 69 61 74 65 20 63 65 72 74 69 66 69 63 61 74 65 iate certificate
b1d0: 0a 74 6f 20 70 72 65 73 65 6e 74 20 74 6f 20 74 .to present to t
b1e0: 68 65 20 63 6c 69 65 6e 74 2c 20 61 6e 64 20 74 he client, and t
b1f0: 6f 20 6d 61 6b 65 20 6f 74 68 65 72 20 63 6f 6e o make other con
b200: 66 69 67 75 72 61 74 69 6f 6e 20 61 64 6a 75 73 figuration adjus
b210: 74 6d 65 6e 74 73 20 72 65 6c 65 76 61 6e 74 0a tments relevant.
b220: 74 6f 20 74 68 61 74 20 73 65 72 76 65 72 20 6e to that server n
b230: 61 6d 65 20 61 6e 64 20 69 74 73 20 63 6f 6e 66 ame and its conf
b240: 69 67 75 72 61 74 69 6f 6e 2e 20 49 74 20 69 73 iguration. It is
b250: 20 63 61 6c 6c 65 64 20 62 65 66 6f 72 65 20 74 called before t
b260: 68 65 20 53 4e 49 20 61 6e 64 20 41 4c 50 4e 0a he SNI and ALPN.
b270: 63 61 6c 6c 62 61 63 6b 73 2e 3c 2f 70 3e 3c 2f callbacks.</p></
b280: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
b290: 3d 22 6f 70 74 69 6f 6e 22 3e 73 6e 69 3c 2f 62 ="option">sni</b
b2a0: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
b2b0: 3e 63 68 61 6e 6e 65 6c 49 64 20 73 65 72 76 65 >channelId serve
b2c0: 72 6e 61 6d 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c rname</i></dt>.<
b2d0: 64 64 3e 3c 70 3e 46 6f 72 20 73 65 72 76 65 72 dd><p>For server
b2e0: 73 2c 20 74 68 69 73 20 66 6f 72 6d 20 6f 66 20 s, this form of
b2f0: 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 6f callback is invo
b300: 6b 65 64 20 77 68 65 6e 20 74 68 65 20 53 65 72 ked when the Ser
b310: 76 65 72 20 4e 61 6d 65 20 49 6e 64 69 63 61 74 ver Name Indicat
b320: 69 6f 6e 0a 28 53 4e 49 29 20 65 78 74 65 6e 73 ion.(SNI) extens
b330: 69 6f 6e 20 69 73 20 72 65 63 65 69 76 65 64 2e ion is received.
b340: 20 54 68 65 20 3c 69 20 63 6c 61 73 73 3d 22 61 The <i class="a
b350: 72 67 22 3e 73 65 72 76 65 72 6e 61 6d 65 3c 2f rg">servername</
b360: 69 3e 20 61 72 67 75 6d 65 6e 74 20 69 73 20 74 i> argument is t
b370: 68 65 20 63 6c 69 65 6e 74 0a 70 72 6f 76 69 64 he client.provid
b380: 65 64 20 73 65 72 76 65 72 20 6e 61 6d 65 20 73 ed server name s
b390: 70 65 63 69 66 69 65 64 20 69 6e 20 74 68 65 20 pecified in the
b3a0: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
b3b0: 22 3e 2d 73 65 72 76 65 72 6e 61 6d 65 26 6c 74 ">-servername<
b3c0: 3b 2f 62 26 67 74 3b 3c 2f 62 3e 20 6f 70 74 69 ;/b></b> opti
b3d0: 6f 6e 2e 20 54 68 65 0a 70 75 72 70 6f 73 65 20 on. The.purpose
b3e0: 69 73 20 73 6f 20 77 68 65 6e 20 61 20 73 65 72 is so when a ser
b3f0: 76 65 72 20 73 75 70 70 6f 72 74 73 20 6d 75 6c ver supports mul
b400: 74 69 70 6c 65 20 6e 61 6d 65 73 2c 20 74 68 65 tiple names, the
b410: 20 72 69 67 68 74 20 63 65 72 74 69 66 69 63 61 right certifica
b420: 74 65 0a 63 61 6e 20 62 65 20 75 73 65 64 2e 20 te.can be used.
b430: 49 74 20 69 73 20 63 61 6c 6c 65 64 20 61 66 74 It is called aft
b440: 65 72 20 74 68 65 20 68 65 6c 6c 6f 20 63 61 6c er the hello cal
b450: 6c 62 61 63 6b 20 62 75 74 20 62 65 66 6f 72 65 lback but before
b460: 20 74 68 65 20 41 4c 50 4e 0a 63 61 6c 6c 62 61 the ALPN.callba
b470: 63 6b 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 ck.</p></dd>.<dt
b480: 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f ><b class="optio
b490: 6e 22 3e 76 65 72 69 66 79 3c 2f 62 3e 20 3c 69 n">verify</b> <i
b4a0: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 63 68 61 class="arg">cha
b4b0: 6e 6e 65 6c 49 64 20 64 65 70 74 68 20 63 65 72 nnelId depth cer
b4c0: 74 20 73 74 61 74 75 73 20 65 72 72 6f 72 3c 2f t status error</
b4d0: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 i></dt>.<dd><p>T
b4e0: 68 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c his form of call
b4f0: 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20 back is invoked
b500: 62 79 20 4f 70 65 6e 53 53 4c 20 77 68 65 6e 20 by OpenSSL when
b510: 61 20 6e 65 77 20 63 65 72 74 69 66 69 63 61 74 a new certificat
b520: 65 20 69 73 20 72 65 63 65 69 76 65 64 0a 66 72 e is received.fr
b530: 6f 6d 20 74 68 65 20 70 65 65 72 2e 20 49 74 20 om the peer. It
b540: 61 6c 6c 6f 77 73 20 74 68 65 20 63 6c 69 65 6e allows the clien
b550: 74 20 74 6f 20 63 68 65 63 6b 20 74 68 65 20 63 t to check the c
b560: 65 72 74 69 66 69 63 61 74 65 20 76 65 72 69 66 ertificate verif
b570: 69 63 61 74 69 6f 6e 0a 72 65 73 75 6c 74 73 20 ication.results
b580: 61 6e 64 20 63 68 6f 6f 73 65 20 77 68 65 74 68 and choose wheth
b590: 65 72 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 6f er to continue o
b5a0: 72 20 6e 6f 74 2e 20 49 74 20 69 73 20 63 61 6c r not. It is cal
b5b0: 6c 65 64 20 66 6f 72 20 65 61 63 68 0a 63 65 72 led for each.cer
b5c0: 74 69 66 69 63 61 74 65 20 69 6e 20 74 68 65 20 tificate in the
b5d0: 63 65 72 74 69 66 69 63 61 74 65 20 63 68 61 69 certificate chai
b5e0: 6e 2e 20 54 68 69 73 20 63 61 6c 6c 62 61 63 6b n. This callback
b5f0: 20 77 61 73 20 6d 6f 76 65 64 20 66 72 6f 6d 0a was moved from.
b600: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
b610: 22 3e 2d 63 6f 6d 6d 61 6e 64 3c 2f 62 3e 20 69 ">-command</b> i
b620: 6e 20 54 63 6c 54 4c 53 20 31 2e 38 2e 20 54 68 n TclTLS 1.8. Th
b630: 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 3a e arguments are:
b640: 3c 2f 70 3e 0a 3c 64 6c 20 63 6c 61 73 73 3d 22 </p>.<dl class="
b650: 64 6f 63 74 6f 6f 6c 73 5f 64 65 66 69 6e 69 74 doctools_definit
b660: 69 6f 6e 73 22 3e 0a 3c 64 74 3e 3c 69 20 63 6c ions">.<dt><i cl
b670: 61 73 73 3d 22 61 72 67 22 3e 64 65 70 74 68 3c ass="arg">depth<
b680: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
b690: 54 68 65 20 64 65 70 74 68 20 69 73 20 74 68 65 The depth is the
b6a0: 20 69 6e 74 65 67 65 72 20 64 65 70 74 68 20 6f integer depth o
b6b0: 66 20 74 68 65 20 63 65 72 74 69 66 69 63 61 74 f the certificat
b6c0: 65 20 69 6e 20 74 68 65 20 63 65 72 74 69 66 69 e in the certifi
b6d0: 63 61 74 65 20 63 68 61 69 6e 2c 0a 77 68 65 72 cate chain,.wher
b6e0: 65 20 30 20 69 73 20 74 68 65 20 70 65 65 72 20 e 0 is the peer
b6f0: 63 65 72 74 69 66 69 63 61 74 65 20 61 6e 64 20 certificate and
b700: 68 69 67 68 65 72 20 76 61 6c 75 65 73 20 67 6f higher values go
b710: 69 6e 67 20 75 70 20 74 6f 20 74 68 65 20 43 65 ing up to the Ce
b720: 72 74 69 66 69 63 61 74 65 0a 41 75 74 68 6f 72 rtificate.Author
b730: 69 74 79 20 28 43 41 29 2e 3c 2f 70 3e 3c 2f 64 ity (CA).</p></d
b740: 64 3e 0a 3c 64 74 3e 3c 69 20 63 6c 61 73 73 3d d>.<dt><i class=
b750: 22 61 72 67 22 3e 63 65 72 74 3c 2f 69 3e 3c 2f "arg">cert</i></
b760: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 63 dt>.<dd><p>The c
b770: 65 72 74 20 61 72 67 75 6d 65 6e 74 20 69 73 20 ert argument is
b780: 61 20 6c 69 73 74 20 6f 66 20 6b 65 79 2d 76 61 a list of key-va
b790: 6c 75 65 20 70 61 69 72 73 20 73 69 6d 69 6c 61 lue pairs simila
b7a0: 72 20 74 6f 20 74 68 6f 73 65 20 72 65 74 75 72 r to those retur
b7b0: 6e 65 64 20 62 79 0a 3c 62 20 63 6c 61 73 73 3d ned by.<b class=
b7c0: 22 63 6d 64 22 3e 74 6c 73 3a 3a 73 74 61 74 75 "cmd">tls::statu
b7d0: 73 3c 2f 62 3e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a s</b>.</p></dd>.
b7e0: 3c 64 74 3e 3c 69 20 63 6c 61 73 73 3d 22 61 72 <dt><i class="ar
b7f0: 67 22 3e 73 74 61 74 75 73 3c 2f 69 3e 3c 2f 64 g">status</i></d
b800: 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 73 74 t>.<dd><p>The st
b810: 61 74 75 73 20 61 72 67 75 6d 65 6e 74 20 69 73 atus argument is
b820: 20 74 68 65 20 62 6f 6f 6c 65 61 6e 20 76 61 6c the boolean val
b830: 69 64 69 74 79 20 6f 66 20 74 68 65 20 63 75 72 idity of the cur
b840: 72 65 6e 74 20 63 65 72 74 69 66 69 63 61 74 65 rent certificate
b850: 20 77 68 65 72 65 20 30 0a 69 73 20 69 6e 76 61 where 0.is inva
b860: 6c 69 64 20 61 6e 64 20 31 20 69 73 20 76 61 6c lid and 1 is val
b870: 69 64 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 id.</p></dd>.<dt
b880: 3e 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e ><i class="arg">
b890: 65 72 72 6f 72 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c error</i></dt>.<
b8a0: 64 64 3e 3c 70 3e 54 68 65 20 65 72 72 6f 72 20 dd><p>The error
b8b0: 61 72 67 75 6d 65 6e 74 20 69 73 20 74 68 65 20 argument is the
b8c0: 65 72 72 6f 72 20 6d 65 73 73 61 67 65 2c 20 69 error message, i
b8d0: 66 20 61 6e 79 2c 20 67 65 6e 65 72 61 74 65 64 f any, generated
b8e0: 20 62 79 0a 3c 62 20 63 6c 61 73 73 3d 22 66 75 by.<b class="fu
b8f0: 6e 63 74 69 6f 6e 22 3e 58 35 30 39 5f 53 54 4f nction">X509_STO
b900: 52 45 5f 43 54 58 5f 67 65 74 5f 65 72 72 6f 72 RE_CTX_get_error
b910: 28 29 3c 2f 62 3e 2e 3c 2f 70 3e 3c 2f 64 64 3e ()</b>.</p></dd>
b920: 0a 3c 2f 64 6c 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c .</dl></dd>.</dl
b930: 3e 0a 3c 70 3e 52 65 66 65 72 65 6e 63 65 20 69 >.<p>Reference i
b940: 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 6f mplementations o
b950: 66 20 74 68 65 73 65 20 63 61 6c 6c 62 61 63 6b f these callback
b960: 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 20 69 s are provided i
b970: 6e 20 26 71 75 6f 74 3b 3c 62 20 63 6c 61 73 73 n "<b class
b980: 3d 22 66 69 6c 65 22 3e 74 6c 73 2e 74 63 6c 3c ="file">tls.tcl<
b990: 2f 62 3e 26 71 75 6f 74 3b 0a 61 73 20 3c 62 20 /b>".as <b
b9a0: 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a class="cmd">tls:
b9b0: 3a 63 61 6c 6c 62 61 63 6b 3c 2f 62 3e 2c 20 3c :callback</b>, <
b9c0: 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c b class="cmd">tl
b9d0: 73 3a 3a 70 61 73 73 77 6f 72 64 3c 2f 62 3e 2c s::password</b>,
b9e0: 20 61 6e 64 20 3c 62 20 63 6c 61 73 73 3d 22 63 and <b class="c
b9f0: 6d 64 22 3e 74 6c 73 3a 3a 76 61 6c 69 64 61 74 md">tls::validat
ba00: 65 5f 63 6f 6d 6d 61 6e 64 3c 2f 62 3e 0a 72 65 e_command</b>.re
ba10: 73 70 65 63 74 69 76 65 6c 79 2e 20 4e 6f 74 65 spectively. Note
ba20: 20 74 68 61 74 20 74 68 65 73 65 20 61 72 65 20 that these are
ba30: 6f 6e 6c 79 20 3c 65 6d 3e 73 61 6d 70 6c 65 3c only <em>sample<
ba40: 2f 65 6d 3e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 /em> implementat
ba50: 69 6f 6e 73 2e 20 49 6e 20 61 20 6d 6f 72 65 0a ions. In a more.
ba60: 72 65 61 6c 69 73 74 69 63 20 64 65 70 6c 6f 79 realistic deploy
ba70: 6d 65 6e 74 20 79 6f 75 20 77 6f 75 6c 64 20 73 ment you would s
ba80: 70 65 63 69 66 79 20 79 6f 75 72 20 6f 77 6e 20 pecify your own
ba90: 63 61 6c 6c 62 61 63 6b 20 73 63 72 69 70 74 73 callback scripts
baa0: 20 6f 6e 20 65 61 63 68 20 54 4c 53 0a 63 68 61 on each TLS.cha
bab0: 6e 6e 65 6c 20 75 73 69 6e 67 20 74 68 65 20 3c nnel using the <
bac0: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
bad0: 3e 2d 63 6f 6d 6d 61 6e 64 3c 2f 62 3e 2c 20 3c >-command</b>, <
bae0: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
baf0: 3e 2d 70 61 73 73 77 6f 72 64 3c 2f 62 3e 2c 20 >-password</b>,
bb00: 61 6e 64 0a 3c 62 20 63 6c 61 73 73 3d 22 6f 70 and.<b class="op
bb10: 74 69 6f 6e 22 3e 2d 76 61 6c 69 64 61 74 65 5f tion">-validate_
bb20: 63 6f 6d 6d 61 6e 64 3c 2f 62 3e 20 6f 70 74 69 command</b> opti
bb30: 6f 6e 73 2e 3c 2f 70 3e 0a 3c 70 3e 54 68 65 20 ons.</p>.<p>The
bb40: 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f 72 default behavior
bb50: 20 77 68 65 6e 20 74 68 65 20 3c 62 20 63 6c 61 when the <b cla
bb60: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 6f 6d ss="option">-com
bb70: 6d 61 6e 64 3c 2f 62 3e 20 61 6e 64 20 3c 62 20 mand</b> and <b
bb80: 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d class="option">-
bb90: 76 61 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 6e 64 validate_command
bba0: 3c 2f 62 3e 0a 6f 70 74 69 6f 6e 73 20 61 72 65 </b>.options are
bbb0: 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 2c 20 not specified,
bbc0: 69 73 20 66 6f 72 20 54 63 6c 54 4c 53 20 74 6f is for TclTLS to
bbd0: 20 70 72 6f 63 65 73 73 20 74 68 65 20 61 73 73 process the ass
bbe0: 6f 63 69 61 74 65 64 20 6c 69 62 72 61 72 79 0a ociated library.
bbf0: 63 61 6c 6c 62 61 63 6b 73 20 69 6e 74 65 72 6e callbacks intern
bc00: 61 6c 6c 79 2e 20 54 68 65 20 64 65 66 61 75 6c ally. The defaul
bc10: 74 20 62 65 68 61 76 69 6f 72 20 77 68 65 6e 20 t behavior when
bc20: 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 the <b class="op
bc30: 74 69 6f 6e 22 3e 2d 70 61 73 73 77 6f 72 64 3c tion">-password<
bc40: 2f 62 3e 20 6f 70 74 69 6f 6e 0a 69 73 20 6e 6f /b> option.is no
bc50: 74 20 73 70 65 63 69 66 69 65 64 20 69 73 20 66 t specified is f
bc60: 6f 72 20 54 63 6c 54 4c 53 20 74 6f 20 70 72 6f or TclTLS to pro
bc70: 63 65 73 73 20 74 68 65 20 61 73 73 6f 63 69 61 cess the associa
bc80: 74 65 64 20 6c 69 62 72 61 72 79 20 63 61 6c 6c ted library call
bc90: 62 61 63 6b 73 20 62 79 0a 61 74 74 65 6d 70 74 backs by.attempt
bca0: 69 6e 67 20 74 6f 20 63 61 6c 6c 20 3c 62 20 63 ing to call <b c
bcb0: 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a lass="cmd">tls::
bcc0: 70 61 73 73 77 6f 72 64 3c 2f 62 3e 2e 20 54 68 password</b>. Th
bcd0: 65 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 e difference bet
bce0: 77 65 65 6e 20 74 68 65 73 65 20 74 77 6f 0a 62 ween these two.b
bcf0: 65 68 61 76 69 6f 72 73 20 69 73 20 61 20 63 6f ehaviors is a co
bd00: 6e 73 65 71 75 65 6e 63 65 20 6f 66 20 6d 61 69 nsequence of mai
bd10: 6e 74 61 69 6e 69 6e 67 20 63 6f 6d 70 61 74 69 ntaining compati
bd20: 62 69 6c 69 74 79 20 77 69 74 68 20 65 61 72 6c bility with earl
bd30: 69 65 72 0a 69 6d 70 6c 65 6d 65 6e 74 61 74 69 ier.implementati
bd40: 6f 6e 73 2e 3c 2f 70 3e 0a 3c 70 3e 3c 65 6d 3e ons.</p>.<p><em>
bd50: 54 68 65 20 75 73 65 20 6f 66 20 74 68 65 20 72 The use of the r
bd60: 65 66 65 72 65 6e 63 65 20 63 61 6c 6c 62 61 63 eference callbac
bd70: 6b 73 20 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 ks <b class="cmd
bd80: 22 3e 74 6c 73 3a 3a 63 61 6c 6c 62 61 63 6b 3c ">tls::callback<
bd90: 2f 62 3e 2c 20 3c 62 20 63 6c 61 73 73 3d 22 63 /b>, <b class="c
bda0: 6d 64 22 3e 74 6c 73 3a 3a 70 61 73 73 77 6f 72 md">tls::passwor
bdb0: 64 3c 2f 62 3e 2c 0a 61 6e 64 20 3c 62 20 63 6c d</b>,.and <b cl
bdc0: 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 76 ass="cmd">tls::v
bdd0: 61 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 6e 64 3c alidate_command<
bde0: 2f 62 3e 20 69 73 20 6e 6f 74 20 72 65 63 6f 6d /b> is not recom
bdf0: 6d 65 6e 64 65 64 2e 20 54 68 65 79 20 6d 61 79 mended. They may
be00: 20 62 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d be removed from
be10: 20 66 75 74 75 72 65 20 72 65 6c 65 61 73 65 73 future releases
be20: 2e 3c 2f 65 6d 3e 3c 2f 70 3e 0a 3c 2f 64 69 76 .</em></p>.</div
be30: 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 69 64 >.</div>.<div id
be40: 3d 22 73 65 63 74 69 6f 6e 35 22 20 63 6c 61 73 ="section5" clas
be50: 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 s="doctools_sect
be60: 69 6f 6e 22 3e 3c 68 32 3e 3c 61 20 6e 61 6d 65 ion"><h2><a name
be70: 3d 22 73 65 63 74 69 6f 6e 35 22 3e 44 65 62 75 ="section5">Debu
be80: 67 3c 2f 61 3e 3c 2f 68 32 3e 0a 3c 70 3e 46 6f g</a></h2>.<p>Fo
be90: 72 20 6d 6f 73 74 20 64 65 62 75 67 67 69 6e 67 r most debugging
bea0: 20 6e 65 65 64 73 2c 20 74 68 65 20 3c 62 20 63 needs, the <b c
beb0: 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 lass="option">-c
bec0: 61 6c 6c 62 61 63 6b 3c 2f 62 3e 20 6f 70 74 69 allback</b> opti
bed0: 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 on can be used t
bee0: 6f 20 70 72 6f 76 69 64 65 0a 73 75 66 66 69 63 o provide.suffic
bef0: 69 65 6e 74 20 69 6e 73 69 67 68 74 20 61 6e 64 ient insight and
bf00: 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 information on
bf10: 74 68 65 20 54 4c 53 20 68 61 6e 64 73 68 61 6b the TLS handshak
bf20: 65 20 61 6e 64 20 70 72 6f 67 72 65 73 73 2e 20 e and progress.
bf30: 49 66 0a 66 75 72 74 68 65 72 20 74 72 6f 75 62 If.further troub
bf40: 6c 65 73 68 6f 6f 74 69 6e 67 20 69 6e 73 69 67 leshooting insig
bf50: 68 74 20 69 73 20 6e 65 65 64 65 64 2c 20 74 68 ht is needed, th
bf60: 65 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 6f e compile time o
bf70: 70 74 69 6f 6e 0a 3c 62 20 63 6c 61 73 73 3d 22 ption.<b class="
bf80: 6f 70 74 69 6f 6e 22 3e 2d 2d 65 6e 61 62 6c 65 option">--enable
bf90: 2d 64 65 62 75 67 3c 2f 62 3e 20 63 61 6e 20 62 -debug</b> can b
bfa0: 65 20 75 73 65 64 20 74 6f 20 67 65 74 20 64 65 e used to get de
bfb0: 74 61 69 6c 65 64 20 65 78 65 63 75 74 69 6f 6e tailed execution
bfc0: 20 66 6c 6f 77 20 73 74 61 74 75 73 2e 3c 2f 70 flow status.</p
bfd0: 3e 0a 3c 70 3e 54 4c 53 20 6b 65 79 20 6c 6f 67 >.<p>TLS key log
bfe0: 67 69 6e 67 20 63 61 6e 20 62 65 20 65 6e 61 62 ging can be enab
bff0: 6c 65 64 20 62 79 20 73 65 74 74 69 6e 67 20 74 led by setting t
c000: 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 he environment v
c010: 61 72 69 61 62 6c 65 0a 3c 62 20 63 6c 61 73 73 ariable.<b class
c020: 3d 22 76 61 72 69 61 62 6c 65 22 3e 53 53 4c 4b ="variable">SSLK
c030: 45 59 4c 4f 47 46 49 4c 45 3c 2f 62 3e 20 74 6f EYLOGFILE</b> to
c040: 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 the name of the
c050: 20 66 69 6c 65 20 74 6f 20 6c 6f 67 20 74 6f 2e file to log to.
c060: 20 54 68 65 6e 20 77 68 65 6e 65 76 65 72 20 54 Then whenever T
c070: 4c 53 20 6b 65 79 0a 6d 61 74 65 72 69 61 6c 20 LS key.material
c080: 69 73 20 67 65 6e 65 72 61 74 65 64 20 6f 72 20 is generated or
c090: 72 65 63 65 69 76 65 64 20 69 74 20 77 69 6c 6c received it will
c0a0: 20 62 65 20 6c 6f 67 67 65 64 20 74 6f 20 74 68 be logged to th
c0b0: 65 20 66 69 6c 65 2e 20 54 68 69 73 20 69 73 20 e file. This is
c0c0: 75 73 65 66 75 6c 0a 66 6f 72 20 6c 6f 67 67 69 useful.for loggi
c0d0: 6e 67 20 6b 65 79 20 64 61 74 61 20 66 6f 72 20 ng key data for
c0e0: 6e 65 74 77 6f 72 6b 20 6c 6f 67 67 69 6e 67 20 network logging
c0f0: 74 6f 6f 6c 73 20 74 6f 20 75 73 65 20 74 6f 20 tools to use to
c100: 64 65 63 72 79 70 74 20 74 68 65 20 64 61 74 61 decrypt the data
c110: 2e 3c 2f 70 3e 0a 3c 70 3e 54 68 65 20 3c 62 20 .</p>.<p>The <b
c120: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
c130: 3e 74 6c 73 3a 3a 64 65 62 75 67 3c 2f 62 3e 20 >tls::debug</b>
c140: 76 61 72 69 61 62 6c 65 20 70 72 6f 76 69 64 65 variable provide
c150: 73 20 73 6f 6d 65 20 61 64 64 69 74 69 6f 6e 61 s some additiona
c160: 6c 20 63 6f 6e 74 72 6f 6c 20 6f 76 65 72 20 74 l control over t
c170: 68 65 0a 64 65 62 75 67 20 6c 6f 67 67 69 6e 67 he.debug logging
c180: 20 69 6e 20 74 68 65 20 3c 62 20 63 6c 61 73 73 in the <b class
c190: 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 63 61 6c 6c ="cmd">tls::call
c1a0: 62 61 63 6b 3c 2f 62 3e 2c 20 3c 62 20 63 6c 61 back</b>, <b cla
c1b0: 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 70 61 ss="cmd">tls::pa
c1c0: 73 73 77 6f 72 64 3c 2f 62 3e 2c 20 61 6e 64 0a ssword</b>, and.
c1d0: 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 <b class="cmd">t
c1e0: 6c 73 3a 3a 76 61 6c 69 64 61 74 65 5f 63 6f 6d ls::validate_com
c1f0: 6d 61 6e 64 3c 2f 62 3e 20 64 65 66 61 75 6c 74 mand</b> default
c200: 20 68 61 6e 64 6c 65 72 73 20 69 6e 20 26 71 75 handlers in &qu
c210: 6f 74 3b 3c 62 20 63 6c 61 73 73 3d 22 66 69 6c ot;<b class="fil
c220: 65 22 3e 74 6c 73 2e 74 63 6c 3c 2f 62 3e 26 71 e">tls.tcl</b>&q
c230: 75 6f 74 3b 2e 0a 54 68 65 20 64 65 66 61 75 6c uot;..The defaul
c240: 74 20 76 61 6c 75 65 20 69 73 20 30 20 77 69 74 t value is 0 wit
c250: 68 20 68 69 67 68 65 72 20 76 61 6c 75 65 73 20 h higher values
c260: 70 72 6f 64 75 63 69 6e 67 20 6d 6f 72 65 20 64 producing more d
c270: 69 61 67 6e 6f 73 74 69 63 20 6f 75 74 70 75 74 iagnostic output
c280: 2c 0a 61 6e 64 20 77 69 6c 6c 20 61 6c 73 6f 20 ,.and will also
c290: 66 6f 72 63 65 20 74 68 65 20 76 65 72 69 66 79 force the verify
c2a0: 20 6d 65 74 68 6f 64 20 69 6e 20 3c 62 20 63 6c method in <b cl
c2b0: 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 63 ass="cmd">tls::c
c2c0: 61 6c 6c 62 61 63 6b 3c 2f 62 3e 20 74 6f 20 61 allback</b> to a
c2d0: 63 63 65 70 74 20 74 68 65 0a 63 65 72 74 69 66 ccept the.certif
c2e0: 69 63 61 74 65 2c 20 65 76 65 6e 20 69 66 20 69 icate, even if i
c2f0: 74 20 69 73 20 69 6e 76 61 6c 69 64 20 77 68 65 t is invalid whe
c300: 6e 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 n the <b class="
c310: 6f 70 74 69 6f 6e 22 3e 2d 76 61 6c 69 64 61 74 option">-validat
c320: 65 63 6f 6d 6d 61 6e 64 3c 2f 62 3e 0a 6f 70 74 ecommand</b>.opt
c330: 69 6f 6e 20 69 73 20 73 65 74 20 74 6f 20 3c 62 ion is set to <b
c340: 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 class="cmd">tls
c350: 3a 3a 76 61 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 ::validate_comma
c360: 6e 64 3c 2f 62 3e 2e 3c 2f 70 3e 0a 3c 70 3e 3c nd</b>.</p>.<p><
c370: 65 6d 3e 54 68 65 20 75 73 65 20 6f 66 20 74 68 em>The use of th
c380: 65 20 76 61 72 69 61 62 6c 65 20 3c 62 20 63 6c e variable <b cl
c390: 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 74 ass="variable">t
c3a0: 6c 73 3a 3a 64 65 62 75 67 3c 2f 62 3e 20 69 73 ls::debug</b> is
c3b0: 20 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64 65 64 not recommended
c3c0: 2e 0a 49 74 20 6d 61 79 20 62 65 20 72 65 6d 6f ..It may be remo
c3d0: 76 65 64 20 66 72 6f 6d 20 66 75 74 75 72 65 20 ved from future
c3e0: 72 65 6c 65 61 73 65 73 2e 3c 2f 65 6d 3e 3c 2f releases.</em></
c3f0: 70 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 69 p>.</div>.<div i
c400: 64 3d 22 73 65 63 74 69 6f 6e 36 22 20 63 6c 61 d="section6" cla
c410: 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 63 ss="doctools_sec
c420: 74 69 6f 6e 22 3e 3c 68 32 3e 3c 61 20 6e 61 6d tion"><h2><a nam
c430: 65 3d 22 73 65 63 74 69 6f 6e 36 22 3e 48 54 54 e="section6">HTT
c440: 50 20 50 61 63 6b 61 67 65 20 45 78 61 6d 70 6c P Package Exampl
c450: 65 73 3c 2f 61 3e 3c 2f 68 32 3e 0a 3c 70 3e 54 es</a></h2>.<p>T
c460: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 61 72 65 he following are
c470: 20 65 78 61 6d 70 6c 65 20 73 63 72 69 70 74 73 example scripts
c480: 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 61 20 77 to download a w
c490: 65 62 70 61 67 65 20 61 6e 64 20 66 69 6c 65 20 ebpage and file
c4a0: 75 73 69 6e 67 20 74 68 65 0a 68 74 74 70 20 70 using the.http p
c4b0: 61 63 6b 61 67 65 2e 20 53 65 65 20 3c 73 70 61 ackage. See <spa
c4c0: 6e 20 63 6c 61 73 73 3d 22 73 65 63 74 72 65 66 n class="sectref
c4d0: 22 3e 3c 61 20 68 72 65 66 3d 22 23 73 65 63 74 "><a href="#sect
c4e0: 69 6f 6e 33 22 3e 43 65 72 74 69 66 69 63 61 74 ion3">Certificat
c4f0: 65 20 56 61 6c 69 64 61 74 69 6f 6e 3c 2f 61 3e e Validation</a>
c500: 3c 2f 73 70 61 6e 3e 20 66 6f 72 20 77 68 65 74 </span> for whet
c510: 68 65 72 20 74 68 65 0a 3c 62 20 63 6c 61 73 73 her the.<b class
c520: 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 64 69 72 ="option">-cadir
c530: 3c 2f 62 3e 2c 20 3c 62 20 63 6c 61 73 73 3d 22 </b>, <b class="
c540: 6f 70 74 69 6f 6e 22 3e 2d 63 61 66 69 6c 65 3c option">-cafile<
c550: 2f 62 3e 2c 20 61 6e 64 20 3c 62 20 63 6c 61 73 /b>, and <b clas
c560: 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 73 74 s="option">-cast
c570: 6f 72 65 3c 2f 62 3e 20 6f 70 74 69 6f 6e 73 20 ore</b> options
c580: 61 72 65 20 61 6c 73 6f 0a 6e 65 65 64 65 64 2e are also.needed.
c590: 20 53 65 65 20 74 68 65 20 64 65 6d 6f 73 20 64 See the demos d
c5a0: 69 72 65 63 74 6f 72 79 20 66 6f 72 20 6d 6f 72 irectory for mor
c5b0: 65 20 65 78 61 6d 70 6c 65 20 73 63 72 69 70 74 e example script
c5c0: 73 2e 3c 2f 70 3e 0a 3c 70 3e 45 78 61 6d 70 6c s.</p>.<p>Exampl
c5d0: 65 20 23 31 3a 20 44 6f 77 6e 6c 6f 61 64 20 61 e #1: Download a
c5e0: 20 77 65 62 20 70 61 67 65 3c 2f 70 3e 0a 3c 70 web page</p>.<p
c5f0: 72 65 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f re class="doctoo
c600: 6c 73 5f 65 78 61 6d 70 6c 65 22 3e 0a 70 61 63 ls_example">.pac
c610: 6b 61 67 65 20 72 65 71 75 69 72 65 20 68 74 74 kage require htt
c620: 70 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 p.package requir
c630: 65 20 74 6c 73 0a 73 65 74 20 75 72 6c 20 26 71 e tls.set url &q
c640: 75 6f 74 3b 68 74 74 70 73 3a 2f 2f 77 77 77 2e uot;https://www.
c650: 74 63 6c 2e 74 6b 2f 26 71 75 6f 74 3b 0a 68 74 tcl.tk/".ht
c660: 74 70 3a 3a 72 65 67 69 73 74 65 72 20 68 74 74 tp::register htt
c670: 70 73 20 34 34 33 20 5b 6c 69 73 74 20 3a 3a 74 ps 443 [list ::t
c680: 6c 73 3a 3a 73 6f 63 6b 65 74 20 2d 61 75 74 6f ls::socket -auto
c690: 73 65 72 76 65 72 6e 61 6d 65 20 31 20 2d 72 65 servername 1 -re
c6a0: 71 75 69 72 65 20 31 5d 0a 23 20 47 65 74 20 55 quire 1].# Get U
c6b0: 52 4c 0a 73 65 74 20 74 6f 6b 65 6e 20 5b 68 74 RL.set token [ht
c6c0: 74 70 3a 3a 67 65 74 75 72 6c 20 24 75 72 6c 5d tp::geturl $url]
c6d0: 0a 23 20 43 68 65 63 6b 20 66 6f 72 20 65 72 72 .# Check for err
c6e0: 6f 72 0a 69 66 20 7b 5b 68 74 74 70 3a 3a 73 74 or.if {[http::st
c6f0: 61 74 75 73 20 24 74 6f 6b 65 6e 5d 20 6e 65 20 atus $token] ne
c700: 26 71 75 6f 74 3b 6f 6b 26 71 75 6f 74 3b 7d 20 "ok"}
c710: 7b 0a 20 20 20 20 70 75 74 73 20 5b 66 6f 72 6d {. puts [form
c720: 61 74 20 26 71 75 6f 74 3b 45 72 72 6f 72 20 25 at "Error %
c730: 73 26 71 75 6f 74 3b 20 5b 68 74 74 70 3a 3a 73 s" [http::s
c740: 74 61 74 75 73 20 24 74 6f 6b 65 6e 5d 5d 0a 7d tatus $token]].}
c750: 0a 23 20 53 61 76 65 20 77 65 62 20 70 61 67 65 .# Save web page
c760: 20 74 6f 20 66 69 6c 65 0a 73 65 74 20 63 68 20 to file.set ch
c770: 5b 6f 70 65 6e 20 65 78 61 6d 70 6c 65 2e 68 74 [open example.ht
c780: 6d 6c 20 77 62 5d 0a 70 75 74 73 20 24 63 68 20 ml wb].puts $ch
c790: 5b 68 74 74 70 3a 3a 64 61 74 61 20 24 74 6f 6b [http::data $tok
c7a0: 65 6e 5d 0a 63 6c 6f 73 65 20 24 63 68 0a 23 20 en].close $ch.#
c7b0: 43 6c 65 61 6e 75 70 0a 3a 3a 68 74 74 70 3a 3a Cleanup.::http::
c7c0: 63 6c 65 61 6e 75 70 20 24 74 6f 6b 65 6e 0a 3c cleanup $token.<
c7d0: 2f 70 72 65 3e 0a 3c 70 3e 45 78 61 6d 70 6c 65 /pre>.<p>Example
c7e0: 20 23 32 3a 20 44 6f 77 6e 6c 6f 61 64 20 61 20 #2: Download a
c7f0: 66 69 6c 65 3c 2f 70 3e 0a 3c 70 72 65 20 63 6c file</p>.<pre cl
c800: 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 65 78 ass="doctools_ex
c810: 61 6d 70 6c 65 22 3e 0a 70 61 63 6b 61 67 65 20 ample">.package
c820: 72 65 71 75 69 72 65 20 68 74 74 70 0a 70 61 63 require http.pac
c830: 6b 61 67 65 20 72 65 71 75 69 72 65 20 74 6c 73 kage require tls
c840: 0a 73 65 74 20 75 72 6c 20 26 71 75 6f 74 3b 68 .set url "h
c850: 74 74 70 73 3a 2f 2f 77 69 6b 69 2e 74 63 6c 2d ttps://wiki.tcl-
c860: 6c 61 6e 67 2e 6f 72 67 2f 73 69 74 65 6d 61 70 lang.org/sitemap
c870: 2e 78 6d 6c 26 71 75 6f 74 3b 0a 68 74 74 70 3a .xml".http:
c880: 3a 72 65 67 69 73 74 65 72 20 68 74 74 70 73 20 :register https
c890: 34 34 33 20 5b 6c 69 73 74 20 3a 3a 74 6c 73 3a 443 [list ::tls:
c8a0: 3a 73 6f 63 6b 65 74 20 2d 61 75 74 6f 73 65 72 :socket -autoser
c8b0: 76 65 72 6e 61 6d 65 20 31 20 2d 72 65 71 75 69 vername 1 -requi
c8c0: 72 65 20 31 5d 0a 23 20 4f 70 65 6e 20 6f 75 74 re 1].# Open out
c8d0: 70 75 74 20 66 69 6c 65 0a 73 65 74 20 66 69 6c put file.set fil
c8e0: 65 6e 61 6d 65 20 5b 66 69 6c 65 20 74 61 69 6c ename [file tail
c8f0: 20 24 75 72 6c 5d 0a 73 65 74 20 63 68 20 5b 6f $url].set ch [o
c900: 70 65 6e 20 24 66 69 6c 65 6e 61 6d 65 20 77 62 pen $filename wb
c910: 5d 0a 23 20 47 65 74 20 66 69 6c 65 0a 73 65 74 ].# Get file.set
c920: 20 74 6f 6b 65 6e 20 5b 3a 3a 68 74 74 70 3a 3a token [::http::
c930: 67 65 74 75 72 6c 20 24 75 72 6c 20 2d 62 6c 6f geturl $url -blo
c940: 63 6b 73 69 7a 65 20 36 35 35 33 36 20 2d 63 68 cksize 65536 -ch
c950: 61 6e 6e 65 6c 20 24 63 68 5d 0a 23 20 43 68 65 annel $ch].# Che
c960: 63 6b 20 66 6f 72 20 65 72 72 6f 72 0a 69 66 20 ck for error.if
c970: 7b 5b 68 74 74 70 3a 3a 73 74 61 74 75 73 20 24 {[http::status $
c980: 74 6f 6b 65 6e 5d 20 6e 65 20 26 71 75 6f 74 3b token] ne "
c990: 6f 6b 26 71 75 6f 74 3b 7d 20 7b 0a 20 20 20 20 ok"} {.
c9a0: 70 75 74 73 20 5b 66 6f 72 6d 61 74 20 26 71 75 puts [format &qu
c9b0: 6f 74 3b 45 72 72 6f 72 20 25 73 26 71 75 6f 74 ot;Error %s"
c9c0: 3b 20 5b 68 74 74 70 3a 3a 73 74 61 74 75 73 20 ; [http::status
c9d0: 24 74 6f 6b 65 6e 5d 5d 0a 7d 0a 23 20 43 6c 65 $token]].}.# Cle
c9e0: 61 6e 75 70 0a 63 6c 6f 73 65 20 24 63 68 0a 3a anup.close $ch.:
c9f0: 3a 68 74 74 70 3a 3a 63 6c 65 61 6e 75 70 20 24 :http::cleanup $
ca00: 74 6f 6b 65 6e 0a 3c 2f 70 72 65 3e 0a 3c 2f 64 token.</pre>.</d
ca10: 69 76 3e 0a 3c 64 69 76 20 69 64 3d 22 73 65 63 iv>.<div id="sec
ca20: 74 69 6f 6e 37 22 20 63 6c 61 73 73 3d 22 64 6f tion7" class="do
ca30: 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e ctools_section">
ca40: 3c 68 32 3e 3c 61 20 6e 61 6d 65 3d 22 73 65 63 <h2><a name="sec
ca50: 74 69 6f 6e 37 22 3e 53 70 65 63 69 61 6c 20 43 tion7">Special C
ca60: 6f 6e 73 69 64 65 72 61 74 69 6f 6e 73 3c 2f 61 onsiderations</a
ca70: 3e 3c 2f 68 32 3e 0a 3c 70 3e 54 68 65 20 63 61 ></h2>.<p>The ca
ca80: 70 61 62 69 6c 69 74 69 65 73 20 6f 66 20 74 68 pabilities of th
ca90: 69 73 20 70 61 63 6b 61 67 65 20 63 61 6e 20 76 is package can v
caa0: 61 72 79 20 65 6e 6f 72 6d 6f 75 73 6c 79 20 62 ary enormously b
cab0: 61 73 65 64 20 75 70 6f 6e 20 68 6f 77 20 74 68 ased upon how th
cac0: 65 0a 6c 69 6e 6b 65 64 20 74 6f 20 4f 70 65 6e e.linked to Open
cad0: 53 53 4c 20 6c 69 62 72 61 72 79 20 77 61 73 20 SSL library was
cae0: 63 6f 6e 66 69 67 75 72 65 64 20 61 6e 64 20 62 configured and b
caf0: 75 69 6c 74 2e 20 4e 65 77 20 76 65 72 73 69 6f uilt. New versio
cb00: 6e 73 20 6d 61 79 20 6f 62 73 6f 6c 65 74 65 0a ns may obsolete.
cb10: 6f 6c 64 65 72 20 70 72 6f 74 6f 63 6f 6c 20 76 older protocol v
cb20: 65 72 73 69 6f 6e 73 2c 20 61 64 64 20 6f 72 20 ersions, add or
cb30: 72 65 6d 6f 76 65 20 63 69 70 68 65 72 73 2c 20 remove ciphers,
cb40: 63 68 61 6e 67 65 20 64 65 66 61 75 6c 74 20 76 change default v
cb50: 61 6c 75 65 73 2c 20 65 74 63 2e 0a 55 73 65 20 alues, etc..Use
cb60: 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 63 6d the <b class="cm
cb70: 64 22 3e 74 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c d">tls::protocol
cb80: 73 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 73 20 74 s</b> commands t
cb90: 6f 20 6f 62 74 61 69 6e 20 74 68 65 20 73 75 70 o obtain the sup
cba0: 70 6f 72 74 65 64 0a 70 72 6f 74 6f 63 6f 6c 20 ported.protocol
cbb0: 76 65 72 73 69 6f 6e 73 2e 3c 2f 70 3e 0a 3c 2f versions.</p>.</
cbc0: 64 69 76 3e 0a 3c 64 69 76 20 69 64 3d 22 73 65 div>.<div id="se
cbd0: 65 2d 61 6c 73 6f 22 20 63 6c 61 73 73 3d 22 64 e-also" class="d
cbe0: 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 octools_section"
cbf0: 3e 3c 68 32 3e 3c 61 20 6e 61 6d 65 3d 22 73 65 ><h2><a name="se
cc00: 65 2d 61 6c 73 6f 22 3e 53 65 65 20 41 6c 73 6f e-also">See Also
cc10: 3c 2f 61 3e 3c 2f 68 32 3e 0a 3c 70 3e 3c 61 20 </a></h2>.<p><a
cc20: 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 77 77 href="https://ww
cc30: 77 2e 6f 70 65 6e 73 73 6c 2e 6f 72 67 2f 22 3e w.openssl.org/">
cc40: 4f 70 65 6e 53 53 4c 3c 2f 61 3e 2c 20 68 74 74 OpenSSL</a>, htt
cc50: 70 2c 20 73 6f 63 6b 65 74 3c 2f 70 3e 0a 3c 2f p, socket</p>.</
cc60: 64 69 76 3e 0a 3c 64 69 76 20 69 64 3d 22 6b 65 div>.<div id="ke
cc70: 79 77 6f 72 64 73 22 20 63 6c 61 73 73 3d 22 64 ywords" class="d
cc80: 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 octools_section"
cc90: 3e 3c 68 32 3e 3c 61 20 6e 61 6d 65 3d 22 6b 65 ><h2><a name="ke
cca0: 79 77 6f 72 64 73 22 3e 4b 65 79 77 6f 72 64 73 ywords">Keywords
ccb0: 3c 2f 61 3e 3c 2f 68 32 3e 0a 3c 70 3e 49 2f 4f </a></h2>.<p>I/O
ccc0: 2c 20 49 50 20 41 64 64 72 65 73 73 2c 20 4f 70 , IP Address, Op
ccd0: 65 6e 53 53 4c 2c 20 53 53 4c 2c 20 54 43 50 2c enSSL, SSL, TCP,
cce0: 20 54 4c 53 2c 20 54 63 6c 54 4c 53 2c 20 61 73 TLS, TclTLS, as
ccf0: 79 6e 63 68 72 6f 6e 6f 75 73 20 49 2f 4f 2c 20 ynchronous I/O,
cd00: 62 69 6e 64 2c 20 63 65 72 74 69 66 69 63 61 74 bind, certificat
cd10: 65 2c 20 63 68 61 6e 6e 65 6c 2c 20 63 6f 6e 6e e, channel, conn
cd20: 65 63 74 69 6f 6e 2c 20 64 6f 6d 61 69 6e 20 6e ection, domain n
cd30: 61 6d 65 2c 20 68 6f 73 74 2c 20 68 74 74 70 73 ame, host, https
cd40: 2c 20 6e 65 74 77 6f 72 6b 2c 20 6e 65 74 77 6f , network, netwo
cd50: 72 6b 20 61 64 64 72 65 73 73 2c 20 73 6f 63 6b rk address, sock
cd60: 65 74 2c 20 74 6c 73 3c 2f 70 3e 0a 3c 2f 64 69 et, tls</p>.</di
cd70: 76 3e 0a 3c 64 69 76 20 69 64 3d 22 63 61 74 65 v>.<div id="cate
cd80: 67 6f 72 79 22 20 63 6c 61 73 73 3d 22 64 6f 63 gory" class="doc
cd90: 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e 3c tools_section"><
cda0: 68 32 3e 3c 61 20 6e 61 6d 65 3d 22 63 61 74 65 h2><a name="cate
cdb0: 67 6f 72 79 22 3e 43 61 74 65 67 6f 72 79 3c 2f gory">Category</
cdc0: 61 3e 3c 2f 68 32 3e 0a 3c 70 3e 74 6c 73 3c 2f a></h2>.<p>tls</
cdd0: 70 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 69 p>.</div>.<div i
cde0: 64 3d 22 63 6f 70 79 72 69 67 68 74 22 20 63 6c d="copyright" cl
cdf0: 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 ass="doctools_se
ce00: 63 74 69 6f 6e 22 3e 3c 68 32 3e 3c 61 20 6e 61 ction"><h2><a na
ce10: 6d 65 3d 22 63 6f 70 79 72 69 67 68 74 22 3e 43 me="copyright">C
ce20: 6f 70 79 72 69 67 68 74 3c 2f 61 3e 3c 2f 68 32 opyright</a></h2
ce30: 3e 0a 3c 70 3e 43 6f 70 79 72 69 67 68 74 20 26 >.<p>Copyright &
ce40: 63 6f 70 79 3b 20 31 39 39 39 20 4d 61 74 74 20 copy; 1999 Matt
ce50: 4e 65 77 6d 61 6e 3c 62 72 3e 0a 43 6f 70 79 72 Newman<br>.Copyr
ce60: 69 67 68 74 20 26 63 6f 70 79 3b 20 32 30 30 34 ight © 2004
ce70: 20 53 74 61 72 66 69 73 68 20 53 79 73 74 65 6d Starfish System
ce80: 73 3c 62 72 3e 0a 43 6f 70 79 72 69 67 68 74 20 s<br>.Copyright
ce90: 26 63 6f 70 79 3b 20 32 30 32 34 20 42 72 69 61 © 2024 Bria
cea0: 6e 20 4f 27 48 61 67 61 6e 3c 2f 70 3e 0a 3c 2f n O'Hagan</p>.</
ceb0: 64 69 76 3e 0a 3c 2f 64 69 76 3e 3c 2f 62 6f 64 div>.</div></bod
cec0: 79 3e 3c 2f 68 74 6d 6c 3e 0a y></html>.