Hex Artifact Content

Artifact 1534a801996a0d6d381d3f75f05ad5cde965f5ec67cc13e42240d8dc199f5fd4:


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 &amp;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 &amp;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 &amp;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 &quot;Tcl TL
0890: 53 20 65 78 74 65 6e 73 69 6f 6e 26 71 75 6f 74  S extension&quot
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 &quot;<
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>&quot
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 &quot;
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 &quot;<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>&quot; 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 &quot;<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>&quot; 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   &quot;<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>&quot;, 
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 &quot;<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>&quot;
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>&quot; 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 &quot;<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>&quot;, 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  &quot;<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>&quot;.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  &quot;<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>&quot;..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>&quot; 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 &quot;<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>&quot;.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 &quot;<
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>&quot; 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/&quot;.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  &quot;ok&quot;} 
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 &quot;Error %
d230: 73 26 71 75 6f 74 3b 20 5b 68 74 74 70 3a 3a 73  s&quot; [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 &quot;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&quot;.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 &quot;
d490: 6f 6b 26 71 75 6f 74 3b 7d 20 7b 0a 20 20 20 20  ok&quot;} {.    
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&quot
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 &copy; 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>.