Hex Artifact Content

Artifact fdf809c1adbe5bd04bf6886286b69aa65873a59e330c8c901b14153d2ca9e809:


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