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 32 2e 30 62 31 20 e">tls(n) 2.0b1
0880: 74 6c 73 20 26 71 75 6f 74 3b 54 63 6c 20 54 4c tls "Tcl TL
0890: 53 20 65 78 74 65 6e 73 69 6f 6e 26 71 75 6f 74 S extension"
08a0: 3b 3c 2f 68 31 3e 0a 3c 64 69 76 20 69 64 3d 22 ;</h1>.<div id="
08b0: 6e 61 6d 65 22 20 63 6c 61 73 73 3d 22 64 6f 63 name" class="doc
08c0: 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e 3c tools_section"><
08d0: 68 32 3e 3c 61 20 6e 61 6d 65 3d 22 6e 61 6d 65 h2><a name="name
08e0: 22 3e 4e 61 6d 65 3c 2f 61 3e 3c 2f 68 32 3e 0a ">Name</a></h2>.
08f0: 3c 70 3e 74 6c 73 20 2d 20 62 69 6e 64 69 6e 67 <p>tls - binding
0900: 20 74 6f 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 to the OpenSSL
0910: 6c 69 62 72 61 72 79 20 66 6f 72 20 65 6e 63 72 library for encr
0920: 79 70 74 65 64 20 73 6f 63 6b 65 74 20 61 6e 64 ypted socket and
0930: 20 49 2f 4f 20 63 68 61 6e 6e 65 6c 20 63 6f 6d I/O channel com
0940: 6d 75 6e 69 63 61 74 69 6f 6e 73 3c 2f 70 3e 0a munications</p>.
0950: 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 69 64 3d 22 </div>.<div id="
0960: 74 6f 63 22 20 63 6c 61 73 73 3d 22 64 6f 63 74 toc" class="doct
0970: 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e 3c 68 ools_section"><h
0980: 32 3e 3c 61 20 6e 61 6d 65 3d 22 74 6f 63 22 3e 2><a name="toc">
0990: 54 61 62 6c 65 20 4f 66 20 43 6f 6e 74 65 6e 74 Table Of Content
09a0: 73 3c 2f 61 3e 3c 2f 68 32 3e 0a 3c 75 6c 20 63 s</a></h2>.<ul c
09b0: 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 74 lass="doctools_t
09c0: 6f 63 22 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d 22 oc">.<li class="
09d0: 64 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e doctools_section
09e0: 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 22 "><a href="#toc"
09f0: 3e 54 61 62 6c 65 20 4f 66 20 43 6f 6e 74 65 6e >Table Of Conten
0a00: 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 20 ts</a></li>.<li
0a10: 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f class="doctools_
0a20: 73 65 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 66 section"><a href
0a30: 3d 22 23 73 79 6e 6f 70 73 69 73 22 3e 53 79 6e ="#synopsis">Syn
0a40: 6f 70 73 69 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c opsis</a></li>.<
0a50: 6c 69 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f li class="doctoo
0a60: 6c 73 5f 73 65 63 74 69 6f 6e 22 3e 3c 61 20 68 ls_section"><a h
0a70: 72 65 66 3d 22 23 73 65 63 74 69 6f 6e 31 22 3e ref="#section1">
0a80: 44 65 73 63 72 69 70 74 69 6f 6e 3c 2f 61 3e 3c Description</a><
0a90: 2f 6c 69 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d 22 /li>.<li class="
0aa0: 64 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e doctools_section
0ab0: 22 3e 3c 61 20 68 72 65 66 3d 22 23 73 65 63 74 "><a href="#sect
0ac0: 69 6f 6e 32 22 3e 43 6f 6d 70 61 74 69 62 69 6c ion2">Compatibil
0ad0: 69 74 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 ity</a></li>.<li
0ae0: 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 class="doctools
0af0: 5f 73 65 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 _section"><a hre
0b00: 66 3d 22 23 73 65 63 74 69 6f 6e 33 22 3e 43 6f f="#section3">Co
0b10: 6d 6d 61 6e 64 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a mmands</a></li>.
0b20: 3c 6c 69 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f <li class="docto
0b30: 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e 3c 61 20 ols_section"><a
0b40: 68 72 65 66 3d 22 23 73 65 63 74 69 6f 6e 34 22 href="#section4"
0b50: 3e 43 65 72 74 69 66 69 63 61 74 65 20 56 61 6c >Certificate Val
0b60: 69 64 61 74 69 6f 6e 3c 2f 61 3e 0a 3c 75 6c 3e idation</a>.<ul>
0b70: 0a 3c 6c 69 20 63 6c 61 73 73 3d 22 64 6f 63 74 .<li class="doct
0b80: 6f 6f 6c 73 5f 73 75 62 73 65 63 74 69 6f 6e 22 ools_subsection"
0b90: 3e 3c 61 20 68 72 65 66 3d 22 23 73 75 62 73 65 ><a href="#subse
0ba0: 63 74 69 6f 6e 31 22 3e 50 4b 49 20 61 6e 64 20 ction1">PKI and
0bb0: 43 65 72 74 69 66 69 63 61 74 65 73 3c 2f 61 3e Certificates</a>
0bc0: 3c 2f 6c 69 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d </li>.<li class=
0bd0: 22 64 6f 63 74 6f 6f 6c 73 5f 73 75 62 73 65 63 "doctools_subsec
0be0: 74 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 23 tion"><a href="#
0bf0: 73 75 62 73 65 63 74 69 6f 6e 32 22 3e 53 75 6d subsection2">Sum
0c00: 6d 61 72 79 20 6f 66 20 63 6f 6d 6d 61 6e 64 20 mary of command
0c10: 6c 69 6e 65 20 6f 70 74 69 6f 6e 73 3c 2f 61 3e line options</a>
0c20: 3c 2f 6c 69 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d </li>.<li class=
0c30: 22 64 6f 63 74 6f 6f 6c 73 5f 73 75 62 73 65 63 "doctools_subsec
0c40: 74 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 23 tion"><a href="#
0c50: 73 75 62 73 65 63 74 69 6f 6e 33 22 3e 57 68 65 subsection3">Whe
0c60: 6e 20 61 72 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 n are command li
0c70: 6e 65 20 6f 70 74 69 6f 6e 73 20 6e 65 65 64 65 ne options neede
0c80: 64 3f 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c d?</a></li>.</ul
0c90: 3e 0a 3c 2f 6c 69 3e 0a 3c 6c 69 20 63 6c 61 73 >.</li>.<li clas
0ca0: 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 s="doctools_sect
0cb0: 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 23 73 ion"><a href="#s
0cc0: 65 63 74 69 6f 6e 35 22 3e 43 61 6c 6c 62 61 63 ection5">Callbac
0cd0: 6b 20 4f 70 74 69 6f 6e 73 3c 2f 61 3e 0a 3c 75 k Options</a>.<u
0ce0: 6c 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d 22 64 6f l>.<li class="do
0cf0: 63 74 6f 6f 6c 73 5f 73 75 62 73 65 63 74 69 6f ctools_subsectio
0d00: 6e 22 3e 3c 61 20 68 72 65 66 3d 22 23 73 75 62 n"><a href="#sub
0d10: 73 65 63 74 69 6f 6e 34 22 3e 56 61 6c 75 65 73 section4">Values
0d20: 20 66 6f 72 20 43 6f 6d 6d 61 6e 64 20 43 61 6c for Command Cal
0d30: 6c 62 61 63 6b 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c lback</a></li>.<
0d40: 6c 69 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f li class="doctoo
0d50: 6c 73 5f 73 75 62 73 65 63 74 69 6f 6e 22 3e 3c ls_subsection"><
0d60: 61 20 68 72 65 66 3d 22 23 73 75 62 73 65 63 74 a href="#subsect
0d70: 69 6f 6e 35 22 3e 56 61 6c 75 65 73 20 66 6f 72 ion5">Values for
0d80: 20 50 61 73 73 77 6f 72 64 20 43 61 6c 6c 62 61 Password Callba
0d90: 63 6b 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 20 ck</a></li>.<li
0da0: 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f class="doctools_
0db0: 73 75 62 73 65 63 74 69 6f 6e 22 3e 3c 61 20 68 subsection"><a h
0dc0: 72 65 66 3d 22 23 73 75 62 73 65 63 74 69 6f 6e ref="#subsection
0dd0: 36 22 3e 56 61 6c 75 65 73 20 66 6f 72 20 56 61 6">Values for Va
0de0: 6c 69 64 61 74 65 20 43 6f 6d 6d 61 6e 64 20 43 lidate Command C
0df0: 61 6c 6c 62 61 63 6b 3c 2f 61 3e 3c 2f 6c 69 3e allback</a></li>
0e00: 0a 3c 2f 75 6c 3e 0a 3c 2f 6c 69 3e 0a 3c 6c 69 .</ul>.</li>.<li
0e10: 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 class="doctools
0e20: 5f 73 65 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 _section"><a hre
0e30: 66 3d 22 23 73 65 63 74 69 6f 6e 36 22 3e 44 65 f="#section6">De
0e40: 62 75 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 bug</a></li>.<li
0e50: 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 class="doctools
0e60: 5f 73 65 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 _section"><a hre
0e70: 66 3d 22 23 73 65 63 74 69 6f 6e 37 22 3e 45 78 f="#section7">Ex
0e80: 61 6d 70 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a amples</a></li>.
0e90: 3c 6c 69 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f <li class="docto
0ea0: 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e 3c 61 20 ols_section"><a
0eb0: 68 72 65 66 3d 22 23 73 65 63 74 69 6f 6e 38 22 href="#section8"
0ec0: 3e 53 70 65 63 69 61 6c 20 43 6f 6e 73 69 64 65 >Special Conside
0ed0: 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e rations</a></li>
0ee0: 0a 3c 6c 69 20 63 6c 61 73 73 3d 22 64 6f 63 74 .<li class="doct
0ef0: 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e 3c 61 ools_section"><a
0f00: 20 68 72 65 66 3d 22 23 73 65 65 2d 61 6c 73 6f href="#see-also
0f10: 22 3e 53 65 65 20 41 6c 73 6f 3c 2f 61 3e 3c 2f ">See Also</a></
0f20: 6c 69 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d 22 64 li>.<li class="d
0f30: 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 octools_section"
0f40: 3e 3c 61 20 68 72 65 66 3d 22 23 6b 65 79 77 6f ><a href="#keywo
0f50: 72 64 73 22 3e 4b 65 79 77 6f 72 64 73 3c 2f 61 rds">Keywords</a
0f60: 3e 3c 2f 6c 69 3e 0a 3c 6c 69 20 63 6c 61 73 73 ></li>.<li class
0f70: 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 69 ="doctools_secti
0f80: 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 23 63 61 on"><a href="#ca
0f90: 74 65 67 6f 72 79 22 3e 43 61 74 65 67 6f 72 79 tegory">Category
0fa0: 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 20 63 6c </a></li>.<li cl
0fb0: 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 ass="doctools_se
0fc0: 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 ction"><a href="
0fd0: 23 63 6f 70 79 72 69 67 68 74 22 3e 43 6f 70 79 #copyright">Copy
0fe0: 72 69 67 68 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c right</a></li>.<
0ff0: 2f 75 6c 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76 /ul>.</div>.<div
1000: 20 69 64 3d 22 73 79 6e 6f 70 73 69 73 22 20 63 id="synopsis" c
1010: 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 lass="doctools_s
1020: 65 63 74 69 6f 6e 22 3e 3c 68 32 3e 3c 61 20 6e ection"><h2><a n
1030: 61 6d 65 3d 22 73 79 6e 6f 70 73 69 73 22 3e 53 ame="synopsis">S
1040: 79 6e 6f 70 73 69 73 3c 2f 61 3e 3c 2f 68 32 3e ynopsis</a></h2>
1050: 0a 3c 64 69 76 20 63 6c 61 73 73 3d 22 64 6f 63 .<div class="doc
1060: 74 6f 6f 6c 73 5f 73 79 6e 6f 70 73 69 73 22 3e tools_synopsis">
1070: 0a 3c 75 6c 20 63 6c 61 73 73 3d 22 64 6f 63 74 .<ul class="doct
1080: 6f 6f 6c 73 5f 72 65 71 75 69 72 65 6d 65 6e 74 ools_requirement
1090: 73 22 3e 0a 3c 6c 69 3e 70 61 63 6b 61 67 65 20 s">.<li>package
10a0: 72 65 71 75 69 72 65 20 3c 62 20 63 6c 61 73 73 require <b class
10b0: 3d 22 70 6b 67 6e 61 6d 65 22 3e 54 63 6c 20 38 ="pkgname">Tcl 8
10c0: 2e 35 2d 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 .5-</b></li>.<li
10d0: 3e 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 >package require
10e0: 20 3c 62 20 63 6c 61 73 73 3d 22 70 6b 67 6e 61 <b class="pkgna
10f0: 6d 65 22 3e 74 6c 73 20 32 2e 30 62 31 3c 2f 62 me">tls 2.0b1</b
1100: 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 3c 75 6c ></li>.</ul>.<ul
1110: 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 class="doctools
1120: 5f 73 79 6e 74 61 78 22 3e 0a 3c 6c 69 3e 3c 61 _syntax">.<li><a
1130: 20 68 72 65 66 3d 22 23 31 22 3e 3c 62 20 63 6c href="#1"><b cl
1140: 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 69 ass="cmd">tls::i
1150: 6e 69 74 3c 2f 62 3e 20 3c 73 70 61 6e 20 63 6c nit</b> <span cl
1160: 61 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 6c ass="opt">?<i cl
1170: 61 73 73 3d 22 61 72 67 22 3e 2d 6f 70 74 69 6f ass="arg">-optio
1180: 6e 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 3c 73 n</i>?</span> <s
1190: 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e pan class="opt">
11a0: 3f 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e ?<i class="arg">
11b0: 76 61 6c 75 65 3c 2f 69 3e 3f 3c 2f 73 70 61 6e value</i>?</span
11c0: 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f > <span class="o
11d0: 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 pt">?<i class="a
11e0: 72 67 22 3e 2d 6f 70 74 69 6f 6e 20 76 61 6c 75 rg">-option valu
11f0: 65 20 2e 2e 2e 3c 2f 69 3e 3f 3c 2f 73 70 61 6e e ...</i>?</span
1200: 3e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c ></a></li>.<li><
1210: 61 20 68 72 65 66 3d 22 23 32 22 3e 3c 62 20 63 a href="#2"><b c
1220: 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a lass="cmd">tls::
1230: 73 6f 63 6b 65 74 3c 2f 62 3e 20 3c 73 70 61 6e socket</b> <span
1240: 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 class="opt">?<i
1250: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 2d 6f 70 class="arg">-op
1260: 74 69 6f 6e 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e tion</i>?</span>
1270: 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 <span class="op
1280: 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 72 t">?<i class="ar
1290: 67 22 3e 76 61 6c 75 65 3c 2f 69 3e 3f 3c 2f 73 g">value</i>?</s
12a0: 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 pan> <span class
12b0: 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 ="opt">?<i class
12c0: 3d 22 61 72 67 22 3e 2d 6f 70 74 69 6f 6e 20 76 ="arg">-option v
12d0: 61 6c 75 65 20 2e 2e 2e 3c 2f 69 3e 3f 3c 2f 73 alue ...</i>?</s
12e0: 70 61 6e 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 pan> <i class="a
12f0: 72 67 22 3e 68 6f 73 74 3c 2f 69 3e 20 3c 69 20 rg">host</i> <i
1300: 63 6c 61 73 73 3d 22 61 72 67 22 3e 70 6f 72 74 class="arg">port
1310: 3c 2f 69 3e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c </i></a></li>.<l
1320: 69 3e 3c 61 20 68 72 65 66 3d 22 23 33 22 3e 3c i><a href="#3"><
1330: 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c b class="cmd">tl
1340: 73 3a 3a 73 6f 63 6b 65 74 3c 2f 62 3e 20 3c 62 s::socket</b> <b
1350: 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e class="option">
1360: 2d 73 65 72 76 65 72 3c 2f 62 3e 20 3c 69 20 63 -server</b> <i c
1370: 6c 61 73 73 3d 22 61 72 67 22 3e 63 6f 6d 6d 61 lass="arg">comma
1380: 6e 64 3c 2f 69 3e 20 3c 73 70 61 6e 20 63 6c 61 nd</i> <span cla
1390: 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 ss="opt">?<i cla
13a0: 73 73 3d 22 61 72 67 22 3e 2d 6f 70 74 69 6f 6e ss="arg">-option
13b0: 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 3c 73 70 </i>?</span> <sp
13c0: 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f an class="opt">?
13d0: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 76 <i class="arg">v
13e0: 61 6c 75 65 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e alue</i>?</span>
13f0: 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 <span class="op
1400: 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 72 t">?<i class="ar
1410: 67 22 3e 2d 6f 70 74 69 6f 6e 20 76 61 6c 75 65 g">-option value
1420: 20 2e 2e 2e 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e ...</i>?</span>
1430: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
1440: 70 6f 72 74 3c 2f 69 3e 3c 2f 61 3e 3c 2f 6c 69 port</i></a></li
1450: 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 >.<li><a href="#
1460: 34 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 4"><b class="cmd
1470: 22 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c 2f 62 ">tls::import</b
1480: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
1490: 3e 63 68 61 6e 6e 65 6c 3c 2f 69 3e 20 3c 73 70 >channel</i> <sp
14a0: 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f an class="opt">?
14b0: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 2d <i class="arg">-
14c0: 6f 70 74 69 6f 6e 3c 2f 69 3e 3f 3c 2f 73 70 61 option</i>?</spa
14d0: 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 n> <span class="
14e0: 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 opt">?<i class="
14f0: 61 72 67 22 3e 76 61 6c 75 65 3c 2f 69 3e 3f 3c arg">value</i>?<
1500: 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 /span> <span cla
1510: 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 ss="opt">?<i cla
1520: 73 73 3d 22 61 72 67 22 3e 2d 6f 70 74 69 6f 6e ss="arg">-option
1530: 20 76 61 6c 75 65 20 2e 2e 2e 3c 2f 69 3e 3f 3c value ...</i>?<
1540: 2f 73 70 61 6e 3e 3c 2f 61 3e 3c 2f 6c 69 3e 0a /span></a></li>.
1550: 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 35 22 <li><a href="#5"
1560: 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e ><b class="cmd">
1570: 74 6c 73 3a 3a 75 6e 69 6d 70 6f 72 74 3c 2f 62 tls::unimport</b
1580: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
1590: 3e 63 68 61 6e 6e 65 6c 3c 2f 69 3e 3c 2f 61 3e >channel</i></a>
15a0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 </li>.<li><a hre
15b0: 66 3d 22 23 36 22 3e 3c 62 20 63 6c 61 73 73 3d f="#6"><b class=
15c0: 22 63 6d 64 22 3e 74 6c 73 3a 3a 68 61 6e 64 73 "cmd">tls::hands
15d0: 68 61 6b 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 hake</b> <i clas
15e0: 73 3d 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c 3c s="arg">channel<
15f0: 2f 69 3e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 /i></a></li>.<li
1600: 3e 3c 61 20 68 72 65 66 3d 22 23 37 22 3e 3c 62 ><a href="#7"><b
1610: 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 class="cmd">tls
1620: 3a 3a 73 74 61 74 75 73 3c 2f 62 3e 20 3c 73 70 ::status</b> <sp
1630: 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f an class="opt">?
1640: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
1650: 22 3e 2d 6c 6f 63 61 6c 3c 2f 62 3e 3f 3c 2f 73 ">-local</b>?</s
1660: 70 61 6e 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 pan> <i class="a
1670: 72 67 22 3e 63 68 61 6e 6e 65 6c 3c 2f 69 3e 3c rg">channel</i><
1680: 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 /a></li>.<li><a
1690: 68 72 65 66 3d 22 23 38 22 3e 3c 62 20 63 6c 61 href="#8"><b cla
16a0: 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 63 6f ss="cmd">tls::co
16b0: 6e 6e 65 63 74 69 6f 6e 3c 2f 62 3e 20 3c 69 20 nnection</b> <i
16c0: 63 6c 61 73 73 3d 22 61 72 67 22 3e 63 68 61 6e class="arg">chan
16d0: 6e 65 6c 3c 2f 69 3e 3c 2f 61 3e 3c 2f 6c 69 3e nel</i></a></li>
16e0: 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 39 .<li><a href="#9
16f0: 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 "><b class="cmd"
1700: 3e 74 6c 73 3a 3a 63 69 70 68 65 72 73 3c 2f 62 >tls::ciphers</b
1710: 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f > <span class="o
1720: 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 pt">?<i class="a
1730: 72 67 22 3e 70 72 6f 74 6f 63 6f 6c 3c 2f 69 3e rg">protocol</i>
1740: 3f 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 ?</span> <span c
1750: 6c 61 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 lass="opt">?<i c
1760: 6c 61 73 73 3d 22 61 72 67 22 3e 76 65 72 62 6f lass="arg">verbo
1770: 73 65 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 3c se</i>?</span> <
1780: 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 span class="opt"
1790: 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 >?<i class="arg"
17a0: 3e 73 75 70 70 6f 72 74 65 64 3c 2f 69 3e 3f 3c >supported</i>?<
17b0: 2f 73 70 61 6e 3e 3c 2f 61 3e 3c 2f 6c 69 3e 0a /span></a></li>.
17c0: 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 31 30 <li><a href="#10
17d0: 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 "><b class="cmd"
17e0: 3e 74 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 3c >tls::protocols<
17f0: 2f 62 3e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 /b></a></li>.<li
1800: 3e 3c 61 20 68 72 65 66 3d 22 23 31 31 22 3e 3c ><a href="#11"><
1810: 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c b class="cmd">tl
1820: 73 3a 3a 76 65 72 73 69 6f 6e 3c 2f 62 3e 3c 2f s::version</b></
1830: 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 3c 2f a></li>.</ul>.</
1840: 64 69 76 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76 div>.</div>.<div
1850: 20 69 64 3d 22 73 65 63 74 69 6f 6e 31 22 20 63 id="section1" c
1860: 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 lass="doctools_s
1870: 65 63 74 69 6f 6e 22 3e 3c 68 32 3e 3c 61 20 6e ection"><h2><a n
1880: 61 6d 65 3d 22 73 65 63 74 69 6f 6e 31 22 3e 44 ame="section1">D
1890: 65 73 63 72 69 70 74 69 6f 6e 3c 2f 61 3e 3c 2f escription</a></
18a0: 68 32 3e 0a 3c 70 3e 54 68 69 73 20 65 78 74 65 h2>.<p>This exte
18b0: 6e 73 69 6f 6e 20 70 72 6f 76 69 64 65 73 20 54 nsion provides T
18c0: 43 4c 20 73 63 72 69 70 74 20 61 63 63 65 73 73 CL script access
18d0: 20 74 6f 20 73 65 63 75 72 65 20 73 6f 63 6b 65 to secure socke
18e0: 74 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 73 t communications
18f0: 0a 75 73 69 6e 67 20 74 68 65 20 54 72 61 6e 73 .using the Trans
1900: 70 6f 72 74 20 4c 61 79 65 72 20 53 65 63 75 72 port Layer Secur
1910: 69 74 79 20 28 54 4c 53 29 20 70 72 6f 74 6f 63 ity (TLS) protoc
1920: 6f 6c 2e 20 49 74 20 70 72 6f 76 69 64 65 73 20 ol. It provides
1930: 61 20 67 65 6e 65 72 69 63 0a 62 69 6e 64 69 6e a generic.bindin
1940: 67 20 74 6f 20 3c 61 20 68 72 65 66 3d 22 68 74 g to <a href="ht
1950: 74 70 73 3a 2f 2f 77 77 77 2e 6f 70 65 6e 73 73 tps://www.openss
1960: 6c 2e 6f 72 67 2f 22 3e 4f 70 65 6e 53 53 4c 3c l.org/">OpenSSL<
1970: 2f 61 3e 2c 20 75 74 69 6c 69 7a 69 6e 67 20 74 /a>, utilizing t
1980: 68 65 0a 3c 62 20 63 6c 61 73 73 3d 22 73 79 73 he.<b class="sys
1990: 63 6d 64 22 3e 54 63 6c 5f 53 74 61 63 6b 43 68 cmd">Tcl_StackCh
19a0: 61 6e 6e 65 6c 3c 2f 62 3e 20 41 50 49 20 69 6e annel</b> API in
19b0: 20 54 43 4c 20 38 2e 34 20 6f 72 20 6c 61 74 65 TCL 8.4 or late
19c0: 72 2e 0a 54 68 65 73 65 20 73 6f 63 6b 65 74 73 r..These sockets
19d0: 20 62 65 68 61 76 65 20 65 78 61 63 74 6c 79 20 behave exactly
19e0: 74 68 65 20 73 61 6d 65 20 61 73 20 63 68 61 6e the same as chan
19f0: 6e 65 6c 73 20 63 72 65 61 74 65 64 20 75 73 69 nels created usi
1a00: 6e 67 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 0a ng the built-in.
1a10: 3c 62 20 63 6c 61 73 73 3d 22 73 79 73 63 6d 64 <b class="syscmd
1a20: 22 3e 73 6f 63 6b 65 74 3c 2f 62 3e 20 63 6f 6d ">socket</b> com
1a30: 6d 61 6e 64 2c 20 62 75 74 20 70 72 6f 76 69 64 mand, but provid
1a40: 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f 70 74 e additional opt
1a50: 69 6f 6e 73 20 66 6f 72 20 63 6f 6e 74 72 6f 6c ions for control
1a60: 6c 69 6e 67 0a 74 68 65 20 53 53 4c 2f 54 4c 53 ling.the SSL/TLS
1a70: 20 73 65 73 73 69 6f 6e 2e 3c 2f 70 3e 0a 3c 2f session.</p>.</
1a80: 64 69 76 3e 0a 3c 64 69 76 20 69 64 3d 22 73 65 div>.<div id="se
1a90: 63 74 69 6f 6e 32 22 20 63 6c 61 73 73 3d 22 64 ction2" class="d
1aa0: 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 octools_section"
1ab0: 3e 3c 68 32 3e 3c 61 20 6e 61 6d 65 3d 22 73 65 ><h2><a name="se
1ac0: 63 74 69 6f 6e 32 22 3e 43 6f 6d 70 61 74 69 62 ction2">Compatib
1ad0: 69 6c 69 74 79 3c 2f 61 3e 3c 2f 68 32 3e 0a 3c ility</a></h2>.<
1ae0: 70 3e 54 68 69 73 20 65 78 74 65 6e 73 69 6f 6e p>This extension
1af0: 20 69 73 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 is compatible w
1b00: 69 74 68 20 4f 70 65 6e 53 53 4c 20 31 2e 31 2e ith OpenSSL 1.1.
1b10: 31 20 6f 72 20 6c 61 74 65 72 2e 20 49 74 20 72 1 or later. It r
1b20: 65 71 75 69 72 65 73 20 54 63 6c 0a 76 65 72 73 equires Tcl.vers
1b30: 69 6f 6e 20 38 2e 35 20 6f 72 20 6c 61 74 65 72 ion 8.5 or later
1b40: 20 61 6e 64 20 77 69 6c 6c 20 77 6f 72 6b 20 77 and will work w
1b50: 69 74 68 20 54 63 6c 20 39 2e 30 2e 3c 2f 70 3e ith Tcl 9.0.</p>
1b60: 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 69 64 3d .</div>.<div id=
1b70: 22 73 65 63 74 69 6f 6e 33 22 20 63 6c 61 73 73 "section3" class
1b80: 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 69 ="doctools_secti
1b90: 6f 6e 22 3e 3c 68 32 3e 3c 61 20 6e 61 6d 65 3d on"><h2><a name=
1ba0: 22 73 65 63 74 69 6f 6e 33 22 3e 43 6f 6d 6d 61 "section3">Comma
1bb0: 6e 64 73 3c 2f 61 3e 3c 2f 68 32 3e 0a 3c 70 3e nds</a></h2>.<p>
1bc0: 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 61 72 The following ar
1bd0: 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 73 20 70 e the commands p
1be0: 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 54 rovided by the T
1bf0: 63 4c 54 4c 53 20 70 61 63 6b 61 67 65 2e 20 53 cLTLS package. S
1c00: 65 65 20 74 68 65 0a 3c 73 70 61 6e 20 63 6c 61 ee the.<span cla
1c10: 73 73 3d 22 73 65 63 74 72 65 66 22 3e 3c 61 20 ss="sectref"><a
1c20: 68 72 65 66 3d 22 23 73 65 63 74 69 6f 6e 37 22 href="#section7"
1c30: 3e 45 78 61 6d 70 6c 65 73 3c 2f 61 3e 3c 2f 73 >Examples</a></s
1c40: 70 61 6e 3e 20 66 6f 72 20 65 78 61 6d 70 6c 65 pan> for example
1c50: 20 75 73 61 67 65 20 61 6e 64 20 74 68 65 20 26 usage and the &
1c60: 71 75 6f 74 3b 3c 62 20 63 6c 61 73 73 3d 22 66 quot;<b class="f
1c70: 69 6c 65 22 3e 64 65 6d 6f 73 3c 2f 62 3e 26 71 ile">demos</b>&q
1c80: 75 6f 74 3b 20 64 69 72 65 63 74 6f 72 79 20 66 uot; directory f
1c90: 6f 72 0a 6d 6f 72 65 20 65 78 61 6d 70 6c 65 20 or.more example
1ca0: 75 73 61 67 65 2e 3c 2f 70 3e 0a 3c 64 6c 20 63 usage.</p>.<dl c
1cb0: 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 64 lass="doctools_d
1cc0: 65 66 69 6e 69 74 69 6f 6e 73 22 3e 0a 3c 64 74 efinitions">.<dt
1cd0: 3e 3c 61 20 6e 61 6d 65 3d 22 31 22 3e 3c 62 20 ><a name="1"><b
1ce0: 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a class="cmd">tls:
1cf0: 3a 69 6e 69 74 3c 2f 62 3e 20 3c 73 70 61 6e 20 :init</b> <span
1d00: 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 class="opt">?<i
1d10: 63 6c 61 73 73 3d 22 61 72 67 22 3e 2d 6f 70 74 class="arg">-opt
1d20: 69 6f 6e 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 ion</i>?</span>
1d30: 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 <span class="opt
1d40: 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 ">?<i class="arg
1d50: 22 3e 76 61 6c 75 65 3c 2f 69 3e 3f 3c 2f 73 70 ">value</i>?</sp
1d60: 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d an> <span class=
1d70: 22 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d "opt">?<i class=
1d80: 22 61 72 67 22 3e 2d 6f 70 74 69 6f 6e 20 76 61 "arg">-option va
1d90: 6c 75 65 20 2e 2e 2e 3c 2f 69 3e 3f 3c 2f 73 70 lue ...</i>?</sp
1da0: 61 6e 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 3c 64 64 an></a></dt>.<dd
1db0: 3e 3c 70 3e 4f 70 74 69 6f 6e 61 6c 20 66 75 6e ><p>Optional fun
1dc0: 63 74 69 6f 6e 20 74 6f 20 73 65 74 20 74 68 65 ction to set the
1dd0: 20 64 65 66 61 75 6c 74 20 6f 70 74 69 6f 6e 73 default options
1de0: 20 75 73 65 64 20 62 79 20 3c 62 20 63 6c 61 73 used by <b clas
1df0: 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 73 6f 63 s="cmd">tls::soc
1e00: 6b 65 74 3c 2f 62 3e 2e 20 49 66 20 79 6f 75 0a ket</b>. If you.
1e10: 63 61 6c 6c 20 3c 62 20 63 6c 61 73 73 3d 22 63 call <b class="c
1e20: 6d 64 22 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c md">tls::import<
1e30: 2f 62 3e 20 64 69 72 65 63 74 6c 79 2c 20 74 68 /b> directly, th
1e40: 65 20 76 61 6c 75 65 73 20 73 65 74 20 62 79 20 e values set by
1e50: 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 68 61 76 this command hav
1e60: 65 20 6e 6f 20 65 66 66 65 63 74 2e 0a 54 68 69 e no effect..Thi
1e70: 73 20 63 6f 6d 6d 61 6e 64 20 73 75 70 70 6f 72 s command suppor
1e80: 74 73 20 61 6c 6c 20 6f 66 20 74 68 65 20 73 61 ts all of the sa
1e90: 6d 65 20 6f 70 74 69 6f 6e 73 20 61 73 20 74 68 me options as th
1ea0: 65 20 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 e <b class="cmd"
1eb0: 3e 74 6c 73 3a 3a 73 6f 63 6b 65 74 3c 2f 62 3e >tls::socket</b>
1ec0: 20 63 6f 6d 6d 61 6e 64 2c 0a 74 68 6f 75 67 68 command,.though
1ed0: 20 79 6f 75 20 73 68 6f 75 6c 64 20 6c 69 6d 69 you should limi
1ee0: 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 73 20 74 t your options t
1ef0: 6f 20 6f 6e 6c 79 20 74 68 65 20 54 4c 53 20 72 o only the TLS r
1f00: 65 6c 61 74 65 64 20 6f 6e 65 73 2e 3c 2f 70 3e elated ones.</p>
1f10: 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 61 20 6e 61 6d </dd>.<dt><a nam
1f20: 65 3d 22 32 22 3e 3c 62 20 63 6c 61 73 73 3d 22 e="2"><b class="
1f30: 63 6d 64 22 3e 74 6c 73 3a 3a 73 6f 63 6b 65 74 cmd">tls::socket
1f40: 3c 2f 62 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 </b> <span class
1f50: 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 ="opt">?<i class
1f60: 3d 22 61 72 67 22 3e 2d 6f 70 74 69 6f 6e 3c 2f ="arg">-option</
1f70: 69 3e 3f 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e i>?</span> <span
1f80: 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 class="opt">?<i
1f90: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 76 61 6c class="arg">val
1fa0: 75 65 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 3c ue</i>?</span> <
1fb0: 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 span class="opt"
1fc0: 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 >?<i class="arg"
1fd0: 3e 2d 6f 70 74 69 6f 6e 20 76 61 6c 75 65 20 2e >-option value .
1fe0: 2e 2e 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 3c ..</i>?</span> <
1ff0: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 68 6f i class="arg">ho
2000: 73 74 3c 2f 69 3e 20 3c 69 20 63 6c 61 73 73 3d st</i> <i class=
2010: 22 61 72 67 22 3e 70 6f 72 74 3c 2f 69 3e 3c 2f "arg">port</i></
2020: 61 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 a></dt>.<dd><p>T
2030: 68 69 73 20 69 73 20 61 20 68 65 6c 70 65 72 20 his is a helper
2040: 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 75 74 function that ut
2050: 69 6c 69 7a 65 73 20 74 68 65 20 75 6e 64 65 72 ilizes the under
2060: 6c 79 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 3c lying commands <
2070: 62 20 63 6c 61 73 73 3d 22 73 79 73 63 6d 64 22 b class="syscmd"
2080: 3e 73 6f 63 6b 65 74 3c 2f 62 3e 0a 61 6e 64 20 >socket</b>.and
2090: 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 <b class="cmd">t
20a0: 6c 73 3a 3a 69 6d 70 6f 72 74 3c 2f 62 3e 20 74 ls::import</b> t
20b0: 6f 20 63 72 65 61 74 65 20 74 68 65 20 63 6f 6e o create the con
20c0: 6e 65 63 74 69 6f 6e 2e 20 49 74 20 62 65 68 61 nection. It beha
20d0: 76 65 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 ves the same as
20e0: 74 68 65 0a 6e 61 74 69 76 65 20 54 43 4c 20 3c the.native TCL <
20f0: 62 20 63 6c 61 73 73 3d 22 73 79 73 63 6d 64 22 b class="syscmd"
2100: 3e 73 6f 63 6b 65 74 3c 2f 62 3e 20 63 6f 6d 6d >socket</b> comm
2110: 61 6e 64 2c 20 62 75 74 20 61 6c 73 6f 20 73 75 and, but also su
2120: 70 70 6f 72 74 73 20 74 68 65 20 3c 62 20 63 6c pports the <b cl
2130: 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 69 ass="cmd">tls::i
2140: 6d 70 6f 72 74 3c 2f 62 3e 0a 63 6f 6d 6d 61 6e mport</b>.comman
2150: 64 20 6f 70 74 69 6f 6e 73 20 77 69 74 68 20 6f d options with o
2160: 6e 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f 70 ne additional op
2170: 74 69 6f 6e 2e 20 49 74 20 72 65 74 75 72 6e 73 tion. It returns
2180: 20 74 68 65 20 63 68 61 6e 6e 65 6c 20 68 61 6e the channel han
2190: 64 6c 65 20 69 64 0a 66 6f 72 20 74 68 65 20 6e dle id.for the n
21a0: 65 77 20 73 6f 63 6b 65 74 2e 3c 2f 70 3e 0a 3c ew socket.</p>.<
21b0: 64 6c 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f dl class="doctoo
21c0: 6c 73 5f 6f 70 74 69 6f 6e 73 22 3e 0a 3c 64 74 ls_options">.<dt
21d0: 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f ><b class="optio
21e0: 6e 22 3e 2d 61 75 74 6f 73 65 72 76 65 72 6e 61 n">-autoserverna
21f0: 6d 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d me</b> <i class=
2200: 22 61 72 67 22 3e 62 6f 6f 6c 3c 2f 69 3e 3c 2f "arg">bool</i></
2210: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 49 66 20 3c 62 dt>.<dd><p>If <b
2220: 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 74 class="const">t
2230: 72 75 65 3c 2f 62 3e 2c 20 61 75 74 6f 6d 61 74 rue</b>, automat
2240: 69 63 61 6c 6c 79 20 73 65 74 20 74 68 65 20 3c ically set the <
2250: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
2260: 3e 2d 73 65 72 76 65 72 6e 61 6d 65 3c 2f 62 3e >-servername</b>
2270: 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 74 68 65 argument to the
2280: 0a 3c 65 6d 3e 68 6f 73 74 3c 2f 65 6d 3e 20 61 .<em>host</em> a
2290: 72 67 75 6d 65 6e 74 2e 20 50 72 69 6f 72 20 74 rgument. Prior t
22a0: 6f 20 54 63 6c 54 4c 53 20 32 2e 30 2c 20 74 68 o TclTLS 2.0, th
22b0: 65 20 64 65 66 61 75 6c 74 20 69 73 20 3c 62 20 e default is <b
22c0: 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 66 61 class="const">fa
22d0: 6c 73 65 3c 2f 62 3e 2e 0a 53 74 61 72 74 69 6e lse</b>..Startin
22e0: 67 20 69 6e 20 54 63 6c 54 4c 53 20 32 2e 30 2c g in TclTLS 2.0,
22f0: 20 74 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 the default is
2300: 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 <b class="const"
2310: 3e 74 72 75 65 3c 2f 62 3e 20 75 6e 6c 65 73 73 >true</b> unless
2320: 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f <b class="optio
2330: 6e 22 3e 2d 73 65 72 76 65 72 6e 61 6d 65 3c 2f n">-servername</
2340: 62 3e 0a 69 73 20 61 6c 73 6f 20 73 70 65 63 69 b>.is also speci
2350: 66 69 65 64 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c fied.</p></dd>.<
2360: 2f 64 6c 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 61 /dl></dd>.<dt><a
2370: 20 6e 61 6d 65 3d 22 33 22 3e 3c 62 20 63 6c 61 name="3"><b cla
2380: 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 73 6f ss="cmd">tls::so
2390: 63 6b 65 74 3c 2f 62 3e 20 3c 62 20 63 6c 61 73 cket</b> <b clas
23a0: 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 73 65 72 76 s="option">-serv
23b0: 65 72 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d er</b> <i class=
23c0: 22 61 72 67 22 3e 63 6f 6d 6d 61 6e 64 3c 2f 69 "arg">command</i
23d0: 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f > <span class="o
23e0: 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 pt">?<i class="a
23f0: 72 67 22 3e 2d 6f 70 74 69 6f 6e 3c 2f 69 3e 3f rg">-option</i>?
2400: 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c </span> <span cl
2410: 61 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 6c ass="opt">?<i cl
2420: 61 73 73 3d 22 61 72 67 22 3e 76 61 6c 75 65 3c ass="arg">value<
2430: 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 /i>?</span> <spa
2440: 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f 3c n class="opt">?<
2450: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 2d 6f i class="arg">-o
2460: 70 74 69 6f 6e 20 76 61 6c 75 65 20 2e 2e 2e 3c ption value ...<
2470: 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 3c 69 20 63 /i>?</span> <i c
2480: 6c 61 73 73 3d 22 61 72 67 22 3e 70 6f 72 74 3c lass="arg">port<
2490: 2f 69 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 3c 64 64 /i></a></dt>.<dd
24a0: 3e 3c 70 3e 53 61 6d 65 20 61 73 20 70 72 65 76 ><p>Same as prev
24b0: 69 6f 75 73 2c 20 62 75 74 20 69 6e 73 74 65 61 ious, but instea
24c0: 64 20 63 72 65 61 74 65 73 20 61 20 73 65 72 76 d creates a serv
24d0: 65 72 20 73 6f 63 6b 65 74 20 66 6f 72 20 63 6c er socket for cl
24e0: 69 65 6e 74 73 20 74 6f 20 63 6f 6e 6e 65 63 74 ients to connect
24f0: 20 74 6f 0a 6a 75 73 74 20 6c 69 6b 65 20 74 68 to.just like th
2500: 65 20 54 63 6c 20 3c 62 20 63 6c 61 73 73 3d 22 e Tcl <b class="
2510: 73 79 73 63 6d 64 22 3e 73 6f 63 6b 65 74 20 2d syscmd">socket -
2520: 73 65 72 76 65 72 3c 2f 62 3e 20 63 6f 6d 6d 61 server</b> comma
2530: 6e 64 2e 20 49 74 20 72 65 74 75 72 6e 73 20 74 nd. It returns t
2540: 68 65 20 63 68 61 6e 6e 65 6c 0a 68 61 6e 64 6c he channel.handl
2550: 65 20 69 64 20 66 6f 72 20 74 68 65 20 6e 65 77 e id for the new
2560: 20 73 6f 63 6b 65 74 2e 3c 2f 70 3e 3c 2f 64 64 socket.</p></dd
2570: 3e 0a 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 34 >.<dt><a name="4
2580: 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 "><b class="cmd"
2590: 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c 2f 62 3e >tls::import</b>
25a0: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
25b0: 63 68 61 6e 6e 65 6c 3c 2f 69 3e 20 3c 73 70 61 channel</i> <spa
25c0: 6e 20 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f 3c n class="opt">?<
25d0: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 2d 6f i class="arg">-o
25e0: 70 74 69 6f 6e 3c 2f 69 3e 3f 3c 2f 73 70 61 6e ption</i>?</span
25f0: 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f > <span class="o
2600: 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 pt">?<i class="a
2610: 72 67 22 3e 76 61 6c 75 65 3c 2f 69 3e 3f 3c 2f rg">value</i>?</
2620: 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 span> <span clas
2630: 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 s="opt">?<i clas
2640: 73 3d 22 61 72 67 22 3e 2d 6f 70 74 69 6f 6e 20 s="arg">-option
2650: 76 61 6c 75 65 20 2e 2e 2e 3c 2f 69 3e 3f 3c 2f value ...</i>?</
2660: 73 70 61 6e 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 3c span></a></dt>.<
2670: 64 64 3e 3c 70 3e 53 74 61 72 74 20 54 4c 53 20 dd><p>Start TLS
2680: 65 6e 63 72 79 70 74 69 6f 6e 20 6f 6e 20 54 43 encryption on TC
2690: 4c 20 63 68 61 6e 6e 65 6c 20 3c 69 20 63 6c 61 L channel <i cla
26a0: 73 73 3d 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c ss="arg">channel
26b0: 3c 2f 69 3e 20 76 69 61 20 61 20 73 74 61 63 6b </i> via a stack
26c0: 65 64 20 63 68 61 6e 6e 65 6c 2e 20 49 74 0a 6e ed channel. It.n
26d0: 65 65 64 20 6e 6f 74 20 62 65 20 61 20 73 6f 63 eed not be a soc
26e0: 6b 65 74 2c 20 62 75 74 20 6d 75 73 74 20 70 72 ket, but must pr
26f0: 6f 76 69 64 65 20 62 69 2d 64 69 72 65 63 74 69 ovide bi-directi
2700: 6f 6e 61 6c 20 66 6c 6f 77 2e 20 41 6c 73 6f 20 onal flow. Also
2710: 73 65 74 73 20 73 65 73 73 69 6f 6e 0a 70 61 72 sets session.par
2720: 61 6d 65 74 65 72 73 20 66 6f 72 20 53 53 4c 20 ameters for SSL
2730: 68 61 6e 64 73 68 61 6b 65 2e 20 56 61 6c 69 64 handshake. Valid
2740: 20 6f 70 74 69 6f 6e 73 20 61 72 65 3a 3c 2f 70 options are:</p
2750: 3e 0a 3c 64 6c 20 63 6c 61 73 73 3d 22 64 6f 63 >.<dl class="doc
2760: 74 6f 6f 6c 73 5f 6f 70 74 69 6f 6e 73 22 3e 0a tools_options">.
2770: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 <dt><b class="op
2780: 74 69 6f 6e 22 3e 2d 61 6c 70 6e 3c 2f 62 3e 20 tion">-alpn</b>
2790: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 6c <i class="arg">l
27a0: 69 73 74 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 ist</i></dt>.<dd
27b0: 3e 3c 70 3e 4c 69 73 74 20 6f 66 20 70 72 6f 74 ><p>List of prot
27c0: 6f 63 6f 6c 73 20 74 6f 20 6f 66 66 65 72 20 64 ocols to offer d
27d0: 75 72 69 6e 67 20 41 70 70 6c 69 63 61 74 69 6f uring Applicatio
27e0: 6e 2d 4c 61 79 65 72 20 50 72 6f 74 6f 63 6f 6c n-Layer Protocol
27f0: 20 4e 65 67 6f 74 69 61 74 69 6f 6e 0a 28 41 4c Negotiation.(AL
2800: 50 4e 29 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 PN). For example
2810: 3a 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 : <b class="cons
2820: 74 22 3e 68 32 3c 2f 62 3e 20 61 6e 64 20 3c 62 t">h2</b> and <b
2830: 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 68 class="const">h
2840: 74 74 70 2f 31 2e 31 3c 2f 62 3e 2c 20 62 75 74 ttp/1.1</b>, but
2850: 20 6e 6f 74 20 3c 62 20 63 6c 61 73 73 3d 22 63 not <b class="c
2860: 6f 6e 73 74 22 3e 68 33 3c 2f 62 3e 20 6f 72 0a onst">h3</b> or.
2870: 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 <b class="const"
2880: 3e 71 75 69 63 3c 2f 62 3e 2e 20 54 68 69 73 20 >quic</b>. This
2890: 6f 70 74 69 6f 6e 20 69 73 20 6e 65 77 20 66 6f option is new fo
28a0: 72 20 54 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 r TclTLS 1.8.</p
28b0: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
28c0: 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 ass="option">-ca
28d0: 64 69 72 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 dir</b> <i class
28e0: 3d 22 61 72 67 22 3e 64 69 72 65 63 74 6f 72 79 ="arg">directory
28f0: 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 </i></dt>.<dd><p
2900: 3e 53 70 65 63 69 66 69 65 73 20 74 68 65 20 64 >Specifies the d
2910: 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 20 74 irectory where t
2920: 68 65 20 43 65 72 74 69 66 69 63 61 74 65 20 41 he Certificate A
2930: 75 74 68 6f 72 69 74 79 20 28 43 41 29 20 63 65 uthority (CA) ce
2940: 72 74 69 66 69 63 61 74 65 73 20 61 72 65 0a 73 rtificates are.s
2950: 74 6f 72 65 64 2e 20 54 68 65 20 64 65 66 61 75 tored. The defau
2960: 6c 74 20 69 73 20 70 6c 61 74 66 6f 72 6d 20 73 lt is platform s
2970: 70 65 63 69 66 69 63 20 61 6e 64 20 63 61 6e 20 pecific and can
2980: 62 65 20 73 65 74 20 61 74 20 63 6f 6d 70 69 6c be set at compil
2990: 65 20 74 69 6d 65 2e 20 54 68 65 0a 64 65 66 61 e time. The.defa
29a0: 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 20 63 61 6e ult location can
29b0: 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 20 62 be overridden b
29c0: 79 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 y the <b class="
29d0: 76 61 72 69 61 62 6c 65 22 3e 53 53 4c 5f 43 45 variable">SSL_CE
29e0: 52 54 5f 44 49 52 3c 2f 62 3e 20 65 6e 76 69 72 RT_DIR</b> envir
29f0: 6f 6e 6d 65 6e 74 0a 76 61 72 69 61 62 6c 65 2e onment.variable.
2a00: 20 53 65 65 20 3c 73 70 61 6e 20 63 6c 61 73 73 See <span class
2a10: 3d 22 73 65 63 74 72 65 66 22 3e 3c 61 20 68 72 ="sectref"><a hr
2a20: 65 66 3d 22 23 73 65 63 74 69 6f 6e 34 22 3e 43 ef="#section4">C
2a30: 65 72 74 69 66 69 63 61 74 65 20 56 61 6c 69 64 ertificate Valid
2a40: 61 74 69 6f 6e 3c 2f 61 3e 3c 2f 73 70 61 6e 3e ation</a></span>
2a50: 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c for more detail
2a60: 73 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e s.</p></dd>.<dt>
2a70: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
2a80: 22 3e 2d 63 61 66 69 6c 65 3c 2f 62 3e 20 3c 69 ">-cafile</b> <i
2a90: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 66 69 6c class="arg">fil
2aa0: 65 6e 61 6d 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c ename</i></dt>.<
2ab0: 64 64 3e 3c 70 3e 53 70 65 63 69 66 69 65 73 20 dd><p>Specifies
2ac0: 74 68 65 20 66 69 6c 65 20 77 69 74 68 20 74 68 the file with th
2ad0: 65 20 43 65 72 74 69 66 69 63 61 74 65 20 41 75 e Certificate Au
2ae0: 74 68 6f 72 69 74 79 20 28 43 41 29 20 63 65 72 thority (CA) cer
2af0: 74 69 66 69 63 61 74 65 73 20 74 6f 20 75 73 65 tificates to use
2b00: 20 69 6e 0a 3c 62 20 63 6c 61 73 73 3d 22 63 6f in.<b class="co
2b10: 6e 73 74 22 3e 50 45 4d 3c 2f 62 3e 20 66 69 6c nst">PEM</b> fil
2b20: 65 20 66 6f 72 6d 61 74 2e 20 54 68 65 20 64 65 e format. The de
2b30: 66 61 75 6c 74 20 69 73 20 26 71 75 6f 74 3b 3c fault is "<
2b40: 62 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 b class="file">c
2b50: 65 72 74 2e 70 65 6d 3c 2f 62 3e 26 71 75 6f 74 ert.pem</b>"
2b60: 3b 2c 20 69 6e 20 74 68 65 20 4f 70 65 6e 53 53 ;, in the OpenSS
2b70: 4c 0a 64 69 72 65 63 74 6f 72 79 2e 20 54 68 65 L.directory. The
2b80: 20 64 65 66 61 75 6c 74 20 66 69 6c 65 20 63 61 default file ca
2b90: 6e 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 20 n be overridden
2ba0: 62 79 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d by the <b class=
2bb0: 22 76 61 72 69 61 62 6c 65 22 3e 53 53 4c 5f 43 "variable">SSL_C
2bc0: 45 52 54 5f 46 49 4c 45 3c 2f 62 3e 20 65 6e 76 ERT_FILE</b> env
2bd0: 69 72 6f 6e 6d 65 6e 74 0a 76 61 72 69 61 62 6c ironment.variabl
2be0: 65 2e 20 53 65 65 20 3c 73 70 61 6e 20 63 6c 61 e. See <span cla
2bf0: 73 73 3d 22 73 65 63 74 72 65 66 22 3e 3c 61 20 ss="sectref"><a
2c00: 68 72 65 66 3d 22 23 73 65 63 74 69 6f 6e 34 22 href="#section4"
2c10: 3e 43 65 72 74 69 66 69 63 61 74 65 20 56 61 6c >Certificate Val
2c20: 69 64 61 74 69 6f 6e 3c 2f 61 3e 3c 2f 73 70 61 idation</a></spa
2c30: 6e 3e 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 n> for more deta
2c40: 69 6c 73 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 ils.</p></dd>.<d
2c50: 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 t><b class="opti
2c60: 6f 6e 22 3e 2d 63 61 73 74 6f 72 65 3c 2f 62 3e on">-castore</b>
2c70: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
2c80: 55 52 49 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 URI</i></dt>.<dd
2c90: 3e 3c 70 3e 53 70 65 63 69 66 69 65 73 20 74 68 ><p>Specifies th
2ca0: 65 20 55 6e 69 66 6f 72 6d 20 52 65 73 6f 75 72 e Uniform Resour
2cb0: 63 65 20 49 64 65 6e 74 69 66 69 65 72 20 28 55 ce Identifier (U
2cc0: 52 49 29 20 66 6f 72 20 74 68 65 20 43 65 72 74 RI) for the Cert
2cd0: 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 ificate Authorit
2ce0: 79 0a 28 43 41 29 20 73 74 6f 72 65 2c 20 77 68 y.(CA) store, wh
2cf0: 69 63 68 20 6d 61 79 20 62 65 20 61 20 73 69 6e ich may be a sin
2d00: 67 6c 65 20 63 6f 6e 74 61 69 6e 65 72 20 6f 72 gle container or
2d10: 20 61 20 63 61 74 61 6c 6f 67 20 6f 66 20 63 6f a catalog of co
2d20: 6e 74 61 69 6e 65 72 73 2e 0a 53 74 61 72 74 69 ntainers..Starti
2d30: 6e 67 20 77 69 74 68 20 4f 70 65 6e 53 53 4c 20 ng with OpenSSL
2d40: 33 2e 32 20 6f 6e 20 4d 53 20 57 69 6e 64 6f 77 3.2 on MS Window
2d50: 73 2c 20 73 65 74 20 74 6f 20 26 71 75 6f 74 3b s, set to "
2d60: 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 <b class="const"
2d70: 3e 6f 72 67 2e 6f 70 65 6e 73 73 6c 2e 77 69 6e >org.openssl.win
2d80: 73 74 6f 72 65 3a 2f 2f 3c 2f 62 3e 26 71 75 6f store://</b>&quo
2d90: 74 3b 0a 74 6f 20 75 73 65 20 74 68 65 20 62 75 t;.to use the bu
2da0: 69 6c 74 2d 69 6e 20 4d 53 20 57 69 6e 64 6f 77 ilt-in MS Window
2db0: 73 20 43 65 72 74 69 66 69 63 61 74 65 20 53 74 s Certificate St
2dc0: 6f 72 65 2e 0a 53 65 65 20 3c 73 70 61 6e 20 63 ore..See <span c
2dd0: 6c 61 73 73 3d 22 73 65 63 74 72 65 66 22 3e 3c lass="sectref"><
2de0: 61 20 68 72 65 66 3d 22 23 73 65 63 74 69 6f 6e a href="#section
2df0: 34 22 3e 43 65 72 74 69 66 69 63 61 74 65 20 56 4">Certificate V
2e00: 61 6c 69 64 61 74 69 6f 6e 3c 2f 61 3e 3c 2f 73 alidation</a></s
2e10: 70 61 6e 3e 20 66 6f 72 20 6d 6f 72 65 20 64 65 pan> for more de
2e20: 74 61 69 6c 73 2e 0a 54 68 69 73 20 6f 70 74 69 tails..This opti
2e30: 6f 6e 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 on is new for Tc
2e40: 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 lTLS 1.8.</p></d
2e50: 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d d>.<dt><b class=
2e60: 22 6f 70 74 69 6f 6e 22 3e 2d 63 65 72 74 66 69 "option">-certfi
2e70: 6c 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d le</b> <i class=
2e80: 22 61 72 67 22 3e 66 69 6c 65 6e 61 6d 65 3c 2f "arg">filename</
2e90: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 i></dt>.<dd><p>S
2ea0: 70 65 63 69 66 69 65 73 20 74 68 65 20 6e 61 6d pecifies the nam
2eb0: 65 20 6f 66 20 74 68 65 20 66 69 6c 65 20 77 69 e of the file wi
2ec0: 74 68 20 74 68 65 20 63 65 72 74 69 66 69 63 61 th the certifica
2ed0: 74 65 20 74 6f 20 75 73 65 20 69 6e 20 50 45 4d te to use in PEM
2ee0: 20 66 6f 72 6d 61 74 0a 61 73 20 74 68 65 20 6c format.as the l
2ef0: 6f 63 61 6c 20 28 63 6c 69 65 6e 74 20 6f 72 20 ocal (client or
2f00: 73 65 72 76 65 72 29 20 63 65 72 74 69 66 69 63 server) certific
2f10: 61 74 65 2e 20 49 74 20 61 6c 73 6f 20 63 6f 6e ate. It also con
2f20: 74 61 69 6e 73 20 74 68 65 20 70 75 62 6c 69 63 tains the public
2f30: 20 6b 65 79 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c key.</p></dd>.<
2f40: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 dt><b class="opt
2f50: 69 6f 6e 22 3e 2d 63 65 72 74 3c 2f 62 3e 20 3c ion">-cert</b> <
2f60: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 74 i class="arg">st
2f70: 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 ring</i></dt>.<d
2f80: 64 3e 3c 70 3e 53 70 65 63 69 66 69 65 73 20 74 d><p>Specifies t
2f90: 68 65 20 63 65 72 74 69 66 69 63 61 74 65 20 74 he certificate t
2fa0: 6f 20 75 73 65 20 61 73 20 61 20 44 45 52 20 65 o use as a DER e
2fb0: 6e 63 6f 64 65 64 20 73 74 72 69 6e 67 20 28 58 ncoded string (X
2fc0: 2e 35 30 39 20 44 45 52 29 2e 3c 2f 70 3e 3c 2f .509 DER).</p></
2fd0: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
2fe0: 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 69 70 68 65 ="option">-ciphe
2ff0: 72 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 r</b> <i class="
3000: 61 72 67 22 3e 73 74 72 69 6e 67 3c 2f 69 3e 3c arg">string</i><
3010: 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 70 65 63 /dt>.<dd><p>Spec
3020: 69 66 69 65 73 20 74 68 65 20 6c 69 73 74 20 6f ifies the list o
3030: 66 20 63 69 70 68 65 72 73 20 74 6f 20 75 73 65 f ciphers to use
3040: 20 66 6f 72 20 54 4c 53 20 31 2e 32 20 61 6e 64 for TLS 1.2 and
3050: 20 65 61 72 6c 69 65 72 20 63 6f 6e 6e 65 63 74 earlier connect
3060: 69 6f 6e 73 2e 0a 53 74 72 69 6e 67 20 69 73 20 ions..String is
3070: 61 20 63 6f 6c 6f 6e 20 26 71 75 6f 74 3b 3c 62 a colon "<b
3080: 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 3a class="const">:
3090: 3c 2f 62 3e 26 71 75 6f 74 3b 20 73 65 70 61 72 </b>" separ
30a0: 61 74 65 64 20 6c 69 73 74 20 6f 66 20 63 69 70 ated list of cip
30b0: 68 65 72 73 2e 0a 43 69 70 68 65 72 73 20 63 61 hers..Ciphers ca
30c0: 6e 20 62 65 20 63 6f 6d 62 69 6e 65 64 20 75 73 n be combined us
30d0: 69 6e 67 20 74 68 65 20 26 71 75 6f 74 3b 3c 62 ing the "<b
30e0: 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 2b class="const">+
30f0: 3c 2f 62 3e 26 71 75 6f 74 3b 20 63 68 61 72 61 </b>" chara
3100: 63 74 65 72 2e 0a 50 72 65 66 69 78 65 73 20 63 cter..Prefixes c
3110: 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 70 65 an be used to pe
3120: 72 6d 61 6e 65 6e 74 6c 79 20 72 65 6d 6f 76 65 rmanently remove
3130: 20 26 71 75 6f 74 3b 3c 62 20 63 6c 61 73 73 3d "<b class=
3140: 22 63 6f 6e 73 74 22 3e 21 3c 2f 62 3e 26 71 75 "const">!</b>&qu
3150: 6f 74 3b 2c 20 64 65 6c 65 74 65 20 26 71 75 6f ot;, delete &quo
3160: 74 3b 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 t;<b class="cons
3170: 74 22 3e 2d 3c 2f 62 3e 26 71 75 6f 74 3b 2c 20 t">-</b>",
3180: 6f 72 0a 6d 6f 76 65 20 74 6f 20 74 68 65 20 65 or.move to the e
3190: 6e 64 20 26 71 75 6f 74 3b 3c 62 20 63 6c 61 73 nd "<b clas
31a0: 73 3d 22 63 6f 6e 73 74 22 3e 2b 3c 2f 62 3e 26 s="const">+</b>&
31b0: 71 75 6f 74 3b 20 61 20 73 70 65 63 69 66 69 65 quot; a specifie
31c0: 64 20 63 69 70 68 65 72 2e 0a 4b 65 79 77 6f 72 d cipher..Keywor
31d0: 64 73 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e ds <b class="con
31e0: 73 74 22 3e 40 53 54 52 45 4e 47 54 48 3c 2f 62 st">@STRENGTH</b
31f0: 3e 20 28 73 6f 72 74 20 62 79 20 61 6c 67 6f 72 > (sort by algor
3200: 69 74 68 6d 20 6b 65 79 20 6c 65 6e 67 74 68 29 ithm key length)
3210: 2c 0a 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 ,.<b class="cons
3220: 74 22 3e 40 53 45 43 4c 45 56 45 4c 3d 3c 2f 62 t">@SECLEVEL=</b
3230: 3e 3c 65 6d 3e 6e 3c 2f 65 6d 3e 20 28 73 65 74 ><em>n</em> (set
3240: 20 73 65 63 75 72 69 74 79 20 6c 65 76 65 6c 20 security level
3250: 74 6f 20 6e 29 2c 20 61 6e 64 0a 3c 62 20 63 6c to n), and.<b cl
3260: 61 73 73 3d 22 63 6f 6e 73 74 22 3e 44 45 46 41 ass="const">DEFA
3270: 55 4c 54 3c 2f 62 3e 20 28 75 73 65 20 64 65 66 ULT</b> (use def
3280: 61 75 6c 74 20 63 69 70 68 65 72 20 6c 69 73 74 ault cipher list
3290: 2c 20 61 74 20 73 74 61 72 74 20 6f 6e 6c 79 29 , at start only)
32a0: 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 73 70 65 can also be spe
32b0: 63 69 66 69 65 64 2e 0a 53 65 65 20 74 68 65 20 cified..See the
32c0: 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f <a href="https:/
32d0: 2f 64 6f 63 73 2e 6f 70 65 6e 73 73 6c 2e 6f 72 /docs.openssl.or
32e0: 67 2f 6d 61 73 74 65 72 2f 6d 61 6e 31 2f 6f 70 g/master/man1/op
32f0: 65 6e 73 73 6c 2d 63 69 70 68 65 72 73 2f 23 6f enssl-ciphers/#o
3300: 70 74 69 6f 6e 73 22 3e 4f 70 65 6e 53 53 4c 3c ptions">OpenSSL<
3310: 2f 61 3e 0a 64 6f 63 75 6d 65 6e 74 61 74 69 6f /a>.documentatio
3320: 6e 20 66 6f 72 20 74 68 65 20 66 75 6c 6c 20 6c n for the full l
3330: 69 73 74 20 6f 66 20 76 61 6c 69 64 20 76 61 6c ist of valid val
3340: 75 65 73 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 ues.</p></dd>.<d
3350: 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 t><b class="opti
3360: 6f 6e 22 3e 2d 63 69 70 68 65 72 73 75 69 74 65 on">-ciphersuite
3370: 73 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 s</b> <i class="
3380: 61 72 67 22 3e 73 74 72 69 6e 67 3c 2f 69 3e 3c arg">string</i><
3390: 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 70 65 63 /dt>.<dd><p>Spec
33a0: 69 66 69 65 73 20 74 68 65 20 6c 69 73 74 20 6f ifies the list o
33b0: 66 20 63 69 70 68 65 72 20 73 75 69 74 65 73 20 f cipher suites
33c0: 74 6f 20 75 73 65 20 66 6f 72 20 54 4c 53 20 31 to use for TLS 1
33d0: 2e 33 20 61 73 20 61 20 63 6f 6c 6f 6e 0a 26 71 .3 as a colon.&q
33e0: 75 6f 74 3b 3c 62 20 63 6c 61 73 73 3d 22 63 6f uot;<b class="co
33f0: 6e 73 74 22 3e 3a 3c 2f 62 3e 26 71 75 6f 74 3b nst">:</b>"
3400: 20 73 65 70 61 72 61 74 65 64 20 6c 69 73 74 20 separated list
3410: 6f 66 20 63 69 70 68 65 72 20 73 75 69 74 65 20 of cipher suite
3420: 6e 61 6d 65 73 2e 20 53 65 65 20 74 68 65 0a 3c names. See the.<
3430: 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f a href="https://
3440: 64 6f 63 73 2e 6f 70 65 6e 73 73 6c 2e 6f 72 67 docs.openssl.org
3450: 2f 6d 61 73 74 65 72 2f 6d 61 6e 31 2f 6f 70 65 /master/man1/ope
3460: 6e 73 73 6c 2d 63 69 70 68 65 72 73 2f 23 6f 70 nssl-ciphers/#op
3470: 74 69 6f 6e 73 22 3e 4f 70 65 6e 53 53 4c 3c 2f tions">OpenSSL</
3480: 61 3e 0a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e a>.documentation
3490: 20 66 6f 72 20 74 68 65 20 66 75 6c 6c 20 6c 69 for the full li
34a0: 73 74 20 6f 66 20 76 61 6c 69 64 20 76 61 6c 75 st of valid valu
34b0: 65 73 2e 0a 54 68 69 73 20 6f 70 74 69 6f 6e 20 es..This option
34c0: 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c is new for TclTL
34d0: 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a S 1.8.</p></dd>.
34e0: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 <dt><b class="op
34f0: 74 69 6f 6e 22 3e 2d 63 6f 6d 6d 61 6e 64 3c 2f tion">-command</
3500: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
3510: 22 3e 63 61 6c 6c 62 61 63 6b 3c 2f 69 3e 3c 2f ">callback</i></
3520: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 70 65 63 69 dt>.<dd><p>Speci
3530: 66 69 65 73 20 74 68 65 20 63 61 6c 6c 62 61 63 fies the callbac
3540: 6b 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 62 65 20 k command to be
3550: 69 6e 76 6f 6b 65 64 20 61 74 20 73 65 76 65 72 invoked at sever
3560: 61 6c 20 70 6f 69 6e 74 73 20 64 75 72 69 6e 67 al points during
3570: 20 74 68 65 0a 68 61 6e 64 73 68 61 6b 65 20 74 the.handshake t
3580: 6f 20 70 61 73 73 20 65 72 72 6f 72 73 2c 20 74 o pass errors, t
3590: 72 61 63 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 racing informati
35a0: 6f 6e 2c 20 61 6e 64 20 70 72 6f 74 6f 63 6f 6c on, and protocol
35b0: 20 6d 65 73 73 61 67 65 73 2e 0a 53 65 65 20 3c messages..See <
35c0: 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 65 63 74 span class="sect
35d0: 72 65 66 22 3e 3c 61 20 68 72 65 66 3d 22 23 73 ref"><a href="#s
35e0: 65 63 74 69 6f 6e 35 22 3e 43 61 6c 6c 62 61 63 ection5">Callbac
35f0: 6b 20 4f 70 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 73 k Options</a></s
3600: 70 61 6e 3e 20 66 6f 72 20 6d 6f 72 65 20 69 6e pan> for more in
3610: 66 6f 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 fo.</p></dd>.<dt
3620: 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f ><b class="optio
3630: 6e 22 3e 2d 64 68 70 61 72 61 6d 73 3c 2f 62 3e n">-dhparams</b>
3640: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
3650: 66 69 6c 65 6e 61 6d 65 3c 2f 69 3e 3c 2f 64 74 filename</i></dt
3660: 3e 0a 3c 64 64 3e 3c 70 3e 53 70 65 63 69 66 69 >.<dd><p>Specifi
3670: 65 73 20 74 68 65 20 44 69 66 66 69 65 2d 48 65 es the Diffie-He
3680: 6c 6c 6d 61 6e 20 28 44 48 29 20 70 61 72 61 6d llman (DH) param
3690: 65 74 65 72 73 20 66 69 6c 65 2e 3c 2f 70 3e 3c eters file.</p><
36a0: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
36b0: 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 6b 65 79 66 s="option">-keyf
36c0: 69 6c 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 ile</b> <i class
36d0: 3d 22 61 72 67 22 3e 66 69 6c 65 6e 61 6d 65 3c ="arg">filename<
36e0: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
36f0: 53 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 Specifies the pr
3700: 69 76 61 74 65 20 6b 65 79 20 66 69 6c 65 2e 20 ivate key file.
3710: 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 74 The default is t
3720: 6f 20 75 73 65 20 74 68 65 20 66 69 6c 65 0a 73 o use the file.s
3730: 70 65 63 69 66 69 65 64 20 62 79 20 74 68 65 20 pecified by the
3740: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
3750: 22 3e 2d 63 65 72 74 66 69 6c 65 3c 2f 62 3e 20 ">-certfile</b>
3760: 6f 70 74 69 6f 6e 2e 3c 2f 70 3e 3c 2f 64 64 3e option.</p></dd>
3770: 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f .<dt><b class="o
3780: 70 74 69 6f 6e 22 3e 2d 6b 65 79 3c 2f 62 3e 20 ption">-key</b>
3790: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 <i class="arg">s
37a0: 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c tring</i></dt>.<
37b0: 64 64 3e 3c 70 3e 53 70 65 63 69 66 69 65 73 20 dd><p>Specifies
37c0: 74 68 65 20 70 72 69 76 61 74 65 20 6b 65 79 20 the private key
37d0: 74 6f 20 75 73 65 20 61 73 20 61 20 44 45 52 20 to use as a DER
37e0: 65 6e 63 6f 64 65 64 20 73 74 72 69 6e 67 20 28 encoded string (
37f0: 50 4b 43 53 23 31 20 44 45 52 29 2e 3c 2f 70 3e PKCS#1 DER).</p>
3800: 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 </dd>.<dt><b cla
3810: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 6d 6f 64 ss="option">-mod
3820: 65 6c 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d el</b> <i class=
3830: 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c 3c 2f 69 "arg">channel</i
3840: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 46 6f ></dt>.<dd><p>Fo
3850: 72 63 65 20 74 68 69 73 20 63 68 61 6e 6e 65 6c rce this channel
3860: 20 74 6f 20 73 68 61 72 65 20 74 68 65 20 73 61 to share the sa
3870: 6d 65 20 3c 69 20 63 6c 61 73 73 3d 22 74 65 72 me <i class="ter
3880: 6d 22 3e 53 53 4c 5f 43 54 58 3c 2f 69 3e 20 73 m">SSL_CTX</i> s
3890: 74 72 75 63 74 75 72 65 20 61 73 20 74 68 65 0a tructure as the.
38a0: 73 70 65 63 69 66 69 65 64 20 3c 69 20 63 6c 61 specified <i cla
38b0: 73 73 3d 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c ss="arg">channel
38c0: 3c 2f 69 3e 2c 20 61 6e 64 20 74 68 65 72 65 66 </i>, and theref
38d0: 6f 72 65 20 73 68 61 72 65 20 63 6f 6e 66 69 67 ore share config
38e0: 2c 20 63 61 6c 6c 62 61 63 6b 73 2c 20 65 74 63 , callbacks, etc
38f0: 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c .</p></dd>.<dt><
3900: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
3910: 3e 2d 70 61 73 73 77 6f 72 64 3c 2f 62 3e 20 3c >-password</b> <
3920: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 63 61 i class="arg">ca
3930: 6c 6c 62 61 63 6b 3c 2f 69 3e 3c 2f 64 74 3e 0a llback</i></dt>.
3940: 3c 64 64 3e 3c 70 3e 53 70 65 63 69 66 69 65 73 <dd><p>Specifies
3950: 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 63 6f the callback co
3960: 6d 6d 61 6e 64 20 74 6f 20 69 6e 76 6f 6b 65 20 mmand to invoke
3970: 77 68 65 6e 20 4f 70 65 6e 53 53 4c 20 6e 65 65 when OpenSSL nee
3980: 64 73 20 74 6f 20 6f 62 74 61 69 6e 20 61 0a 70 ds to obtain a.p
3990: 61 73 73 77 6f 72 64 2e 20 54 68 69 73 20 69 73 assword. This is
39a0: 20 74 79 70 69 63 61 6c 6c 79 20 75 73 65 64 20 typically used
39b0: 74 6f 20 75 6e 6c 6f 63 6b 20 74 68 65 20 70 72 to unlock the pr
39c0: 69 76 61 74 65 20 6b 65 79 20 6f 66 20 61 20 63 ivate key of a c
39d0: 65 72 74 69 66 69 63 61 74 65 2e 0a 54 68 65 20 ertificate..The
39e0: 63 61 6c 6c 62 61 63 6b 20 73 68 6f 75 6c 64 20 callback should
39f0: 72 65 74 75 72 6e 20 61 20 70 61 73 73 77 6f 72 return a passwor
3a00: 64 20 73 74 72 69 6e 67 2e 20 54 68 69 73 20 6f d string. This o
3a10: 70 74 69 6f 6e 20 68 61 73 20 63 68 61 6e 67 65 ption has change
3a20: 64 20 66 6f 72 0a 54 63 6c 54 4c 53 20 31 2e 38 d for.TclTLS 1.8
3a30: 2e 20 53 65 65 20 3c 73 70 61 6e 20 63 6c 61 73 . See <span clas
3a40: 73 3d 22 73 65 63 74 72 65 66 22 3e 3c 61 20 68 s="sectref"><a h
3a50: 72 65 66 3d 22 23 73 65 63 74 69 6f 6e 35 22 3e ref="#section5">
3a60: 43 61 6c 6c 62 61 63 6b 20 4f 70 74 69 6f 6e 73 Callback Options
3a70: 3c 2f 61 3e 3c 2f 73 70 61 6e 3e 20 66 6f 72 20 </a></span> for
3a80: 6d 6f 72 65 20 69 6e 66 6f 2e 3c 2f 70 3e 3c 2f more info.</p></
3a90: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
3aa0: 3d 22 6f 70 74 69 6f 6e 22 3e 2d 70 6f 73 74 5f ="option">-post_
3ab0: 68 61 6e 64 73 68 61 6b 65 3c 2f 62 3e 20 3c 69 handshake</b> <i
3ac0: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f class="arg">boo
3ad0: 6c 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c l</i></dt>.<dd><
3ae0: 70 3e 41 6c 6c 6f 77 20 70 6f 73 74 2d 68 61 6e p>Allow post-han
3af0: 64 73 68 61 6b 65 20 73 65 73 73 69 6f 6e 20 74 dshake session t
3b00: 69 63 6b 65 74 20 75 70 64 61 74 65 73 2e 20 54 icket updates. T
3b10: 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 6e 65 his option is ne
3b20: 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 2e 38 w for TclTLS 1.8
3b30: 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c .</p></dd>.<dt><
3b40: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
3b50: 3e 2d 72 65 71 75 65 73 74 3c 2f 62 3e 20 3c 69 >-request</b> <i
3b60: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f class="arg">boo
3b70: 6c 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c l</i></dt>.<dd><
3b80: 70 3e 52 65 71 75 65 73 74 20 61 20 63 65 72 74 p>Request a cert
3b90: 69 66 69 63 61 74 65 20 66 72 6f 6d 20 74 68 65 ificate from the
3ba0: 20 70 65 65 72 20 64 75 72 69 6e 67 20 74 68 65 peer during the
3bb0: 20 53 53 4c 20 68 61 6e 64 73 68 61 6b 65 2e 20 SSL handshake.
3bc0: 54 68 69 73 20 69 73 20 6e 65 65 64 65 64 0a 74 This is needed.t
3bd0: 6f 20 64 6f 20 43 65 72 74 69 66 69 63 61 74 65 o do Certificate
3be0: 20 56 61 6c 69 64 61 74 69 6f 6e 2e 20 53 74 61 Validation. Sta
3bf0: 72 74 69 6e 67 20 69 6e 20 54 63 6c 54 4c 53 20 rting in TclTLS
3c00: 31 2e 38 2c 20 74 68 65 20 64 65 66 61 75 6c 74 1.8, the default
3c10: 20 69 73 0a 3c 62 20 63 6c 61 73 73 3d 22 63 6f is.<b class="co
3c20: 6e 73 74 22 3e 74 72 75 65 3c 2f 62 3e 2e 20 53 nst">true</b>. S
3c30: 74 61 72 74 69 6e 67 20 69 6e 20 54 63 6c 54 4c tarting in TclTL
3c40: 53 20 32 2e 30 2c 20 69 66 20 73 65 74 20 74 6f S 2.0, if set to
3c50: 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 <b class="const
3c60: 22 3e 66 61 6c 73 65 3c 2f 62 3e 20 61 6e 64 0a ">false</b> and.
3c70: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
3c80: 22 3e 2d 72 65 71 75 69 72 65 3c 2f 62 3e 20 69 ">-require</b> i
3c90: 73 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 s <b class="cons
3ca0: 74 22 3e 74 72 75 65 3c 2f 62 3e 2c 20 74 68 65 t">true</b>, the
3cb0: 6e 20 74 68 69 73 20 77 69 6c 6c 20 62 65 20 6f n this will be o
3cc0: 76 65 72 72 69 64 64 65 6e 20 74 6f 20 3c 62 20 verridden to <b
3cd0: 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 74 72 class="const">tr
3ce0: 75 65 3c 2f 62 3e 2e 0a 53 65 65 20 3c 73 70 61 ue</b>..See <spa
3cf0: 6e 20 63 6c 61 73 73 3d 22 73 65 63 74 72 65 66 n class="sectref
3d00: 22 3e 3c 61 20 68 72 65 66 3d 22 23 73 65 63 74 "><a href="#sect
3d10: 69 6f 6e 34 22 3e 43 65 72 74 69 66 69 63 61 74 ion4">Certificat
3d20: 65 20 56 61 6c 69 64 61 74 69 6f 6e 3c 2f 61 3e e Validation</a>
3d30: 3c 2f 73 70 61 6e 3e 20 66 6f 72 20 6d 6f 72 65 </span> for more
3d40: 20 64 65 74 61 69 6c 73 2e 3c 2f 70 3e 3c 2f 64 details.</p></d
3d50: 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d d>.<dt><b class=
3d60: 22 6f 70 74 69 6f 6e 22 3e 2d 72 65 71 75 69 72 "option">-requir
3d70: 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 e</b> <i class="
3d80: 61 72 67 22 3e 62 6f 6f 6c 3c 2f 69 3e 3c 2f 64 arg">bool</i></d
3d90: 74 3e 0a 3c 64 64 3e 3c 70 3e 52 65 71 75 69 72 t>.<dd><p>Requir
3da0: 65 20 61 20 76 61 6c 69 64 20 63 65 72 74 69 66 e a valid certif
3db0: 69 63 61 74 65 20 66 72 6f 6d 20 74 68 65 20 70 icate from the p
3dc0: 65 65 72 20 64 75 72 69 6e 67 20 74 68 65 20 53 eer during the S
3dd0: 53 4c 20 68 61 6e 64 73 68 61 6b 65 2e 20 49 66 SL handshake. If
3de0: 20 74 68 69 73 20 69 73 0a 73 65 74 20 74 6f 20 this is.set to
3df0: 74 72 75 65 2c 20 74 68 65 6e 20 3c 62 20 63 6c true, then <b cl
3e00: 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 72 65 ass="option">-re
3e10: 71 75 65 73 74 3c 2f 62 3e 20 6d 75 73 74 20 61 quest</b> must a
3e20: 6c 73 6f 20 62 65 20 73 65 74 20 74 6f 20 74 72 lso be set to tr
3e30: 75 65 20 61 6e 64 20 61 20 65 69 74 68 65 72 0a ue and a either.
3e40: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
3e50: 22 3e 2d 63 61 64 69 72 3c 2f 62 3e 2c 20 3c 62 ">-cadir</b>, <b
3e60: 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e class="option">
3e70: 2d 63 61 66 69 6c 65 3c 2f 62 3e 2c 20 3c 62 20 -cafile</b>, <b
3e80: 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d class="option">-
3e90: 63 61 73 74 6f 72 65 3c 2f 62 3e 2c 20 6f 72 20 castore</b>, or
3ea0: 61 20 70 6c 61 74 66 6f 72 6d 20 64 65 66 61 75 a platform defau
3eb0: 6c 74 0a 6d 75 73 74 20 62 65 20 70 72 6f 76 69 lt.must be provi
3ec0: 64 65 64 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 ded in order to
3ed0: 76 61 6c 69 64 61 74 65 20 61 67 61 69 6e 73 74 validate against
3ee0: 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 6e . The default in
3ef0: 20 54 63 6c 54 4c 53 20 31 2e 38 20 61 6e 64 0a TclTLS 1.8 and.
3f00: 65 61 72 6c 69 65 72 20 76 65 72 73 69 6f 6e 73 earlier versions
3f10: 20 69 73 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f is <b class="co
3f20: 6e 73 74 22 3e 66 61 6c 73 65 3c 2f 62 3e 20 73 nst">false</b> s
3f30: 69 6e 63 65 20 6e 6f 74 20 61 6c 6c 20 70 6c 61 ince not all pla
3f40: 74 66 6f 72 6d 73 20 68 61 76 65 20 63 65 72 74 tforms have cert
3f50: 69 66 69 63 61 74 65 73 20 74 6f 0a 76 61 6c 69 ificates to.vali
3f60: 64 61 74 65 20 61 67 61 69 6e 73 74 20 69 6e 20 date against in
3f70: 61 20 66 6f 72 6d 20 63 6f 6d 70 61 74 69 62 6c a form compatibl
3f80: 65 20 77 69 74 68 20 4f 70 65 6e 53 53 4c 2e 20 e with OpenSSL.
3f90: 53 74 61 72 74 69 6e 67 20 69 6e 20 54 63 6c 54 Starting in TclT
3fa0: 4c 53 20 32 2e 30 2c 0a 74 68 65 20 64 65 66 61 LS 2.0,.the defa
3fb0: 75 6c 74 20 69 73 20 3c 62 20 63 6c 61 73 73 3d ult is <b class=
3fc0: 22 63 6f 6e 73 74 22 3e 74 72 75 65 3c 2f 62 3e "const">true</b>
3fd0: 2e 0a 53 65 65 20 3c 73 70 61 6e 20 63 6c 61 73 ..See <span clas
3fe0: 73 3d 22 73 65 63 74 72 65 66 22 3e 3c 61 20 68 s="sectref"><a h
3ff0: 72 65 66 3d 22 23 73 65 63 74 69 6f 6e 34 22 3e ref="#section4">
4000: 43 65 72 74 69 66 69 63 61 74 65 20 56 61 6c 69 Certificate Vali
4010: 64 61 74 69 6f 6e 3c 2f 61 3e 3c 2f 73 70 61 6e dation</a></span
4020: 3e 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 > for more detai
4030: 6c 73 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 ls.</p></dd>.<dt
4040: 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f ><b class="optio
4050: 6e 22 3e 2d 73 65 63 75 72 69 74 79 5f 6c 65 76 n">-security_lev
4060: 65 6c 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d el</b> <i class=
4070: 22 61 72 67 22 3e 69 6e 74 65 67 65 72 3c 2f 69 "arg">integer</i
4080: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 70 ></dt>.<dd><p>Sp
4090: 65 63 69 66 69 65 73 20 74 68 65 20 73 65 63 75 ecifies the secu
40a0: 72 69 74 79 20 6c 65 76 65 6c 20 28 76 61 6c 75 rity level (valu
40b0: 65 20 66 72 6f 6d 20 30 20 74 6f 20 35 29 2e 20 e from 0 to 5).
40c0: 54 68 65 20 73 65 63 75 72 69 74 79 20 6c 65 76 The security lev
40d0: 65 6c 20 61 66 66 65 63 74 73 0a 74 68 65 20 61 el affects.the a
40e0: 6c 6c 6f 77 65 64 20 63 69 70 68 65 72 20 73 75 llowed cipher su
40f0: 69 74 65 20 65 6e 63 72 79 70 74 69 6f 6e 20 61 ite encryption a
4100: 6c 67 6f 72 69 74 68 6d 73 2c 20 73 75 70 70 6f lgorithms, suppo
4110: 72 74 65 64 20 45 43 43 20 63 75 72 76 65 73 2c rted ECC curves,
4120: 0a 73 75 70 70 6f 72 74 65 64 20 73 69 67 6e 61 .supported signa
4130: 74 75 72 65 20 61 6c 67 6f 72 69 74 68 6d 73 2c ture algorithms,
4140: 20 44 48 20 70 61 72 61 6d 65 74 65 72 20 73 69 DH parameter si
4150: 7a 65 73 2c 20 63 65 72 74 69 66 69 63 61 74 65 zes, certificate
4160: 20 6b 65 79 20 73 69 7a 65 73 0a 61 6e 64 20 73 key sizes.and s
4170: 69 67 6e 61 74 75 72 65 20 61 6c 67 6f 72 69 74 ignature algorit
4180: 68 6d 73 2e 20 54 68 65 20 64 65 66 61 75 6c 74 hms. The default
4190: 20 69 73 20 31 20 70 72 69 6f 72 20 74 6f 20 4f is 1 prior to O
41a0: 70 65 6e 53 53 4c 20 33 2e 32 20 61 6e 64 20 32 penSSL 3.2 and 2
41b0: 0a 74 68 65 72 65 61 66 74 65 72 2e 20 4c 65 76 .thereafter. Lev
41c0: 65 6c 20 33 20 61 6e 64 20 68 69 67 68 65 72 20 el 3 and higher
41d0: 64 69 73 61 62 6c 65 20 73 75 70 70 6f 72 74 20 disable support
41e0: 66 6f 72 20 73 65 73 73 69 6f 6e 20 74 69 63 6b for session tick
41f0: 65 74 73 20 61 6e 64 0a 6f 6e 6c 79 20 61 63 63 ets and.only acc
4200: 65 70 74 20 63 69 70 68 65 72 20 73 75 69 74 65 ept cipher suite
4210: 73 20 74 68 61 74 20 70 72 6f 76 69 64 65 20 66 s that provide f
4220: 6f 72 77 61 72 64 20 73 65 63 72 65 63 79 2e 0a orward secrecy..
4230: 54 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 6e This option is n
4240: 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 2e ew for TclTLS 1.
4250: 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 8.</p></dd>.<dt>
4260: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
4270: 22 3e 2d 73 65 72 76 65 72 3c 2f 62 3e 20 3c 69 ">-server</b> <i
4280: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f class="arg">boo
4290: 6c 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c l</i></dt>.<dd><
42a0: 70 3e 53 70 65 63 69 66 69 65 73 20 77 68 65 74 p>Specifies whet
42b0: 68 65 72 20 74 6f 20 61 63 74 20 61 73 20 61 20 her to act as a
42c0: 73 65 72 76 65 72 20 61 6e 64 20 72 65 73 70 6f server and respo
42d0: 6e 64 20 77 69 74 68 20 61 20 73 65 72 76 65 72 nd with a server
42e0: 20 68 61 6e 64 73 68 61 6b 65 20 77 68 65 6e 20 handshake when
42f0: 61 0a 63 6c 69 65 6e 74 20 63 6f 6e 6e 65 63 74 a.client connect
4300: 73 20 61 6e 64 20 70 72 6f 76 69 64 65 73 20 61 s and provides a
4310: 20 63 6c 69 65 6e 74 20 68 61 6e 64 73 68 61 6b client handshak
4320: 65 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 e. The default i
4330: 73 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 s <b class="cons
4340: 74 22 3e 66 61 6c 73 65 3c 2f 62 3e 2e 3c 2f 70 t">false</b>.</p
4350: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
4360: 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 73 65 ass="option">-se
4370: 72 76 65 72 6e 61 6d 65 3c 2f 62 3e 20 3c 69 20 rvername</b> <i
4380: 63 6c 61 73 73 3d 22 61 72 67 22 3e 68 6f 73 74 class="arg">host
4390: 6e 61 6d 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 name</i></dt>.<d
43a0: 64 3e 3c 70 3e 53 70 65 63 69 66 79 20 74 68 65 d><p>Specify the
43b0: 20 70 65 65 72 27 73 20 68 6f 73 74 6e 61 6d 65 peer's hostname
43c0: 2e 20 54 68 69 73 20 69 73 20 75 73 65 64 20 74 . This is used t
43d0: 6f 20 73 65 74 20 74 68 65 20 54 4c 53 20 53 65 o set the TLS Se
43e0: 72 76 65 72 20 4e 61 6d 65 20 49 6e 64 69 63 61 rver Name Indica
43f0: 74 69 6f 6e 0a 28 53 4e 49 29 20 65 78 74 65 6e tion.(SNI) exten
4400: 73 69 6f 6e 2e 20 53 65 74 20 74 68 69 73 20 74 sion. Set this t
4410: 6f 20 74 68 65 20 65 78 70 65 63 74 65 64 20 73 o the expected s
4420: 65 72 76 65 72 6e 61 6d 65 20 69 6e 20 74 68 65 ervername in the
4430: 20 73 65 72 76 65 72 27 73 20 63 65 72 74 69 66 server's certif
4440: 69 63 61 74 65 0a 6f 72 20 6f 6e 65 20 6f 66 20 icate.or one of
4450: 74 68 65 20 53 75 62 6a 65 63 74 20 41 6c 74 65 the Subject Alte
4460: 72 6e 61 74 65 20 4e 61 6d 65 73 20 28 53 41 4e rnate Names (SAN
4470: 29 2e 20 53 74 61 72 74 69 6e 67 20 69 6e 20 54 ). Starting in T
4480: 63 6c 54 4c 53 20 32 2e 30 2c 20 74 68 69 73 20 clTLS 2.0, this
4490: 77 69 6c 6c 0a 64 65 66 61 75 6c 74 20 74 6f 20 will.default to
44a0: 74 68 65 20 68 6f 73 74 20 66 6f 72 20 74 68 65 the host for the
44b0: 20 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e <b class="cmd">
44c0: 74 6c 73 3a 3a 73 6f 63 6b 65 74 3c 2f 62 3e 20 tls::socket</b>
44d0: 63 6f 6d 6d 61 6e 64 2e 3c 2f 70 3e 3c 2f 64 64 command.</p></dd
44e0: 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 >.<dt><b class="
44f0: 6f 70 74 69 6f 6e 22 3e 2d 73 65 73 73 69 6f 6e option">-session
4500: 5f 69 64 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 _id</b> <i class
4510: 3d 22 61 72 67 22 3e 62 69 6e 61 72 79 5f 73 74 ="arg">binary_st
4520: 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 ring</i></dt>.<d
4530: 64 3e 3c 70 3e 53 70 65 63 69 66 69 65 73 20 74 d><p>Specifies t
4540: 68 65 20 73 65 73 73 69 6f 6e 20 69 64 20 74 6f he session id to
4550: 20 72 65 73 75 6d 65 20 61 20 73 65 73 73 69 6f resume a sessio
4560: 6e 2e 20 4e 6f 74 20 73 75 70 70 6f 72 74 65 64 n. Not supported
4570: 20 79 65 74 2e 0a 54 68 69 73 20 6f 70 74 69 6f yet..This optio
4580: 6e 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c n is new for Tcl
4590: 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 TLS 1.8.</p></dd
45a0: 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 >.<dt><b class="
45b0: 6f 70 74 69 6f 6e 22 3e 2d 73 73 6c 32 3c 2f 62 option">-ssl2</b
45c0: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
45d0: 3e 62 6f 6f 6c 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c >bool</i></dt>.<
45e0: 64 64 3e 3c 70 3e 45 6e 61 62 6c 65 20 75 73 65 dd><p>Enable use
45f0: 20 6f 66 20 53 53 4c 20 76 32 2e 54 68 65 20 64 of SSL v2.The d
4600: 65 66 61 75 6c 74 20 69 73 20 3c 62 20 63 6c 61 efault is <b cla
4610: 73 73 3d 22 63 6f 6e 73 74 22 3e 66 61 6c 73 65 ss="const">false
4620: 3c 2f 62 3e 2e 0a 4f 70 65 6e 53 53 4c 20 31 2e </b>..OpenSSL 1.
4630: 31 2b 20 6e 6f 20 6c 6f 6e 67 65 72 20 73 75 70 1+ no longer sup
4640: 70 6f 72 74 73 20 53 53 4c 20 76 32 2c 20 73 6f ports SSL v2, so
4650: 20 74 68 69 73 20 6d 61 79 20 6e 6f 74 20 68 61 this may not ha
4660: 76 65 20 61 6e 79 20 65 66 66 65 63 74 2e 0a 53 ve any effect..S
4670: 65 65 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d ee the <b class=
4680: 22 63 6d 64 22 3e 74 6c 73 3a 3a 70 72 6f 74 6f "cmd">tls::proto
4690: 63 6f 6c 73 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 cols</b> command
46a0: 20 66 6f 72 20 73 75 70 70 6f 72 74 65 64 20 70 for supported p
46b0: 72 6f 74 6f 63 6f 6c 73 2e 3c 2f 70 3e 3c 2f 64 rotocols.</p></d
46c0: 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d d>.<dt><b class=
46d0: 22 6f 70 74 69 6f 6e 22 3e 2d 73 73 6c 33 3c 2f "option">-ssl3</
46e0: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
46f0: 22 3e 62 6f 6f 6c 3c 2f 69 3e 3c 2f 64 74 3e 0a ">bool</i></dt>.
4700: 3c 64 64 3e 3c 70 3e 45 6e 61 62 6c 65 20 75 73 <dd><p>Enable us
4710: 65 20 6f 66 20 53 53 4c 20 76 33 2e 20 54 68 65 e of SSL v3. The
4720: 20 64 65 66 61 75 6c 74 20 69 73 20 3c 62 20 63 default is <b c
4730: 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 66 61 6c lass="const">fal
4740: 73 65 3c 2f 62 3e 2e 20 53 74 61 72 74 69 6e 67 se</b>. Starting
4750: 20 69 6e 20 54 63 6c 54 4c 53 20 31 2e 38 2c 0a in TclTLS 1.8,.
4760: 75 73 65 20 6f 66 20 53 53 4c 20 76 33 20 69 66 use of SSL v3 if
4770: 20 6f 6e 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 only available
4780: 76 69 61 20 61 20 63 6f 6d 70 69 6c 65 20 74 69 via a compile ti
4790: 6d 65 20 6f 70 74 69 6f 6e 2e 0a 53 65 65 20 74 me option..See t
47a0: 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 he <b class="cmd
47b0: 22 3e 74 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 ">tls::protocols
47c0: 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 </b> command for
47d0: 20 73 75 70 70 6f 72 74 65 64 20 70 72 6f 74 6f supported proto
47e0: 63 6f 6c 73 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c cols.</p></dd>.<
47f0: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 dt><b class="opt
4800: 69 6f 6e 22 3e 2d 74 6c 73 31 3c 2f 62 3e 20 3c ion">-tls1</b> <
4810: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 62 6f i class="arg">bo
4820: 6f 6c 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e ol</i></dt>.<dd>
4830: 3c 70 3e 45 6e 61 62 6c 65 20 75 73 65 20 6f 66 <p>Enable use of
4840: 20 54 4c 53 20 76 31 2e 20 53 74 61 72 74 69 6e TLS v1. Startin
4850: 67 20 69 6e 20 54 63 6c 54 4c 53 20 32 2e 30 2c g in TclTLS 2.0,
4860: 20 74 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 the default is
4870: 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 <b class="const"
4880: 3e 66 61 6c 73 65 3c 2f 62 3e 2e 0a 4e 6f 74 65 >false</b>..Note
4890: 3a 20 54 4c 53 20 31 2e 30 20 6e 65 65 64 73 20 : TLS 1.0 needs
48a0: 53 48 41 31 20 74 6f 20 6f 70 65 72 61 74 65 2c SHA1 to operate,
48b0: 20 77 68 69 63 68 20 69 73 20 6f 6e 6c 79 20 61 which is only a
48c0: 76 61 69 6c 61 62 6c 65 20 69 6e 20 73 65 63 75 vailable in secu
48d0: 72 69 74 79 20 6c 65 76 65 6c 0a 30 20 66 6f 72 rity level.0 for
48e0: 20 4f 70 65 6e 20 53 53 4c 20 33 2e 30 2b 2e 20 Open SSL 3.0+.
48f0: 53 65 65 20 74 68 65 20 3c 62 20 63 6c 61 73 73 See the <b class
4900: 3d 22 6f 70 74 69 6f 6e 22 3e 2d 73 65 63 75 72 ="option">-secur
4910: 69 74 79 5f 6c 65 76 65 6c 3c 2f 62 3e 20 6f 70 ity_level</b> op
4920: 74 69 6f 6e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c tion.</p></dd>.<
4930: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 dt><b class="opt
4940: 69 6f 6e 22 3e 2d 74 6c 73 31 2e 31 3c 2f 62 3e ion">-tls1.1</b>
4950: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
4960: 62 6f 6f 6c 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 bool</i></dt>.<d
4970: 64 3e 3c 70 3e 45 6e 61 62 6c 65 20 75 73 65 20 d><p>Enable use
4980: 6f 66 20 54 4c 53 20 76 31 2e 31 2e 20 53 74 61 of TLS v1.1. Sta
4990: 72 74 69 6e 67 20 69 6e 20 54 63 6c 54 4c 53 20 rting in TclTLS
49a0: 32 2e 30 2c 20 74 68 65 20 64 65 66 61 75 6c 74 2.0, the default
49b0: 20 69 73 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f is <b class="co
49c0: 6e 73 74 22 3e 66 61 6c 73 65 3c 2f 62 3e 2e 0a nst">false</b>..
49d0: 4e 6f 74 65 3a 20 54 4c 53 20 31 2e 31 20 6e 65 Note: TLS 1.1 ne
49e0: 65 64 73 20 53 48 41 31 20 74 6f 20 6f 70 65 72 eds SHA1 to oper
49f0: 61 74 65 2c 20 77 68 69 63 68 20 69 73 20 6f 6e ate, which is on
4a00: 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 ly available in
4a10: 73 65 63 75 72 69 74 79 20 6c 65 76 65 6c 0a 30 security level.0
4a20: 20 66 6f 72 20 4f 70 65 6e 20 53 53 4c 20 33 2e for Open SSL 3.
4a30: 30 2b 2e 20 53 65 65 20 74 68 65 20 3c 62 20 63 0+. See the <b c
4a40: 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 73 lass="option">-s
4a50: 65 63 75 72 69 74 79 5f 6c 65 76 65 6c 3c 2f 62 ecurity_level</b
4a60: 3e 20 6f 70 74 69 6f 6e 2e 3c 2f 70 3e 3c 2f 64 > option.</p></d
4a70: 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d d>.<dt><b class=
4a80: 22 6f 70 74 69 6f 6e 22 3e 2d 74 6c 73 31 2e 32 "option">-tls1.2
4a90: 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 </b> <i class="a
4aa0: 72 67 22 3e 62 6f 6f 6c 3c 2f 69 3e 3c 2f 64 74 rg">bool</i></dt
4ab0: 3e 0a 3c 64 64 3e 3c 70 3e 45 6e 61 62 6c 65 20 >.<dd><p>Enable
4ac0: 75 73 65 20 6f 66 20 54 4c 53 20 76 31 2e 32 2e use of TLS v1.2.
4ad0: 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 The default is
4ae0: 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 <b class="const"
4af0: 3e 74 72 75 65 3c 2f 62 3e 2e 3c 2f 70 3e 3c 2f >true</b>.</p></
4b00: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
4b10: 3d 22 6f 70 74 69 6f 6e 22 3e 2d 74 6c 73 31 2e ="option">-tls1.
4b20: 33 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 3</b> <i class="
4b30: 61 72 67 22 3e 62 6f 6f 6c 3c 2f 69 3e 3c 2f 64 arg">bool</i></d
4b40: 74 3e 0a 3c 64 64 3e 3c 70 3e 45 6e 61 62 6c 65 t>.<dd><p>Enable
4b50: 20 75 73 65 20 6f 66 20 54 4c 53 20 76 31 2e 33 use of TLS v1.3
4b60: 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 . The default is
4b70: 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 <b class="const
4b80: 22 3e 74 72 75 65 3c 2f 62 3e 2e 20 54 68 69 73 ">true</b>. This
4b90: 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 6c 61 62 is only availab
4ba0: 6c 65 0a 73 74 61 72 74 69 6e 67 20 77 69 74 68 le.starting with
4bb0: 20 4f 70 65 6e 53 53 4c 20 31 2e 31 2e 31 20 61 OpenSSL 1.1.1 a
4bc0: 6e 64 20 54 63 6c 54 4c 53 20 31 2e 37 2e 3c 2f nd TclTLS 1.7.</
4bd0: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 p></dd>.<dt><b c
4be0: 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 76 lass="option">-v
4bf0: 61 6c 69 64 61 74 65 63 6f 6d 6d 61 6e 64 3c 2f alidatecommand</
4c00: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
4c10: 22 3e 63 61 6c 6c 62 61 63 6b 3c 2f 69 3e 3c 2f ">callback</i></
4c20: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 70 65 63 69 dt>.<dd><p>Speci
4c30: 66 69 65 73 20 74 68 65 20 63 61 6c 6c 62 61 63 fies the callbac
4c40: 6b 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 69 6e 76 k command to inv
4c50: 6f 6b 65 20 74 6f 20 76 61 6c 69 64 61 74 65 20 oke to validate
4c60: 74 68 65 20 70 65 65 72 20 63 65 72 74 69 66 69 the peer certifi
4c70: 63 61 74 65 73 0a 61 6e 64 20 6f 74 68 65 72 20 cates.and other
4c80: 63 6f 6e 66 69 67 20 69 6e 66 6f 20 64 75 72 69 config info duri
4c90: 6e 67 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 20 ng the protocol
4ca0: 6e 65 67 6f 74 69 61 74 69 6f 6e 20 70 68 61 73 negotiation phas
4cb0: 65 2e 20 54 68 69 73 20 63 61 6e 20 62 65 20 75 e. This can be u
4cc0: 73 65 64 0a 62 79 20 54 43 4c 20 73 63 72 69 70 sed.by TCL scrip
4cd0: 74 73 20 74 6f 20 70 65 72 66 6f 72 6d 20 74 68 ts to perform th
4ce0: 65 69 72 20 6f 77 6e 20 43 65 72 74 69 66 69 63 eir own Certific
4cf0: 61 74 65 20 56 61 6c 69 64 61 74 69 6f 6e 20 74 ate Validation t
4d00: 6f 20 73 75 70 70 6c 65 6d 65 6e 74 20 74 68 65 o supplement the
4d10: 0a 64 65 66 61 75 6c 74 20 76 61 6c 69 64 61 74 .default validat
4d20: 69 6f 6e 20 70 72 6f 76 69 64 65 64 20 62 79 20 ion provided by
4d30: 4f 70 65 6e 53 53 4c 2e 20 54 68 65 20 73 63 72 OpenSSL. The scr
4d40: 69 70 74 20 6d 75 73 74 20 72 65 74 75 72 6e 20 ipt must return
4d50: 61 20 62 6f 6f 6c 65 61 6e 20 74 72 75 65 0a 74 a boolean true.t
4d60: 6f 20 63 6f 6e 74 69 6e 75 65 20 74 68 65 20 6e o continue the n
4d70: 65 67 6f 74 69 61 74 69 6f 6e 2e 20 53 65 65 20 egotiation. See
4d80: 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 65 63 <span class="sec
4d90: 74 72 65 66 22 3e 3c 61 20 68 72 65 66 3d 22 23 tref"><a href="#
4da0: 73 65 63 74 69 6f 6e 35 22 3e 43 61 6c 6c 62 61 section5">Callba
4db0: 63 6b 20 4f 70 74 69 6f 6e 73 3c 2f 61 3e 3c 2f ck Options</a></
4dc0: 73 70 61 6e 3e 20 66 6f 72 20 6d 6f 72 65 20 69 span> for more i
4dd0: 6e 66 6f 2e 0a 54 68 69 73 20 6f 70 74 69 6f 6e nfo..This option
4de0: 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 is new for TclT
4df0: 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e LS 1.8.</p></dd>
4e00: 0a 3c 2f 64 6c 3e 3c 2f 64 64 3e 0a 3c 64 74 3e .</dl></dd>.<dt>
4e10: 3c 61 20 6e 61 6d 65 3d 22 35 22 3e 3c 62 20 63 <a name="5"><b c
4e20: 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a lass="cmd">tls::
4e30: 75 6e 69 6d 70 6f 72 74 3c 2f 62 3e 20 3c 69 20 unimport</b> <i
4e40: 63 6c 61 73 73 3d 22 61 72 67 22 3e 63 68 61 6e class="arg">chan
4e50: 6e 65 6c 3c 2f 69 3e 3c 2f 61 3e 3c 2f 64 74 3e nel</i></a></dt>
4e60: 0a 3c 64 64 3e 3c 70 3e 43 6f 6d 70 6c 69 6d 65 .<dd><p>Complime
4e70: 6e 74 20 74 6f 20 3c 62 20 63 6c 61 73 73 3d 22 nt to <b class="
4e80: 63 6d 64 22 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 cmd">tls::import
4e90: 3c 2f 62 3e 2e 20 55 73 65 64 20 74 6f 20 72 65 </b>. Used to re
4ea0: 6d 6f 76 65 20 74 68 65 20 74 6f 70 20 6c 65 76 move the top lev
4eb0: 65 6c 20 73 74 61 63 6b 65 64 20 63 68 61 6e 6e el stacked chann
4ec0: 65 6c 0a 66 72 6f 6d 20 3c 69 20 63 6c 61 73 73 el.from <i class
4ed0: 3d 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c 3c 2f ="arg">channel</
4ee0: 69 3e 2e 20 54 68 69 73 20 75 6e 73 74 61 63 6b i>. This unstack
4ef0: 73 20 74 68 65 20 65 6e 63 72 79 70 74 69 6f 6e s the encryption
4f00: 20 6f 66 20 61 20 72 65 67 75 6c 61 72 20 54 43 of a regular TC
4f10: 4c 20 63 68 61 6e 6e 65 6c 2e 20 41 6e 0a 65 72 L channel. An.er
4f20: 72 6f 72 20 69 73 20 74 68 72 6f 77 6e 20 69 66 ror is thrown if
4f30: 20 54 4c 53 20 69 73 20 6e 6f 74 20 74 68 65 20 TLS is not the
4f40: 74 6f 70 20 73 74 61 63 6b 65 64 20 63 68 61 6e top stacked chan
4f50: 6e 65 6c 20 74 79 70 65 2e 3c 2f 70 3e 3c 2f 64 nel type.</p></d
4f60: 64 3e 0a 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 d>.<dt><a name="
4f70: 36 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 6"><b class="cmd
4f80: 22 3e 74 6c 73 3a 3a 68 61 6e 64 73 68 61 6b 65 ">tls::handshake
4f90: 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 </b> <i class="a
4fa0: 72 67 22 3e 63 68 61 6e 6e 65 6c 3c 2f 69 3e 3c rg">channel</i><
4fb0: 2f 61 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /a></dt>.<dd><p>
4fc0: 46 6f 72 63 65 73 20 74 68 65 20 54 4c 53 20 6e Forces the TLS n
4fd0: 65 67 6f 74 69 61 74 69 6f 6e 20 68 61 6e 64 73 egotiation hands
4fe0: 68 61 6b 65 20 74 6f 20 74 61 6b 65 20 70 6c 61 hake to take pla
4ff0: 63 65 20 69 6d 6d 65 64 69 61 74 65 6c 79 2c 20 ce immediately,
5000: 61 6e 64 20 72 65 74 75 72 6e 73 20 30 0a 69 66 and returns 0.if
5010: 20 68 61 6e 64 73 68 61 6b 65 20 69 73 20 73 74 handshake is st
5020: 69 6c 6c 20 69 6e 20 70 72 6f 67 72 65 73 73 20 ill in progress
5030: 28 6e 6f 6e 2d 62 6c 6f 63 6b 69 6e 67 29 2c 20 (non-blocking),
5040: 6f 72 20 31 20 69 66 20 74 68 65 20 68 61 6e 64 or 1 if the hand
5050: 73 68 61 6b 65 20 77 61 73 0a 73 75 63 63 65 73 shake was.succes
5060: 73 66 75 6c 2e 20 49 66 20 74 68 65 20 68 61 6e sful. If the han
5070: 64 73 68 61 6b 65 20 66 61 69 6c 65 64 2c 20 61 dshake failed, a
5080: 6e 20 65 72 72 6f 72 20 77 69 6c 6c 20 62 65 20 n error will be
5090: 72 65 74 75 72 6e 65 64 2e 3c 2f 70 3e 3c 2f 64 returned.</p></d
50a0: 64 3e 0a 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 d>.<dt><a name="
50b0: 37 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 7"><b class="cmd
50c0: 22 3e 74 6c 73 3a 3a 73 74 61 74 75 73 3c 2f 62 ">tls::status</b
50d0: 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f > <span class="o
50e0: 70 74 22 3e 3f 3c 62 20 63 6c 61 73 73 3d 22 6f pt">?<b class="o
50f0: 70 74 69 6f 6e 22 3e 2d 6c 6f 63 61 6c 3c 2f 62 ption">-local</b
5100: 3e 3f 3c 2f 73 70 61 6e 3e 20 3c 69 20 63 6c 61 >?</span> <i cla
5110: 73 73 3d 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c ss="arg">channel
5120: 3c 2f 69 3e 3c 2f 61 3e 3c 2f 64 74 3e 0a 3c 64 </i></a></dt>.<d
5130: 64 3e 3c 70 3e 52 65 74 75 72 6e 73 20 74 68 65 d><p>Returns the
5140: 20 63 75 72 72 65 6e 74 20 73 74 61 74 75 73 20 current status
5150: 6f 66 20 61 6e 20 53 53 4c 20 63 68 61 6e 6e 65 of an SSL channe
5160: 6c 2e 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 l. The result is
5170: 20 61 20 6c 69 73 74 20 6f 66 20 6b 65 79 2d 76 a list of key-v
5180: 61 6c 75 65 0a 70 61 69 72 73 20 64 65 73 63 72 alue.pairs descr
5190: 69 62 69 6e 67 20 74 68 65 20 53 53 4c 2c 20 63 ibing the SSL, c
51a0: 65 72 74 69 66 69 63 61 74 65 2c 20 61 6e 64 20 ertificate, and
51b0: 63 65 72 74 69 66 69 63 61 74 65 20 76 65 72 69 certificate veri
51c0: 66 69 63 61 74 69 6f 6e 20 73 74 61 74 75 73 2e fication status.
51d0: 20 49 66 0a 74 68 65 20 53 53 4c 20 68 61 6e 64 If.the SSL hand
51e0: 73 68 61 6b 65 20 68 61 73 20 6e 6f 74 20 79 65 shake has not ye
51f0: 74 20 63 6f 6d 70 6c 65 74 65 64 2c 20 61 6e 20 t completed, an
5200: 65 6d 70 74 79 20 6c 69 73 74 20 69 73 20 72 65 empty list is re
5210: 74 75 72 6e 65 64 2e 20 49 66 20 74 68 65 0a 3c turned. If the.<
5220: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
5230: 3e 2d 6c 6f 63 61 6c 3c 2f 62 3e 20 6f 70 74 69 >-local</b> opti
5240: 6f 6e 20 69 73 20 73 70 65 63 69 66 69 65 64 2c on is specified,
5250: 20 74 68 65 6e 20 74 68 65 20 6c 6f 63 61 6c 20 then the local
5260: 63 65 72 74 69 66 69 63 61 74 65 20 69 73 20 75 certificate is u
5270: 73 65 64 2e 20 52 65 74 75 72 6e 65 64 0a 76 61 sed. Returned.va
5280: 6c 75 65 73 20 69 6e 63 6c 75 64 65 3a 3c 2f 70 lues include:</p
5290: 3e 0a 3c 70 3e 53 53 4c 20 53 74 61 74 75 73 3c >.<p>SSL Status<
52a0: 2f 70 3e 0a 3c 64 6c 20 63 6c 61 73 73 3d 22 64 /p>.<dl class="d
52b0: 6f 63 74 6f 6f 6c 73 5f 64 65 66 69 6e 69 74 69 octools_definiti
52c0: 6f 6e 73 22 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 ons">.<dt><b cla
52d0: 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 61 6c ss="variable">al
52e0: 70 6e 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d pn</b> <i class=
52f0: 22 61 72 67 22 3e 70 72 6f 74 6f 63 6f 6c 3c 2f "arg">protocol</
5300: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 i></dt>.<dd><p>T
5310: 68 65 20 70 72 6f 74 6f 63 6f 6c 20 73 65 6c 65 he protocol sele
5320: 63 74 65 64 20 61 66 74 65 72 20 41 70 70 6c 69 cted after Appli
5330: 63 61 74 69 6f 6e 2d 4c 61 79 65 72 20 50 72 6f cation-Layer Pro
5340: 74 6f 63 6f 6c 20 4e 65 67 6f 74 69 61 74 69 6f tocol Negotiatio
5350: 6e 20 28 41 4c 50 4e 29 2e 0a 54 68 69 73 20 76 n (ALPN)..This v
5360: 61 6c 75 65 20 69 73 20 6e 65 77 20 66 6f 72 20 alue is new for
5370: 54 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c TclTLS 1.8.</p><
5380: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
5390: 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 63 69 70 s="variable">cip
53a0: 68 65 72 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 her</b> <i class
53b0: 3d 22 61 72 67 22 3e 63 69 70 68 65 72 3c 2f 69 ="arg">cipher</i
53c0: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 ></dt>.<dd><p>Th
53d0: 65 20 63 75 72 72 65 6e 74 20 63 69 70 68 65 72 e current cipher
53e0: 20 69 6e 20 75 73 65 20 66 6f 72 20 74 68 65 20 in use for the
53f0: 73 65 73 73 69 6f 6e 2e 3c 2f 70 3e 3c 2f 64 64 session.</p></dd
5400: 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 >.<dt><b class="
5410: 76 61 72 69 61 62 6c 65 22 3e 70 65 65 72 6e 61 variable">peerna
5420: 6d 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d me</b> <i class=
5430: 22 61 72 67 22 3e 6e 61 6d 65 3c 2f 69 3e 3c 2f "arg">name</i></
5440: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 70 dt>.<dd><p>The p
5450: 65 65 72 6e 61 6d 65 20 66 72 6f 6d 20 74 68 65 eername from the
5460: 20 63 65 72 74 69 66 69 63 61 74 65 2e 0a 54 68 certificate..Th
5470: 69 73 20 76 61 6c 75 65 20 69 73 20 6e 65 77 20 is value is new
5480: 66 6f 72 20 54 63 6c 54 4c 53 20 31 2e 38 2e 3c for TclTLS 1.8.<
5490: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
54a0: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
54b0: 3e 70 72 6f 74 6f 63 6f 6c 3c 2f 62 3e 20 3c 69 >protocol</b> <i
54c0: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 76 65 72 class="arg">ver
54d0: 73 69 6f 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 sion</i></dt>.<d
54e0: 64 3e 3c 70 3e 54 68 65 20 70 72 6f 74 6f 63 6f d><p>The protoco
54f0: 6c 20 76 65 72 73 69 6f 6e 20 75 73 65 64 20 66 l version used f
5500: 6f 72 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f or the connectio
5510: 6e 3a 20 53 53 4c 32 2c 20 53 53 4c 33 2c 20 54 n: SSL2, SSL3, T
5520: 4c 53 31 2c 20 54 4c 53 31 2e 31 2c 20 54 4c 53 LS1, TLS1.1, TLS
5530: 31 2e 32 2c 0a 54 4c 53 31 2e 33 2c 20 6f 72 20 1.2,.TLS1.3, or
5540: 75 6e 6b 6e 6f 77 6e 2e 20 54 68 69 73 20 76 61 unknown. This va
5550: 6c 75 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 lue is new for T
5560: 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f clTLS 1.8.</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 62 69 74 ="variable">sbit
5590: 73 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 s</b> <i class="
55a0: 61 72 67 22 3e 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a arg">n</i></dt>.
55b0: 3c 64 64 3e 3c 70 3e 54 68 65 20 6e 75 6d 62 65 <dd><p>The numbe
55c0: 72 20 6f 66 20 62 69 74 73 20 75 73 65 64 20 66 r of bits used f
55d0: 6f 72 20 74 68 65 20 73 65 73 73 69 6f 6e 20 6b or the session k
55e0: 65 79 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 ey.</p></dd>.<dt
55f0: 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 ><b class="varia
5600: 62 6c 65 22 3e 73 69 67 6e 61 74 75 72 65 48 61 ble">signatureHa
5610: 73 68 41 6c 67 6f 72 69 74 68 6d 3c 2f 62 3e 20 shAlgorithm</b>
5620: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 61 <i class="arg">a
5630: 6c 67 6f 72 69 74 68 6d 3c 2f 69 3e 3c 2f 64 74 lgorithm</i></dt
5640: 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 73 69 67 >.<dd><p>The sig
5650: 6e 61 74 75 72 65 20 68 61 73 68 20 61 6c 67 6f nature hash algo
5660: 72 69 74 68 6d 2e 0a 54 68 69 73 20 76 61 6c 75 rithm..This valu
5670: 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c e is new for Tcl
5680: 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 TLS 1.8.</p></dd
5690: 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 >.<dt><b class="
56a0: 76 61 72 69 61 62 6c 65 22 3e 73 69 67 6e 61 74 variable">signat
56b0: 75 72 65 54 79 70 65 3c 2f 62 3e 20 3c 69 20 63 ureType</b> <i c
56c0: 6c 61 73 73 3d 22 61 72 67 22 3e 74 79 70 65 3c lass="arg">type<
56d0: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
56e0: 54 68 65 20 73 69 67 6e 61 74 75 72 65 20 74 79 The signature ty
56f0: 70 65 20 76 61 6c 75 65 2e 0a 54 68 69 73 20 76 pe value..This v
5700: 61 6c 75 65 20 69 73 20 6e 65 77 20 66 6f 72 20 alue is new for
5710: 54 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c TclTLS 1.8.</p><
5720: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
5730: 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 76 65 72 s="variable">ver
5740: 69 66 79 44 65 70 74 68 3c 2f 62 3e 20 3c 69 20 ifyDepth</b> <i
5750: 63 6c 61 73 73 3d 22 61 72 67 22 3e 6e 3c 2f 69 class="arg">n</i
5760: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 4d 61 ></dt>.<dd><p>Ma
5770: 78 69 6d 75 6d 20 64 65 70 74 68 20 66 6f 72 20 ximum depth for
5780: 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 20 the certificate
5790: 63 68 61 69 6e 20 76 65 72 69 66 69 63 61 74 69 chain verificati
57a0: 6f 6e 2e 20 44 65 66 61 75 6c 74 20 69 73 20 2d on. Default is -
57b0: 31 2c 20 74 6f 20 63 68 65 63 6b 20 61 6c 6c 2e 1, to check all.
57c0: 0a 54 68 69 73 20 76 61 6c 75 65 20 69 73 20 6e .This value is n
57d0: 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 2e ew for TclTLS 1.
57e0: 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 8.</p></dd>.<dt>
57f0: 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 <b class="variab
5800: 6c 65 22 3e 76 65 72 69 66 79 4d 6f 64 65 3c 2f le">verifyMode</
5810: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
5820: 22 3e 6c 69 73 74 3c 2f 69 3e 3c 2f 64 74 3e 0a ">list</i></dt>.
5830: 3c 64 64 3e 3c 70 3e 4c 69 73 74 20 6f 66 20 63 <dd><p>List of c
5840: 65 72 74 69 66 69 63 61 74 65 20 76 65 72 69 66 ertificate verif
5850: 69 63 61 74 69 6f 6e 20 6d 6f 64 65 73 2e 0a 54 ication modes..T
5860: 68 69 73 20 76 61 6c 75 65 20 69 73 20 6e 65 77 his value is new
5870: 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 2e 38 2e for TclTLS 1.8.
5880: 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 </p></dd>.<dt><b
5890: 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 class="variable
58a0: 22 3e 76 65 72 69 66 79 52 65 73 75 6c 74 3c 2f ">verifyResult</
58b0: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
58c0: 22 3e 72 65 73 75 6c 74 3c 2f 69 3e 3c 2f 64 74 ">result</i></dt
58d0: 3e 0a 3c 64 64 3e 3c 70 3e 43 65 72 74 69 66 69 >.<dd><p>Certifi
58e0: 63 61 74 65 20 76 65 72 69 66 69 63 61 74 69 6f cate verificatio
58f0: 6e 20 72 65 73 75 6c 74 2e 0a 54 68 69 73 20 76 n result..This v
5900: 61 6c 75 65 20 69 73 20 6e 65 77 20 66 6f 72 20 alue is new for
5910: 54 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c TclTLS 1.8.</p><
5920: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
5930: 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 63 61 5f s="variable">ca_
5940: 6e 61 6d 65 73 3c 2f 62 3e 20 3c 69 20 63 6c 61 names</b> <i cla
5950: 73 73 3d 22 61 72 67 22 3e 6c 69 73 74 3c 2f 69 ss="arg">list</i
5960: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 4c 69 ></dt>.<dd><p>Li
5970: 73 74 20 6f 66 20 74 68 65 20 43 65 72 74 69 66 st of the Certif
5980: 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 69 65 icate Authoritie
5990: 73 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65 s used to create
59a0: 20 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 the certificate
59b0: 2e 0a 54 68 69 73 20 76 61 6c 75 65 20 69 73 20 ..This value is
59c0: 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 new for TclTLS 1
59d0: 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 2f 64 .8.</p></dd>.</d
59e0: 6c 3e 0a 3c 70 3e 43 65 72 74 69 66 69 63 61 74 l>.<p>Certificat
59f0: 65 20 53 74 61 74 75 73 3c 2f 70 3e 0a 3c 64 6c e Status</p>.<dl
5a00: 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 class="doctools
5a10: 5f 64 65 66 69 6e 69 74 69 6f 6e 73 22 3e 0a 3c _definitions">.<
5a20: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 dt><b class="var
5a30: 69 61 62 6c 65 22 3e 61 6c 6c 3c 2f 62 3e 20 3c iable">all</b> <
5a40: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 74 i class="arg">st
5a50: 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 ring</i></dt>.<d
5a60: 64 3e 3c 70 3e 44 75 6d 70 20 6f 66 20 61 6c 6c d><p>Dump of all
5a70: 20 63 65 72 74 69 66 69 63 61 74 65 20 69 6e 66 certificate inf
5a80: 6f 2e 0a 54 68 69 73 20 76 61 6c 75 65 20 69 73 o..This value is
5a90: 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 new for TclTLS
5aa0: 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 1.8.</p></dd>.<d
5ab0: 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 t><b class="vari
5ac0: 61 62 6c 65 22 3e 76 65 72 73 69 6f 6e 3c 2f 62 able">version</b
5ad0: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
5ae0: 3e 76 61 6c 75 65 3c 2f 69 3e 3c 2f 64 74 3e 0a >value</i></dt>.
5af0: 3c 64 64 3e 3c 70 3e 54 68 65 20 63 65 72 74 69 <dd><p>The certi
5b00: 66 69 63 61 74 65 20 76 65 72 73 69 6f 6e 2e 3c ficate version.<
5b10: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
5b20: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
5b30: 3e 73 65 72 69 61 6c 4e 75 6d 62 65 72 3c 2f 62 >serialNumber</b
5b40: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
5b50: 3e 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e >string</i></dt>
5b60: 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 73 65 72 69 .<dd><p>The seri
5b70: 61 6c 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 al number of the
5b80: 20 63 65 72 74 69 66 69 63 61 74 65 20 61 73 20 certificate as
5b90: 61 20 68 65 78 20 73 74 72 69 6e 67 2e 0a 54 68 a hex string..Th
5ba0: 69 73 20 76 61 6c 75 65 20 77 61 73 20 63 68 61 is value was cha
5bb0: 6e 67 65 64 20 66 72 6f 6d 20 73 65 72 69 61 6c nged from serial
5bc0: 20 69 6e 20 54 63 6c 54 4c 53 20 31 2e 38 2e 3c in TclTLS 1.8.<
5bd0: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
5be0: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
5bf0: 3e 73 69 67 6e 61 74 75 72 65 3c 2f 62 3e 20 3c >signature</b> <
5c00: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 61 6c i class="arg">al
5c10: 67 6f 72 69 74 68 6d 3c 2f 69 3e 3c 2f 64 74 3e gorithm</i></dt>
5c20: 0a 3c 64 64 3e 3c 70 3e 43 69 70 68 65 72 20 61 .<dd><p>Cipher a
5c30: 6c 67 6f 72 69 74 68 6d 20 75 73 65 64 20 66 6f lgorithm used fo
5c40: 72 20 63 65 72 74 69 66 69 63 61 74 65 20 73 69 r certificate si
5c50: 67 6e 61 74 75 72 65 2e 0a 54 68 69 73 20 76 61 gnature..This va
5c60: 6c 75 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 lue is new for T
5c70: 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f clTLS 1.8.</p></
5c80: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
5c90: 3d 22 76 61 72 69 61 62 6c 65 22 3e 69 73 73 75 ="variable">issu
5ca0: 65 72 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d er</b> <i class=
5cb0: 22 61 72 67 22 3e 73 74 72 69 6e 67 3c 2f 69 3e "arg">string</i>
5cc0: 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 </dt>.<dd><p>The
5cd0: 20 64 69 73 74 69 6e 67 75 69 73 68 65 64 20 6e distinguished n
5ce0: 61 6d 65 20 28 44 4e 29 20 6f 66 20 74 68 65 20 ame (DN) of the
5cf0: 63 65 72 74 69 66 69 63 61 74 65 20 69 73 73 75 certificate issu
5d00: 65 72 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 er.</p></dd>.<dt
5d10: 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 ><b class="varia
5d20: 62 6c 65 22 3e 6e 6f 74 42 65 66 6f 72 65 3c 2f ble">notBefore</
5d30: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
5d40: 22 3e 64 61 74 65 3c 2f 69 3e 3c 2f 64 74 3e 0a ">date</i></dt>.
5d50: 3c 64 64 3e 3c 70 3e 54 68 65 20 62 65 67 69 6e <dd><p>The begin
5d60: 6e 69 6e 67 20 64 61 74 65 20 6f 66 20 74 68 65 ning date of the
5d70: 20 63 65 72 74 69 66 69 63 61 74 65 20 76 61 6c certificate val
5d80: 69 64 69 74 79 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a idity.</p></dd>.
5d90: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 <dt><b class="va
5da0: 72 69 61 62 6c 65 22 3e 6e 6f 74 41 66 74 65 72 riable">notAfter
5db0: 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 </b> <i class="a
5dc0: 72 67 22 3e 64 61 74 65 3c 2f 69 3e 3c 2f 64 74 rg">date</i></dt
5dd0: 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 65 78 70 >.<dd><p>The exp
5de0: 69 72 61 74 69 6f 6e 20 64 61 74 65 20 6f 66 20 iration date of
5df0: 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 20 the certificate
5e00: 76 61 6c 69 64 69 74 79 2e 3c 2f 70 3e 3c 2f 64 validity.</p></d
5e10: 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d d>.<dt><b class=
5e20: 22 76 61 72 69 61 62 6c 65 22 3e 73 75 62 6a 65 "variable">subje
5e30: 63 74 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d ct</b> <i class=
5e40: 22 61 72 67 22 3e 73 74 72 69 6e 67 3c 2f 69 3e "arg">string</i>
5e50: 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 </dt>.<dd><p>The
5e60: 20 64 69 73 74 69 6e 67 75 69 73 68 65 64 20 6e distinguished n
5e70: 61 6d 65 20 28 44 4e 29 20 6f 66 20 74 68 65 20 ame (DN) of the
5e80: 63 65 72 74 69 66 69 63 61 74 65 20 73 75 62 6a certificate subj
5e90: 65 63 74 2e 20 46 69 65 6c 64 73 20 69 6e 63 6c ect. Fields incl
5ea0: 75 64 65 3a 20 43 6f 6d 6d 6f 6e 0a 4e 61 6d 65 ude: Common.Name
5eb0: 20 28 43 4e 29 2c 20 4f 72 67 61 6e 69 7a 61 74 (CN), Organizat
5ec0: 69 6f 6e 20 28 4f 29 2c 20 4c 6f 63 61 6c 69 74 ion (O), Localit
5ed0: 79 20 6f 72 20 43 69 74 79 20 28 4c 29 2c 20 53 y or City (L), S
5ee0: 74 61 74 65 20 6f 72 20 50 72 6f 76 69 6e 63 65 tate or Province
5ef0: 20 28 53 29 2c 20 61 6e 64 0a 43 6f 75 6e 74 72 (S), and.Countr
5f00: 79 20 4e 61 6d 65 20 28 43 29 2e 3c 2f 70 3e 3c y Name (C).</p><
5f10: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
5f20: 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 69 73 73 s="variable">iss
5f30: 75 65 72 55 6e 69 71 75 65 49 44 3c 2f 62 3e 20 uerUniqueID</b>
5f40: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 <i class="arg">s
5f50: 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c tring</i></dt>.<
5f60: 64 64 3e 3c 70 3e 54 68 65 20 69 73 73 75 65 72 dd><p>The issuer
5f70: 20 75 6e 69 71 75 65 20 69 64 2e 0a 54 68 69 73 unique id..This
5f80: 20 76 61 6c 75 65 20 69 73 20 6e 65 77 20 66 6f value is new fo
5f90: 72 20 54 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 r TclTLS 1.8.</p
5fa0: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
5fb0: 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 ass="variable">s
5fc0: 75 62 6a 65 63 74 55 6e 69 71 75 65 49 44 3c 2f ubjectUniqueID</
5fd0: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
5fe0: 22 3e 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 ">string</i></dt
5ff0: 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 73 75 62 >.<dd><p>The sub
6000: 6a 65 63 74 20 75 6e 69 71 75 65 20 69 64 2e 0a ject unique id..
6010: 54 68 69 73 20 76 61 6c 75 65 20 69 73 20 6e 65 This value is ne
6020: 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 2e 38 w for TclTLS 1.8
6030: 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c .</p></dd>.<dt><
6040: 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c b class="variabl
6050: 65 22 3e 6e 75 6d 5f 65 78 74 65 6e 73 69 6f 6e e">num_extension
6060: 73 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 s</b> <i class="
6070: 61 72 67 22 3e 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a arg">n</i></dt>.
6080: 3c 64 64 3e 3c 70 3e 4e 75 6d 62 65 72 20 6f 66 <dd><p>Number of
6090: 20 63 65 72 74 69 66 69 63 61 74 65 20 65 78 74 certificate ext
60a0: 65 6e 73 69 6f 6e 73 2e 0a 54 68 69 73 20 76 61 ensions..This va
60b0: 6c 75 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 lue is new for T
60c0: 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f clTLS 1.8.</p></
60d0: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
60e0: 3d 22 76 61 72 69 61 62 6c 65 22 3e 65 78 74 65 ="variable">exte
60f0: 6e 73 69 6f 6e 73 3c 2f 62 3e 20 3c 69 20 63 6c nsions</b> <i cl
6100: 61 73 73 3d 22 61 72 67 22 3e 6c 69 73 74 3c 2f ass="arg">list</
6110: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 4c i></dt>.<dd><p>L
6120: 69 73 74 20 6f 66 20 63 65 72 74 69 66 69 63 61 ist of certifica
6130: 74 65 20 65 78 74 65 6e 73 69 6f 6e 20 6e 61 6d te extension nam
6140: 65 73 2e 0a 54 68 69 73 20 76 61 6c 75 65 20 69 es..This value i
6150: 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 s new for TclTLS
6160: 20 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 1.8.</p></dd>.<
6170: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 dt><b class="var
6180: 69 61 62 6c 65 22 3e 61 75 74 68 6f 72 69 74 79 iable">authority
6190: 4b 65 79 49 64 65 6e 74 69 66 69 65 72 3c 2f 62 KeyIdentifier</b
61a0: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
61b0: 3e 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e >string</i></dt>
61c0: 0a 3c 64 64 3e 3c 70 3e 41 75 74 68 6f 72 69 74 .<dd><p>Authorit
61d0: 79 20 4b 65 79 20 49 64 65 6e 74 69 66 69 65 72 y Key Identifier
61e0: 20 28 41 4b 49 29 20 6f 66 20 74 68 65 20 49 73 (AKI) of the Is
61f0: 73 75 69 6e 67 20 43 41 20 63 65 72 74 69 66 69 suing CA certifi
6200: 63 61 74 65 20 74 68 61 74 20 73 69 67 6e 65 64 cate that signed
6210: 20 74 68 65 0a 53 53 4c 20 63 65 72 74 69 66 69 the.SSL certifi
6220: 63 61 74 65 20 61 73 20 61 20 68 65 78 20 73 74 cate as a hex st
6230: 72 69 6e 67 2e 20 54 68 69 73 20 76 61 6c 75 65 ring. This value
6240: 20 6d 61 74 63 68 65 73 20 74 68 65 20 53 4b 49 matches the SKI
6250: 20 76 61 6c 75 65 20 6f 66 20 74 68 65 0a 49 6e value of the.In
6260: 74 65 72 6d 65 64 69 61 74 65 20 43 41 20 63 65 termediate CA ce
6270: 72 74 69 66 69 63 61 74 65 2e 0a 54 68 69 73 20 rtificate..This
6280: 76 61 6c 75 65 20 69 73 20 6e 65 77 20 66 6f 72 value is new for
6290: 20 54 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e TclTLS 1.8.</p>
62a0: 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 </dd>.<dt><b cla
62b0: 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 75 ss="variable">su
62c0: 62 6a 65 63 74 4b 65 79 49 64 65 6e 74 69 66 69 bjectKeyIdentifi
62d0: 65 72 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d er</b> <i class=
62e0: 22 61 72 67 22 3e 73 74 72 69 6e 67 3c 2f 69 3e "arg">string</i>
62f0: 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 75 62 </dt>.<dd><p>Sub
6300: 6a 65 63 74 20 4b 65 79 20 49 64 65 6e 74 69 66 ject Key Identif
6310: 69 65 72 20 28 53 4b 49 29 20 68 61 73 68 20 6f ier (SKI) hash o
6320: 66 20 74 68 65 20 70 75 62 6c 69 63 20 6b 65 79 f the public key
6330: 20 69 6e 73 69 64 65 20 74 68 65 20 63 65 72 74 inside the cert
6340: 69 66 69 63 61 74 65 20 61 73 20 61 0a 68 65 78 ificate as a.hex
6350: 20 73 74 72 69 6e 67 2e 20 55 73 65 64 20 74 6f string. Used to
6360: 20 69 64 65 6e 74 69 66 79 20 63 65 72 74 69 66 identify certif
6370: 69 63 61 74 65 73 20 74 68 61 74 20 63 6f 6e 74 icates that cont
6380: 61 69 6e 20 61 20 70 61 72 74 69 63 75 6c 61 72 ain a particular
6390: 20 70 75 62 6c 69 63 20 6b 65 79 2e 0a 54 68 69 public key..Thi
63a0: 73 20 76 61 6c 75 65 20 69 73 20 6e 65 77 20 66 s value is new f
63b0: 6f 72 20 54 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f or TclTLS 1.8.</
63c0: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 p></dd>.<dt><b c
63d0: 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e lass="variable">
63e0: 73 75 62 6a 65 63 74 41 6c 74 4e 61 6d 65 3c 2f subjectAltName</
63f0: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
6400: 22 3e 6c 69 73 74 3c 2f 69 3e 3c 2f 64 74 3e 0a ">list</i></dt>.
6410: 3c 64 64 3e 3c 70 3e 4c 69 73 74 20 6f 66 20 61 <dd><p>List of a
6420: 6c 6c 20 6f 66 20 74 68 65 20 53 75 62 6a 65 63 ll of the Subjec
6430: 74 20 41 6c 74 65 72 6e 61 74 69 76 65 20 4e 61 t Alternative Na
6440: 6d 65 73 20 28 53 41 4e 29 20 69 6e 63 6c 75 64 mes (SAN) includ
6450: 69 6e 67 20 64 6f 6d 61 69 6e 20 6e 61 6d 65 73 ing domain names
6460: 2c 20 73 75 62 0a 64 6f 6d 61 69 6e 73 2c 20 61 , sub.domains, a
6470: 6e 64 20 49 50 20 61 64 64 72 65 73 73 65 73 20 nd IP addresses
6480: 74 68 61 74 20 61 72 65 20 73 65 63 75 72 65 64 that are secured
6490: 20 62 79 20 74 68 65 20 63 65 72 74 69 66 69 63 by the certific
64a0: 61 74 65 2e 0a 54 68 69 73 20 76 61 6c 75 65 20 ate..This value
64b0: 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c is new for TclTL
64c0: 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a S 1.8.</p></dd>.
64d0: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 <dt><b class="va
64e0: 72 69 61 62 6c 65 22 3e 6f 63 73 70 3c 2f 62 3e riable">ocsp</b>
64f0: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
6500: 6c 69 73 74 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 list</i></dt>.<d
6510: 64 3e 3c 70 3e 4c 69 73 74 20 6f 66 20 61 6c 6c d><p>List of all
6520: 20 4f 6e 6c 69 6e 65 20 43 65 72 74 69 66 69 63 Online Certific
6530: 61 74 65 20 53 74 61 74 75 73 20 50 72 6f 74 6f ate Status Proto
6540: 63 6f 6c 20 28 4f 43 53 50 29 20 55 52 4c 73 20 col (OCSP) URLs
6550: 74 68 61 74 20 63 61 6e 20 62 65 20 75 73 65 64 that can be used
6560: 20 74 6f 0a 63 68 65 63 6b 20 74 68 65 20 76 61 to.check the va
6570: 6c 69 64 69 74 79 20 6f 66 20 74 68 69 73 20 63 lidity of this c
6580: 65 72 74 69 66 69 63 61 74 65 2e 0a 54 68 69 73 ertificate..This
6590: 20 76 61 6c 75 65 20 69 73 20 6e 65 77 20 66 6f value is new fo
65a0: 72 20 54 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 r TclTLS 1.8.</p
65b0: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
65c0: 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 63 ass="variable">c
65d0: 65 72 74 69 66 69 63 61 74 65 3c 2f 62 3e 20 3c ertificate</b> <
65e0: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 63 65 i class="arg">ce
65f0: 72 74 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e rt</i></dt>.<dd>
6600: 3c 70 3e 54 68 65 20 50 45 4d 20 65 6e 63 6f 64 <p>The PEM encod
6610: 65 64 20 63 65 72 74 69 66 69 63 61 74 65 2e 3c ed certificate.<
6620: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
6630: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
6640: 3e 73 69 67 6e 61 74 75 72 65 41 6c 67 6f 72 69 >signatureAlgori
6650: 74 68 6d 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 thm</b> <i class
6660: 3d 22 61 72 67 22 3e 61 6c 67 6f 72 69 74 68 6d ="arg">algorithm
6670: 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 </i></dt>.<dd><p
6680: 3e 43 69 70 68 65 72 20 61 6c 67 6f 72 69 74 68 >Cipher algorith
6690: 6d 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 63 m used for the c
66a0: 65 72 74 69 66 69 63 61 74 65 20 73 69 67 6e 61 ertificate signa
66b0: 74 75 72 65 2e 0a 54 68 69 73 20 76 61 6c 75 65 ture..This value
66c0: 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 is new for TclT
66d0: 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e LS 1.8.</p></dd>
66e0: 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 .<dt><b class="v
66f0: 61 72 69 61 62 6c 65 22 3e 73 69 67 6e 61 74 75 ariable">signatu
6700: 72 65 56 61 6c 75 65 3c 2f 62 3e 20 3c 69 20 63 reValue</b> <i c
6710: 6c 61 73 73 3d 22 61 72 67 22 3e 73 74 72 69 6e lass="arg">strin
6720: 67 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c g</i></dt>.<dd><
6730: 70 3e 43 65 72 74 69 66 69 63 61 74 65 20 73 69 p>Certificate si
6740: 67 6e 61 74 75 72 65 20 61 73 20 61 20 68 65 78 gnature as a hex
6750: 20 73 74 72 69 6e 67 2e 0a 54 68 69 73 20 76 61 string..This va
6760: 6c 75 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 lue is new for T
6770: 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f clTLS 1.8.</p></
6780: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
6790: 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 69 67 6e ="variable">sign
67a0: 61 74 75 72 65 44 69 67 65 73 74 3c 2f 62 3e 20 atureDigest</b>
67b0: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 76 <i class="arg">v
67c0: 65 72 73 69 6f 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a ersion</i></dt>.
67d0: 3c 64 64 3e 3c 70 3e 43 65 72 74 69 66 69 63 61 <dd><p>Certifica
67e0: 74 65 20 73 69 67 6e 69 6e 67 20 64 69 67 65 73 te signing diges
67f0: 74 20 61 73 20 61 20 68 65 78 20 73 74 72 69 6e t as a hex strin
6800: 67 2e 0a 54 68 69 73 20 76 61 6c 75 65 20 69 73 g..This value is
6810: 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 new for TclTLS
6820: 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 1.8.</p></dd>.<d
6830: 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 t><b class="vari
6840: 61 62 6c 65 22 3e 70 75 62 6c 69 63 4b 65 79 41 able">publicKeyA
6850: 6c 67 6f 72 69 74 68 6d 3c 2f 62 3e 20 3c 69 20 lgorithm</b> <i
6860: 63 6c 61 73 73 3d 22 61 72 67 22 3e 61 6c 67 6f class="arg">algo
6870: 72 69 74 68 6d 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c rithm</i></dt>.<
6880: 64 64 3e 3c 70 3e 43 65 72 74 69 66 69 63 61 74 dd><p>Certificat
6890: 65 20 73 69 67 6e 61 74 75 72 65 20 70 75 62 6c e signature publ
68a0: 69 63 20 6b 65 79 20 61 6c 67 6f 72 69 74 68 6d ic key algorithm
68b0: 2e 0a 54 68 69 73 20 76 61 6c 75 65 20 69 73 20 ..This value is
68c0: 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 new for TclTLS 1
68d0: 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 .8.</p></dd>.<dt
68e0: 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 ><b class="varia
68f0: 62 6c 65 22 3e 70 75 62 6c 69 63 4b 65 79 3c 2f ble">publicKey</
6900: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
6910: 22 3e 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 ">string</i></dt
6920: 3e 0a 3c 64 64 3e 3c 70 3e 43 65 72 74 69 66 69 >.<dd><p>Certifi
6930: 63 61 74 65 20 73 69 67 6e 61 74 75 72 65 20 70 cate signature p
6940: 75 62 6c 69 63 20 6b 65 79 20 61 73 20 61 20 68 ublic key as a h
6950: 65 78 20 73 74 72 69 6e 67 2e 0a 54 68 69 73 20 ex string..This
6960: 76 61 6c 75 65 20 69 73 20 6e 65 77 20 66 6f 72 value is new for
6970: 20 54 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e TclTLS 1.8.</p>
6980: 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 </dd>.<dt><b cla
6990: 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 62 69 ss="variable">bi
69a0: 74 73 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d ts</b> <i class=
69b0: 22 61 72 67 22 3e 6e 3c 2f 69 3e 3c 2f 64 74 3e "arg">n</i></dt>
69c0: 0a 3c 64 64 3e 3c 70 3e 4e 75 6d 62 65 72 20 6f .<dd><p>Number o
69d0: 66 20 62 69 74 73 20 75 73 65 64 20 66 6f 72 20 f bits used for
69e0: 63 65 72 74 69 66 69 63 61 74 65 20 73 69 67 6e certificate sign
69f0: 61 74 75 72 65 20 6b 65 79 2e 0a 54 68 69 73 20 ature key..This
6a00: 76 61 6c 75 65 20 69 73 20 6e 65 77 20 66 6f 72 value is new for
6a10: 20 54 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e TclTLS 1.8.</p>
6a20: 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 </dd>.<dt><b cla
6a30: 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 65 ss="variable">se
6a40: 6c 66 5f 73 69 67 6e 65 64 3c 2f 62 3e 20 3c 69 lf_signed</b> <i
6a50: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f class="arg">boo
6a60: 6c 65 61 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 lean</i></dt>.<d
6a70: 64 3e 3c 70 3e 57 68 65 74 68 65 72 20 74 68 65 d><p>Whether the
6a80: 20 63 65 72 74 69 66 69 63 61 74 65 20 73 69 67 certificate sig
6a90: 6e 61 74 75 72 65 20 69 73 20 73 65 6c 66 20 73 nature is self s
6aa0: 69 67 6e 65 64 2e 0a 54 68 69 73 20 76 61 6c 75 igned..This valu
6ab0: 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c e is new for Tcl
6ac0: 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 TLS 1.8.</p></dd
6ad0: 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 >.<dt><b class="
6ae0: 76 61 72 69 61 62 6c 65 22 3e 73 68 61 31 5f 68 variable">sha1_h
6af0: 61 73 68 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 ash</b> <i class
6b00: 3d 22 61 72 67 22 3e 68 61 73 68 3c 2f 69 3e 3c ="arg">hash</i><
6b10: 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 /dt>.<dd><p>The
6b20: 53 48 41 31 20 68 61 73 68 20 6f 66 20 74 68 65 SHA1 hash of the
6b30: 20 63 65 72 74 69 66 69 63 61 74 65 20 61 73 20 certificate as
6b40: 61 20 68 65 78 20 73 74 72 69 6e 67 2e 0a 54 68 a hex string..Th
6b50: 69 73 20 76 61 6c 75 65 20 69 73 20 6e 65 77 20 is value is new
6b60: 66 6f 72 20 54 63 6c 54 4c 53 20 31 2e 38 2e 3c for TclTLS 1.8.<
6b70: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
6b80: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
6b90: 3e 73 68 61 32 35 36 5f 68 61 73 68 3c 2f 62 3e >sha256_hash</b>
6ba0: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
6bb0: 68 61 73 68 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 hash</i></dt>.<d
6bc0: 64 3e 3c 70 3e 54 68 65 20 53 48 41 32 35 36 20 d><p>The SHA256
6bd0: 68 61 73 68 20 6f 66 20 74 68 65 20 63 65 72 74 hash of the cert
6be0: 69 66 69 63 61 74 65 20 61 73 20 61 20 68 65 78 ificate as a hex
6bf0: 20 73 74 72 69 6e 67 2e 0a 54 68 69 73 20 76 61 string..This va
6c00: 6c 75 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 lue is new for T
6c10: 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 3c 2f clTLS 1.8.</p></
6c20: 64 64 3e 0a 3c 2f 64 6c 3e 3c 2f 64 64 3e 0a 3c dd>.</dl></dd>.<
6c30: 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 38 22 3e 3c dt><a name="8"><
6c40: 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c b class="cmd">tl
6c50: 73 3a 3a 63 6f 6e 6e 65 63 74 69 6f 6e 3c 2f 62 s::connection</b
6c60: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
6c70: 3e 63 68 61 6e 6e 65 6c 3c 2f 69 3e 3c 2f 61 3e >channel</i></a>
6c80: 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 52 65 74 </dt>.<dd><p>Ret
6c90: 75 72 6e 73 20 74 68 65 20 63 75 72 72 65 6e 74 urns the current
6ca0: 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 73 74 61 74 connection stat
6cb0: 75 73 20 6f 66 20 61 6e 20 53 53 4c 20 63 68 61 us of an SSL cha
6cc0: 6e 6e 65 6c 2e 20 54 68 65 20 72 65 73 75 6c 74 nnel. The result
6cd0: 20 69 73 20 61 20 6c 69 73 74 0a 6f 66 20 6b 65 is a list.of ke
6ce0: 79 2d 76 61 6c 75 65 20 70 61 69 72 73 20 64 65 y-value pairs de
6cf0: 73 63 72 69 62 69 6e 67 20 74 68 65 20 63 6f 6e scribing the con
6d00: 6e 65 63 74 69 6f 6e 2e 0a 54 68 69 73 20 63 6f nection..This co
6d10: 6d 6d 61 6e 64 20 69 73 20 6e 65 77 20 66 6f 72 mmand is new for
6d20: 20 54 63 6c 54 4c 53 20 31 2e 38 2e 20 52 65 74 TclTLS 1.8. Ret
6d30: 75 72 6e 65 64 20 76 61 6c 75 65 73 20 69 6e 63 urned values inc
6d40: 6c 75 64 65 3a 3c 2f 70 3e 0a 3c 70 3e 53 53 4c lude:</p>.<p>SSL
6d50: 20 53 74 61 74 75 73 3c 2f 70 3e 0a 3c 64 6c 20 Status</p>.<dl
6d60: 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f class="doctools_
6d70: 64 65 66 69 6e 69 74 69 6f 6e 73 22 3e 0a 3c 64 definitions">.<d
6d80: 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 t><b class="vari
6d90: 61 62 6c 65 22 3e 73 74 61 74 65 3c 2f 62 3e 20 able">state</b>
6da0: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 <i class="arg">s
6db0: 74 61 74 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 tate</i></dt>.<d
6dc0: 64 3e 3c 70 3e 53 74 61 74 65 20 6f 66 20 74 68 d><p>State of th
6dd0: 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 3c 2f 70 e connection.</p
6de0: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
6df0: 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 ass="variable">s
6e00: 65 72 76 65 72 6e 61 6d 65 3c 2f 62 3e 20 3c 69 ervername</b> <i
6e10: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 6e 61 6d class="arg">nam
6e20: 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c e</i></dt>.<dd><
6e30: 70 3e 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 p>The name of th
6e40: 65 20 63 6f 6e 6e 65 63 74 65 64 20 74 6f 20 73 e connected to s
6e50: 65 72 76 65 72 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a erver.</p></dd>.
6e60: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 <dt><b class="va
6e70: 72 69 61 62 6c 65 22 3e 70 72 6f 74 6f 63 6f 6c riable">protocol
6e80: 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 </b> <i class="a
6e90: 72 67 22 3e 76 65 72 73 69 6f 6e 3c 2f 69 3e 3c rg">version</i><
6ea0: 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 /dt>.<dd><p>The
6eb0: 70 72 6f 74 6f 63 6f 6c 20 76 65 72 73 69 6f 6e protocol version
6ec0: 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 63 6f used for the co
6ed0: 6e 6e 65 63 74 69 6f 6e 3a 20 53 53 4c 32 2c 20 nnection: SSL2,
6ee0: 53 53 4c 33 2c 20 54 4c 53 31 2c 20 54 4c 53 31 SSL3, TLS1, TLS1
6ef0: 2e 31 2c 20 54 4c 53 31 2e 32 2c 20 54 4c 53 31 .1, TLS1.2, TLS1
6f00: 2e 33 2c 20 6f 72 20 75 6e 6b 6e 6f 77 6e 2e 3c .3, or unknown.<
6f10: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
6f20: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
6f30: 3e 72 65 6e 65 67 6f 74 69 61 74 69 6f 6e 5f 61 >renegotiation_a
6f40: 6c 6c 6f 77 65 64 3c 2f 62 3e 20 3c 69 20 63 6c llowed</b> <i cl
6f50: 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f 6c 65 61 ass="arg">boolea
6f60: 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c n</i></dt>.<dd><
6f70: 70 3e 57 68 65 74 68 65 72 20 70 72 6f 74 6f 63 p>Whether protoc
6f80: 6f 6c 20 72 65 6e 65 67 6f 74 69 61 74 69 6f 6e ol renegotiation
6f90: 20 69 73 20 73 75 70 70 6f 72 74 65 64 20 6f 72 is supported or
6fa0: 20 6e 6f 74 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c not.</p></dd>.<
6fb0: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 dt><b class="var
6fc0: 69 61 62 6c 65 22 3e 73 65 63 75 72 69 74 79 5f iable">security_
6fd0: 6c 65 76 65 6c 3c 2f 62 3e 20 3c 69 20 63 6c 61 level</b> <i cla
6fe0: 73 73 3d 22 61 72 67 22 3e 6c 65 76 65 6c 3c 2f ss="arg">level</
6ff0: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 i></dt>.<dd><p>T
7000: 68 65 20 73 65 63 75 72 69 74 79 20 6c 65 76 65 he security leve
7010: 6c 20 75 73 65 64 20 66 6f 72 20 73 65 6c 65 63 l used for selec
7020: 74 69 6f 6e 20 6f 66 20 63 69 70 68 65 72 73 2c tion of ciphers,
7030: 20 6b 65 79 20 73 69 7a 65 2c 20 65 74 63 2e 3c key size, etc.<
7040: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
7050: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
7060: 3e 73 65 73 73 69 6f 6e 5f 72 65 75 73 65 64 3c >session_reused<
7070: 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 /b> <i class="ar
7080: 67 22 3e 62 6f 6f 6c 65 61 6e 3c 2f 69 3e 3c 2f g">boolean</i></
7090: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 57 68 65 74 68 dt>.<dd><p>Wheth
70a0: 65 72 20 74 68 65 20 73 65 73 73 69 6f 6e 20 68 er the session h
70b0: 61 73 20 62 65 65 6e 20 72 65 75 73 65 64 20 6f as been reused o
70c0: 72 20 6e 6f 74 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a r not.</p></dd>.
70d0: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 <dt><b class="va
70e0: 72 69 61 62 6c 65 22 3e 69 73 5f 73 65 72 76 65 riable">is_serve
70f0: 72 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 r</b> <i class="
7100: 61 72 67 22 3e 62 6f 6f 6c 65 61 6e 3c 2f 69 3e arg">boolean</i>
7110: 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 57 68 65 </dt>.<dd><p>Whe
7120: 74 68 65 72 20 74 68 65 20 63 6f 6e 6e 65 63 74 ther the connect
7130: 69 6f 6e 20 69 73 20 63 6f 6e 66 69 67 75 72 65 ion is configure
7140: 64 20 61 73 20 61 20 73 65 72 76 65 72 20 28 31 d as a server (1
7150: 29 20 6f 72 20 63 6c 69 65 6e 74 20 28 30 29 2e ) or client (0).
7160: 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 </p></dd>.<dt><b
7170: 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 class="variable
7180: 22 3e 63 6f 6d 70 72 65 73 73 69 6f 6e 3c 2f 62 ">compression</b
7190: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
71a0: 3e 6d 6f 64 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c >mode</i></dt>.<
71b0: 64 64 3e 3c 70 3e 43 6f 6d 70 72 65 73 73 69 6f dd><p>Compressio
71c0: 6e 20 6d 65 74 68 6f 64 2e 3c 2f 70 3e 3c 2f 64 n method.</p></d
71d0: 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d d>.<dt><b class=
71e0: 22 76 61 72 69 61 62 6c 65 22 3e 65 78 70 61 6e "variable">expan
71f0: 73 69 6f 6e 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 sion</b> <i clas
7200: 73 3d 22 61 72 67 22 3e 6d 6f 64 65 3c 2f 69 3e s="arg">mode</i>
7210: 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 45 78 70 </dt>.<dd><p>Exp
7220: 61 6e 73 69 6f 6e 20 6d 65 74 68 6f 64 2e 3c 2f ansion method.</
7230: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 p></dd>.<dt><b c
7240: 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e lass="variable">
7250: 63 61 4c 69 73 74 3c 2f 62 3e 20 3c 69 20 63 6c caList</b> <i cl
7260: 61 73 73 3d 22 61 72 67 22 3e 6c 69 73 74 3c 2f ass="arg">list</
7270: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 4c i></dt>.<dd><p>L
7280: 69 73 74 20 6f 66 20 43 65 72 74 69 66 69 63 61 ist of Certifica
7290: 74 65 20 41 75 74 68 6f 72 69 74 69 65 73 20 28 te Authorities (
72a0: 43 41 29 20 66 6f 72 20 58 2e 35 30 39 20 63 65 CA) for X.509 ce
72b0: 72 74 69 66 69 63 61 74 65 2e 3c 2f 70 3e 3c 2f rtificate.</p></
72c0: 64 64 3e 0a 3c 2f 64 6c 3e 0a 3c 70 3e 43 69 70 dd>.</dl>.<p>Cip
72d0: 68 65 72 20 49 6e 66 6f 3c 2f 70 3e 0a 3c 64 6c her Info</p>.<dl
72e0: 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 class="doctools
72f0: 5f 64 65 66 69 6e 69 74 69 6f 6e 73 22 3e 0a 3c _definitions">.<
7300: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 dt><b class="var
7310: 69 61 62 6c 65 22 3e 63 69 70 68 65 72 3c 2f 62 iable">cipher</b
7320: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
7330: 3e 63 69 70 68 65 72 3c 2f 69 3e 3c 2f 64 74 3e >cipher</i></dt>
7340: 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 63 75 72 72 .<dd><p>The curr
7350: 65 6e 74 20 63 69 70 68 65 72 20 69 6e 20 75 73 ent cipher in us
7360: 65 20 66 6f 72 20 74 68 65 20 63 6f 6e 6e 65 63 e for the connec
7370: 74 69 6f 6e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c tion.</p></dd>.<
7380: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 dt><b class="var
7390: 69 61 62 6c 65 22 3e 73 74 61 6e 64 61 72 64 5f iable">standard_
73a0: 6e 61 6d 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 name</b> <i clas
73b0: 73 3d 22 61 72 67 22 3e 6e 61 6d 65 3c 2f 69 3e s="arg">name</i>
73c0: 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 </dt>.<dd><p>The
73d0: 20 73 74 61 6e 64 61 72 64 20 52 46 43 20 6e 61 standard RFC na
73e0: 6d 65 20 6f 66 20 63 69 70 68 65 72 2e 3c 2f 70 me of cipher.</p
73f0: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
7400: 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 61 ass="variable">a
7410: 6c 67 6f 72 69 74 68 6d 5f 62 69 74 73 3c 2f 62 lgorithm_bits</b
7420: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
7430: 3e 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e >n</i></dt>.<dd>
7440: 3c 70 3e 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 <p>The number of
7450: 20 70 72 6f 63 65 73 73 65 64 20 62 69 74 73 20 processed bits
7460: 75 73 65 64 20 66 6f 72 20 63 69 70 68 65 72 2e used for cipher.
7470: 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 </p></dd>.<dt><b
7480: 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 class="variable
7490: 22 3e 73 65 63 72 65 74 5f 62 69 74 73 3c 2f 62 ">secret_bits</b
74a0: 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 > <i class="arg"
74b0: 3e 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e >n</i></dt>.<dd>
74c0: 3c 70 3e 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 <p>The number of
74d0: 20 73 65 63 72 65 74 20 62 69 74 73 20 75 73 65 secret bits use
74e0: 64 20 66 6f 72 20 63 69 70 68 65 72 2e 3c 2f 70 d for cipher.</p
74f0: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
7500: 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 6d ass="variable">m
7510: 69 6e 5f 76 65 72 73 69 6f 6e 3c 2f 62 3e 20 3c in_version</b> <
7520: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 76 65 i class="arg">ve
7530: 72 73 69 6f 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c rsion</i></dt>.<
7540: 64 64 3e 3c 70 3e 54 68 65 20 6d 69 6e 69 6d 75 dd><p>The minimu
7550: 6d 20 70 72 6f 74 6f 63 6f 6c 20 76 65 72 73 69 m protocol versi
7560: 6f 6e 20 66 6f 72 20 63 69 70 68 65 72 2e 3c 2f on for cipher.</
7570: 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 p></dd>.<dt><b c
7580: 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e lass="variable">
7590: 63 69 70 68 65 72 5f 69 73 5f 61 65 61 64 3c 2f cipher_is_aead</
75a0: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
75b0: 22 3e 62 6f 6f 6c 65 61 6e 3c 2f 69 3e 3c 2f 64 ">boolean</i></d
75c0: 74 3e 0a 3c 64 64 3e 3c 70 3e 57 68 65 74 68 65 t>.<dd><p>Whethe
75d0: 72 20 74 68 65 20 63 69 70 68 65 72 20 69 73 20 r the cipher is
75e0: 41 75 74 68 65 6e 74 69 63 61 74 65 64 20 45 6e Authenticated En
75f0: 63 72 79 70 74 69 6f 6e 20 77 69 74 68 20 41 73 cryption with As
7600: 73 6f 63 69 61 74 65 64 20 44 61 74 61 20 28 41 sociated Data (A
7610: 45 41 44 29 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c EAD).</p></dd>.<
7620: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 dt><b class="var
7630: 69 61 62 6c 65 22 3e 63 69 70 68 65 72 5f 69 64 iable">cipher_id
7640: 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 </b> <i class="a
7650: 72 67 22 3e 69 64 3c 2f 69 3e 3c 2f 64 74 3e 0a rg">id</i></dt>.
7660: 3c 64 64 3e 3c 70 3e 54 68 65 20 4f 70 65 6e 53 <dd><p>The OpenS
7670: 53 4c 20 63 69 70 68 65 72 20 69 64 2e 3c 2f 70 SL cipher id.</p
7680: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
7690: 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 64 ass="variable">d
76a0: 65 73 63 72 69 70 74 69 6f 6e 3c 2f 62 3e 20 3c escription</b> <
76b0: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 74 i class="arg">st
76c0: 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 ring</i></dt>.<d
76d0: 64 3e 3c 70 3e 41 20 74 65 78 74 20 64 65 73 63 d><p>A text desc
76e0: 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 ription of the c
76f0: 69 70 68 65 72 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a ipher.</p></dd>.
7700: 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 <dt><b class="va
7710: 72 69 61 62 6c 65 22 3e 68 61 6e 64 73 68 61 6b riable">handshak
7720: 65 5f 64 69 67 65 73 74 3c 2f 62 3e 20 3c 69 20 e_digest</b> <i
7730: 63 6c 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f 6c class="arg">bool
7740: 65 61 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 ean</i></dt>.<dd
7750: 3e 3c 70 3e 44 69 67 65 73 74 20 75 73 65 64 20 ><p>Digest used
7760: 64 75 72 69 6e 67 20 68 61 6e 64 73 68 61 6b 65 during handshake
7770: 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e .</p></dd>.</dl>
7780: 0a 3c 70 3e 53 65 73 73 69 6f 6e 20 49 6e 66 6f .<p>Session Info
7790: 3c 2f 70 3e 0a 3c 64 6c 20 63 6c 61 73 73 3d 22 </p>.<dl class="
77a0: 64 6f 63 74 6f 6f 6c 73 5f 64 65 66 69 6e 69 74 doctools_definit
77b0: 69 6f 6e 73 22 3e 0a 3c 64 74 3e 3c 62 20 63 6c ions">.<dt><b cl
77c0: 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 61 ass="variable">a
77d0: 6c 70 6e 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 lpn</b> <i class
77e0: 3d 22 61 72 67 22 3e 70 72 6f 74 6f 63 6f 6c 3c ="arg">protocol<
77f0: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
7800: 54 68 65 20 70 72 6f 74 6f 63 6f 6c 20 73 65 6c The protocol sel
7810: 65 63 74 65 64 20 61 66 74 65 72 20 41 70 70 6c ected after Appl
7820: 69 63 61 74 69 6f 6e 2d 4c 61 79 65 72 20 50 72 ication-Layer Pr
7830: 6f 74 6f 63 6f 6c 20 4e 65 67 6f 74 69 61 74 69 otocol Negotiati
7840: 6f 6e 20 28 41 4c 50 4e 29 2e 3c 2f 70 3e 3c 2f on (ALPN).</p></
7850: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
7860: 3d 22 76 61 72 69 61 62 6c 65 22 3e 72 65 73 75 ="variable">resu
7870: 6d 61 62 6c 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 mable</b> <i cla
7880: 73 73 3d 22 61 72 67 22 3e 62 6f 6f 6c 65 61 6e ss="arg">boolean
7890: 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 </i></dt>.<dd><p
78a0: 3e 57 68 65 74 68 65 72 20 74 68 65 20 73 65 73 >Whether the ses
78b0: 73 69 6f 6e 20 63 61 6e 20 62 65 20 72 65 73 75 sion can be resu
78c0: 6d 65 64 20 6f 72 20 6e 6f 74 2e 3c 2f 70 3e 3c med or not.</p><
78d0: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
78e0: 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 74 61 s="variable">sta
78f0: 72 74 5f 74 69 6d 65 3c 2f 62 3e 20 3c 69 20 63 rt_time</b> <i c
7900: 6c 61 73 73 3d 22 61 72 67 22 3e 73 65 63 6f 6e lass="arg">secon
7910: 64 73 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e ds</i></dt>.<dd>
7920: 3c 70 3e 54 69 6d 65 20 73 69 6e 63 65 20 73 65 <p>Time since se
7930: 73 73 69 6f 6e 20 73 74 61 72 74 65 64 20 69 6e ssion started in
7940: 20 73 65 63 6f 6e 64 73 20 73 69 6e 63 65 20 65 seconds since e
7950: 70 6f 63 68 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c poch.</p></dd>.<
7960: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 dt><b class="var
7970: 69 61 62 6c 65 22 3e 74 69 6d 65 6f 75 74 3c 2f iable">timeout</
7980: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
7990: 22 3e 73 65 63 6f 6e 64 73 3c 2f 69 3e 3c 2f 64 ">seconds</i></d
79a0: 74 3e 0a 3c 64 64 3e 3c 70 3e 4d 61 78 20 64 75 t>.<dd><p>Max du
79b0: 72 61 74 69 6f 6e 20 6f 66 20 73 65 73 73 69 6f ration of sessio
79c0: 6e 20 69 6e 20 73 65 63 6f 6e 64 73 20 62 65 66 n in seconds bef
79d0: 6f 72 65 20 74 69 6d 65 2d 6f 75 74 2e 3c 2f 70 ore time-out.</p
79e0: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
79f0: 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 6c ass="variable">l
7a00: 69 66 65 74 69 6d 65 3c 2f 62 3e 20 3c 69 20 63 ifetime</b> <i c
7a10: 6c 61 73 73 3d 22 61 72 67 22 3e 73 65 63 6f 6e lass="arg">secon
7a20: 64 73 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e ds</i></dt>.<dd>
7a30: 3c 70 3e 53 65 73 73 69 6f 6e 20 74 69 63 6b 65 <p>Session ticke
7a40: 74 20 6c 69 66 65 74 69 6d 65 20 68 69 6e 74 20 t lifetime hint
7a50: 69 6e 20 73 65 63 6f 6e 64 73 2e 3c 2f 70 3e 3c in seconds.</p><
7a60: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
7a70: 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 65 73 s="variable">ses
7a80: 73 69 6f 6e 5f 69 64 3c 2f 62 3e 20 3c 69 20 63 sion_id</b> <i c
7a90: 6c 61 73 73 3d 22 61 72 67 22 3e 62 69 6e 61 72 lass="arg">binar
7aa0: 79 5f 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 y_string</i></dt
7ab0: 3e 0a 3c 64 64 3e 3c 70 3e 55 6e 69 71 75 65 20 >.<dd><p>Unique
7ac0: 73 65 73 73 69 6f 6e 20 69 64 20 66 6f 72 20 75 session id for u
7ad0: 73 65 20 69 6e 20 72 65 73 75 6d 69 6e 67 20 74 se in resuming t
7ae0: 68 65 20 73 65 73 73 69 6f 6e 2e 3c 2f 70 3e 3c he session.</p><
7af0: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
7b00: 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 73 65 73 s="variable">ses
7b10: 73 69 6f 6e 5f 74 69 63 6b 65 74 3c 2f 62 3e 20 sion_ticket</b>
7b20: 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 62 <i class="arg">b
7b30: 69 6e 61 72 79 5f 73 74 72 69 6e 67 3c 2f 69 3e inary_string</i>
7b40: 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 55 6e 69 </dt>.<dd><p>Uni
7b50: 71 75 65 20 73 65 73 73 69 6f 6e 20 74 69 63 6b que session tick
7b60: 65 74 20 66 6f 72 20 75 73 65 20 69 6e 20 72 65 et for use in re
7b70: 73 75 6d 69 6e 67 20 74 68 65 20 73 65 73 73 69 suming the sessi
7b80: 6f 6e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 on.</p></dd>.<dt
7b90: 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 ><b class="varia
7ba0: 62 6c 65 22 3e 74 69 63 6b 65 74 5f 61 70 70 5f ble">ticket_app_
7bb0: 64 61 74 61 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 data</b> <i clas
7bc0: 73 3d 22 61 72 67 22 3e 62 69 6e 61 72 79 5f 73 s="arg">binary_s
7bd0: 74 72 69 6e 67 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c tring</i></dt>.<
7be0: 64 64 3e 3c 70 3e 55 6e 69 71 75 65 20 73 65 73 dd><p>Unique ses
7bf0: 73 69 6f 6e 20 74 69 63 6b 65 74 20 61 70 70 6c sion ticket appl
7c00: 69 63 61 74 69 6f 6e 20 64 61 74 61 2e 3c 2f 70 ication data.</p
7c10: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
7c20: 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 6d ass="variable">m
7c30: 61 73 74 65 72 5f 6b 65 79 3c 2f 62 3e 20 3c 69 aster_key</b> <i
7c40: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 62 69 6e class="arg">bin
7c50: 61 72 79 5f 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f ary_string</i></
7c60: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 55 6e 69 71 75 dt>.<dd><p>Uniqu
7c70: 65 20 73 65 73 73 69 6f 6e 20 6d 61 73 74 65 72 e session master
7c80: 20 6b 65 79 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c key.</p></dd>.<
7c90: 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 dt><b class="var
7ca0: 69 61 62 6c 65 22 3e 73 65 73 73 69 6f 6e 5f 63 iable">session_c
7cb0: 61 63 68 65 5f 6d 6f 64 65 3c 2f 62 3e 20 3c 69 ache_mode</b> <i
7cc0: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 6d 6f 64 class="arg">mod
7cd0: 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c e</i></dt>.<dd><
7ce0: 70 3e 53 65 72 76 65 72 20 63 61 63 68 65 20 6d p>Server cache m
7cf0: 6f 64 65 20 28 63 6c 69 65 6e 74 2c 20 73 65 72 ode (client, ser
7d00: 76 65 72 2c 20 6f 72 20 62 6f 74 68 29 2e 3c 2f ver, or both).</
7d10: 70 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e 3c 2f 64 p></dd>.</dl></d
7d20: 64 3e 0a 3c 64 74 3e 3c 61 20 6e 61 6d 65 3d 22 d>.<dt><a name="
7d30: 39 22 3e 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 9"><b class="cmd
7d40: 22 3e 74 6c 73 3a 3a 63 69 70 68 65 72 73 3c 2f ">tls::ciphers</
7d50: 62 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 b> <span class="
7d60: 6f 70 74 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 opt">?<i class="
7d70: 61 72 67 22 3e 70 72 6f 74 6f 63 6f 6c 3c 2f 69 arg">protocol</i
7d80: 3e 3f 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 >?</span> <span
7d90: 63 6c 61 73 73 3d 22 6f 70 74 22 3e 3f 3c 69 20 class="opt">?<i
7da0: 63 6c 61 73 73 3d 22 61 72 67 22 3e 76 65 72 62 class="arg">verb
7db0: 6f 73 65 3c 2f 69 3e 3f 3c 2f 73 70 61 6e 3e 20 ose</i>?</span>
7dc0: 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 6f 70 74 <span class="opt
7dd0: 22 3e 3f 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 ">?<i class="arg
7de0: 22 3e 73 75 70 70 6f 72 74 65 64 3c 2f 69 3e 3f ">supported</i>?
7df0: 3c 2f 73 70 61 6e 3e 3c 2f 61 3e 3c 2f 64 74 3e </span></a></dt>
7e00: 0a 3c 64 64 3e 3c 70 3e 57 69 74 68 6f 75 74 20 .<dd><p>Without
7e10: 61 6e 79 20 6f 70 74 69 6f 6e 73 2c 20 69 74 20 any options, it
7e20: 72 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f returns a list o
7e30: 66 20 61 6c 6c 20 73 79 6d 6d 65 74 72 69 63 20 f all symmetric
7e40: 63 69 70 68 65 72 73 20 66 6f 72 20 75 73 65 20 ciphers for use
7e50: 77 69 74 68 20 74 68 65 0a 3c 69 20 63 6c 61 73 with the.<i clas
7e60: 73 3d 22 61 72 67 22 3e 2d 63 69 70 68 65 72 3c s="arg">-cipher<
7e70: 2f 69 3e 20 6f 70 74 69 6f 6e 2e 20 57 69 74 68 /i> option. With
7e80: 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e <i class="arg">
7e90: 70 72 6f 74 6f 63 6f 6c 3c 2f 69 3e 2c 20 6f 6e protocol</i>, on
7ea0: 6c 79 20 74 68 65 20 63 69 70 68 65 72 73 20 73 ly the ciphers s
7eb0: 75 70 70 6f 72 74 65 64 20 66 6f 72 20 74 68 61 upported for tha
7ec0: 74 0a 70 72 6f 74 6f 63 6f 6c 20 61 72 65 20 72 t.protocol are r
7ed0: 65 74 75 72 6e 65 64 2e 20 53 65 65 20 74 68 65 eturned. See the
7ee0: 20 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e <b class="cmd">
7ef0: 74 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 3c 2f tls::protocols</
7f00: 62 3e 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 74 b> command for t
7f10: 68 65 20 73 75 70 70 6f 72 74 65 64 0a 70 72 6f he supported.pro
7f20: 74 6f 63 6f 6c 73 2e 20 49 66 20 3c 69 20 63 6c tocols. If <i cl
7f30: 61 73 73 3d 22 61 72 67 22 3e 76 65 72 62 6f 73 ass="arg">verbos
7f40: 65 3c 2f 69 3e 20 69 73 20 73 70 65 63 69 66 69 e</i> is specifi
7f50: 65 64 20 61 73 20 74 72 75 65 20 74 68 65 6e 20 ed as true then
7f60: 61 20 76 65 72 62 6f 73 65 2c 20 68 75 6d 61 6e a verbose, human
7f70: 20 72 65 61 64 61 62 6c 65 0a 6c 69 73 74 20 69 readable.list i
7f80: 73 20 72 65 74 75 72 6e 65 64 20 77 69 74 68 20 s returned with
7f90: 61 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 additional infor
7fa0: 6d 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 63 69 mation on the ci
7fb0: 70 68 65 72 2e 20 49 66 20 3c 69 20 63 6c 61 73 pher. If <i clas
7fc0: 73 3d 22 61 72 67 22 3e 73 75 70 70 6f 72 74 65 s="arg">supporte
7fd0: 64 3c 2f 69 3e 0a 69 73 20 73 70 65 63 69 66 69 d</i>.is specifi
7fe0: 65 64 20 61 73 20 74 72 75 65 2c 20 74 68 65 6e ed as true, then
7ff0: 20 6f 6e 6c 79 20 74 68 65 20 63 69 70 68 65 72 only the cipher
8000: 73 20 73 75 70 70 6f 72 74 65 64 20 66 6f 72 20 s supported for
8010: 70 72 6f 74 6f 63 6f 6c 20 77 69 6c 6c 20 62 65 protocol will be
8020: 20 6c 69 73 74 65 64 2e 0a 54 68 65 20 3c 69 20 listed..The <i
8030: 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 75 70 70 class="arg">supp
8040: 6f 72 74 65 64 3c 2f 69 3e 20 61 72 67 20 69 73 orted</i> arg is
8050: 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 new for TclTLS
8060: 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 1.8.</p></dd>.<d
8070: 74 3e 3c 61 20 6e 61 6d 65 3d 22 31 30 22 3e 3c t><a name="10"><
8080: 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c b class="cmd">tl
8090: 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 3c 2f 62 3e s::protocols</b>
80a0: 3c 2f 61 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 </a></dt>.<dd><p
80b0: 3e 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 >Returns a list
80c0: 6f 66 20 74 68 65 20 73 75 70 70 6f 72 74 65 64 of the supported
80d0: 20 53 53 4c 2f 54 4c 53 20 70 72 6f 74 6f 63 6f SSL/TLS protoco
80e0: 6c 73 2e 20 56 61 6c 69 64 20 76 61 6c 75 65 73 ls. Valid values
80f0: 20 61 72 65 3a 0a 3c 62 20 63 6c 61 73 73 3d 22 are:.<b class="
8100: 63 6f 6e 73 74 22 3e 73 73 6c 32 3c 2f 62 3e 2c const">ssl2</b>,
8110: 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 <b class="const
8120: 22 3e 73 73 6c 33 3c 2f 62 3e 2c 20 3c 62 20 63 ">ssl3</b>, <b c
8130: 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 74 6c 73 lass="const">tls
8140: 31 3c 2f 62 3e 2c 20 3c 62 20 63 6c 61 73 73 3d 1</b>, <b class=
8150: 22 63 6f 6e 73 74 22 3e 74 6c 73 31 2e 31 3c 2f "const">tls1.1</
8160: 62 3e 2c 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f b>, <b class="co
8170: 6e 73 74 22 3e 74 6c 73 31 2e 32 3c 2f 62 3e 2c nst">tls1.2</b>,
8180: 20 61 6e 64 0a 3c 62 20 63 6c 61 73 73 3d 22 63 and.<b class="c
8190: 6f 6e 73 74 22 3e 74 6c 73 31 2e 33 3c 2f 62 3e onst">tls1.3</b>
81a0: 2e 20 45 78 61 63 74 20 6c 69 73 74 20 64 65 70 . Exact list dep
81b0: 65 6e 64 73 20 6f 6e 20 4f 70 65 6e 53 53 4c 20 ends on OpenSSL
81c0: 76 65 72 73 69 6f 6e 20 61 6e 64 20 63 6f 6d 70 version and comp
81d0: 69 6c 65 20 74 69 6d 65 20 66 6c 61 67 73 2e 0a ile time flags..
81e0: 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 This command is
81f0: 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 new for TclTLS 1
8200: 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 .8.</p></dd>.<dt
8210: 3e 3c 61 20 6e 61 6d 65 3d 22 31 31 22 3e 3c 62 ><a name="11"><b
8220: 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 class="cmd">tls
8230: 3a 3a 76 65 72 73 69 6f 6e 3c 2f 62 3e 3c 2f 61 ::version</b></a
8240: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 52 65 ></dt>.<dd><p>Re
8250: 74 75 72 6e 73 20 74 68 65 20 4f 70 65 6e 53 53 turns the OpenSS
8260: 4c 20 76 65 72 73 69 6f 6e 20 73 74 72 69 6e 67 L version string
8270: 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e .</p></dd>.</dl>
8280: 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 69 64 3d .</div>.<div id=
8290: 22 73 65 63 74 69 6f 6e 34 22 20 63 6c 61 73 73 "section4" class
82a0: 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 69 ="doctools_secti
82b0: 6f 6e 22 3e 3c 68 32 3e 3c 61 20 6e 61 6d 65 3d on"><h2><a name=
82c0: 22 73 65 63 74 69 6f 6e 34 22 3e 43 65 72 74 69 "section4">Certi
82d0: 66 69 63 61 74 65 20 56 61 6c 69 64 61 74 69 6f ficate Validatio
82e0: 6e 3c 2f 61 3e 3c 2f 68 32 3e 0a 3c 64 69 76 20 n</a></h2>.<div
82f0: 69 64 3d 22 73 75 62 73 65 63 74 69 6f 6e 31 22 id="subsection1"
8300: 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 class="doctools
8310: 5f 73 75 62 73 65 63 74 69 6f 6e 22 3e 3c 68 33 _subsection"><h3
8320: 3e 3c 61 20 6e 61 6d 65 3d 22 73 75 62 73 65 63 ><a name="subsec
8330: 74 69 6f 6e 31 22 3e 50 4b 49 20 61 6e 64 20 43 tion1">PKI and C
8340: 65 72 74 69 66 69 63 61 74 65 73 3c 2f 61 3e 3c ertificates</a><
8350: 2f 68 33 3e 0a 3c 70 3e 55 73 69 6e 67 20 74 68 /h3>.<p>Using th
8360: 65 20 50 75 62 6c 69 63 20 4b 65 79 20 49 6e 66 e Public Key Inf
8370: 72 61 73 74 72 75 63 74 75 72 65 20 28 50 4b 49 rastructure (PKI
8380: 29 2c 20 65 61 63 68 20 75 73 65 72 20 63 72 65 ), each user cre
8390: 61 74 65 73 20 61 20 70 72 69 76 61 74 65 20 6b ates a private k
83a0: 65 79 20 74 68 61 74 0a 6f 6e 6c 79 20 74 68 65 ey that.only the
83b0: 79 20 6b 6e 6f 77 20 61 62 6f 75 74 20 61 6e 64 y know about and
83c0: 20 61 20 70 75 62 6c 69 63 20 6b 65 79 20 74 68 a public key th
83d0: 65 79 20 63 61 6e 20 65 78 63 68 61 6e 67 65 20 ey can exchange
83e0: 77 69 74 68 20 6f 74 68 65 72 73 20 66 6f 72 20 with others for
83f0: 75 73 65 20 69 6e 0a 65 6e 63 72 79 70 74 69 6e use in.encryptin
8400: 67 20 61 6e 64 20 64 65 63 72 79 70 74 69 6e 67 g and decrypting
8410: 20 64 61 74 61 2e 20 54 68 65 20 70 72 6f 63 65 data. The proce
8420: 73 73 20 69 73 20 74 68 65 20 73 65 6e 64 65 72 ss is the sender
8430: 20 65 6e 63 72 79 70 74 73 20 74 68 65 69 72 20 encrypts their
8440: 64 61 74 61 0a 75 73 69 6e 67 20 74 68 65 69 72 data.using their
8450: 20 70 72 69 76 61 74 65 20 6b 65 79 20 61 6e 64 private key and
8460: 20 74 68 65 20 72 65 63 65 69 76 65 72 27 73 20 the receiver's
8470: 70 75 62 6c 69 63 20 6b 65 79 2e 20 54 68 65 20 public key. The
8480: 64 61 74 61 20 69 73 20 74 68 65 6e 20 73 65 6e data is then sen
8490: 74 0a 74 6f 20 74 68 65 20 72 65 63 65 69 76 65 t.to the receive
84a0: 72 2e 20 49 6e 20 61 20 73 69 6d 69 6c 61 72 20 r. In a similar
84b0: 6d 61 6e 6e 65 72 2c 20 74 68 65 20 72 65 63 65 manner, the rece
84c0: 69 76 65 72 20 75 73 65 73 20 74 68 65 69 72 20 iver uses their
84d0: 70 72 69 76 61 74 65 20 6b 65 79 20 61 6e 64 0a private key and.
84e0: 74 68 65 20 73 65 6e 64 65 72 27 73 20 70 75 62 the sender's pub
84f0: 6c 69 63 20 6b 65 79 20 74 6f 20 64 65 63 72 79 lic key to decry
8500: 70 74 20 74 68 65 20 64 61 74 61 2e 20 54 68 69 pt the data. Thi
8510: 73 20 70 72 6f 76 69 64 65 73 20 64 61 74 61 20 s provides data
8520: 69 6e 74 65 67 72 69 74 79 2c 20 74 6f 0a 65 6e integrity, to.en
8530: 73 75 72 65 20 74 68 65 20 64 61 74 61 20 63 61 sure the data ca
8540: 6e 27 74 20 62 65 20 76 69 65 77 65 64 20 6f 72 n't be viewed or
8550: 20 61 6c 74 65 72 65 64 20 64 75 72 69 6e 67 20 altered during
8560: 74 72 61 6e 73 70 6f 72 74 2e 20 53 65 65 20 74 transport. See t
8570: 68 65 0a 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 he.<b class="opt
8580: 69 6f 6e 22 3e 2d 6b 65 79 3c 2f 62 3e 20 61 6e ion">-key</b> an
8590: 64 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 d <b class="opti
85a0: 6f 6e 22 3e 2d 6b 65 79 66 69 6c 65 3c 2f 62 3e on">-keyfile</b>
85b0: 20 6f 70 74 69 6f 6e 73 20 66 6f 72 20 68 6f 77 options for how
85c0: 20 74 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 to specify the
85d0: 70 72 69 76 61 74 65 20 6b 65 79 2e 0a 41 6c 73 private key..Als
85e0: 6f 20 73 65 65 20 74 68 65 20 3c 62 20 63 6c 61 o see the <b cla
85f0: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 70 61 73 ss="option">-pas
8600: 73 77 6f 72 64 3c 2f 62 3e 20 6f 70 74 69 6f 6e sword</b> option
8610: 20 66 6f 72 20 68 6f 77 20 74 6f 20 70 72 6f 76 for how to prov
8620: 69 64 65 20 74 68 65 20 70 61 73 73 77 6f 72 64 ide the password
8630: 2e 3c 2f 70 3e 0a 3c 70 3e 49 6e 20 6f 72 64 65 .</p>.<p>In orde
8640: 72 20 74 6f 20 70 72 6f 76 69 64 65 20 61 75 74 r to provide aut
8650: 68 65 6e 74 69 63 61 74 69 6f 6e 2c 20 69 2e 65 hentication, i.e
8660: 2e 20 65 6e 73 75 72 69 6e 67 20 73 6f 6d 65 6f . ensuring someo
8670: 6e 65 20 69 73 20 77 68 6f 20 74 68 65 79 20 73 ne is who they s
8680: 61 79 20 74 68 65 79 0a 61 72 65 2c 20 74 68 65 ay they.are, the
8690: 20 70 75 62 6c 69 63 20 6b 65 79 20 61 6e 64 20 public key and
86a0: 75 73 65 72 20 69 64 65 6e 74 69 66 69 63 61 74 user identificat
86b0: 69 6f 6e 20 69 6e 66 6f 20 69 73 20 73 74 6f 72 ion info is stor
86c0: 65 64 20 69 6e 20 61 20 58 2e 35 30 39 0a 63 65 ed in a X.509.ce
86d0: 72 74 69 66 69 63 61 74 65 20 61 6e 64 20 74 68 rtificate and th
86e0: 61 74 20 63 65 72 74 69 66 69 63 61 74 65 20 69 at certificate i
86f0: 73 20 61 75 74 68 65 6e 74 69 63 61 74 65 64 20 s authenticated
8700: 28 69 2e 65 2e 20 73 69 67 6e 65 64 29 20 62 79 (i.e. signed) by
8710: 20 61 20 43 65 72 74 69 66 69 63 61 74 65 0a 41 a Certificate.A
8720: 75 74 68 6f 72 69 74 79 20 28 43 41 29 2e 20 55 uthority (CA). U
8730: 73 65 72 73 20 63 61 6e 20 74 68 65 6e 20 65 78 sers can then ex
8740: 63 68 61 6e 67 65 20 74 68 65 73 65 20 63 65 72 change these cer
8750: 74 69 66 69 63 61 74 65 73 20 64 75 72 69 6e 67 tificates during
8760: 20 74 68 65 20 54 4c 53 0a 69 6e 69 74 69 61 6c the TLS.initial
8770: 69 7a 61 74 69 6f 6e 20 70 72 6f 63 65 73 73 20 ization process
8780: 61 6e 64 20 63 68 65 63 6b 20 74 68 65 6d 20 61 and check them a
8790: 67 61 69 6e 73 74 20 74 68 65 20 72 6f 6f 74 20 gainst the root
87a0: 43 41 20 63 65 72 74 69 66 69 63 61 74 65 73 20 CA certificates
87b0: 74 6f 20 65 6e 73 75 72 65 0a 74 68 65 79 20 61 to ensure.they a
87c0: 72 65 20 76 61 6c 69 64 2e 20 54 68 69 73 20 69 re valid. This i
87d0: 73 20 68 61 6e 64 6c 65 64 20 62 79 20 4f 70 65 s handled by Ope
87e0: 6e 53 53 4c 20 76 69 61 20 74 68 65 20 3c 62 20 nSSL via the <b
87f0: 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d class="option">-
8800: 72 65 71 75 65 73 74 3c 2f 62 3e 20 61 6e 64 0a request</b> and.
8810: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
8820: 22 3e 2d 72 65 71 75 69 72 65 3c 2f 62 3e 20 6f ">-require</b> o
8830: 70 74 69 6f 6e 73 2e 20 53 65 65 20 74 68 65 20 ptions. See the
8840: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
8850: 22 3e 2d 63 61 64 69 72 3c 2f 62 3e 2c 20 3c 62 ">-cadir</b>, <b
8860: 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e class="option">
8870: 2d 63 61 64 69 72 3c 2f 62 3e 2c 20 61 6e 64 0a -cadir</b>, and.
8880: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
8890: 22 3e 2d 63 61 73 74 6f 72 65 3c 2f 62 3e 20 6f ">-castore</b> o
88a0: 70 74 69 6f 6e 73 20 66 6f 72 20 68 6f 77 20 74 ptions for how t
88b0: 6f 20 73 70 65 63 69 66 79 20 77 68 65 72 65 20 o specify where
88c0: 74 6f 20 66 69 6e 64 20 74 68 65 20 43 41 20 63 to find the CA c
88d0: 65 72 74 69 66 69 63 61 74 65 73 2e 0a 4f 70 74 ertificates..Opt
88e0: 69 6f 6e 61 6c 6c 79 2c 20 69 6e 20 61 20 66 75 ionally, in a fu
88f0: 74 75 72 65 20 72 65 6c 65 61 73 65 2c 20 74 68 ture release, th
8900: 65 79 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 63 ey can also be c
8910: 68 65 63 6b 65 64 20 61 67 61 69 6e 73 74 20 74 hecked against t
8920: 68 65 20 43 65 72 74 69 66 69 63 61 74 65 0a 52 he Certificate.R
8930: 65 76 6f 63 61 74 69 6f 6e 20 4c 69 73 74 20 28 evocation List (
8940: 43 52 4c 29 20 6f 66 20 72 65 76 6f 6b 65 64 20 CRL) of revoked
8950: 63 65 72 74 69 66 69 63 61 74 65 73 2e 20 43 65 certificates. Ce
8960: 72 74 69 66 69 63 61 74 65 73 20 63 61 6e 20 61 rtificates can a
8970: 6c 73 6f 20 62 65 0a 73 65 6c 66 2d 73 69 67 6e lso be.self-sign
8980: 65 64 2c 20 62 75 74 20 74 68 65 79 20 61 72 65 ed, but they are
8990: 20 62 79 20 64 65 66 61 75 6c 74 20 6e 6f 74 20 by default not
89a0: 74 72 75 73 74 65 64 20 75 6e 6c 65 73 73 20 79 trusted unless y
89b0: 6f 75 20 61 64 64 20 74 68 65 6d 20 74 6f 20 79 ou add them to y
89c0: 6f 75 72 0a 63 65 72 74 69 66 69 63 61 74 65 20 our.certificate
89d0: 73 74 6f 72 65 2e 3c 2f 70 3e 0a 3c 70 3e 54 79 store.</p>.<p>Ty
89e0: 70 69 63 61 6c 6c 79 20 77 68 65 6e 20 76 69 73 pically when vis
89f0: 69 74 69 6e 67 20 77 65 62 20 73 69 74 65 73 2c iting web sites,
8a00: 20 6f 6e 6c 79 20 74 68 65 20 63 6c 69 65 6e 74 only the client
8a10: 20 6e 65 65 64 73 20 74 6f 20 63 68 65 63 6b 20 needs to check
8a20: 74 68 65 20 73 65 72 76 65 72 27 73 0a 63 65 72 the server's.cer
8a30: 74 69 66 69 63 61 74 65 20 74 6f 20 65 6e 73 75 tificate to ensu
8a40: 72 65 20 69 74 20 69 73 20 76 61 6c 69 64 2e 20 re it is valid.
8a50: 54 68 65 20 73 65 72 76 65 72 20 64 6f 65 73 6e The server doesn
8a60: 27 74 20 6e 65 65 64 20 74 6f 20 63 68 65 63 6b 't need to check
8a70: 20 74 68 65 20 63 6c 69 65 6e 74 0a 63 65 72 74 the client.cert
8a80: 69 66 69 63 61 74 65 20 75 6e 6c 65 73 73 20 79 ificate unless y
8a90: 6f 75 20 6e 65 65 64 20 74 6f 20 61 75 74 68 65 ou need to authe
8aa0: 6e 74 69 63 61 74 65 20 77 69 74 68 20 74 68 65 nticate with the
8ab0: 6d 20 74 6f 20 6c 6f 67 69 6e 2c 20 65 74 63 2e m to login, etc.
8ac0: 20 53 65 65 20 74 68 65 0a 3c 62 20 63 6c 61 73 See the.<b clas
8ad0: 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 65 72 74 s="option">-cert
8ae0: 3c 2f 62 3e 20 61 6e 64 20 3c 62 20 63 6c 61 73 </b> and <b clas
8af0: 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 65 72 74 s="option">-cert
8b00: 66 69 6c 65 3c 2f 62 3e 20 6f 70 74 69 6f 6e 73 file</b> options
8b10: 20 69 66 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 if you need to
8b20: 70 72 6f 76 69 64 65 20 61 20 63 65 72 74 69 66 provide a certif
8b30: 69 63 61 74 65 2e 3c 2f 70 3e 0a 3c 2f 64 69 76 icate.</p>.</div
8b40: 3e 0a 3c 64 69 76 20 69 64 3d 22 73 75 62 73 65 >.<div id="subse
8b50: 63 74 69 6f 6e 32 22 20 63 6c 61 73 73 3d 22 64 ction2" class="d
8b60: 6f 63 74 6f 6f 6c 73 5f 73 75 62 73 65 63 74 69 octools_subsecti
8b70: 6f 6e 22 3e 3c 68 33 3e 3c 61 20 6e 61 6d 65 3d on"><h3><a name=
8b80: 22 73 75 62 73 65 63 74 69 6f 6e 32 22 3e 53 75 "subsection2">Su
8b90: 6d 6d 61 72 79 20 6f 66 20 63 6f 6d 6d 61 6e 64 mmary of command
8ba0: 20 6c 69 6e 65 20 6f 70 74 69 6f 6e 73 3c 2f 61 line options</a
8bb0: 3e 3c 2f 68 33 3e 0a 3c 70 3e 54 68 65 20 66 6f ></h3>.<p>The fo
8bc0: 6c 6c 6f 77 69 6e 67 20 6f 70 74 69 6f 6e 73 20 llowing options
8bd0: 61 72 65 20 75 73 65 64 20 66 6f 72 20 70 65 65 are used for pee
8be0: 72 20 63 65 72 74 69 66 69 63 61 74 65 20 76 61 r certificate va
8bf0: 6c 69 64 61 74 69 6f 6e 3a 3c 2f 70 3e 0a 3c 64 lidation:</p>.<d
8c00: 6c 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c l class="doctool
8c10: 73 5f 6f 70 74 69 6f 6e 73 22 3e 0a 3c 64 74 3e s_options">.<dt>
8c20: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
8c30: 22 3e 2d 63 61 64 69 72 3c 2f 62 3e 20 3c 69 20 ">-cadir</b> <i
8c40: 63 6c 61 73 73 3d 22 61 72 67 22 3e 64 69 72 65 class="arg">dire
8c50: 63 74 6f 72 79 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c ctory</i></dt>.<
8c60: 64 64 3e 3c 70 3e 53 70 65 63 69 66 69 65 73 20 dd><p>Specifies
8c70: 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 77 68 the directory wh
8c80: 65 72 65 20 74 68 65 20 43 65 72 74 69 66 69 63 ere the Certific
8c90: 61 74 65 20 41 75 74 68 6f 72 69 74 79 20 28 43 ate Authority (C
8ca0: 41 29 20 63 65 72 74 69 66 69 63 61 74 65 73 20 A) certificates
8cb0: 61 72 65 0a 73 74 6f 72 65 64 2e 20 54 68 65 20 are.stored. The
8cc0: 64 65 66 61 75 6c 74 20 69 73 20 70 6c 61 74 66 default is platf
8cd0: 6f 72 6d 20 73 70 65 63 69 66 69 63 2c 20 62 75 orm specific, bu
8ce0: 74 20 69 73 20 75 73 75 61 6c 6c 79 20 26 71 75 t is usually &qu
8cf0: 6f 74 3b 3c 62 20 63 6c 61 73 73 3d 22 66 69 6c ot;<b class="fil
8d00: 65 22 3e 2f 65 74 63 2f 73 73 6c 2f 63 65 72 74 e">/etc/ssl/cert
8d10: 73 3c 2f 62 3e 26 71 75 6f 74 3b 20 6f 6e 0a 4c s</b>" on.L
8d20: 69 6e 75 78 2f 55 6e 69 78 20 73 79 73 74 65 6d inux/Unix system
8d30: 73 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 6c s. The default l
8d40: 6f 63 61 74 69 6f 6e 20 63 61 6e 20 62 65 20 6f ocation can be o
8d50: 76 65 72 72 69 64 64 65 6e 20 62 79 20 74 68 65 verridden by the
8d60: 0a 3c 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 .<b class="varia
8d70: 62 6c 65 22 3e 53 53 4c 5f 43 45 52 54 5f 44 49 ble">SSL_CERT_DI
8d80: 52 3c 2f 62 3e 20 65 6e 76 69 72 6f 6e 6d 65 6e R</b> environmen
8d90: 74 20 76 61 72 69 61 62 6c 65 2e 3c 2f 70 3e 3c t variable.</p><
8da0: 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 /dd>.<dt><b clas
8db0: 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 66 69 s="option">-cafi
8dc0: 6c 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d le</b> <i class=
8dd0: 22 61 72 67 22 3e 66 69 6c 65 6e 61 6d 65 3c 2f "arg">filename</
8de0: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 53 i></dt>.<dd><p>S
8df0: 70 65 63 69 66 69 65 73 20 74 68 65 20 66 69 6c pecifies the fil
8e00: 65 20 77 69 74 68 20 74 68 65 20 43 65 72 74 69 e with the Certi
8e10: 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 79 ficate Authority
8e20: 20 28 43 41 29 20 63 65 72 74 69 66 69 63 61 74 (CA) certificat
8e30: 65 73 20 74 6f 20 75 73 65 20 69 6e 0a 3c 62 20 es to use in.<b
8e40: 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 50 45 class="const">PE
8e50: 4d 3c 2f 62 3e 20 66 69 6c 65 20 66 6f 72 6d 61 M</b> file forma
8e60: 74 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 t. The default i
8e70: 73 20 26 71 75 6f 74 3b 3c 62 20 63 6c 61 73 73 s "<b class
8e80: 3d 22 66 69 6c 65 22 3e 63 65 72 74 2e 70 65 6d ="file">cert.pem
8e90: 3c 2f 62 3e 26 71 75 6f 74 3b 2c 20 69 6e 20 74 </b>", in t
8ea0: 68 65 20 4f 70 65 6e 53 53 4c 0a 64 69 72 65 63 he OpenSSL.direc
8eb0: 74 6f 72 79 2e 20 4f 6e 20 4c 69 6e 75 78 2f 55 tory. On Linux/U
8ec0: 6e 69 78 20 73 79 73 74 65 6d 73 2c 20 74 68 69 nix systems, thi
8ed0: 73 20 69 73 20 75 73 75 61 6c 6c 79 20 26 71 75 s is usually &qu
8ee0: 6f 74 3b 3c 62 20 63 6c 61 73 73 3d 22 66 69 6c ot;<b class="fil
8ef0: 65 22 3e 2f 65 74 63 2f 73 73 6c 2f 63 61 2d 62 e">/etc/ssl/ca-b
8f00: 75 6e 64 6c 65 2e 70 65 6d 3c 2f 62 3e 26 71 75 undle.pem</b>&qu
8f10: 6f 74 3b 2e 0a 54 68 65 20 64 65 66 61 75 6c 74 ot;..The default
8f20: 20 66 69 6c 65 20 63 61 6e 20 62 65 20 6f 76 65 file can be ove
8f30: 72 72 69 64 64 65 6e 20 62 79 20 74 68 65 20 3c rridden by the <
8f40: 62 20 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c b class="variabl
8f50: 65 22 3e 53 53 4c 5f 43 45 52 54 5f 46 49 4c 45 e">SSL_CERT_FILE
8f60: 3c 2f 62 3e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 </b> environment
8f70: 0a 76 61 72 69 61 62 6c 65 2e 3c 2f 70 3e 3c 2f .variable.</p></
8f80: 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 dd>.<dt><b class
8f90: 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 73 74 6f ="option">-casto
8fa0: 72 65 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d re</b> <i class=
8fb0: 22 61 72 67 22 3e 55 52 49 3c 2f 69 3e 3c 2f 64 "arg">URI</i></d
8fc0: 74 3e 0a 3c 64 64 3e 3c 70 3e 53 70 65 63 69 66 t>.<dd><p>Specif
8fd0: 69 65 73 20 74 68 65 20 55 6e 69 66 6f 72 6d 20 ies the Uniform
8fe0: 52 65 73 6f 75 72 63 65 20 49 64 65 6e 74 69 66 Resource Identif
8ff0: 69 65 72 20 28 55 52 49 29 20 66 6f 72 20 74 68 ier (URI) for th
9000: 65 20 43 65 72 74 69 66 69 63 61 74 65 20 41 75 e Certificate Au
9010: 74 68 6f 72 69 74 79 0a 28 43 41 29 20 73 74 6f thority.(CA) sto
9020: 72 65 2c 20 77 68 69 63 68 20 6d 61 79 20 62 65 re, which may be
9030: 20 61 20 73 69 6e 67 6c 65 20 63 6f 6e 74 61 69 a single contai
9040: 6e 65 72 20 6f 72 20 61 20 63 61 74 61 6c 6f 67 ner or a catalog
9050: 20 6f 66 20 63 6f 6e 74 61 69 6e 65 72 73 2e 0a of containers..
9060: 53 74 61 72 74 69 6e 67 20 77 69 74 68 20 4f 70 Starting with Op
9070: 65 6e 53 53 4c 20 33 2e 32 20 6f 6e 20 4d 53 20 enSSL 3.2 on MS
9080: 57 69 6e 64 6f 77 73 2c 20 73 65 74 20 74 6f 20 Windows, set to
9090: 26 71 75 6f 74 3b 3c 62 20 63 6c 61 73 73 3d 22 "<b class="
90a0: 63 6f 6e 73 74 22 3e 6f 72 67 2e 6f 70 65 6e 73 const">org.opens
90b0: 73 6c 2e 77 69 6e 73 74 6f 72 65 3a 2f 2f 3c 2f sl.winstore://</
90c0: 62 3e 26 71 75 6f 74 3b 0a 74 6f 20 75 73 65 20 b>".to use
90d0: 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 4d 53 20 the built-in MS
90e0: 57 69 6e 64 6f 77 73 20 43 65 72 74 69 66 69 63 Windows Certific
90f0: 61 74 65 20 53 74 6f 72 65 2e 20 53 74 61 72 74 ate Store. Start
9100: 69 6e 67 20 69 6e 20 54 63 6c 54 4c 53 20 32 2e ing in TclTLS 2.
9110: 30 2c 20 74 68 69 73 0a 69 73 20 74 68 65 20 64 0, this.is the d
9120: 65 66 61 75 6c 74 20 69 66 20 3c 62 20 63 6c 61 efault if <b cla
9130: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 64 ss="option">-cad
9140: 69 72 3c 2f 62 3e 2c 20 3c 62 20 63 6c 61 73 73 ir</b>, <b class
9150: 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 64 69 72 ="option">-cadir
9160: 3c 2f 62 3e 2c 20 61 6e 64 20 3c 62 20 63 6c 61 </b>, and <b cla
9170: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 73 ss="option">-cas
9180: 74 6f 72 65 3c 2f 62 3e 20 61 72 65 0a 6e 6f 74 tore</b> are.not
9190: 20 73 70 65 63 69 66 69 65 64 2e 20 54 68 69 73 specified. This
91a0: 20 73 74 6f 72 65 20 6f 6e 6c 79 20 73 75 70 70 store only supp
91b0: 6f 72 74 73 20 72 6f 6f 74 20 63 65 72 74 69 66 orts root certif
91c0: 69 63 61 74 65 20 73 74 6f 72 65 73 2e 3c 2f 70 icate stores.</p
91d0: 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 63 6c ></dd>.<dt><b cl
91e0: 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 72 65 ass="option">-re
91f0: 71 75 65 73 74 3c 2f 62 3e 20 3c 69 20 63 6c 61 quest</b> <i cla
9200: 73 73 3d 22 61 72 67 22 3e 62 6f 6f 6c 3c 2f 69 ss="arg">bool</i
9210: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 52 65 ></dt>.<dd><p>Re
9220: 71 75 65 73 74 20 61 20 63 65 72 74 69 66 69 63 quest a certific
9230: 61 74 65 20 66 72 6f 6d 20 74 68 65 20 70 65 65 ate from the pee
9240: 72 20 64 75 72 69 6e 67 20 74 68 65 20 53 53 4c r during the SSL
9250: 20 68 61 6e 64 73 68 61 6b 65 2e 20 54 68 69 73 handshake. This
9260: 20 69 73 20 6e 65 65 64 65 64 0a 74 6f 20 64 6f is needed.to do
9270: 20 43 65 72 74 69 66 69 63 61 74 65 20 56 61 6c Certificate Val
9280: 69 64 61 74 69 6f 6e 2e 20 53 74 61 72 74 69 6e idation. Startin
9290: 67 20 69 6e 20 54 63 6c 54 4c 53 20 31 2e 38 2c g in TclTLS 1.8,
92a0: 20 74 68 65 20 64 65 66 61 75 6c 74 20 69 73 0a the default is.
92b0: 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 <b class="const"
92c0: 3e 74 72 75 65 3c 2f 62 3e 2e 20 53 74 61 72 74 >true</b>. Start
92d0: 69 6e 67 20 69 6e 20 54 63 6c 54 4c 53 20 32 2e ing in TclTLS 2.
92e0: 30 2c 20 69 66 20 73 65 74 20 74 6f 20 3c 62 20 0, if set to <b
92f0: 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 66 61 class="const">fa
9300: 6c 73 65 3c 2f 62 3e 20 61 6e 64 0a 3c 62 20 63 lse</b> and.<b c
9310: 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 72 lass="option">-r
9320: 65 71 75 69 72 65 3c 2f 62 3e 20 69 73 20 3c 62 equire</b> is <b
9330: 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 74 class="const">t
9340: 72 75 65 3c 2f 62 3e 2c 20 74 68 65 6e 20 74 68 rue</b>, then th
9350: 69 73 20 77 69 6c 6c 20 62 65 20 6f 76 65 72 72 is will be overr
9360: 69 64 64 65 6e 20 74 6f 20 3c 62 20 63 6c 61 73 idden to <b clas
9370: 73 3d 22 63 6f 6e 73 74 22 3e 74 72 75 65 3c 2f s="const">true</
9380: 62 3e 2e 0a 49 6e 20 61 64 64 69 74 69 6f 6e 2c b>..In addition,
9390: 20 74 68 65 20 63 6c 69 65 6e 74 20 63 61 6e 20 the client can
93a0: 6d 61 6e 75 61 6c 6c 79 20 69 6e 73 70 65 63 74 manually inspect
93b0: 20 61 6e 64 20 61 63 63 65 70 74 20 6f 72 20 72 and accept or r
93c0: 65 6a 65 63 74 0a 65 61 63 68 20 63 65 72 74 69 eject.each certi
93d0: 66 69 63 61 74 65 20 75 73 69 6e 67 20 74 68 65 ficate using the
93e0: 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f <b class="optio
93f0: 6e 22 3e 2d 76 61 6c 69 64 61 74 65 63 6f 6d 6d n">-validatecomm
9400: 61 6e 64 3c 2f 62 3e 20 6f 70 74 69 6f 6e 2e 3c and</b> option.<
9410: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 62 20 /p></dd>.<dt><b
9420: 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d class="option">-
9430: 72 65 71 75 69 72 65 3c 2f 62 3e 20 3c 69 20 63 require</b> <i c
9440: 6c 61 73 73 3d 22 61 72 67 22 3e 62 6f 6f 6c 3c lass="arg">bool<
9450: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
9460: 52 65 71 75 69 72 65 20 61 20 76 61 6c 69 64 20 Require a valid
9470: 63 65 72 74 69 66 69 63 61 74 65 20 66 72 6f 6d certificate from
9480: 20 74 68 65 20 70 65 65 72 20 64 75 72 69 6e 67 the peer during
9490: 20 74 68 65 20 53 53 4c 20 68 61 6e 64 73 68 61 the SSL handsha
94a0: 6b 65 2e 20 49 66 20 74 68 69 73 20 69 73 0a 73 ke. If this is.s
94b0: 65 74 20 74 6f 20 74 72 75 65 2c 20 74 68 65 6e et to true, then
94c0: 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f <b class="optio
94d0: 6e 22 3e 2d 72 65 71 75 65 73 74 3c 2f 62 3e 20 n">-request</b>
94e0: 6d 75 73 74 20 61 6c 73 6f 20 62 65 20 73 65 74 must also be set
94f0: 20 74 6f 20 74 72 75 65 20 61 6e 64 20 61 20 65 to true and a e
9500: 69 74 68 65 72 0a 3c 62 20 63 6c 61 73 73 3d 22 ither.<b class="
9510: 6f 70 74 69 6f 6e 22 3e 2d 63 61 64 69 72 3c 2f option">-cadir</
9520: 62 3e 2c 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 b>, <b class="op
9530: 74 69 6f 6e 22 3e 2d 63 61 66 69 6c 65 3c 2f 62 tion">-cafile</b
9540: 3e 2c 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 >, <b class="opt
9550: 69 6f 6e 22 3e 2d 63 61 73 74 6f 72 65 3c 2f 62 ion">-castore</b
9560: 3e 2c 20 6f 72 20 61 20 70 6c 61 74 66 6f 72 6d >, or a platform
9570: 20 64 65 66 61 75 6c 74 0a 6d 75 73 74 20 62 65 default.must be
9580: 20 70 72 6f 76 69 64 65 64 20 69 6e 20 6f 72 64 provided in ord
9590: 65 72 20 74 6f 20 76 61 6c 69 64 61 74 65 20 61 er to validate a
95a0: 67 61 69 6e 73 74 2e 20 54 68 65 20 64 65 66 61 gainst. The defa
95b0: 75 6c 74 20 69 6e 20 54 63 6c 54 4c 53 20 31 2e ult in TclTLS 1.
95c0: 38 20 61 6e 64 0a 65 61 72 6c 69 65 72 20 76 65 8 and.earlier ve
95d0: 72 73 69 6f 6e 73 20 69 73 20 3c 62 20 63 6c 61 rsions is <b cla
95e0: 73 73 3d 22 63 6f 6e 73 74 22 3e 66 61 6c 73 65 ss="const">false
95f0: 3c 2f 62 3e 20 73 69 6e 63 65 20 6e 6f 74 20 61 </b> since not a
9600: 6c 6c 20 70 6c 61 74 66 6f 72 6d 73 20 68 61 76 ll platforms hav
9610: 65 20 63 65 72 74 69 66 69 63 61 74 65 73 20 74 e certificates t
9620: 6f 0a 76 61 6c 69 64 61 74 65 20 61 67 61 69 6e o.validate again
9630: 73 74 20 69 6e 20 61 20 66 6f 72 6d 20 63 6f 6d st in a form com
9640: 70 61 74 69 62 6c 65 20 77 69 74 68 20 4f 70 65 patible with Ope
9650: 6e 53 53 4c 2e 20 53 74 61 72 74 69 6e 67 20 69 nSSL. Starting i
9660: 6e 20 54 63 6c 54 4c 53 20 32 2e 30 2c 0a 74 68 n TclTLS 2.0,.th
9670: 65 20 64 65 66 61 75 6c 74 20 69 73 20 3c 62 20 e default is <b
9680: 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 74 72 class="const">tr
9690: 75 65 3c 2f 62 3e 2e 3c 2f 70 3e 3c 2f 64 64 3e ue</b>.</p></dd>
96a0: 0a 3c 2f 64 6c 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 .</dl>.</div>.<d
96b0: 69 76 20 69 64 3d 22 73 75 62 73 65 63 74 69 6f iv id="subsectio
96c0: 6e 33 22 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f n3" class="docto
96d0: 6f 6c 73 5f 73 75 62 73 65 63 74 69 6f 6e 22 3e ols_subsection">
96e0: 3c 68 33 3e 3c 61 20 6e 61 6d 65 3d 22 73 75 62 <h3><a name="sub
96f0: 73 65 63 74 69 6f 6e 33 22 3e 57 68 65 6e 20 61 section3">When a
9700: 72 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 re command line
9710: 6f 70 74 69 6f 6e 73 20 6e 65 65 64 65 64 3f 3c options needed?<
9720: 2f 61 3e 3c 2f 68 33 3e 0a 3c 70 3e 49 6e 20 54 /a></h3>.<p>In T
9730: 63 6c 54 4c 53 20 31 2e 38 20 61 6e 64 20 65 61 clTLS 1.8 and ea
9740: 72 6c 69 65 72 20 76 65 72 73 69 6f 6e 73 2c 20 rlier versions,
9750: 63 65 72 74 69 66 69 63 61 74 65 20 76 61 6c 69 certificate vali
9760: 64 61 74 69 6f 6e 20 69 73 0a 3c 65 6d 3e 4e 4f dation is.<em>NO
9770: 54 3c 2f 65 6d 3e 20 65 6e 61 62 6c 65 64 20 62 T</em> enabled b
9780: 79 20 64 65 66 61 75 6c 74 2e 20 54 68 69 73 20 y default. This
9790: 6c 69 6d 69 74 61 74 69 6f 6e 20 69 73 20 64 75 limitation is du
97a0: 65 20 74 6f 20 74 68 65 20 6c 61 63 6b 20 6f 66 e to the lack of
97b0: 20 61 20 63 6f 6d 6d 6f 6e 0a 63 72 6f 73 73 20 a common.cross
97c0: 70 6c 61 74 66 6f 72 6d 20 64 61 74 61 62 61 73 platform databas
97d0: 65 20 6f 66 20 43 65 72 74 69 66 69 63 61 74 65 e of Certificate
97e0: 20 41 75 74 68 6f 72 69 74 79 20 28 43 41 29 20 Authority (CA)
97f0: 70 72 6f 76 69 64 65 64 20 63 65 72 74 69 66 69 provided certifi
9800: 63 61 74 65 73 20 74 6f 0a 76 61 6c 69 64 61 74 cates to.validat
9810: 65 20 61 67 61 69 6e 73 74 2e 20 4d 61 6e 79 20 e against. Many
9820: 4c 69 6e 75 78 20 73 79 73 74 65 6d 73 20 6e 61 Linux systems na
9830: 74 69 76 65 6c 79 20 73 75 70 70 6f 72 74 20 4f tively support O
9840: 70 65 6e 53 53 4c 20 61 6e 64 20 74 68 75 73 20 penSSL and thus
9850: 68 61 76 65 0a 74 68 65 73 65 20 63 65 72 74 69 have.these certi
9860: 66 69 63 61 74 65 73 20 69 6e 73 74 61 6c 6c 65 ficates installe
9870: 64 20 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 d as part of the
9880: 20 4f 53 2c 20 62 75 74 20 4d 61 63 4f 53 20 61 OS, but MacOS a
9890: 6e 64 20 4d 53 20 57 69 6e 64 6f 77 73 20 64 6f nd MS Windows do
98a0: 20 6e 6f 74 2e 0a 53 74 61 72 69 6e 67 20 69 6e not..Staring in
98b0: 20 54 63 6c 54 4c 53 20 32 2e 30 2c 20 74 68 69 TclTLS 2.0, thi
98c0: 73 20 68 61 73 20 62 65 65 6e 20 63 68 61 6e 67 s has been chang
98d0: 65 64 20 74 6f 20 72 65 71 75 69 72 65 20 63 65 ed to require ce
98e0: 72 74 69 66 69 63 61 74 65 20 76 61 6c 69 64 61 rtificate valida
98f0: 74 69 6f 6e 0a 62 79 20 64 65 66 61 75 6c 74 2e tion.by default.
9900: 20 49 6e 20 6f 72 64 65 72 20 74 6f 20 75 73 65 In order to use
9910: 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 6f the <b class="o
9920: 70 74 69 6f 6e 22 3e 2d 72 65 71 75 69 72 65 3c ption">-require<
9930: 2f 62 3e 20 6f 70 74 69 6f 6e 2c 20 6f 6e 65 20 /b> option, one
9940: 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 of the following
9950: 0a 6d 75 73 74 20 62 65 20 74 72 75 65 3a 3c 2f .must be true:</
9960: 70 3e 0a 3c 75 6c 20 63 6c 61 73 73 3d 22 64 6f p>.<ul class="do
9970: 63 74 6f 6f 6c 73 5f 69 74 65 6d 69 7a 65 64 22 ctools_itemized"
9980: 3e 0a 3c 6c 69 3e 3c 70 3e 4f 6e 20 4c 69 6e 75 >.<li><p>On Linu
9990: 78 20 61 6e 64 20 55 6e 69 78 20 73 79 73 74 65 x and Unix syste
99a0: 6d 73 20 77 69 74 68 20 4f 70 65 6e 53 53 4c 20 ms with OpenSSL
99b0: 61 6c 72 65 61 64 79 20 69 6e 73 74 61 6c 6c 65 already installe
99c0: 64 20 6f 72 20 69 66 20 74 68 65 20 43 41 0a 63 d or if the CA.c
99d0: 65 72 74 69 66 69 63 61 74 65 73 20 61 72 65 20 ertificates are
99e0: 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 50 45 4d available in PEM
99f0: 20 66 6f 72 6d 61 74 2c 20 61 6e 64 20 69 66 20 format, and if
9a00: 74 68 65 79 20 61 72 65 20 73 74 6f 72 65 64 20 they are stored
9a10: 69 6e 20 74 68 65 0a 73 74 61 6e 64 61 72 64 20 in the.standard
9a20: 6c 6f 63 61 74 69 6f 6e 73 2c 20 6f 72 20 69 66 locations, or if
9a30: 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 76 the <b class="v
9a40: 61 72 69 61 62 6c 65 22 3e 53 53 4c 5f 43 45 52 ariable">SSL_CER
9a50: 54 5f 44 49 52 3c 2f 62 3e 20 6f 72 20 3c 62 20 T_DIR</b> or <b
9a60: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
9a70: 3e 53 53 4c 5f 43 45 52 54 5f 46 49 4c 45 3c 2f >SSL_CERT_FILE</
9a80: 62 3e 0a 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 b>.environment v
9a90: 61 72 69 61 62 6c 65 73 20 61 72 65 20 73 65 74 ariables are set
9aa0: 2c 20 74 68 65 6e 20 3c 62 20 63 6c 61 73 73 3d , then <b class=
9ab0: 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 64 69 72 3c "option">-cadir<
9ac0: 2f 62 3e 2c 20 3c 62 20 63 6c 61 73 73 3d 22 6f /b>, <b class="o
9ad0: 70 74 69 6f 6e 22 3e 2d 63 61 64 69 72 3c 2f 62 ption">-cadir</b
9ae0: 3e 2c 0a 61 6e 64 20 3c 62 20 63 6c 61 73 73 3d >,.and <b class=
9af0: 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 73 74 6f 72 "option">-castor
9b00: 65 3c 2f 62 3e 20 61 72 65 6e 27 74 20 6e 65 65 e</b> aren't nee
9b10: 64 65 64 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a 3c 6c ded.</p></li>.<l
9b20: 69 3e 3c 70 3e 49 66 20 4f 70 65 6e 53 53 4c 20 i><p>If OpenSSL
9b30: 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 is not installed
9b40: 20 69 6e 20 74 68 65 20 64 65 66 61 75 6c 74 20 in the default
9b50: 6c 6f 63 61 74 69 6f 6e 2c 20 6f 72 20 77 68 65 location, or whe
9b60: 6e 20 75 73 69 6e 67 20 4d 61 63 20 4f 53 0a 6f n using Mac OS.o
9b70: 72 20 4d 53 20 57 69 6e 64 6f 77 73 20 61 6e 64 r MS Windows and
9b80: 20 4f 70 65 6e 53 53 4c 20 69 73 20 69 6e 73 74 OpenSSL is inst
9b90: 61 6c 6c 65 64 2c 20 74 68 65 20 3c 62 20 63 6c alled, the <b cl
9ba0: 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 53 ass="variable">S
9bb0: 53 4c 5f 43 45 52 54 5f 44 49 52 3c 2f 62 3e 20 SL_CERT_DIR</b>
9bc0: 61 6e 64 2f 6f 72 0a 3c 62 20 63 6c 61 73 73 3d and/or.<b class=
9bd0: 22 76 61 72 69 61 62 6c 65 22 3e 53 53 4c 5f 43 "variable">SSL_C
9be0: 45 52 54 5f 46 49 4c 45 3c 2f 62 3e 20 65 6e 76 ERT_FILE</b> env
9bf0: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c ironment variabl
9c00: 65 73 20 6f 72 20 74 68 65 20 6f 6e 65 20 6f 66 es or the one of
9c10: 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 6f the <b class="o
9c20: 70 74 69 6f 6e 22 3e 2d 63 61 64 69 72 3c 2f 62 ption">-cadir</b
9c30: 3e 2c 0a 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 >,.<b class="opt
9c40: 69 6f 6e 22 3e 2d 63 61 64 69 72 3c 2f 62 3e 2c ion">-cadir</b>,
9c50: 20 6f 72 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 or <b class="op
9c60: 74 69 6f 6e 22 3e 2d 63 61 73 74 6f 72 65 3c 2f tion">-castore</
9c70: 62 3e 20 6f 70 74 69 6f 6e 73 20 6d 75 73 74 20 b> options must
9c80: 62 65 20 64 65 66 69 6e 65 64 2e 3c 2f 70 3e 3c be defined.</p><
9c90: 2f 6c 69 3e 0a 3c 6c 69 3e 3c 70 3e 4f 6e 20 4d /li>.<li><p>On M
9ca0: 53 20 57 69 6e 64 6f 77 73 2c 20 73 74 61 72 74 S Windows, start
9cb0: 69 6e 67 20 69 6e 20 4f 70 65 6e 53 53 4c 20 33 ing in OpenSSL 3
9cc0: 2e 32 2c 20 69 74 20 69 73 20 6e 6f 77 20 70 6f .2, it is now po
9cd0: 73 73 69 62 6c 65 20 74 6f 20 61 63 63 65 73 73 ssible to access
9ce0: 20 74 68 65 0a 62 75 69 6c 74 2d 69 6e 20 57 69 the.built-in Wi
9cf0: 6e 64 6f 77 73 20 43 65 72 74 69 66 69 63 61 74 ndows Certificat
9d00: 65 20 53 74 6f 72 65 20 66 72 6f 6d 20 4f 70 65 e Store from Ope
9d10: 6e 53 53 4c 2e 20 54 68 69 73 20 63 61 6e 20 75 nSSL. This can u
9d20: 74 69 6c 69 7a 65 64 20 62 79 0a 73 65 74 74 69 tilized by.setti
9d30: 6e 67 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d ng the <b class=
9d40: 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 73 74 6f 72 "option">-castor
9d50: 65 3c 2f 62 3e 20 6f 70 74 69 6f 6e 20 74 6f 20 e</b> option to
9d60: 26 71 75 6f 74 3b 3c 62 20 63 6c 61 73 73 3d 22 "<b class="
9d70: 63 6f 6e 73 74 22 3e 6f 72 67 2e 6f 70 65 6e 73 const">org.opens
9d80: 73 6c 2e 77 69 6e 73 74 6f 72 65 3a 2f 2f 3c 2f sl.winstore://</
9d90: 62 3e 26 71 75 6f 74 3b 2e 0a 49 6e 20 54 63 6c b>"..In Tcl
9da0: 54 4c 53 20 32 2e 30 2c 20 74 68 69 73 20 69 73 TLS 2.0, this is
9db0: 20 74 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c the default val
9dc0: 75 65 20 69 66 20 3c 62 20 63 6c 61 73 73 3d 22 ue if <b class="
9dd0: 6f 70 74 69 6f 6e 22 3e 2d 63 61 64 69 72 3c 2f option">-cadir</
9de0: 62 3e 2c 0a 3c 62 20 63 6c 61 73 73 3d 22 6f 70 b>,.<b class="op
9df0: 74 69 6f 6e 22 3e 2d 63 61 64 69 72 3c 2f 62 3e tion">-cadir</b>
9e00: 2c 20 61 6e 64 20 3c 62 20 63 6c 61 73 73 3d 22 , and <b class="
9e10: 6f 70 74 69 6f 6e 22 3e 2d 63 61 73 74 6f 72 65 option">-castore
9e20: 3c 2f 62 3e 20 61 72 65 20 6e 6f 74 20 73 70 65 </b> are not spe
9e30: 63 69 66 69 65 64 2e 3c 2f 70 3e 3c 2f 6c 69 3e cified.</p></li>
9e40: 0a 3c 6c 69 3e 3c 70 3e 49 66 20 4f 70 65 6e 53 .<li><p>If OpenS
9e50: 53 4c 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c SL is not instal
9e60: 6c 65 64 20 6f 72 20 74 68 65 20 43 41 20 63 65 led or the CA ce
9e70: 72 74 69 66 69 63 61 74 65 73 20 61 72 65 20 6e rtificates are n
9e80: 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 ot available in
9e90: 50 45 4d 0a 66 6f 72 6d 61 74 2c 20 74 68 65 20 PEM.format, the
9ea0: 43 41 20 63 65 72 74 69 66 69 63 61 74 65 73 20 CA certificates
9eb0: 6d 75 73 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 must be download
9ec0: 65 64 20 61 6e 64 20 69 6e 73 74 61 6c 6c 65 64 ed and installed
9ed0: 20 77 69 74 68 20 74 68 65 20 75 73 65 72 0a 73 with the user.s
9ee0: 6f 66 74 77 61 72 65 2e 20 54 68 65 20 43 55 52 oftware. The CUR
9ef0: 4c 20 74 65 61 6d 20 6d 61 6b 65 73 20 74 68 65 L team makes the
9f00: 6d 20 61 76 61 69 6c 61 62 6c 65 20 61 74 0a 3c m available at.<
9f10: 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f a href="https://
9f20: 63 75 72 6c 2e 73 65 2f 64 6f 63 73 2f 63 61 65 curl.se/docs/cae
9f30: 78 74 72 61 63 74 2e 68 74 6d 6c 22 3e 43 41 20 xtract.html">CA
9f40: 63 65 72 74 69 66 69 63 61 74 65 73 20 65 78 74 certificates ext
9f50: 72 61 63 74 65 64 0a 66 72 6f 6d 20 4d 6f 7a 69 racted.from Mozi
9f60: 6c 6c 61 3c 2f 61 3e 20 69 6e 20 74 68 65 20 26 lla</a> in the &
9f70: 71 75 6f 74 3b 3c 62 20 63 6c 61 73 73 3d 22 66 quot;<b class="f
9f80: 69 6c 65 22 3e 63 61 63 65 72 74 2e 70 65 6d 3c ile">cacert.pem<
9f90: 2f 62 3e 26 71 75 6f 74 3b 20 66 69 6c 65 2e 20 /b>" file.
9fa0: 59 6f 75 20 6d 75 73 74 20 74 68 65 6e 20 65 69 You must then ei
9fb0: 74 68 65 72 20 73 65 74 20 74 68 65 0a 3c 62 20 ther set the.<b
9fc0: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
9fd0: 3e 53 53 4c 5f 43 45 52 54 5f 44 49 52 3c 2f 62 >SSL_CERT_DIR</b
9fe0: 3e 20 61 6e 64 2f 6f 72 20 3c 62 20 63 6c 61 73 > and/or <b clas
9ff0: 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 53 53 4c s="variable">SSL
a000: 5f 43 45 52 54 5f 46 49 4c 45 3c 2f 62 3e 20 65 _CERT_FILE</b> e
a010: 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 nvironment varia
a020: 62 6c 65 73 20 6f 72 20 74 68 65 0a 3c 62 20 63 bles or the.<b c
a030: 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 lass="option">-c
a040: 61 64 69 72 3c 2f 62 3e 20 6f 72 20 3c 62 20 63 adir</b> or <b c
a050: 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 lass="option">-c
a060: 61 66 69 6c 65 3c 2f 62 3e 20 6f 70 74 69 6f 6e afile</b> option
a070: 73 20 74 6f 20 74 68 65 20 43 41 20 63 65 72 74 s to the CA cert
a080: 20 66 69 6c 65 27 73 20 69 6e 73 74 61 6c 6c 0a file's install.
a090: 6c 6f 63 61 74 69 6f 6e 2e 20 49 74 20 69 73 20 location. It is
a0a0: 79 6f 75 72 20 72 65 73 70 6f 6e 73 69 62 69 6c your responsibil
a0b0: 69 74 79 20 74 6f 20 6b 65 65 70 20 74 68 69 73 ity to keep this
a0c0: 20 66 69 6c 65 20 75 70 20 74 6f 20 64 61 74 65 file up to date
a0d0: 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e .</p></li>.</ul>
a0e0: 0a 3c 2f 64 69 76 3e 0a 3c 2f 64 69 76 3e 0a 3c .</div>.</div>.<
a0f0: 64 69 76 20 69 64 3d 22 73 65 63 74 69 6f 6e 35 div id="section5
a100: 22 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c " class="doctool
a110: 73 5f 73 65 63 74 69 6f 6e 22 3e 3c 68 32 3e 3c s_section"><h2><
a120: 61 20 6e 61 6d 65 3d 22 73 65 63 74 69 6f 6e 35 a name="section5
a130: 22 3e 43 61 6c 6c 62 61 63 6b 20 4f 70 74 69 6f ">Callback Optio
a140: 6e 73 3c 2f 61 3e 3c 2f 68 32 3e 0a 3c 70 3e 41 ns</a></h2>.<p>A
a150: 73 20 70 72 65 76 69 6f 75 73 6c 79 20 64 65 73 s previously des
a160: 63 72 69 62 65 64 2c 20 65 61 63 68 20 63 68 61 cribed, each cha
a170: 6e 6e 65 6c 20 63 61 6e 20 62 65 20 67 69 76 65 nnel can be give
a180: 6e 20 74 68 65 69 72 20 6f 77 6e 20 63 61 6c 6c n their own call
a190: 62 61 63 6b 73 0a 74 6f 20 68 61 6e 64 6c 65 20 backs.to handle
a1a0: 69 6e 74 65 72 6d 65 64 69 61 74 65 20 70 72 6f intermediate pro
a1b0: 63 65 73 73 69 6e 67 20 62 79 20 74 68 65 20 4f cessing by the O
a1c0: 70 65 6e 53 53 4c 20 6c 69 62 72 61 72 79 2c 20 penSSL library,
a1d0: 75 73 69 6e 67 20 74 68 65 0a 3c 62 20 63 6c 61 using the.<b cla
a1e0: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 6f 6d ss="option">-com
a1f0: 6d 61 6e 64 3c 2f 62 3e 2c 20 3c 62 20 63 6c 61 mand</b>, <b cla
a200: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 70 61 73 ss="option">-pas
a210: 73 77 6f 72 64 3c 2f 62 3e 2c 20 61 6e 64 20 3c sword</b>, and <
a220: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
a230: 3e 2d 76 61 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 >-validate_comma
a240: 6e 64 3c 2f 62 3e 20 6f 70 74 69 6f 6e 73 0a 70 nd</b> options.p
a250: 61 73 73 65 64 20 74 6f 20 65 69 74 68 65 72 20 assed to either
a260: 6f 66 20 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 of <b class="cmd
a270: 22 3e 74 6c 73 3a 3a 73 6f 63 6b 65 74 3c 2f 62 ">tls::socket</b
a280: 3e 20 6f 72 20 3c 62 20 63 6c 61 73 73 3d 22 63 > or <b class="c
a290: 6d 64 22 3e 74 6c 73 3a 3a 69 6d 70 6f 72 74 3c md">tls::import<
a2a0: 2f 62 3e 2e 0a 55 6e 6c 69 6b 65 20 70 72 65 76 /b>..Unlike prev
a2b0: 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 20 6f 66 ious versions of
a2c0: 20 54 63 6c 54 4c 53 2c 20 6f 6e 6c 79 20 69 66 TclTLS, only if
a2d0: 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 67 65 the callback ge
a2e0: 6e 65 72 61 74 65 73 20 61 6e 20 65 72 72 6f 72 nerates an error
a2f0: 2c 0a 77 69 6c 6c 20 74 68 65 20 3c 62 20 63 6c ,.will the <b cl
a300: 61 73 73 3d 22 73 79 73 63 6d 64 22 3e 62 67 65 ass="syscmd">bge
a310: 72 72 6f 72 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 rror</b> command
a320: 20 62 65 20 69 6e 76 6f 6b 65 64 20 77 69 74 68 be invoked with
a330: 20 74 68 65 20 65 72 72 6f 72 20 69 6e 66 6f 72 the error infor
a340: 6d 61 74 69 6f 6e 2e 3c 2f 70 3e 0a 3c 64 69 76 mation.</p>.<div
a350: 20 69 64 3d 22 73 75 62 73 65 63 74 69 6f 6e 34 id="subsection4
a360: 22 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c " class="doctool
a370: 73 5f 73 75 62 73 65 63 74 69 6f 6e 22 3e 3c 68 s_subsection"><h
a380: 33 3e 3c 61 20 6e 61 6d 65 3d 22 73 75 62 73 65 3><a name="subse
a390: 63 74 69 6f 6e 34 22 3e 56 61 6c 75 65 73 20 66 ction4">Values f
a3a0: 6f 72 20 43 6f 6d 6d 61 6e 64 20 43 61 6c 6c 62 or Command Callb
a3b0: 61 63 6b 3c 2f 61 3e 3c 2f 68 33 3e 0a 3c 70 3e ack</a></h3>.<p>
a3c0: 54 68 65 20 63 61 6c 6c 62 61 63 6b 20 66 6f 72 The callback for
a3d0: 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 6f the <b class="o
a3e0: 70 74 69 6f 6e 22 3e 2d 63 6f 6d 6d 61 6e 64 3c ption">-command<
a3f0: 2f 62 3e 20 6f 70 74 69 6f 6e 20 69 73 20 69 6e /b> option is in
a400: 76 6f 6b 65 64 20 61 74 20 73 65 76 65 72 61 6c voked at several
a410: 20 70 6f 69 6e 74 73 20 64 75 72 69 6e 67 20 74 points during t
a420: 68 65 0a 4f 70 65 6e 53 53 4c 20 68 61 6e 64 73 he.OpenSSL hands
a430: 68 61 6b 65 20 61 6e 64 20 64 75 72 69 6e 67 20 hake and during
a440: 72 6f 75 74 69 6e 65 20 6f 70 65 72 61 74 69 6f routine operatio
a450: 6e 73 2e 20 53 65 65 20 62 65 6c 6f 77 20 66 6f ns. See below fo
a460: 72 20 74 68 65 20 70 6f 73 73 69 62 6c 65 0a 61 r the possible.a
a470: 72 67 75 6d 65 6e 74 73 20 70 61 73 73 65 64 20 rguments passed
a480: 74 6f 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 to the callback
a490: 73 63 72 69 70 74 2e 20 56 61 6c 75 65 73 20 72 script. Values r
a4a0: 65 74 75 72 6e 65 64 20 66 72 6f 6d 20 74 68 65 eturned from the
a4b0: 20 63 61 6c 6c 62 61 63 6b 20 61 72 65 0a 69 67 callback are.ig
a4c0: 6e 6f 72 65 64 2e 3c 2f 70 3e 0a 3c 64 6c 20 63 nored.</p>.<dl c
a4d0: 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 6f lass="doctools_o
a4e0: 70 74 69 6f 6e 73 22 3e 0a 3c 64 74 3e 3c 62 20 ptions">.<dt><b
a4f0: 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 65 class="option">e
a500: 72 72 6f 72 3c 2f 62 3e 20 3c 69 20 63 6c 61 73 rror</b> <i clas
a510: 73 3d 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c 49 s="arg">channelI
a520: 64 20 6d 65 73 73 61 67 65 3c 2f 69 3e 3c 2f 64 d message</i></d
a530: 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 69 73 20 66 t>.<dd><p>This f
a540: 6f 72 6d 20 6f 66 20 63 61 6c 6c 62 61 63 6b 20 orm of callback
a550: 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 65 is invoked whene
a560: 76 65 72 20 61 6e 20 65 72 72 6f 72 20 6f 63 63 ver an error occ
a570: 75 72 73 20 64 75 72 69 6e 67 20 74 68 65 20 69 urs during the i
a580: 6e 69 74 69 61 6c 0a 63 6f 6e 6e 65 63 74 69 6f nitial.connectio
a590: 6e 2c 20 68 61 6e 64 73 68 61 6b 65 2c 20 6f 72 n, handshake, or
a5a0: 20 49 2f 4f 20 6f 70 65 72 61 74 69 6f 6e 73 2e I/O operations.
a5b0: 20 54 68 65 20 3c 69 20 63 6c 61 73 73 3d 22 61 The <i class="a
a5c0: 72 67 22 3e 6d 65 73 73 61 67 65 3c 2f 69 3e 20 rg">message</i>
a5d0: 61 72 67 75 6d 65 6e 74 20 63 61 6e 20 62 65 0a argument can be.
a5e0: 66 72 6f 6d 20 74 68 65 20 54 63 6c 5f 45 72 72 from the Tcl_Err
a5f0: 6e 6f 4d 73 67 2c 20 4f 70 65 6e 53 53 4c 20 66 noMsg, OpenSSL f
a600: 75 6e 63 74 69 6f 6e 20 3c 62 20 63 6c 61 73 73 unction <b class
a610: 3d 22 66 75 6e 63 74 69 6f 6e 22 3e 45 52 52 5f ="function">ERR_
a620: 72 65 61 73 6f 6e 5f 65 72 72 6f 72 5f 73 74 72 reason_error_str
a630: 69 6e 67 28 29 3c 2f 62 3e 2c 0a 6f 72 20 61 20 ing()</b>,.or a
a640: 63 75 73 74 6f 6d 20 6d 65 73 73 61 67 65 2e 20 custom message.
a650: 54 68 69 73 20 63 61 6c 6c 62 61 63 6b 20 69 73 This callback is
a660: 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 new for TclTLS
a670: 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 1.8.</p></dd>.<d
a680: 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 t><b class="opti
a690: 6f 6e 22 3e 69 6e 66 6f 3c 2f 62 3e 20 3c 69 20 on">info</b> <i
a6a0: 63 6c 61 73 73 3d 22 61 72 67 22 3e 63 68 61 6e class="arg">chan
a6b0: 6e 65 6c 49 64 20 6d 61 6a 6f 72 20 6d 69 6e 6f nelId major mino
a6c0: 72 20 6d 65 73 73 61 67 65 20 74 79 70 65 3c 2f r message type</
a6d0: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 i></dt>.<dd><p>T
a6e0: 68 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c his form of call
a6f0: 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20 back is invoked
a700: 62 79 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 66 by the OpenSSL f
a710: 75 6e 63 74 69 6f 6e 0a 3c 62 20 63 6c 61 73 73 unction.<b class
a720: 3d 22 66 75 6e 63 74 69 6f 6e 22 3e 53 53 4c 5f ="function">SSL_
a730: 73 65 74 5f 69 6e 66 6f 5f 63 61 6c 6c 62 61 63 set_info_callbac
a740: 6b 28 29 3c 2f 62 3e 20 64 75 72 69 6e 67 20 74 k()</b> during t
a750: 68 65 20 69 6e 69 74 69 61 6c 20 63 6f 6e 6e 65 he initial conne
a760: 63 74 69 6f 6e 20 61 6e 64 20 68 61 6e 64 73 68 ction and handsh
a770: 61 6b 65 0a 6f 70 65 72 61 74 69 6f 6e 73 2e 20 ake.operations.
a780: 54 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 The arguments ar
a790: 65 3a 3c 2f 70 3e 0a 3c 64 6c 20 63 6c 61 73 73 e:</p>.<dl class
a7a0: 3d 22 64 6f 63 74 6f 6f 6c 73 5f 64 65 66 69 6e ="doctools_defin
a7b0: 69 74 69 6f 6e 73 22 3e 0a 3c 64 74 3e 3c 69 20 itions">.<dt><i
a7c0: 63 6c 61 73 73 3d 22 61 72 67 22 3e 6d 61 6a 6f class="arg">majo
a7d0: 72 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c r</i></dt>.<dd><
a7e0: 70 3e 4d 61 6a 6f 72 20 63 61 74 65 67 6f 72 79 p>Major category
a7f0: 20 66 6f 72 20 65 72 72 6f 72 2e 20 56 61 6c 69 for error. Vali
a800: 64 20 65 6e 75 6d 73 20 61 72 65 3a 20 3c 62 20 d enums are: <b
a810: 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 68 61 class="const">ha
a820: 6e 64 73 68 61 6b 65 3c 2f 62 3e 2c 20 3c 62 20 ndshake</b>, <b
a830: 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 61 6c class="const">al
a840: 65 72 74 3c 2f 62 3e 2c 0a 3c 62 20 63 6c 61 73 ert</b>,.<b clas
a850: 73 3d 22 63 6f 6e 73 74 22 3e 63 6f 6e 6e 65 63 s="const">connec
a860: 74 3c 2f 62 3e 2c 20 3c 62 20 63 6c 61 73 73 3d t</b>, <b class=
a870: 22 63 6f 6e 73 74 22 3e 61 63 63 65 70 74 3c 2f "const">accept</
a880: 62 3e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 b>.</p></dd>.<dt
a890: 3e 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e ><i class="arg">
a8a0: 6d 69 6e 6f 72 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c minor</i></dt>.<
a8b0: 64 64 3e 3c 70 3e 4d 69 6e 6f 72 20 63 61 74 65 dd><p>Minor cate
a8c0: 67 6f 72 79 20 66 6f 72 20 65 72 72 6f 72 2e 20 gory for error.
a8d0: 56 61 6c 69 64 20 65 6e 75 6d 73 20 61 72 65 3a Valid enums are:
a8e0: 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 <b class="const
a8f0: 22 3e 73 74 61 72 74 3c 2f 62 3e 2c 20 3c 62 20 ">start</b>, <b
a900: 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 64 6f class="const">do
a910: 6e 65 3c 2f 62 3e 2c 20 3c 62 20 63 6c 61 73 73 ne</b>, <b class
a920: 3d 22 63 6f 6e 73 74 22 3e 72 65 61 64 3c 2f 62 ="const">read</b
a930: 3e 2c 0a 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e >,.<b class="con
a940: 73 74 22 3e 77 72 69 74 65 3c 2f 62 3e 2c 20 3c st">write</b>, <
a950: 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e b class="const">
a960: 6c 6f 6f 70 3c 2f 62 3e 2c 20 3c 62 20 63 6c 61 loop</b>, <b cla
a970: 73 73 3d 22 63 6f 6e 73 74 22 3e 65 78 69 74 3c ss="const">exit<
a980: 2f 62 3e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 /b>.</p></dd>.<d
a990: 74 3e 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 t><i class="arg"
a9a0: 3e 6d 65 73 73 61 67 65 3c 2f 69 3e 3c 2f 64 74 >message</i></dt
a9b0: 3e 0a 3c 64 64 3e 3c 70 3e 44 65 73 63 72 69 70 >.<dd><p>Descrip
a9c0: 74 69 76 65 20 6d 65 73 73 61 67 65 20 73 74 72 tive message str
a9d0: 69 6e 67 20 77 68 69 63 68 20 6d 61 79 20 62 65 ing which may be
a9e0: 20 67 65 6e 65 72 61 74 65 64 20 65 69 74 68 65 generated eithe
a9f0: 72 20 62 79 0a 3c 62 20 63 6c 61 73 73 3d 22 66 r by.<b class="f
aa00: 75 6e 63 74 69 6f 6e 22 3e 53 53 4c 5f 73 74 61 unction">SSL_sta
aa10: 74 65 5f 73 74 72 69 6e 67 5f 6c 6f 6e 67 28 29 te_string_long()
aa20: 3c 2f 62 3e 20 6f 72 20 3c 62 20 63 6c 61 73 73 </b> or <b class
aa30: 3d 22 66 75 6e 63 74 69 6f 6e 22 3e 53 53 4c 5f ="function">SSL_
aa40: 61 6c 65 72 74 5f 64 65 73 63 5f 73 74 72 69 6e alert_desc_strin
aa50: 67 5f 6c 6f 6e 67 28 29 3c 2f 62 3e 2c 0a 64 65 g_long()</b>,.de
aa60: 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 63 pending on the c
aa70: 6f 6e 74 65 78 74 2e 3c 2f 70 3e 3c 2f 64 64 3e ontext.</p></dd>
aa80: 0a 3c 64 74 3e 3c 69 20 63 6c 61 73 73 3d 22 61 .<dt><i class="a
aa90: 72 67 22 3e 74 79 70 65 3c 2f 69 3e 3c 2f 64 74 rg">type</i></dt
aaa0: 3e 0a 3c 64 64 3e 3c 70 3e 46 6f 72 20 61 6c 65 >.<dd><p>For ale
aab0: 72 74 73 2c 20 74 68 65 20 70 6f 73 73 69 62 6c rts, the possibl
aac0: 65 20 76 61 6c 75 65 73 20 61 72 65 3a 20 3c 62 e values are: <b
aad0: 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 77 class="const">w
aae0: 61 72 6e 69 6e 67 3c 2f 62 3e 2c 0a 3c 62 20 63 arning</b>,.<b c
aaf0: 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 66 61 74 lass="const">fat
ab00: 61 6c 3c 2f 62 3e 2c 20 61 6e 64 20 3c 62 20 63 al</b>, and <b c
ab10: 6c 61 73 73 3d 22 63 6f 6e 73 74 22 3e 75 6e 6b lass="const">unk
ab20: 6e 6f 77 6e 3c 2f 62 3e 2e 20 46 6f 72 20 6f 74 nown</b>. For ot
ab30: 68 65 72 73 2c 20 3c 62 20 63 6c 61 73 73 3d 22 hers, <b class="
ab40: 63 6f 6e 73 74 22 3e 69 6e 66 6f 3c 2f 62 3e 20 const">info</b>
ab50: 69 73 20 75 73 65 64 2e 0a 54 68 69 73 20 61 72 is used..This ar
ab60: 67 75 6d 65 6e 74 20 69 73 20 6e 65 77 20 66 6f gument is new fo
ab70: 72 20 54 63 6c 54 4c 53 20 31 2e 38 2e 3c 2f 70 r TclTLS 1.8.</p
ab80: 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e 3c 2f 64 64 ></dd>.</dl></dd
ab90: 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 >.<dt><b class="
aba0: 6f 70 74 69 6f 6e 22 3e 6d 65 73 73 61 67 65 3c option">message<
abb0: 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 /b> <i class="ar
abc0: 67 22 3e 63 68 61 6e 6e 65 6c 49 64 20 64 69 72 g">channelId dir
abd0: 65 63 74 69 6f 6e 20 76 65 72 73 69 6f 6e 20 63 ection version c
abe0: 6f 6e 74 65 6e 74 5f 74 79 70 65 20 6d 65 73 73 ontent_type mess
abf0: 61 67 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 age</i></dt>.<dd
ac00: 3e 3c 70 3e 54 68 69 73 20 66 6f 72 6d 20 6f 66 ><p>This form of
ac10: 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 callback is inv
ac20: 6f 6b 65 64 20 62 79 20 74 68 65 20 4f 70 65 6e oked by the Open
ac30: 53 53 4c 20 66 75 6e 63 74 69 6f 6e 0a 3c 62 20 SSL function.<b
ac40: 63 6c 61 73 73 3d 22 66 75 6e 63 74 69 6f 6e 22 class="function"
ac50: 3e 53 53 4c 5f 73 65 74 5f 6d 73 67 5f 63 61 6c >SSL_set_msg_cal
ac60: 6c 62 61 63 6b 28 29 3c 2f 62 3e 20 77 68 65 6e lback()</b> when
ac70: 65 76 65 72 20 61 20 6d 65 73 73 61 67 65 20 69 ever a message i
ac80: 73 20 73 65 6e 74 20 6f 72 20 72 65 63 65 69 76 s sent or receiv
ac90: 65 64 20 64 75 72 69 6e 67 20 74 68 65 0a 69 6e ed during the.in
aca0: 69 74 69 61 6c 20 63 6f 6e 6e 65 63 74 69 6f 6e itial connection
acb0: 2c 20 68 61 6e 64 73 68 61 6b 65 2c 20 6f 72 20 , handshake, or
acc0: 49 2f 4f 20 6f 70 65 72 61 74 69 6f 6e 73 2e 20 I/O operations.
acd0: 49 74 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 6c It is only avail
ace0: 61 62 6c 65 20 77 68 65 6e 0a 4f 70 65 6e 53 53 able when.OpenSS
acf0: 4c 20 69 73 20 63 6f 6d 70 6c 69 65 64 20 77 69 L is complied wi
ad00: 74 68 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d th the <b class=
ad10: 22 63 6f 6e 73 74 22 3e 65 6e 61 62 6c 65 2d 73 "const">enable-s
ad20: 73 6c 2d 74 72 61 63 65 3c 2f 62 3e 20 6f 70 74 sl-trace</b> opt
ad30: 69 6f 6e 2e 20 54 68 69 73 20 63 61 6c 6c 62 61 ion. This callba
ad40: 63 6b 20 69 73 0a 6e 65 77 20 66 6f 72 20 54 63 ck is.new for Tc
ad50: 6c 54 4c 53 20 31 2e 38 2e 20 54 68 65 20 61 72 lTLS 1.8. The ar
ad60: 67 75 6d 65 6e 74 73 20 61 72 65 3a 3c 2f 70 3e guments are:</p>
ad70: 0a 3c 64 6c 20 63 6c 61 73 73 3d 22 64 6f 63 74 .<dl class="doct
ad80: 6f 6f 6c 73 5f 64 65 66 69 6e 69 74 69 6f 6e 73 ools_definitions
ad90: 22 3e 0a 3c 64 74 3e 3c 69 20 63 6c 61 73 73 3d ">.<dt><i class=
ada0: 22 61 72 67 22 3e 64 69 72 65 63 74 69 6f 6e 3c "arg">direction<
adb0: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
adc0: 44 69 72 65 63 74 69 6f 6e 20 69 73 20 65 69 74 Direction is eit
add0: 68 65 72 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f her <b class="co
ade0: 6e 73 74 22 3e 53 65 6e 74 3c 2f 62 3e 20 6f 72 nst">Sent</b> or
adf0: 20 3c 62 20 63 6c 61 73 73 3d 22 63 6f 6e 73 74 <b class="const
ae00: 22 3e 52 65 63 65 69 76 65 64 3c 2f 62 3e 2e 3c ">Received</b>.<
ae10: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 69 20 /p></dd>.<dt><i
ae20: 63 6c 61 73 73 3d 22 61 72 67 22 3e 76 65 72 73 class="arg">vers
ae30: 69 6f 6e 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 ion</i></dt>.<dd
ae40: 3e 3c 70 3e 56 65 72 73 69 6f 6e 20 69 73 20 74 ><p>Version is t
ae50: 68 65 20 70 72 6f 74 6f 63 6f 6c 20 76 65 72 73 he protocol vers
ae60: 69 6f 6e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 ion.</p></dd>.<d
ae70: 74 3e 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 t><i class="arg"
ae80: 3e 63 6f 6e 74 65 6e 74 5f 74 79 70 65 3c 2f 69 >content_type</i
ae90: 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 43 6f ></dt>.<dd><p>Co
aea0: 6e 74 65 6e 74 20 74 79 70 65 20 69 73 20 74 68 ntent type is th
aeb0: 65 20 6d 65 73 73 61 67 65 20 63 6f 6e 74 65 6e e message conten
aec0: 74 20 74 79 70 65 2e 3c 2f 70 3e 3c 2f 64 64 3e t type.</p></dd>
aed0: 0a 3c 64 74 3e 3c 69 20 63 6c 61 73 73 3d 22 61 .<dt><i class="a
aee0: 72 67 22 3e 6d 65 73 73 61 67 65 3c 2f 69 3e 3c rg">message</i><
aef0: 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 4d 65 73 73 /dt>.<dd><p>Mess
af00: 61 67 65 20 69 73 20 6d 6f 72 65 20 69 6e 66 6f age is more info
af10: 20 66 72 6f 6d 20 74 68 65 20 3c 62 20 63 6c 61 from the <b cla
af20: 73 73 3d 22 63 6f 6e 73 74 22 3e 53 53 4c 5f 74 ss="const">SSL_t
af30: 72 61 63 65 3c 2f 62 3e 20 41 50 49 2e 3c 2f 70 race</b> API.</p
af40: 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e 3c 2f 64 64 ></dd>.</dl></dd
af50: 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 >.<dt><b class="
af60: 6f 70 74 69 6f 6e 22 3e 73 65 73 73 69 6f 6e 3c option">session<
af70: 2f 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 /b> <i class="ar
af80: 67 22 3e 63 68 61 6e 6e 65 6c 49 64 20 73 65 73 g">channelId ses
af90: 73 69 6f 6e 5f 69 64 20 73 65 73 73 69 6f 6e 5f sion_id session_
afa0: 74 69 63 6b 65 74 20 6c 69 66 65 74 69 6d 65 3c ticket lifetime<
afb0: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
afc0: 54 68 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c This form of cal
afd0: 6c 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 lback is invoked
afe0: 20 62 79 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 by the OpenSSL
aff0: 66 75 6e 63 74 69 6f 6e 0a 3c 62 20 63 6c 61 73 function.<b clas
b000: 73 3d 22 66 75 6e 63 74 69 6f 6e 22 3e 53 53 4c s="function">SSL
b010: 5f 43 54 58 5f 73 65 73 73 5f 73 65 74 5f 6e 65 _CTX_sess_set_ne
b020: 77 5f 63 62 28 29 3c 2f 62 3e 20 77 68 65 6e 65 w_cb()</b> whene
b030: 76 65 72 20 61 20 6e 65 77 20 73 65 73 73 69 6f ver a new sessio
b040: 6e 20 69 64 20 69 73 20 73 65 6e 74 20 62 79 20 n id is sent by
b050: 74 68 65 0a 73 65 72 76 65 72 20 64 75 72 69 6e the.server durin
b060: 67 20 74 68 65 20 69 6e 69 74 69 61 6c 20 63 6f g the initial co
b070: 6e 6e 65 63 74 69 6f 6e 20 61 6e 64 20 68 61 6e nnection and han
b080: 64 73 68 61 6b 65 20 61 6e 64 20 61 6c 73 6f 20 dshake and also
b090: 64 75 72 69 6e 67 20 74 68 65 20 73 65 73 73 69 during the sessi
b0a0: 6f 6e 0a 69 66 20 74 68 65 20 3c 62 20 63 6c 61 on.if the <b cla
b0b0: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 70 6f 73 ss="option">-pos
b0c0: 74 5f 68 61 6e 64 73 68 61 6b 65 3c 2f 62 3e 20 t_handshake</b>
b0d0: 6f 70 74 69 6f 6e 20 69 73 20 73 65 74 20 74 6f option is set to
b0e0: 20 74 72 75 65 2e 20 54 68 69 73 20 63 61 6c 6c true. This call
b0f0: 62 61 63 6b 20 69 73 20 6e 65 77 20 66 6f 72 0a back is new for.
b100: 54 63 6c 54 4c 53 20 31 2e 38 2e 20 54 68 65 20 TclTLS 1.8. The
b110: 61 72 67 75 6d 65 6e 74 73 20 61 72 65 3a 3c 2f arguments are:</
b120: 70 3e 0a 3c 64 6c 20 63 6c 61 73 73 3d 22 64 6f p>.<dl class="do
b130: 63 74 6f 6f 6c 73 5f 64 65 66 69 6e 69 74 69 6f ctools_definitio
b140: 6e 73 22 3e 0a 3c 64 74 3e 3c 69 20 63 6c 61 73 ns">.<dt><i clas
b150: 73 3d 22 61 72 67 22 3e 73 65 73 73 69 6f 6e 5f s="arg">session_
b160: 69 64 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e id</i></dt>.<dd>
b170: 3c 70 3e 53 65 73 73 69 6f 6e 20 49 64 20 69 73 <p>Session Id is
b180: 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 65 73 the current ses
b190: 73 69 6f 6e 20 69 64 65 6e 74 69 66 69 65 72 3c sion identifier<
b1a0: 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 69 20 /p></dd>.<dt><i
b1b0: 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 65 73 73 class="arg">sess
b1c0: 69 6f 6e 5f 74 69 63 6b 65 74 3c 2f 69 3e 3c 2f ion_ticket</i></
b1d0: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 69 63 6b 65 dt>.<dd><p>Ticke
b1e0: 74 20 69 73 20 74 68 65 20 73 65 73 73 69 6f 6e t is the session
b1f0: 20 74 69 63 6b 65 74 20 69 6e 66 6f 3c 2f 70 3e ticket info</p>
b200: 3c 2f 64 64 3e 0a 3c 64 74 3e 3c 69 20 63 6c 61 </dd>.<dt><i cla
b210: 73 73 3d 22 61 72 67 22 3e 6c 69 66 65 74 69 6d ss="arg">lifetim
b220: 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c e</i></dt>.<dd><
b230: 70 3e 4c 69 66 65 74 69 6d 65 20 69 73 20 74 68 p>Lifetime is th
b240: 65 20 74 69 63 6b 65 74 20 6c 69 66 65 74 69 6d e ticket lifetim
b250: 65 20 69 6e 20 73 65 63 6f 6e 64 73 2e 3c 2f 70 e in seconds.</p
b260: 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e 3c 2f 64 64 ></dd>.</dl></dd
b270: 3e 0a 3c 64 74 3e 3c 62 20 63 6c 61 73 73 3d 22 >.<dt><b class="
b280: 6f 70 74 69 6f 6e 22 3e 76 65 72 69 66 79 3c 2f option">verify</
b290: 62 3e 20 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 b> <i class="arg
b2a0: 22 3e 63 68 61 6e 6e 65 6c 49 64 20 64 65 70 74 ">channelId dept
b2b0: 68 20 63 65 72 74 20 73 74 61 74 75 73 20 65 72 h cert status er
b2c0: 72 6f 72 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 ror</i></dt>.<dd
b2d0: 3e 3c 70 3e 54 68 69 73 20 63 61 6c 6c 62 61 63 ><p>This callbac
b2e0: 6b 20 77 61 73 20 6d 6f 76 65 64 20 74 6f 20 3c k was moved to <
b2f0: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
b300: 3e 2d 76 61 6c 69 64 61 74 65 63 6f 6d 6d 61 6e >-validatecomman
b310: 64 3c 2f 62 3e 20 69 6e 20 54 63 6c 54 4c 53 20 d</b> in TclTLS
b320: 31 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 2f 1.8.</p></dd>.</
b330: 64 6c 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 dl>.</div>.<div
b340: 69 64 3d 22 73 75 62 73 65 63 74 69 6f 6e 35 22 id="subsection5"
b350: 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 class="doctools
b360: 5f 73 75 62 73 65 63 74 69 6f 6e 22 3e 3c 68 33 _subsection"><h3
b370: 3e 3c 61 20 6e 61 6d 65 3d 22 73 75 62 73 65 63 ><a name="subsec
b380: 74 69 6f 6e 35 22 3e 56 61 6c 75 65 73 20 66 6f tion5">Values fo
b390: 72 20 50 61 73 73 77 6f 72 64 20 43 61 6c 6c 62 r Password Callb
b3a0: 61 63 6b 3c 2f 61 3e 3c 2f 68 33 3e 0a 3c 70 3e ack</a></h3>.<p>
b3b0: 54 68 65 20 63 61 6c 6c 62 61 63 6b 20 66 6f 72 The callback for
b3c0: 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 6f the <b class="o
b3d0: 70 74 69 6f 6e 22 3e 2d 70 61 73 73 77 6f 72 64 ption">-password
b3e0: 3c 2f 62 3e 20 6f 70 74 69 6f 6e 20 69 73 20 69 </b> option is i
b3f0: 6e 76 6f 6b 65 64 20 62 79 20 54 63 6c 54 4c 53 nvoked by TclTLS
b400: 20 77 68 65 6e 65 76 65 72 20 4f 70 65 6e 53 53 whenever OpenSS
b410: 4c 20 6e 65 65 64 73 0a 74 6f 20 6f 62 74 61 69 L needs.to obtai
b420: 6e 20 61 20 70 61 73 73 77 6f 72 64 2e 20 53 65 n a password. Se
b430: 65 20 62 65 6c 6f 77 20 66 6f 72 20 74 68 65 20 e below for the
b440: 70 6f 73 73 69 62 6c 65 20 61 72 67 75 6d 65 6e possible argumen
b450: 74 73 20 70 61 73 73 65 64 20 74 6f 20 74 68 65 ts passed to the
b460: 0a 63 61 6c 6c 62 61 63 6b 20 73 63 72 69 70 74 .callback script
b470: 2e 20 54 68 65 20 75 73 65 72 20 70 72 6f 76 69 . The user provi
b480: 64 65 64 20 70 61 73 73 77 6f 72 64 20 69 73 20 ded password is
b490: 65 78 70 65 63 74 65 64 20 74 6f 20 62 65 20 72 expected to be r
b4a0: 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 0a 63 eturned by the.c
b4b0: 61 6c 6c 62 61 63 6b 2e 3c 2f 70 3e 0a 3c 64 6c allback.</p>.<dl
b4c0: 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 class="doctools
b4d0: 5f 6f 70 74 69 6f 6e 73 22 3e 0a 3c 64 74 3e 3c _options">.<dt><
b4e0: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
b4f0: 3e 70 61 73 73 77 6f 72 64 3c 2f 62 3e 20 3c 69 >password</b> <i
b500: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 72 77 66 class="arg">rwf
b510: 6c 61 67 20 73 69 7a 65 3c 2f 69 3e 3c 2f 64 74 lag size</i></dt
b520: 3e 0a 3c 64 64 3e 3c 70 3e 49 6e 76 6f 6b 65 64 >.<dd><p>Invoked
b530: 20 77 68 65 6e 20 6c 6f 61 64 69 6e 67 20 6f 72 when loading or
b540: 20 73 74 6f 72 69 6e 67 20 61 6e 20 65 6e 63 72 storing an encr
b550: 79 70 74 65 64 20 50 45 4d 20 63 65 72 74 69 66 ypted PEM certif
b560: 69 63 61 74 65 2e 20 54 68 65 20 61 72 67 75 6d icate. The argum
b570: 65 6e 74 73 20 61 72 65 3a 3c 2f 70 3e 0a 3c 64 ents are:</p>.<d
b580: 6c 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c l class="doctool
b590: 73 5f 64 65 66 69 6e 69 74 69 6f 6e 73 22 3e 0a s_definitions">.
b5a0: 3c 64 74 3e 3c 69 20 63 6c 61 73 73 3d 22 61 72 <dt><i class="ar
b5b0: 67 22 3e 72 77 66 6c 61 67 3c 2f 69 3e 3c 2f 64 g">rwflag</i></d
b5c0: 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 72 65 t>.<dd><p>The re
b5d0: 61 64 2f 77 72 69 74 65 20 66 6c 61 67 20 69 73 ad/write flag is
b5e0: 20 30 20 66 6f 72 20 72 65 61 64 69 6e 67 2f 64 0 for reading/d
b5f0: 65 63 72 79 70 74 69 6f 6e 20 6f 72 20 31 20 66 ecryption or 1 f
b600: 6f 72 20 77 72 69 74 69 6e 67 2f 65 6e 63 72 79 or writing/encry
b610: 70 74 69 6f 6e 2e 0a 54 68 65 20 6c 61 74 74 65 ption..The latte
b620: 72 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f r can be used to
b630: 20 64 65 74 65 72 6d 69 6e 65 20 77 68 65 6e 20 determine when
b640: 74 6f 20 70 72 6f 6d 70 74 20 74 68 65 20 75 73 to prompt the us
b650: 65 72 20 74 6f 20 63 6f 6e 66 69 72 6d 2e 0a 54 er to confirm..T
b660: 68 69 73 20 61 72 67 75 6d 65 6e 74 20 69 73 20 his argument is
b670: 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 new for TclTLS 1
b680: 2e 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 .8.</p></dd>.<dt
b690: 3e 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e ><i class="arg">
b6a0: 73 69 7a 65 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 size</i></dt>.<d
b6b0: 64 3e 3c 70 3e 54 68 65 20 73 69 7a 65 20 69 73 d><p>The size is
b6c0: 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 6c 65 6e the maximum len
b6d0: 67 74 68 20 6f 66 20 74 68 65 20 70 61 73 73 77 gth of the passw
b6e0: 6f 72 64 20 69 6e 20 62 79 74 65 73 2e 0a 54 68 ord in bytes..Th
b6f0: 69 73 20 61 72 67 75 6d 65 6e 74 20 69 73 20 6e is argument is n
b700: 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 2e ew for TclTLS 1.
b710: 38 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c 8.</p></dd>.</dl
b720: 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e 0a 3c 2f 64 ></dd>.</dl>.</d
b730: 69 76 3e 0a 3c 64 69 76 20 69 64 3d 22 73 75 62 iv>.<div id="sub
b740: 73 65 63 74 69 6f 6e 36 22 20 63 6c 61 73 73 3d section6" class=
b750: 22 64 6f 63 74 6f 6f 6c 73 5f 73 75 62 73 65 63 "doctools_subsec
b760: 74 69 6f 6e 22 3e 3c 68 33 3e 3c 61 20 6e 61 6d tion"><h3><a nam
b770: 65 3d 22 73 75 62 73 65 63 74 69 6f 6e 36 22 3e e="subsection6">
b780: 56 61 6c 75 65 73 20 66 6f 72 20 56 61 6c 69 64 Values for Valid
b790: 61 74 65 20 43 6f 6d 6d 61 6e 64 20 43 61 6c 6c ate Command Call
b7a0: 62 61 63 6b 3c 2f 61 3e 3c 2f 68 33 3e 0a 3c 70 back</a></h3>.<p
b7b0: 3e 54 68 65 20 63 61 6c 6c 62 61 63 6b 20 66 6f >The callback fo
b7c0: 72 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 r the <b class="
b7d0: 6f 70 74 69 6f 6e 22 3e 2d 76 61 6c 69 64 61 74 option">-validat
b7e0: 65 63 6f 6d 6d 61 6e 64 3c 2f 62 3e 20 6f 70 74 ecommand</b> opt
b7f0: 69 6f 6e 20 69 73 20 69 6e 76 6f 6b 65 64 20 64 ion is invoked d
b800: 75 72 69 6e 67 20 74 68 65 20 68 61 6e 64 73 68 uring the handsh
b810: 61 6b 65 0a 70 72 6f 63 65 73 73 20 69 6e 20 6f ake.process in o
b820: 72 64 65 72 20 66 6f 72 20 74 68 65 20 61 70 70 rder for the app
b830: 6c 69 63 61 74 69 6f 6e 20 74 6f 20 76 61 6c 69 lication to vali
b840: 64 61 74 65 20 74 68 65 20 70 72 6f 76 69 64 65 date the provide
b850: 64 20 76 61 6c 75 65 28 73 29 2e 20 53 65 65 0a d value(s). See.
b860: 62 65 6c 6f 77 20 66 6f 72 20 74 68 65 20 70 6f below for the po
b870: 73 73 69 62 6c 65 20 61 72 67 75 6d 65 6e 74 73 ssible arguments
b880: 20 70 61 73 73 65 64 20 74 6f 20 74 68 65 20 63 passed to the c
b890: 61 6c 6c 62 61 63 6b 20 73 63 72 69 70 74 2e 20 allback script.
b8a0: 49 66 20 6e 6f 74 0a 73 70 65 63 69 66 69 65 64 If not.specified
b8b0: 2c 20 4f 70 65 6e 53 53 4c 20 77 69 6c 6c 20 61 , OpenSSL will a
b8c0: 63 63 65 70 74 20 61 6c 6c 20 76 61 6c 69 64 20 ccept all valid
b8d0: 63 65 72 74 69 66 69 63 61 74 65 73 20 61 6e 64 certificates and
b8e0: 20 65 78 74 65 6e 73 69 6f 6e 73 2e 20 54 6f 20 extensions. To
b8f0: 72 65 6a 65 63 74 0a 74 68 65 20 76 61 6c 75 65 reject.the value
b900: 20 61 6e 64 20 61 62 6f 72 74 20 74 68 65 20 63 and abort the c
b910: 6f 6e 6e 65 63 74 69 6f 6e 2c 20 74 68 65 20 63 onnection, the c
b920: 61 6c 6c 62 61 63 6b 20 73 68 6f 75 6c 64 20 72 allback should r
b930: 65 74 75 72 6e 20 30 2e 20 54 6f 20 61 63 63 65 eturn 0. To acce
b940: 70 74 20 74 68 65 0a 76 61 6c 75 65 20 61 6e 64 pt the.value and
b950: 20 63 6f 6e 74 69 6e 75 65 20 74 68 65 20 63 6f continue the co
b960: 6e 6e 65 63 74 69 6f 6e 2c 20 69 74 20 73 68 6f nnection, it sho
b970: 75 6c 64 20 72 65 74 75 72 6e 20 31 2e 20 54 6f uld return 1. To
b980: 20 72 65 6a 65 63 74 20 74 68 65 20 76 61 6c 75 reject the valu
b990: 65 2c 20 62 75 74 0a 63 6f 6e 74 69 6e 75 65 20 e, but.continue
b9a0: 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 the connection,
b9b0: 69 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e it should return
b9c0: 20 32 2e 20 54 68 69 73 20 63 61 6c 6c 62 61 63 2. This callbac
b9d0: 6b 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c k is new for Tcl
b9e0: 54 4c 53 20 31 2e 38 2e 3c 2f 70 3e 0a 3c 64 6c TLS 1.8.</p>.<dl
b9f0: 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 class="doctools
ba00: 5f 6f 70 74 69 6f 6e 73 22 3e 0a 3c 64 74 3e 3c _options">.<dt><
ba10: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
ba20: 3e 61 6c 70 6e 3c 2f 62 3e 20 3c 69 20 63 6c 61 >alpn</b> <i cla
ba30: 73 73 3d 22 61 72 67 22 3e 63 68 61 6e 6e 65 6c ss="arg">channel
ba40: 49 64 20 70 72 6f 74 6f 63 6f 6c 20 6d 61 74 63 Id protocol matc
ba50: 68 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c h</i></dt>.<dd><
ba60: 70 3e 46 6f 72 20 73 65 72 76 65 72 73 2c 20 74 p>For servers, t
ba70: 68 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c his form of call
ba80: 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20 back is invoked
ba90: 77 68 65 6e 20 74 68 65 20 63 6c 69 65 6e 74 20 when the client
baa0: 41 4c 50 4e 20 65 78 74 65 6e 73 69 6f 6e 20 69 ALPN extension i
bab0: 73 0a 72 65 63 65 69 76 65 64 2e 20 49 66 20 3c s.received. If <
bac0: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 6d 61 i class="arg">ma
bad0: 74 63 68 3c 2f 69 3e 20 69 73 20 74 72 75 65 2c tch</i> is true,
bae0: 20 74 68 65 6e 20 3c 69 20 63 6c 61 73 73 3d 22 then <i class="
baf0: 61 72 67 22 3e 70 72 6f 74 6f 63 6f 6c 3c 2f 69 arg">protocol</i
bb00: 3e 20 69 73 20 74 68 65 20 66 69 72 73 74 0a 3c > is the first.<
bb10: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
bb20: 3e 2d 61 6c 70 6e 3c 2f 62 3e 20 70 72 6f 74 6f >-alpn</b> proto
bb30: 63 6f 6c 20 6f 70 74 69 6f 6e 20 69 6e 20 63 6f col option in co
bb40: 6d 6d 6f 6e 20 74 6f 20 62 6f 74 68 20 74 68 65 mmon to both the
bb50: 20 63 6c 69 65 6e 74 20 61 6e 64 20 73 65 72 76 client and serv
bb60: 65 72 2e 0a 49 66 20 6e 6f 74 2c 20 74 68 65 20 er..If not, the
bb70: 66 69 72 73 74 20 63 6c 69 65 6e 74 20 73 70 65 first client spe
bb80: 63 69 66 69 65 64 20 70 72 6f 74 6f 63 6f 6c 20 cified protocol
bb90: 69 73 20 75 73 65 64 2e 20 54 68 69 73 20 63 61 is used. This ca
bba0: 6c 6c 62 61 63 6b 20 69 73 20 63 61 6c 6c 65 64 llback is called
bbb0: 0a 61 66 74 65 72 20 74 68 65 20 48 65 6c 6c 6f .after the Hello
bbc0: 20 61 6e 64 20 53 4e 49 20 63 61 6c 6c 62 61 63 and SNI callbac
bbd0: 6b 73 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 ks.</p></dd>.<dt
bbe0: 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f ><b class="optio
bbf0: 6e 22 3e 68 65 6c 6c 6f 3c 2f 62 3e 20 3c 69 20 n">hello</b> <i
bc00: 63 6c 61 73 73 3d 22 61 72 67 22 3e 63 68 61 6e class="arg">chan
bc10: 6e 65 6c 49 64 20 73 65 72 76 65 72 6e 61 6d 65 nelId servername
bc20: 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 </i></dt>.<dd><p
bc30: 3e 46 6f 72 20 73 65 72 76 65 72 73 2c 20 74 68 >For servers, th
bc40: 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c 62 is form of callb
bc50: 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20 64 ack is invoked d
bc60: 75 72 69 6e 67 20 63 6c 69 65 6e 74 20 68 65 6c uring client hel
bc70: 6c 6f 20 6d 65 73 73 61 67 65 0a 70 72 6f 63 65 lo message.proce
bc80: 73 73 69 6e 67 2e 20 54 68 65 20 70 75 72 70 6f ssing. The purpo
bc90: 73 65 20 69 73 20 73 6f 20 74 68 65 20 73 65 72 se is so the ser
bca0: 76 65 72 20 63 61 6e 20 73 65 6c 65 63 74 20 74 ver can select t
bcb0: 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 he appropriate c
bcc0: 65 72 74 69 66 69 63 61 74 65 0a 74 6f 20 70 72 ertificate.to pr
bcd0: 65 73 65 6e 74 20 74 6f 20 74 68 65 20 63 6c 69 esent to the cli
bce0: 65 6e 74 2c 20 61 6e 64 20 74 6f 20 6d 61 6b 65 ent, and to make
bcf0: 20 6f 74 68 65 72 20 63 6f 6e 66 69 67 75 72 61 other configura
bd00: 74 69 6f 6e 20 61 64 6a 75 73 74 6d 65 6e 74 73 tion adjustments
bd10: 20 72 65 6c 65 76 61 6e 74 0a 74 6f 20 74 68 61 relevant.to tha
bd20: 74 20 73 65 72 76 65 72 20 6e 61 6d 65 20 61 6e t server name an
bd30: 64 20 69 74 73 20 63 6f 6e 66 69 67 75 72 61 74 d its configurat
bd40: 69 6f 6e 2e 20 49 74 20 69 73 20 63 61 6c 6c 65 ion. It is calle
bd50: 64 20 62 65 66 6f 72 65 20 74 68 65 20 53 4e 49 d before the SNI
bd60: 20 61 6e 64 20 41 4c 50 4e 0a 63 61 6c 6c 62 61 and ALPN.callba
bd70: 63 6b 73 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 cks.</p></dd>.<d
bd80: 74 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 t><b class="opti
bd90: 6f 6e 22 3e 73 6e 69 3c 2f 62 3e 20 3c 69 20 63 on">sni</b> <i c
bda0: 6c 61 73 73 3d 22 61 72 67 22 3e 63 68 61 6e 6e lass="arg">chann
bdb0: 65 6c 49 64 20 73 65 72 76 65 72 6e 61 6d 65 3c elId servername<
bdc0: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
bdd0: 46 6f 72 20 73 65 72 76 65 72 73 2c 20 74 68 69 For servers, thi
bde0: 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c 62 61 s form of callba
bdf0: 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 ck is invoked wh
be00: 65 6e 20 74 68 65 20 53 65 72 76 65 72 20 4e 61 en the Server Na
be10: 6d 65 20 49 6e 64 69 63 61 74 69 6f 6e 0a 28 53 me Indication.(S
be20: 4e 49 29 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 NI) extension is
be30: 20 72 65 63 65 69 76 65 64 2e 20 54 68 65 20 3c received. The <
be40: 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 73 65 i class="arg">se
be50: 72 76 65 72 6e 61 6d 65 3c 2f 69 3e 20 61 72 67 rvername</i> arg
be60: 75 6d 65 6e 74 20 69 73 20 74 68 65 20 63 6c 69 ument is the cli
be70: 65 6e 74 0a 70 72 6f 76 69 64 65 64 20 73 65 72 ent.provided ser
be80: 76 65 72 20 6e 61 6d 65 20 73 70 65 63 69 66 69 ver name specifi
be90: 65 64 20 69 6e 20 74 68 65 20 3c 62 20 63 6c 61 ed in the <b cla
bea0: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 73 65 72 ss="option">-ser
beb0: 76 65 72 6e 61 6d 65 3c 2f 62 3e 20 6f 70 74 69 vername</b> opti
bec0: 6f 6e 2e 20 54 68 65 0a 70 75 72 70 6f 73 65 20 on. The.purpose
bed0: 69 73 20 73 6f 20 77 68 65 6e 20 61 20 73 65 72 is so when a ser
bee0: 76 65 72 20 73 75 70 70 6f 72 74 73 20 6d 75 6c ver supports mul
bef0: 74 69 70 6c 65 20 6e 61 6d 65 73 2c 20 74 68 65 tiple names, the
bf00: 20 72 69 67 68 74 20 63 65 72 74 69 66 69 63 61 right certifica
bf10: 74 65 0a 63 61 6e 20 62 65 20 75 73 65 64 2e 20 te.can be used.
bf20: 49 74 20 69 73 20 63 61 6c 6c 65 64 20 61 66 74 It is called aft
bf30: 65 72 20 74 68 65 20 48 65 6c 6c 6f 20 63 61 6c er the Hello cal
bf40: 6c 62 61 63 6b 20 62 75 74 20 62 65 66 6f 72 65 lback but before
bf50: 20 74 68 65 20 41 4c 50 4e 0a 63 61 6c 6c 62 61 the ALPN.callba
bf60: 63 6b 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 ck.</p></dd>.<dt
bf70: 3e 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f ><b class="optio
bf80: 6e 22 3e 76 65 72 69 66 79 3c 2f 62 3e 20 3c 69 n">verify</b> <i
bf90: 20 63 6c 61 73 73 3d 22 61 72 67 22 3e 63 68 61 class="arg">cha
bfa0: 6e 6e 65 6c 49 64 20 64 65 70 74 68 20 63 65 72 nnelId depth cer
bfb0: 74 20 73 74 61 74 75 73 20 65 72 72 6f 72 3c 2f t status error</
bfc0: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 i></dt>.<dd><p>T
bfd0: 68 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c his form of call
bfe0: 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20 back is invoked
bff0: 62 79 20 4f 70 65 6e 53 53 4c 20 77 68 65 6e 20 by OpenSSL when
c000: 61 20 6e 65 77 20 63 65 72 74 69 66 69 63 61 74 a new certificat
c010: 65 20 69 73 20 72 65 63 65 69 76 65 64 0a 66 72 e is received.fr
c020: 6f 6d 20 74 68 65 20 70 65 65 72 2e 20 49 74 20 om the peer. It
c030: 61 6c 6c 6f 77 73 20 74 68 65 20 63 6c 69 65 6e allows the clien
c040: 74 20 74 6f 20 63 68 65 63 6b 20 74 68 65 20 63 t to check the c
c050: 65 72 74 69 66 69 63 61 74 65 20 76 65 72 69 66 ertificate verif
c060: 69 63 61 74 69 6f 6e 0a 72 65 73 75 6c 74 73 20 ication.results
c070: 61 6e 64 20 63 68 6f 6f 73 65 20 77 68 65 74 68 and choose wheth
c080: 65 72 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 6f er to continue o
c090: 72 20 6e 6f 74 2e 20 49 74 20 69 73 20 63 61 6c r not. It is cal
c0a0: 6c 65 64 20 66 6f 72 20 65 61 63 68 0a 63 65 72 led for each.cer
c0b0: 74 69 66 69 63 61 74 65 20 69 6e 20 74 68 65 20 tificate in the
c0c0: 63 65 72 74 69 66 69 63 61 74 65 20 63 68 61 69 certificate chai
c0d0: 6e 2e 20 54 68 69 73 20 63 61 6c 6c 62 61 63 6b n. This callback
c0e0: 20 77 61 73 20 6d 6f 76 65 64 20 66 72 6f 6d 0a was moved from.
c0f0: 3c 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e <b class="option
c100: 22 3e 2d 63 6f 6d 6d 61 6e 64 3c 2f 62 3e 20 69 ">-command</b> i
c110: 6e 20 54 63 6c 54 4c 53 20 31 2e 38 2e 20 54 68 n TclTLS 1.8. Th
c120: 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 3a e arguments are:
c130: 3c 2f 70 3e 0a 3c 64 6c 20 63 6c 61 73 73 3d 22 </p>.<dl class="
c140: 64 6f 63 74 6f 6f 6c 73 5f 64 65 66 69 6e 69 74 doctools_definit
c150: 69 6f 6e 73 22 3e 0a 3c 64 74 3e 3c 69 20 63 6c ions">.<dt><i cl
c160: 61 73 73 3d 22 61 72 67 22 3e 64 65 70 74 68 3c ass="arg">depth<
c170: 2f 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e /i></dt>.<dd><p>
c180: 54 68 65 20 64 65 70 74 68 20 69 73 20 74 68 65 The depth is the
c190: 20 69 6e 74 65 67 65 72 20 64 65 70 74 68 20 6f integer depth o
c1a0: 66 20 74 68 65 20 63 65 72 74 69 66 69 63 61 74 f the certificat
c1b0: 65 20 69 6e 20 74 68 65 20 63 65 72 74 69 66 69 e in the certifi
c1c0: 63 61 74 65 20 63 68 61 69 6e 2c 0a 77 68 65 72 cate chain,.wher
c1d0: 65 20 30 20 69 73 20 74 68 65 20 70 65 65 72 20 e 0 is the peer
c1e0: 63 65 72 74 69 66 69 63 61 74 65 20 61 6e 64 20 certificate and
c1f0: 68 69 67 68 65 72 20 76 61 6c 75 65 73 20 67 6f higher values go
c200: 69 6e 67 20 75 70 20 74 6f 20 74 68 65 20 43 65 ing up to the Ce
c210: 72 74 69 66 69 63 61 74 65 0a 41 75 74 68 6f 72 rtificate.Author
c220: 69 74 79 20 28 43 41 29 2e 3c 2f 70 3e 3c 2f 64 ity (CA).</p></d
c230: 64 3e 0a 3c 64 74 3e 3c 69 20 63 6c 61 73 73 3d d>.<dt><i class=
c240: 22 61 72 67 22 3e 63 65 72 74 3c 2f 69 3e 3c 2f "arg">cert</i></
c250: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 63 dt>.<dd><p>The c
c260: 65 72 74 20 61 72 67 75 6d 65 6e 74 20 69 73 20 ert argument is
c270: 61 20 6c 69 73 74 20 6f 66 20 6b 65 79 2d 76 61 a list of key-va
c280: 6c 75 65 20 70 61 69 72 73 20 73 69 6d 69 6c 61 lue pairs simila
c290: 72 20 74 6f 20 74 68 6f 73 65 20 72 65 74 75 72 r to those retur
c2a0: 6e 65 64 20 62 79 0a 3c 62 20 63 6c 61 73 73 3d ned by.<b class=
c2b0: 22 63 6d 64 22 3e 74 6c 73 3a 3a 73 74 61 74 75 "cmd">tls::statu
c2c0: 73 3c 2f 62 3e 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a s</b>.</p></dd>.
c2d0: 3c 64 74 3e 3c 69 20 63 6c 61 73 73 3d 22 61 72 <dt><i class="ar
c2e0: 67 22 3e 73 74 61 74 75 73 3c 2f 69 3e 3c 2f 64 g">status</i></d
c2f0: 74 3e 0a 3c 64 64 3e 3c 70 3e 54 68 65 20 73 74 t>.<dd><p>The st
c300: 61 74 75 73 20 61 72 67 75 6d 65 6e 74 20 69 73 atus argument is
c310: 20 74 68 65 20 62 6f 6f 6c 65 61 6e 20 76 61 6c the boolean val
c320: 69 64 69 74 79 20 6f 66 20 74 68 65 20 63 75 72 idity of the cur
c330: 72 65 6e 74 20 63 65 72 74 69 66 69 63 61 74 65 rent certificate
c340: 20 77 68 65 72 65 20 30 0a 69 73 20 69 6e 76 61 where 0.is inva
c350: 6c 69 64 20 61 6e 64 20 31 20 69 73 20 76 61 6c lid and 1 is val
c360: 69 64 2e 3c 2f 70 3e 3c 2f 64 64 3e 0a 3c 64 74 id.</p></dd>.<dt
c370: 3e 3c 69 20 63 6c 61 73 73 3d 22 61 72 67 22 3e ><i class="arg">
c380: 65 72 72 6f 72 3c 2f 69 3e 3c 2f 64 74 3e 0a 3c error</i></dt>.<
c390: 64 64 3e 3c 70 3e 54 68 65 20 65 72 72 6f 72 20 dd><p>The error
c3a0: 61 72 67 75 6d 65 6e 74 20 69 73 20 74 68 65 20 argument is the
c3b0: 65 72 72 6f 72 20 6d 65 73 73 61 67 65 2c 20 69 error message, i
c3c0: 66 20 61 6e 79 2c 20 67 65 6e 65 72 61 74 65 64 f any, generated
c3d0: 20 62 79 0a 3c 62 20 63 6c 61 73 73 3d 22 66 75 by.<b class="fu
c3e0: 6e 63 74 69 6f 6e 22 3e 58 35 30 39 5f 53 54 4f nction">X509_STO
c3f0: 52 45 5f 43 54 58 5f 67 65 74 5f 65 72 72 6f 72 RE_CTX_get_error
c400: 28 29 3c 2f 62 3e 2e 3c 2f 70 3e 3c 2f 64 64 3e ()</b>.</p></dd>
c410: 0a 3c 2f 64 6c 3e 3c 2f 64 64 3e 0a 3c 2f 64 6c .</dl></dd>.</dl
c420: 3e 0a 3c 70 3e 52 65 66 65 72 65 6e 63 65 20 69 >.<p>Reference i
c430: 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 6f mplementations o
c440: 66 20 74 68 65 73 65 20 63 61 6c 6c 62 61 63 6b f these callback
c450: 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 20 69 s are provided i
c460: 6e 20 26 71 75 6f 74 3b 3c 62 20 63 6c 61 73 73 n "<b class
c470: 3d 22 66 69 6c 65 22 3e 74 6c 73 2e 74 63 6c 3c ="file">tls.tcl<
c480: 2f 62 3e 26 71 75 6f 74 3b 0a 61 73 20 3c 62 20 /b>".as <b
c490: 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a class="cmd">tls:
c4a0: 3a 63 61 6c 6c 62 61 63 6b 3c 2f 62 3e 2c 20 3c :callback</b>, <
c4b0: 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c b class="cmd">tl
c4c0: 73 3a 3a 70 61 73 73 77 6f 72 64 3c 2f 62 3e 2c s::password</b>,
c4d0: 20 61 6e 64 20 3c 62 20 63 6c 61 73 73 3d 22 63 and <b class="c
c4e0: 6d 64 22 3e 74 6c 73 3a 3a 76 61 6c 69 64 61 74 md">tls::validat
c4f0: 65 5f 63 6f 6d 6d 61 6e 64 3c 2f 62 3e 0a 72 65 e_command</b>.re
c500: 73 70 65 63 74 69 76 65 6c 79 2e 20 4e 6f 74 65 spectively. Note
c510: 20 74 68 61 74 20 74 68 65 73 65 20 61 72 65 20 that these are
c520: 6f 6e 6c 79 20 3c 65 6d 3e 73 61 6d 70 6c 65 3c only <em>sample<
c530: 2f 65 6d 3e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 /em> implementat
c540: 69 6f 6e 73 2e 20 49 6e 20 61 20 6d 6f 72 65 0a ions. In a more.
c550: 72 65 61 6c 69 73 74 69 63 20 64 65 70 6c 6f 79 realistic deploy
c560: 6d 65 6e 74 20 79 6f 75 20 77 6f 75 6c 64 20 73 ment you would s
c570: 70 65 63 69 66 79 20 79 6f 75 72 20 6f 77 6e 20 pecify your own
c580: 63 61 6c 6c 62 61 63 6b 20 73 63 72 69 70 74 73 callback scripts
c590: 20 6f 6e 20 65 61 63 68 20 54 4c 53 0a 63 68 61 on each TLS.cha
c5a0: 6e 6e 65 6c 20 75 73 69 6e 67 20 74 68 65 20 3c nnel using the <
c5b0: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
c5c0: 3e 2d 63 6f 6d 6d 61 6e 64 3c 2f 62 3e 2c 20 3c >-command</b>, <
c5d0: 62 20 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 b class="option"
c5e0: 3e 2d 70 61 73 73 77 6f 72 64 3c 2f 62 3e 2c 20 >-password</b>,
c5f0: 61 6e 64 0a 3c 62 20 63 6c 61 73 73 3d 22 6f 70 and.<b class="op
c600: 74 69 6f 6e 22 3e 2d 76 61 6c 69 64 61 74 65 5f tion">-validate_
c610: 63 6f 6d 6d 61 6e 64 3c 2f 62 3e 20 6f 70 74 69 command</b> opti
c620: 6f 6e 73 2e 3c 2f 70 3e 0a 3c 70 3e 54 68 65 20 ons.</p>.<p>The
c630: 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f 72 default behavior
c640: 20 77 68 65 6e 20 74 68 65 20 3c 62 20 63 6c 61 when the <b cla
c650: 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 6f 6d ss="option">-com
c660: 6d 61 6e 64 3c 2f 62 3e 20 61 6e 64 20 3c 62 20 mand</b> and <b
c670: 63 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d class="option">-
c680: 76 61 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 6e 64 validate_command
c690: 3c 2f 62 3e 0a 6f 70 74 69 6f 6e 73 20 61 72 65 </b>.options are
c6a0: 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 2c 20 not specified,
c6b0: 69 73 20 66 6f 72 20 54 63 6c 54 4c 53 20 74 6f is for TclTLS to
c6c0: 20 70 72 6f 63 65 73 73 20 74 68 65 20 61 73 73 process the ass
c6d0: 6f 63 69 61 74 65 64 20 6c 69 62 72 61 72 79 0a ociated library.
c6e0: 63 61 6c 6c 62 61 63 6b 73 20 69 6e 74 65 72 6e callbacks intern
c6f0: 61 6c 6c 79 2e 20 54 68 65 20 64 65 66 61 75 6c ally. The defaul
c700: 74 20 62 65 68 61 76 69 6f 72 20 77 68 65 6e 20 t behavior when
c710: 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 6f 70 the <b class="op
c720: 74 69 6f 6e 22 3e 2d 70 61 73 73 77 6f 72 64 3c tion">-password<
c730: 2f 62 3e 20 6f 70 74 69 6f 6e 0a 69 73 20 6e 6f /b> option.is no
c740: 74 20 73 70 65 63 69 66 69 65 64 20 69 73 20 66 t specified is f
c750: 6f 72 20 54 63 6c 54 4c 53 20 74 6f 20 70 72 6f or TclTLS to pro
c760: 63 65 73 73 20 74 68 65 20 61 73 73 6f 63 69 61 cess the associa
c770: 74 65 64 20 6c 69 62 72 61 72 79 20 63 61 6c 6c ted library call
c780: 62 61 63 6b 73 20 62 79 0a 61 74 74 65 6d 70 74 backs by.attempt
c790: 69 6e 67 20 74 6f 20 63 61 6c 6c 20 3c 62 20 63 ing to call <b c
c7a0: 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a lass="cmd">tls::
c7b0: 70 61 73 73 77 6f 72 64 3c 2f 62 3e 2e 20 54 68 password</b>. Th
c7c0: 65 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 e difference bet
c7d0: 77 65 65 6e 20 74 68 65 73 65 20 74 77 6f 0a 62 ween these two.b
c7e0: 65 68 61 76 69 6f 72 73 20 69 73 20 61 20 63 6f ehaviors is a co
c7f0: 6e 73 65 71 75 65 6e 63 65 20 6f 66 20 6d 61 69 nsequence of mai
c800: 6e 74 61 69 6e 69 6e 67 20 63 6f 6d 70 61 74 69 ntaining compati
c810: 62 69 6c 69 74 79 20 77 69 74 68 20 65 61 72 6c bility with earl
c820: 69 65 72 0a 69 6d 70 6c 65 6d 65 6e 74 61 74 69 ier.implementati
c830: 6f 6e 73 2e 3c 2f 70 3e 0a 3c 70 3e 3c 65 6d 3e ons.</p>.<p><em>
c840: 54 68 65 20 75 73 65 20 6f 66 20 74 68 65 20 72 The use of the r
c850: 65 66 65 72 65 6e 63 65 20 63 61 6c 6c 62 61 63 eference callbac
c860: 6b 73 20 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 ks <b class="cmd
c870: 22 3e 74 6c 73 3a 3a 63 61 6c 6c 62 61 63 6b 3c ">tls::callback<
c880: 2f 62 3e 2c 20 3c 62 20 63 6c 61 73 73 3d 22 63 /b>, <b class="c
c890: 6d 64 22 3e 74 6c 73 3a 3a 70 61 73 73 77 6f 72 md">tls::passwor
c8a0: 64 3c 2f 62 3e 2c 0a 61 6e 64 20 3c 62 20 63 6c d</b>,.and <b cl
c8b0: 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 76 ass="cmd">tls::v
c8c0: 61 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 6e 64 3c alidate_command<
c8d0: 2f 62 3e 20 69 73 20 6e 6f 74 20 72 65 63 6f 6d /b> is not recom
c8e0: 6d 65 6e 64 65 64 2e 20 54 68 65 79 20 6d 61 79 mended. They may
c8f0: 20 62 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d be removed from
c900: 20 66 75 74 75 72 65 20 72 65 6c 65 61 73 65 73 future releases
c910: 2e 3c 2f 65 6d 3e 3c 2f 70 3e 0a 3c 2f 64 69 76 .</em></p>.</div
c920: 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 69 64 >.</div>.<div id
c930: 3d 22 73 65 63 74 69 6f 6e 36 22 20 63 6c 61 73 ="section6" clas
c940: 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 63 74 s="doctools_sect
c950: 69 6f 6e 22 3e 3c 68 32 3e 3c 61 20 6e 61 6d 65 ion"><h2><a name
c960: 3d 22 73 65 63 74 69 6f 6e 36 22 3e 44 65 62 75 ="section6">Debu
c970: 67 3c 2f 61 3e 3c 2f 68 32 3e 0a 3c 70 3e 46 6f g</a></h2>.<p>Fo
c980: 72 20 6d 6f 73 74 20 64 65 62 75 67 67 69 6e 67 r most debugging
c990: 20 6e 65 65 64 73 2c 20 74 68 65 20 3c 62 20 63 needs, the <b c
c9a0: 6c 61 73 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 lass="option">-c
c9b0: 61 6c 6c 62 61 63 6b 3c 2f 62 3e 20 6f 70 74 69 allback</b> opti
c9c0: 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 on can be used t
c9d0: 6f 20 70 72 6f 76 69 64 65 0a 73 75 66 66 69 63 o provide.suffic
c9e0: 69 65 6e 74 20 69 6e 73 69 67 68 74 20 61 6e 64 ient insight and
c9f0: 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 information on
ca00: 74 68 65 20 54 4c 53 20 68 61 6e 64 73 68 61 6b the TLS handshak
ca10: 65 20 61 6e 64 20 70 72 6f 67 72 65 73 73 2e 20 e and progress.
ca20: 49 66 0a 66 75 72 74 68 65 72 20 74 72 6f 75 62 If.further troub
ca30: 6c 65 73 68 6f 6f 74 69 6e 67 20 69 6e 73 69 67 leshooting insig
ca40: 68 74 20 69 73 20 6e 65 65 64 65 64 2c 20 74 68 ht is needed, th
ca50: 65 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 6f e compile time o
ca60: 70 74 69 6f 6e 0a 3c 62 20 63 6c 61 73 73 3d 22 ption.<b class="
ca70: 6f 70 74 69 6f 6e 22 3e 2d 2d 65 6e 61 62 6c 65 option">--enable
ca80: 2d 64 65 62 75 67 3c 2f 62 3e 20 63 61 6e 20 62 -debug</b> can b
ca90: 65 20 75 73 65 64 20 74 6f 20 67 65 74 20 64 65 e used to get de
caa0: 74 61 69 6c 65 64 20 65 78 65 63 75 74 69 6f 6e tailed execution
cab0: 20 66 6c 6f 77 20 73 74 61 74 75 73 2e 3c 2f 70 flow status.</p
cac0: 3e 0a 3c 70 3e 54 4c 53 20 6b 65 79 20 6c 6f 67 >.<p>TLS key log
cad0: 67 69 6e 67 20 63 61 6e 20 62 65 20 65 6e 61 62 ging can be enab
cae0: 6c 65 64 20 62 79 20 73 65 74 74 69 6e 67 20 74 led by setting t
caf0: 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 he environment v
cb00: 61 72 69 61 62 6c 65 0a 3c 62 20 63 6c 61 73 73 ariable.<b class
cb10: 3d 22 76 61 72 69 61 62 6c 65 22 3e 53 53 4c 4b ="variable">SSLK
cb20: 45 59 4c 4f 47 46 49 4c 45 3c 2f 62 3e 20 74 6f EYLOGFILE</b> to
cb30: 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 the name of the
cb40: 20 66 69 6c 65 20 74 6f 20 6c 6f 67 20 74 6f 2e file to log to.
cb50: 20 54 68 65 6e 20 77 68 65 6e 65 76 65 72 20 54 Then whenever T
cb60: 4c 53 20 6b 65 79 0a 6d 61 74 65 72 69 61 6c 20 LS key.material
cb70: 69 73 20 67 65 6e 65 72 61 74 65 64 20 6f 72 20 is generated or
cb80: 72 65 63 65 69 76 65 64 20 69 74 20 77 69 6c 6c received it will
cb90: 20 62 65 20 6c 6f 67 67 65 64 20 74 6f 20 74 68 be logged to th
cba0: 65 20 66 69 6c 65 2e 20 54 68 69 73 20 69 73 20 e file. This is
cbb0: 75 73 65 66 75 6c 0a 66 6f 72 20 6c 6f 67 67 69 useful.for loggi
cbc0: 6e 67 20 6b 65 79 20 64 61 74 61 20 66 6f 72 20 ng key data for
cbd0: 6e 65 74 77 6f 72 6b 20 6c 6f 67 67 69 6e 67 20 network logging
cbe0: 74 6f 6f 6c 73 20 74 6f 20 75 73 65 20 74 6f 20 tools to use to
cbf0: 64 65 63 72 79 70 74 20 74 68 65 20 64 61 74 61 decrypt the data
cc00: 2e 3c 2f 70 3e 0a 3c 70 3e 54 68 65 20 3c 62 20 .</p>.<p>The <b
cc10: 63 6c 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 class="variable"
cc20: 3e 74 6c 73 3a 3a 64 65 62 75 67 3c 2f 62 3e 20 >tls::debug</b>
cc30: 76 61 72 69 61 62 6c 65 20 70 72 6f 76 69 64 65 variable provide
cc40: 73 20 73 6f 6d 65 20 61 64 64 69 74 69 6f 6e 61 s some additiona
cc50: 6c 20 63 6f 6e 74 72 6f 6c 20 6f 76 65 72 20 74 l control over t
cc60: 68 65 0a 64 65 62 75 67 20 6c 6f 67 67 69 6e 67 he.debug logging
cc70: 20 69 6e 20 74 68 65 20 3c 62 20 63 6c 61 73 73 in the <b class
cc80: 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 63 61 6c 6c ="cmd">tls::call
cc90: 62 61 63 6b 3c 2f 62 3e 2c 20 3c 62 20 63 6c 61 back</b>, <b cla
cca0: 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 70 61 ss="cmd">tls::pa
ccb0: 73 73 77 6f 72 64 3c 2f 62 3e 2c 20 61 6e 64 0a ssword</b>, and.
ccc0: 3c 62 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 <b class="cmd">t
ccd0: 6c 73 3a 3a 76 61 6c 69 64 61 74 65 5f 63 6f 6d ls::validate_com
cce0: 6d 61 6e 64 3c 2f 62 3e 20 64 65 66 61 75 6c 74 mand</b> default
ccf0: 20 68 61 6e 64 6c 65 72 73 20 69 6e 20 26 71 75 handlers in &qu
cd00: 6f 74 3b 3c 62 20 63 6c 61 73 73 3d 22 66 69 6c ot;<b class="fil
cd10: 65 22 3e 74 6c 73 2e 74 63 6c 3c 2f 62 3e 26 71 e">tls.tcl</b>&q
cd20: 75 6f 74 3b 2e 0a 54 68 65 20 64 65 66 61 75 6c uot;..The defaul
cd30: 74 20 76 61 6c 75 65 20 69 73 20 30 20 77 69 74 t value is 0 wit
cd40: 68 20 68 69 67 68 65 72 20 76 61 6c 75 65 73 20 h higher values
cd50: 70 72 6f 64 75 63 69 6e 67 20 6d 6f 72 65 20 64 producing more d
cd60: 69 61 67 6e 6f 73 74 69 63 20 6f 75 74 70 75 74 iagnostic output
cd70: 2c 0a 61 6e 64 20 77 69 6c 6c 20 61 6c 73 6f 20 ,.and will also
cd80: 66 6f 72 63 65 20 74 68 65 20 76 65 72 69 66 79 force the verify
cd90: 20 6d 65 74 68 6f 64 20 69 6e 20 3c 62 20 63 6c method in <b cl
cda0: 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 3a 3a 63 ass="cmd">tls::c
cdb0: 61 6c 6c 62 61 63 6b 3c 2f 62 3e 20 74 6f 20 61 allback</b> to a
cdc0: 63 63 65 70 74 20 74 68 65 0a 63 65 72 74 69 66 ccept the.certif
cdd0: 69 63 61 74 65 2c 20 65 76 65 6e 20 69 66 20 69 icate, even if i
cde0: 74 20 69 73 20 69 6e 76 61 6c 69 64 20 77 68 65 t is invalid whe
cdf0: 6e 20 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 n the <b class="
ce00: 6f 70 74 69 6f 6e 22 3e 2d 76 61 6c 69 64 61 74 option">-validat
ce10: 65 63 6f 6d 6d 61 6e 64 3c 2f 62 3e 0a 6f 70 74 ecommand</b>.opt
ce20: 69 6f 6e 20 69 73 20 73 65 74 20 74 6f 20 3c 62 ion is set to <b
ce30: 20 63 6c 61 73 73 3d 22 63 6d 64 22 3e 74 6c 73 class="cmd">tls
ce40: 3a 3a 76 61 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 ::validate_comma
ce50: 6e 64 3c 2f 62 3e 2e 3c 2f 70 3e 0a 3c 70 3e 3c nd</b>.</p>.<p><
ce60: 65 6d 3e 54 68 65 20 75 73 65 20 6f 66 20 74 68 em>The use of th
ce70: 65 20 76 61 72 69 61 62 6c 65 20 3c 62 20 63 6c e variable <b cl
ce80: 61 73 73 3d 22 76 61 72 69 61 62 6c 65 22 3e 74 ass="variable">t
ce90: 6c 73 3a 3a 64 65 62 75 67 3c 2f 62 3e 20 69 73 ls::debug</b> is
cea0: 20 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64 65 64 not recommended
ceb0: 2e 0a 49 74 20 6d 61 79 20 62 65 20 72 65 6d 6f ..It may be remo
cec0: 76 65 64 20 66 72 6f 6d 20 66 75 74 75 72 65 20 ved from future
ced0: 72 65 6c 65 61 73 65 73 2e 3c 2f 65 6d 3e 3c 2f releases.</em></
cee0: 70 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 69 p>.</div>.<div i
cef0: 64 3d 22 73 65 63 74 69 6f 6e 37 22 20 63 6c 61 d="section7" cla
cf00: 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 63 ss="doctools_sec
cf10: 74 69 6f 6e 22 3e 3c 68 32 3e 3c 61 20 6e 61 6d tion"><h2><a nam
cf20: 65 3d 22 73 65 63 74 69 6f 6e 37 22 3e 45 78 61 e="section7">Exa
cf30: 6d 70 6c 65 73 3c 2f 61 3e 3c 2f 68 32 3e 0a 3c mples</a></h2>.<
cf40: 70 3e 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 p>The following
cf50: 61 72 65 20 65 78 61 6d 70 6c 65 20 73 63 72 69 are example scri
cf60: 70 74 73 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 pts to download
cf70: 61 20 77 65 62 70 61 67 65 20 61 6e 64 20 66 69 a webpage and fi
cf80: 6c 65 20 75 73 69 6e 67 20 74 68 65 0a 68 74 74 le using the.htt
cf90: 70 20 70 61 63 6b 61 67 65 2e 20 53 65 65 20 3c p package. See <
cfa0: 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 65 63 74 span class="sect
cfb0: 72 65 66 22 3e 3c 61 20 68 72 65 66 3d 22 23 73 ref"><a href="#s
cfc0: 65 63 74 69 6f 6e 34 22 3e 43 65 72 74 69 66 69 ection4">Certifi
cfd0: 63 61 74 65 20 56 61 6c 69 64 61 74 69 6f 6e 3c cate Validation<
cfe0: 2f 61 3e 3c 2f 73 70 61 6e 3e 20 66 6f 72 20 77 /a></span> for w
cff0: 68 65 6e 20 74 68 65 0a 3c 62 20 63 6c 61 73 73 hen the.<b class
d000: 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 64 69 72 ="option">-cadir
d010: 3c 2f 62 3e 2c 20 3c 62 20 63 6c 61 73 73 3d 22 </b>, <b class="
d020: 6f 70 74 69 6f 6e 22 3e 2d 63 61 66 69 6c 65 3c option">-cafile<
d030: 2f 62 3e 2c 20 61 6e 64 20 3c 62 20 63 6c 61 73 /b>, and <b clas
d040: 73 3d 22 6f 70 74 69 6f 6e 22 3e 2d 63 61 73 74 s="option">-cast
d050: 6f 72 65 3c 2f 62 3e 20 6f 70 74 69 6f 6e 73 20 ore</b> options
d060: 61 72 65 20 61 6c 73 6f 0a 6e 65 65 64 65 64 2e are also.needed.
d070: 20 53 65 65 20 74 68 65 20 26 71 75 6f 74 3b 3c See the "<
d080: 62 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 64 b class="file">d
d090: 65 6d 6f 73 3c 2f 62 3e 26 71 75 6f 74 3b 20 64 emos</b>" d
d0a0: 69 72 65 63 74 6f 72 79 20 66 6f 72 20 6d 6f 72 irectory for mor
d0b0: 65 20 65 78 61 6d 70 6c 65 20 73 63 72 69 70 74 e example script
d0c0: 73 2e 3c 2f 70 3e 0a 3c 70 3e 45 78 61 6d 70 6c s.</p>.<p>Exampl
d0d0: 65 20 23 31 3a 20 44 6f 77 6e 6c 6f 61 64 20 61 e #1: Download a
d0e0: 20 77 65 62 20 70 61 67 65 3c 2f 70 3e 0a 3c 70 web page</p>.<p
d0f0: 72 65 20 63 6c 61 73 73 3d 22 64 6f 63 74 6f 6f re class="doctoo
d100: 6c 73 5f 65 78 61 6d 70 6c 65 22 3e 0a 70 61 63 ls_example">.pac
d110: 6b 61 67 65 20 72 65 71 75 69 72 65 20 68 74 74 kage require htt
d120: 70 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 p.package requir
d130: 65 20 74 6c 73 0a 73 65 74 20 75 72 6c 20 26 71 e tls.set url &q
d140: 75 6f 74 3b 68 74 74 70 73 3a 2f 2f 77 77 77 2e uot;https://www.
d150: 74 63 6c 2e 74 6b 2f 26 71 75 6f 74 3b 0a 68 74 tcl.tk/".ht
d160: 74 70 3a 3a 72 65 67 69 73 74 65 72 20 68 74 74 tp::register htt
d170: 70 73 20 34 34 33 20 5b 6c 69 73 74 20 3a 3a 74 ps 443 [list ::t
d180: 6c 73 3a 3a 73 6f 63 6b 65 74 20 2d 61 75 74 6f ls::socket -auto
d190: 73 65 72 76 65 72 6e 61 6d 65 20 31 20 2d 72 65 servername 1 -re
d1a0: 71 75 69 72 65 20 31 5d 0a 23 20 47 65 74 20 55 quire 1].# Get U
d1b0: 52 4c 0a 73 65 74 20 74 6f 6b 65 6e 20 5b 68 74 RL.set token [ht
d1c0: 74 70 3a 3a 67 65 74 75 72 6c 20 24 75 72 6c 5d tp::geturl $url]
d1d0: 0a 23 20 43 68 65 63 6b 20 66 6f 72 20 65 72 72 .# Check for err
d1e0: 6f 72 0a 69 66 20 7b 5b 68 74 74 70 3a 3a 73 74 or.if {[http::st
d1f0: 61 74 75 73 20 24 74 6f 6b 65 6e 5d 20 6e 65 20 atus $token] ne
d200: 26 71 75 6f 74 3b 6f 6b 26 71 75 6f 74 3b 7d 20 "ok"}
d210: 7b 0a 20 20 20 20 70 75 74 73 20 5b 66 6f 72 6d {. puts [form
d220: 61 74 20 26 71 75 6f 74 3b 45 72 72 6f 72 20 25 at "Error %
d230: 73 26 71 75 6f 74 3b 20 5b 68 74 74 70 3a 3a 73 s" [http::s
d240: 74 61 74 75 73 20 24 74 6f 6b 65 6e 5d 5d 0a 7d tatus $token]].}
d250: 0a 23 20 53 61 76 65 20 77 65 62 20 70 61 67 65 .# Save web page
d260: 20 74 6f 20 66 69 6c 65 0a 73 65 74 20 63 68 20 to file.set ch
d270: 5b 6f 70 65 6e 20 65 78 61 6d 70 6c 65 2e 68 74 [open example.ht
d280: 6d 6c 20 77 62 5d 0a 70 75 74 73 20 24 63 68 20 ml wb].puts $ch
d290: 5b 68 74 74 70 3a 3a 64 61 74 61 20 24 74 6f 6b [http::data $tok
d2a0: 65 6e 5d 0a 63 6c 6f 73 65 20 24 63 68 0a 23 20 en].close $ch.#
d2b0: 43 6c 65 61 6e 75 70 0a 3a 3a 68 74 74 70 3a 3a Cleanup.::http::
d2c0: 63 6c 65 61 6e 75 70 20 24 74 6f 6b 65 6e 0a 3c cleanup $token.<
d2d0: 2f 70 72 65 3e 0a 3c 70 3e 45 78 61 6d 70 6c 65 /pre>.<p>Example
d2e0: 20 23 32 3a 20 44 6f 77 6e 6c 6f 61 64 20 61 20 #2: Download a
d2f0: 66 69 6c 65 3c 2f 70 3e 0a 3c 70 72 65 20 63 6c file</p>.<pre cl
d300: 61 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 65 78 ass="doctools_ex
d310: 61 6d 70 6c 65 22 3e 0a 70 61 63 6b 61 67 65 20 ample">.package
d320: 72 65 71 75 69 72 65 20 68 74 74 70 0a 70 61 63 require http.pac
d330: 6b 61 67 65 20 72 65 71 75 69 72 65 20 74 6c 73 kage require tls
d340: 0a 73 65 74 20 75 72 6c 20 26 71 75 6f 74 3b 68 .set url "h
d350: 74 74 70 73 3a 2f 2f 77 69 6b 69 2e 74 63 6c 2d ttps://wiki.tcl-
d360: 6c 61 6e 67 2e 6f 72 67 2f 73 69 74 65 6d 61 70 lang.org/sitemap
d370: 2e 78 6d 6c 26 71 75 6f 74 3b 0a 68 74 74 70 3a .xml".http:
d380: 3a 72 65 67 69 73 74 65 72 20 68 74 74 70 73 20 :register https
d390: 34 34 33 20 5b 6c 69 73 74 20 3a 3a 74 6c 73 3a 443 [list ::tls:
d3a0: 3a 73 6f 63 6b 65 74 20 2d 61 75 74 6f 73 65 72 :socket -autoser
d3b0: 76 65 72 6e 61 6d 65 20 31 20 2d 72 65 71 75 69 vername 1 -requi
d3c0: 72 65 20 31 5d 0a 23 20 4f 70 65 6e 20 6f 75 74 re 1].# Open out
d3d0: 70 75 74 20 66 69 6c 65 0a 73 65 74 20 66 69 6c put file.set fil
d3e0: 65 6e 61 6d 65 20 5b 66 69 6c 65 20 74 61 69 6c ename [file tail
d3f0: 20 24 75 72 6c 5d 0a 73 65 74 20 63 68 20 5b 6f $url].set ch [o
d400: 70 65 6e 20 24 66 69 6c 65 6e 61 6d 65 20 77 62 pen $filename wb
d410: 5d 0a 23 20 47 65 74 20 66 69 6c 65 0a 73 65 74 ].# Get file.set
d420: 20 74 6f 6b 65 6e 20 5b 3a 3a 68 74 74 70 3a 3a token [::http::
d430: 67 65 74 75 72 6c 20 24 75 72 6c 20 2d 62 6c 6f geturl $url -blo
d440: 63 6b 73 69 7a 65 20 36 35 35 33 36 20 2d 63 68 cksize 65536 -ch
d450: 61 6e 6e 65 6c 20 24 63 68 5d 0a 23 20 43 68 65 annel $ch].# Che
d460: 63 6b 20 66 6f 72 20 65 72 72 6f 72 0a 69 66 20 ck for error.if
d470: 7b 5b 68 74 74 70 3a 3a 73 74 61 74 75 73 20 24 {[http::status $
d480: 74 6f 6b 65 6e 5d 20 6e 65 20 26 71 75 6f 74 3b token] ne "
d490: 6f 6b 26 71 75 6f 74 3b 7d 20 7b 0a 20 20 20 20 ok"} {.
d4a0: 70 75 74 73 20 5b 66 6f 72 6d 61 74 20 26 71 75 puts [format &qu
d4b0: 6f 74 3b 45 72 72 6f 72 20 25 73 26 71 75 6f 74 ot;Error %s"
d4c0: 3b 20 5b 68 74 74 70 3a 3a 73 74 61 74 75 73 20 ; [http::status
d4d0: 24 74 6f 6b 65 6e 5d 5d 0a 7d 0a 23 20 43 6c 65 $token]].}.# Cle
d4e0: 61 6e 75 70 0a 63 6c 6f 73 65 20 24 63 68 0a 3a anup.close $ch.:
d4f0: 3a 68 74 74 70 3a 3a 63 6c 65 61 6e 75 70 20 24 :http::cleanup $
d500: 74 6f 6b 65 6e 0a 3c 2f 70 72 65 3e 0a 3c 2f 64 token.</pre>.</d
d510: 69 76 3e 0a 3c 64 69 76 20 69 64 3d 22 73 65 63 iv>.<div id="sec
d520: 74 69 6f 6e 38 22 20 63 6c 61 73 73 3d 22 64 6f tion8" class="do
d530: 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e ctools_section">
d540: 3c 68 32 3e 3c 61 20 6e 61 6d 65 3d 22 73 65 63 <h2><a name="sec
d550: 74 69 6f 6e 38 22 3e 53 70 65 63 69 61 6c 20 43 tion8">Special C
d560: 6f 6e 73 69 64 65 72 61 74 69 6f 6e 73 3c 2f 61 onsiderations</a
d570: 3e 3c 2f 68 32 3e 0a 3c 70 3e 54 68 65 20 63 61 ></h2>.<p>The ca
d580: 70 61 62 69 6c 69 74 69 65 73 20 6f 66 20 74 68 pabilities of th
d590: 69 73 20 70 61 63 6b 61 67 65 20 63 61 6e 20 76 is package can v
d5a0: 61 72 79 20 65 6e 6f 72 6d 6f 75 73 6c 79 20 62 ary enormously b
d5b0: 61 73 65 64 20 75 70 6f 6e 20 68 6f 77 20 74 68 ased upon how th
d5c0: 65 0a 6c 69 6e 6b 65 64 20 74 6f 20 4f 70 65 6e e.linked to Open
d5d0: 53 53 4c 20 6c 69 62 72 61 72 79 20 77 61 73 20 SSL library was
d5e0: 63 6f 6e 66 69 67 75 72 65 64 20 61 6e 64 20 62 configured and b
d5f0: 75 69 6c 74 2e 20 4e 65 77 20 76 65 72 73 69 6f uilt. New versio
d600: 6e 73 20 6d 61 79 20 6f 62 73 6f 6c 65 74 65 0a ns may obsolete.
d610: 6f 6c 64 65 72 20 70 72 6f 74 6f 63 6f 6c 20 76 older protocol v
d620: 65 72 73 69 6f 6e 73 2c 20 61 64 64 20 6f 72 20 ersions, add or
d630: 72 65 6d 6f 76 65 20 63 69 70 68 65 72 73 2c 20 remove ciphers,
d640: 63 68 61 6e 67 65 20 64 65 66 61 75 6c 74 20 76 change default v
d650: 61 6c 75 65 73 2c 20 65 74 63 2e 0a 55 73 65 20 alues, etc..Use
d660: 74 68 65 20 3c 62 20 63 6c 61 73 73 3d 22 63 6d the <b class="cm
d670: 64 22 3e 74 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c d">tls::protocol
d680: 73 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 74 6f s</b> command to
d690: 20 6f 62 74 61 69 6e 20 74 68 65 20 73 75 70 70 obtain the supp
d6a0: 6f 72 74 65 64 0a 70 72 6f 74 6f 63 6f 6c 20 76 orted.protocol v
d6b0: 65 72 73 69 6f 6e 73 2e 3c 2f 70 3e 0a 3c 2f 64 ersions.</p>.</d
d6c0: 69 76 3e 0a 3c 64 69 76 20 69 64 3d 22 73 65 65 iv>.<div id="see
d6d0: 2d 61 6c 73 6f 22 20 63 6c 61 73 73 3d 22 64 6f -also" class="do
d6e0: 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e ctools_section">
d6f0: 3c 68 32 3e 3c 61 20 6e 61 6d 65 3d 22 73 65 65 <h2><a name="see
d700: 2d 61 6c 73 6f 22 3e 53 65 65 20 41 6c 73 6f 3c -also">See Also<
d710: 2f 61 3e 3c 2f 68 32 3e 0a 3c 70 3e 3c 61 20 68 /a></h2>.<p><a h
d720: 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77 ref="https://www
d730: 2e 6f 70 65 6e 73 73 6c 2e 6f 72 67 2f 22 3e 4f .openssl.org/">O
d740: 70 65 6e 53 53 4c 3c 2f 61 3e 2c 20 68 74 74 70 penSSL</a>, http
d750: 2c 20 73 6f 63 6b 65 74 3c 2f 70 3e 0a 3c 2f 64 , socket</p>.</d
d760: 69 76 3e 0a 3c 64 69 76 20 69 64 3d 22 6b 65 79 iv>.<div id="key
d770: 77 6f 72 64 73 22 20 63 6c 61 73 73 3d 22 64 6f words" class="do
d780: 63 74 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e ctools_section">
d790: 3c 68 32 3e 3c 61 20 6e 61 6d 65 3d 22 6b 65 79 <h2><a name="key
d7a0: 77 6f 72 64 73 22 3e 4b 65 79 77 6f 72 64 73 3c words">Keywords<
d7b0: 2f 61 3e 3c 2f 68 32 3e 0a 3c 70 3e 49 2f 4f 2c /a></h2>.<p>I/O,
d7c0: 20 49 50 20 41 64 64 72 65 73 73 2c 20 4f 70 65 IP Address, Ope
d7d0: 6e 53 53 4c 2c 20 53 53 4c 2c 20 54 43 50 2c 20 nSSL, SSL, TCP,
d7e0: 54 4c 53 2c 20 54 63 6c 54 4c 53 2c 20 61 73 79 TLS, TclTLS, asy
d7f0: 6e 63 68 72 6f 6e 6f 75 73 20 49 2f 4f 2c 20 62 nchronous I/O, b
d800: 69 6e 64 2c 20 63 65 72 74 69 66 69 63 61 74 65 ind, certificate
d810: 2c 20 63 68 61 6e 6e 65 6c 2c 20 63 6f 6e 6e 65 , channel, conne
d820: 63 74 69 6f 6e 2c 20 64 6f 6d 61 69 6e 20 6e 61 ction, domain na
d830: 6d 65 2c 20 68 6f 73 74 2c 20 68 74 74 70 73 2c me, host, https,
d840: 20 6e 65 74 77 6f 72 6b 2c 20 6e 65 74 77 6f 72 network, networ
d850: 6b 20 61 64 64 72 65 73 73 2c 20 73 6f 63 6b 65 k address, socke
d860: 74 2c 20 74 6c 73 3c 2f 70 3e 0a 3c 2f 64 69 76 t, tls</p>.</div
d870: 3e 0a 3c 64 69 76 20 69 64 3d 22 63 61 74 65 67 >.<div id="categ
d880: 6f 72 79 22 20 63 6c 61 73 73 3d 22 64 6f 63 74 ory" class="doct
d890: 6f 6f 6c 73 5f 73 65 63 74 69 6f 6e 22 3e 3c 68 ools_section"><h
d8a0: 32 3e 3c 61 20 6e 61 6d 65 3d 22 63 61 74 65 67 2><a name="categ
d8b0: 6f 72 79 22 3e 43 61 74 65 67 6f 72 79 3c 2f 61 ory">Category</a
d8c0: 3e 3c 2f 68 32 3e 0a 3c 70 3e 74 6c 73 3c 2f 70 ></h2>.<p>tls</p
d8d0: 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 69 64 >.</div>.<div id
d8e0: 3d 22 63 6f 70 79 72 69 67 68 74 22 20 63 6c 61 ="copyright" cla
d8f0: 73 73 3d 22 64 6f 63 74 6f 6f 6c 73 5f 73 65 63 ss="doctools_sec
d900: 74 69 6f 6e 22 3e 3c 68 32 3e 3c 61 20 6e 61 6d tion"><h2><a nam
d910: 65 3d 22 63 6f 70 79 72 69 67 68 74 22 3e 43 6f e="copyright">Co
d920: 70 79 72 69 67 68 74 3c 2f 61 3e 3c 2f 68 32 3e pyright</a></h2>
d930: 0a 3c 70 3e 43 6f 70 79 72 69 67 68 74 20 26 63 .<p>Copyright &c
d940: 6f 70 79 3b 20 31 39 39 39 20 4d 61 74 74 20 4e opy; 1999 Matt N
d950: 65 77 6d 61 6e 3c 62 72 3e 0a 43 6f 70 79 72 69 ewman<br>.Copyri
d960: 67 68 74 20 26 63 6f 70 79 3b 20 32 30 30 34 20 ght © 2004
d970: 53 74 61 72 66 69 73 68 20 53 79 73 74 65 6d 73 Starfish Systems
d980: 3c 62 72 3e 0a 43 6f 70 79 72 69 67 68 74 20 26 <br>.Copyright &
d990: 63 6f 70 79 3b 20 32 30 32 34 20 42 72 69 61 6e copy; 2024 Brian
d9a0: 20 4f 27 48 61 67 61 6e 3c 2f 70 3e 0a 3c 2f 64 O'Hagan</p>.</d
d9b0: 69 76 3e 0a 3c 2f 64 69 76 3e 3c 2f 62 6f 64 79 iv>.</div></body
d9c0: 3e 3c 2f 68 74 6d 6c 3e 0a ></html>.