Hex Artifact Content

Artifact c006a48fc44e358217bc773c0710fcec5d9a1f89928ff99fa5b08184e08dd141:


0000: 27 5c 22 0a 27 5c 22 20 47 65 6e 65 72 61 74 65  '\".'\" Generate
0010: 64 20 66 72 6f 6d 20 66 69 6c 65 20 27 74 6c 73  d from file 'tls
0020: 5c 26 2e 6d 61 6e 27 20 62 79 20 74 63 6c 6c 69  \&.man' by tclli
0030: 62 2f 64 6f 63 74 6f 6f 6c 73 20 77 69 74 68 20  b/doctools with 
0040: 66 6f 72 6d 61 74 20 27 6e 72 6f 66 66 27 0a 27  format 'nroff'.'
0050: 5c 22 20 43 6f 70 79 72 69 67 68 74 20 28 63 29  \" Copyright (c)
0060: 20 31 39 39 39 20 4d 61 74 74 20 4e 65 77 6d 61   1999 Matt Newma
0070: 6e 0a 27 5c 22 20 43 6f 70 79 72 69 67 68 74 20  n.'\" Copyright 
0080: 28 63 29 20 32 30 30 34 20 53 74 61 72 66 69 73  (c) 2004 Starfis
0090: 68 20 53 79 73 74 65 6d 73 0a 27 5c 22 20 43 6f  h Systems.'\" Co
00a0: 70 79 72 69 67 68 74 20 28 63 29 20 32 30 32 34  pyright (c) 2024
00b0: 20 42 72 69 61 6e 20 4f 27 48 61 67 61 6e 0a 27   Brian O'Hagan.'
00c0: 5c 22 0a 2e 54 48 20 22 74 6c 73 22 20 6e 20 32  \"..TH "tls" n 2
00d0: 5c 26 2e 30 20 74 6c 73 20 22 54 63 6c 20 54 4c  \&.0 tls "Tcl TL
00e0: 53 20 65 78 74 65 6e 73 69 6f 6e 22 0a 2e 5c 22  S extension"..\"
00f0: 20 54 68 65 20 2d 2a 2d 20 6e 72 6f 66 66 20 2d   The -*- nroff -
0100: 2a 2d 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 62  *- definitions b
0110: 65 6c 6f 77 20 61 72 65 20 66 6f 72 20 73 75 70  elow are for sup
0120: 70 6c 65 6d 65 6e 74 61 6c 20 6d 61 63 72 6f 73  plemental macros
0130: 20 75 73 65 64 0a 2e 5c 22 20 69 6e 20 54 63 6c   used..\" in Tcl
0140: 2f 54 6b 20 6d 61 6e 75 61 6c 20 65 6e 74 72 69  /Tk manual entri
0150: 65 73 2e 0a 2e 5c 22 0a 2e 5c 22 20 2e 41 50 20  es...\"..\" .AP 
0160: 74 79 70 65 20 6e 61 6d 65 20 69 6e 2f 6f 75 74  type name in/out
0170: 20 3f 69 6e 64 65 6e 74 3f 0a 2e 5c 22 09 53 74   ?indent?..\".St
0180: 61 72 74 20 70 61 72 61 67 72 61 70 68 20 64 65  art paragraph de
0190: 73 63 72 69 62 69 6e 67 20 61 6e 20 61 72 67 75  scribing an argu
01a0: 6d 65 6e 74 20 74 6f 20 61 20 6c 69 62 72 61 72  ment to a librar
01b0: 79 20 70 72 6f 63 65 64 75 72 65 2e 0a 2e 5c 22  y procedure...\"
01c0: 09 74 79 70 65 20 69 73 20 74 79 70 65 20 6f 66  .type is type of
01d0: 20 61 72 67 75 6d 65 6e 74 20 28 69 6e 74 2c 20   argument (int, 
01e0: 65 74 63 2e 29 2c 20 69 6e 2f 6f 75 74 20 69 73  etc.), in/out is
01f0: 20 65 69 74 68 65 72 20 22 69 6e 22 2c 20 22 6f   either "in", "o
0200: 75 74 22 2c 0a 2e 5c 22 09 6f 72 20 22 69 6e 2f  ut",..\".or "in/
0210: 6f 75 74 22 20 74 6f 20 64 65 73 63 72 69 62 65  out" to describe
0220: 20 77 68 65 74 68 65 72 20 70 72 6f 63 65 64 75   whether procedu
0230: 72 65 20 72 65 61 64 73 20 6f 72 20 6d 6f 64 69  re reads or modi
0240: 66 69 65 73 20 61 72 67 2c 0a 2e 5c 22 09 61 6e  fies arg,..\".an
0250: 64 20 69 6e 64 65 6e 74 20 69 73 20 65 71 75 69  d indent is equi
0260: 76 61 6c 65 6e 74 20 74 6f 20 73 65 63 6f 6e 64  valent to second
0270: 20 61 72 67 20 6f 66 20 2e 49 50 20 28 73 68 6f   arg of .IP (sho
0280: 75 6c 64 6e 27 74 20 65 76 65 72 20 62 65 0a 2e  uldn't ever be..
0290: 5c 22 09 6e 65 65 64 65 64 3b 20 20 75 73 65 20  \".needed;  use 
02a0: 2e 41 53 20 62 65 6c 6f 77 20 69 6e 73 74 65 61  .AS below instea
02b0: 64 29 0a 2e 5c 22 0a 2e 5c 22 20 2e 41 53 20 3f  d)..\"..\" .AS ?
02c0: 74 79 70 65 3f 20 3f 6e 61 6d 65 3f 0a 2e 5c 22  type? ?name?..\"
02d0: 09 47 69 76 65 20 6d 61 78 69 6d 75 6d 20 73 69  .Give maximum si
02e0: 7a 65 73 20 6f 66 20 61 72 67 75 6d 65 6e 74 73  zes of arguments
02f0: 20 66 6f 72 20 73 65 74 74 69 6e 67 20 74 61 62   for setting tab
0300: 20 73 74 6f 70 73 2e 20 20 54 79 70 65 20 61 6e   stops.  Type an
0310: 64 0a 2e 5c 22 09 6e 61 6d 65 20 61 72 65 20 65  d..\".name are e
0320: 78 61 6d 70 6c 65 73 20 6f 66 20 6c 61 72 67 65  xamples of large
0330: 73 74 20 70 6f 73 73 69 62 6c 65 20 61 72 67 75  st possible argu
0340: 6d 65 6e 74 73 20 74 68 61 74 20 77 69 6c 6c 20  ments that will 
0350: 62 65 20 70 61 73 73 65 64 0a 2e 5c 22 09 74 6f  be passed..\".to
0360: 20 2e 41 50 20 6c 61 74 65 72 2e 20 20 49 66 20   .AP later.  If 
0370: 61 72 67 73 20 61 72 65 20 6f 6d 69 74 74 65 64  args are omitted
0380: 2c 20 64 65 66 61 75 6c 74 20 74 61 62 20 73 74  , default tab st
0390: 6f 70 73 20 61 72 65 20 75 73 65 64 2e 0a 2e 5c  ops are used...\
03a0: 22 0a 2e 5c 22 20 2e 42 53 0a 2e 5c 22 09 53 74  "..\" .BS..\".St
03b0: 61 72 74 20 62 6f 78 20 65 6e 63 6c 6f 73 75 72  art box enclosur
03c0: 65 2e 20 20 46 72 6f 6d 20 68 65 72 65 20 75 6e  e.  From here un
03d0: 74 69 6c 20 6e 65 78 74 20 2e 42 45 2c 20 65 76  til next .BE, ev
03e0: 65 72 79 74 68 69 6e 67 20 77 69 6c 6c 20 62 65  erything will be
03f0: 0a 2e 5c 22 09 65 6e 63 6c 6f 73 65 64 20 69 6e  ..\".enclosed in
0400: 20 6f 6e 65 20 6c 61 72 67 65 20 62 6f 78 2e 0a   one large box..
0410: 2e 5c 22 0a 2e 5c 22 20 2e 42 45 0a 2e 5c 22 09  .\"..\" .BE..\".
0420: 45 6e 64 20 6f 66 20 62 6f 78 20 65 6e 63 6c 6f  End of box enclo
0430: 73 75 72 65 2e 0a 2e 5c 22 0a 2e 5c 22 20 2e 43  sure...\"..\" .C
0440: 53 0a 2e 5c 22 09 42 65 67 69 6e 20 63 6f 64 65  S..\".Begin code
0450: 20 65 78 63 65 72 70 74 2e 0a 2e 5c 22 0a 2e 5c   excerpt...\"..\
0460: 22 20 2e 43 45 0a 2e 5c 22 09 45 6e 64 20 63 6f  " .CE..\".End co
0470: 64 65 20 65 78 63 65 72 70 74 2e 0a 2e 5c 22 0a  de excerpt...\".
0480: 2e 5c 22 20 2e 56 53 20 3f 76 65 72 73 69 6f 6e  .\" .VS ?version
0490: 3f 20 3f 62 72 3f 0a 2e 5c 22 09 42 65 67 69 6e  ? ?br?..\".Begin
04a0: 20 76 65 72 74 69 63 61 6c 20 73 69 64 65 62 61   vertical sideba
04b0: 72 2c 20 66 6f 72 20 75 73 65 20 69 6e 20 6d 61  r, for use in ma
04c0: 72 6b 69 6e 67 20 6e 65 77 6c 79 2d 63 68 61 6e  rking newly-chan
04d0: 67 65 64 20 70 61 72 74 73 0a 2e 5c 22 09 6f 66  ged parts..\".of
04e0: 20 6d 61 6e 20 70 61 67 65 73 2e 20 20 54 68 65   man pages.  The
04f0: 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 20   first argument 
0500: 69 73 20 69 67 6e 6f 72 65 64 20 61 6e 64 20 75  is ignored and u
0510: 73 65 64 20 66 6f 72 20 72 65 63 6f 72 64 69 6e  sed for recordin
0520: 67 0a 2e 5c 22 09 74 68 65 20 76 65 72 73 69 6f  g..\".the versio
0530: 6e 20 77 68 65 6e 20 74 68 65 20 2e 56 53 20 77  n when the .VS w
0540: 61 73 20 61 64 64 65 64 2c 20 73 6f 20 74 68 61  as added, so tha
0550: 74 20 74 68 65 20 73 69 64 65 62 61 72 73 20 63  t the sidebars c
0560: 61 6e 20 62 65 0a 2e 5c 22 09 66 6f 75 6e 64 20  an be..\".found 
0570: 61 6e 64 20 72 65 6d 6f 76 65 64 20 77 68 65 6e  and removed when
0580: 20 74 68 65 79 20 72 65 61 63 68 20 61 20 63 65   they reach a ce
0590: 72 74 61 69 6e 20 61 67 65 2e 20 20 49 66 20 61  rtain age.  If a
05a0: 6e 6f 74 68 65 72 20 61 72 67 75 6d 65 6e 74 0a  nother argument.
05b0: 2e 5c 22 09 69 73 20 70 72 65 73 65 6e 74 2c 20  .\".is present, 
05c0: 74 68 65 6e 20 61 20 6c 69 6e 65 20 62 72 65 61  then a line brea
05d0: 6b 20 69 73 20 66 6f 72 63 65 64 20 62 65 66 6f  k is forced befo
05e0: 72 65 20 73 74 61 72 74 69 6e 67 20 74 68 65 20  re starting the 
05f0: 73 69 64 65 62 61 72 2e 0a 2e 5c 22 0a 2e 5c 22  sidebar...\"..\"
0600: 20 2e 56 45 0a 2e 5c 22 09 45 6e 64 20 6f 66 20   .VE..\".End of 
0610: 76 65 72 74 69 63 61 6c 20 73 69 64 65 62 61 72  vertical sidebar
0620: 2e 0a 2e 5c 22 0a 2e 5c 22 20 2e 44 53 0a 2e 5c  ...\"..\" .DS..\
0630: 22 09 42 65 67 69 6e 20 61 6e 20 69 6e 64 65 6e  ".Begin an inden
0640: 74 65 64 20 75 6e 66 69 6c 6c 65 64 20 64 69 73  ted unfilled dis
0650: 70 6c 61 79 2e 0a 2e 5c 22 0a 2e 5c 22 20 2e 44  play...\"..\" .D
0660: 45 0a 2e 5c 22 09 45 6e 64 20 6f 66 20 69 6e 64  E..\".End of ind
0670: 65 6e 74 65 64 20 75 6e 66 69 6c 6c 65 64 20 64  ented unfilled d
0680: 69 73 70 6c 61 79 2e 0a 2e 5c 22 0a 2e 5c 22 20  isplay...\"..\" 
0690: 2e 53 4f 20 3f 6d 61 6e 70 61 67 65 3f 0a 2e 5c  .SO ?manpage?..\
06a0: 22 09 53 74 61 72 74 20 6f 66 20 6c 69 73 74 20  ".Start of list 
06b0: 6f 66 20 73 74 61 6e 64 61 72 64 20 6f 70 74 69  of standard opti
06c0: 6f 6e 73 20 66 6f 72 20 61 20 54 6b 20 77 69 64  ons for a Tk wid
06d0: 67 65 74 2e 20 54 68 65 20 6d 61 6e 70 61 67 65  get. The manpage
06e0: 0a 2e 5c 22 09 61 72 67 75 6d 65 6e 74 20 64 65  ..\".argument de
06f0: 66 69 6e 65 73 20 77 68 65 72 65 20 74 6f 20 6c  fines where to l
0700: 6f 6f 6b 20 75 70 20 74 68 65 20 73 74 61 6e 64  ook up the stand
0710: 61 72 64 20 6f 70 74 69 6f 6e 73 3b 20 69 66 0a  ard options; if.
0720: 2e 5c 22 09 6f 6d 69 74 74 65 64 2c 20 64 65 66  .\".omitted, def
0730: 61 75 6c 74 73 20 74 6f 20 22 6f 70 74 69 6f 6e  aults to "option
0740: 73 22 2e 20 54 68 65 20 6f 70 74 69 6f 6e 73 20  s". The options 
0750: 66 6f 6c 6c 6f 77 20 6f 6e 20 73 75 63 63 65 73  follow on succes
0760: 73 69 76 65 0a 2e 5c 22 09 6c 69 6e 65 73 2c 20  sive..\".lines, 
0770: 69 6e 20 74 68 72 65 65 20 63 6f 6c 75 6d 6e 73  in three columns
0780: 20 73 65 70 61 72 61 74 65 64 20 62 79 20 74 61   separated by ta
0790: 62 73 2e 0a 2e 5c 22 0a 2e 5c 22 20 2e 53 45 0a  bs...\"..\" .SE.
07a0: 2e 5c 22 09 45 6e 64 20 6f 66 20 6c 69 73 74 20  .\".End of list 
07b0: 6f 66 20 73 74 61 6e 64 61 72 64 20 6f 70 74 69  of standard opti
07c0: 6f 6e 73 20 66 6f 72 20 61 20 54 6b 20 77 69 64  ons for a Tk wid
07d0: 67 65 74 2e 0a 2e 5c 22 0a 2e 5c 22 20 2e 4f 50  get...\"..\" .OP
07e0: 20 63 6d 64 4e 61 6d 65 20 64 62 4e 61 6d 65 20   cmdName dbName 
07f0: 64 62 43 6c 61 73 73 0a 2e 5c 22 09 53 74 61 72  dbClass..\".Star
0800: 74 20 6f 66 20 64 65 73 63 72 69 70 74 69 6f 6e  t of description
0810: 20 6f 66 20 61 20 73 70 65 63 69 66 69 63 20 6f   of a specific o
0820: 70 74 69 6f 6e 2e 20 20 63 6d 64 4e 61 6d 65 20  ption.  cmdName 
0830: 67 69 76 65 73 20 74 68 65 0a 2e 5c 22 09 6f 70  gives the..\".op
0840: 74 69 6f 6e 27 73 20 6e 61 6d 65 20 61 73 20 73  tion's name as s
0850: 70 65 63 69 66 69 65 64 20 69 6e 20 74 68 65 20  pecified in the 
0860: 63 6c 61 73 73 20 63 6f 6d 6d 61 6e 64 2c 20 64  class command, d
0870: 62 4e 61 6d 65 20 67 69 76 65 73 0a 2e 5c 22 09  bName gives..\".
0880: 74 68 65 20 6f 70 74 69 6f 6e 27 73 20 6e 61 6d  the option's nam
0890: 65 20 69 6e 20 74 68 65 20 6f 70 74 69 6f 6e 20  e in the option 
08a0: 64 61 74 61 62 61 73 65 2c 20 61 6e 64 20 64 62  database, and db
08b0: 43 6c 61 73 73 20 67 69 76 65 73 0a 2e 5c 22 09  Class gives..\".
08c0: 74 68 65 20 6f 70 74 69 6f 6e 27 73 20 63 6c 61  the option's cla
08d0: 73 73 20 69 6e 20 74 68 65 20 6f 70 74 69 6f 6e  ss in the option
08e0: 20 64 61 74 61 62 61 73 65 2e 0a 2e 5c 22 0a 2e   database...\"..
08f0: 5c 22 20 2e 55 4c 20 61 72 67 31 20 61 72 67 32  \" .UL arg1 arg2
0900: 0a 2e 5c 22 09 50 72 69 6e 74 20 61 72 67 31 20  ..\".Print arg1 
0910: 75 6e 64 65 72 6c 69 6e 65 64 2c 20 74 68 65 6e  underlined, then
0920: 20 70 72 69 6e 74 20 61 72 67 32 20 6e 6f 72 6d   print arg2 norm
0930: 61 6c 6c 79 2e 0a 2e 5c 22 0a 2e 5c 22 20 2e 51  ally...\"..\" .Q
0940: 57 20 61 72 67 31 20 3f 61 72 67 32 3f 0a 2e 5c  W arg1 ?arg2?..\
0950: 22 09 50 72 69 6e 74 20 61 72 67 31 20 69 6e 20  ".Print arg1 in 
0960: 71 75 6f 74 65 73 2c 20 74 68 65 6e 20 61 72 67  quotes, then arg
0970: 32 20 6e 6f 72 6d 61 6c 6c 79 20 28 66 6f 72 20  2 normally (for 
0980: 74 72 61 69 6c 69 6e 67 20 70 75 6e 63 74 75 61  trailing punctua
0990: 74 69 6f 6e 29 2e 0a 2e 5c 22 0a 2e 5c 22 20 2e  tion)...\"..\" .
09a0: 50 51 20 61 72 67 31 20 3f 61 72 67 32 3f 0a 2e  PQ arg1 ?arg2?..
09b0: 5c 22 09 50 72 69 6e 74 20 61 6e 20 6f 70 65 6e  \".Print an open
09c0: 20 70 61 72 65 6e 74 68 65 73 69 73 2c 20 61 72   parenthesis, ar
09d0: 67 31 20 69 6e 20 71 75 6f 74 65 73 2c 20 74 68  g1 in quotes, th
09e0: 65 6e 20 61 72 67 32 20 6e 6f 72 6d 61 6c 6c 79  en arg2 normally
09f0: 0a 2e 5c 22 09 28 66 6f 72 20 74 72 61 69 6c 69  ..\".(for traili
0a00: 6e 67 20 70 75 6e 63 74 75 61 74 69 6f 6e 29 20  ng punctuation) 
0a10: 61 6e 64 20 74 68 65 6e 20 61 20 63 6c 6f 73 69  and then a closi
0a20: 6e 67 20 70 61 72 65 6e 74 68 65 73 69 73 2e 0a  ng parenthesis..
0a30: 2e 5c 22 0a 2e 5c 22 09 23 20 53 65 74 20 75 70  .\"..\".# Set up
0a40: 20 74 72 61 70 73 20 61 6e 64 20 6f 74 68 65 72   traps and other
0a50: 20 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 73   miscellaneous s
0a60: 74 75 66 66 20 66 6f 72 20 54 63 6c 2f 54 6b 20  tuff for Tcl/Tk 
0a70: 6d 61 6e 20 70 61 67 65 73 2e 0a 2e 69 66 20 74  man pages...if t
0a80: 20 2e 77 68 20 2d 31 2e 33 69 20 5e 42 0a 2e 6e   .wh -1.3i ^B..n
0a90: 72 20 5e 6c 20 5c 6e 28 2e 6c 0a 2e 61 64 20 62  r ^l \n(.l..ad b
0aa0: 0a 2e 5c 22 09 23 20 53 74 61 72 74 20 61 6e 20  ..\".# Start an 
0ab0: 61 72 67 75 6d 65 6e 74 20 64 65 73 63 72 69 70  argument descrip
0ac0: 74 69 6f 6e 0a 2e 64 65 20 41 50 0a 2e 69 65 20  tion..de AP..ie 
0ad0: 21 22 5c 5c 24 34 22 22 20 2e 54 50 20 5c 5c 24  !"\\$4"" .TP \\$
0ae0: 34 0a 2e 65 6c 20 5c 7b 5c 0a 2e 20 20 20 69 65  4..el \{\..   ie
0af0: 20 21 22 5c 5c 24 32 22 22 20 2e 54 50 20 5c 5c   !"\\$2"" .TP \\
0b00: 6e 28 29 43 75 0a 2e 20 20 20 65 6c 20 20 20 20  n()Cu..   el    
0b10: 20 20 20 20 20 20 2e 54 50 20 31 35 0a 2e 5c 7d        .TP 15..\}
0b20: 0a 2e 74 61 20 5c 5c 6e 28 29 41 75 20 5c 5c 6e  ..ta \\n()Au \\n
0b30: 28 29 42 75 0a 2e 69 65 20 21 22 5c 5c 24 33 22  ()Bu..ie !"\\$3"
0b40: 22 20 5c 7b 5c 0a 5c 26 5c 5c 24 31 20 5c 5c 66  " \{\.\&\\$1 \\f
0b50: 49 5c 5c 24 32 5c 5c 66 50 20 28 5c 5c 24 33 29  I\\$2\\fP (\\$3)
0b60: 0a 2e 5c 22 2e 62 0a 2e 5c 7d 0a 2e 65 6c 20 5c  ..\".b..\}..el \
0b70: 7b 5c 0a 2e 62 72 0a 2e 69 65 20 21 22 5c 5c 24  {\..br..ie !"\\$
0b80: 32 22 22 20 5c 7b 5c 0a 5c 26 5c 5c 24 31 09 5c  2"" \{\.\&\\$1.\
0b90: 5c 66 49 5c 5c 24 32 5c 5c 66 50 0a 2e 5c 7d 0a  \fI\\$2\\fP..\}.
0ba0: 2e 65 6c 20 5c 7b 5c 0a 5c 26 5c 5c 66 49 5c 5c  .el \{\.\&\\fI\\
0bb0: 24 31 5c 5c 66 50 0a 2e 5c 7d 0a 2e 5c 7d 0a 2e  $1\\fP..\}..\}..
0bc0: 2e 0a 2e 5c 22 09 23 20 64 65 66 69 6e 65 20 74  ...\".# define t
0bd0: 61 62 62 69 6e 67 20 76 61 6c 75 65 73 20 66 6f  abbing values fo
0be0: 72 20 2e 41 50 0a 2e 64 65 20 41 53 0a 2e 6e 72  r .AP..de AS..nr
0bf0: 20 29 41 20 31 30 6e 0a 2e 69 66 20 21 22 5c 5c   )A 10n..if !"\\
0c00: 24 31 22 22 20 2e 6e 72 20 29 41 20 5c 5c 77 27  $1"" .nr )A \\w'
0c10: 5c 5c 24 31 27 75 2b 33 6e 0a 2e 6e 72 20 29 42  \\$1'u+3n..nr )B
0c20: 20 5c 5c 6e 28 29 41 75 2b 31 35 6e 0a 2e 5c 22   \\n()Au+15n..\"
0c30: 0a 2e 69 66 20 21 22 5c 5c 24 32 22 22 20 2e 6e  ..if !"\\$2"" .n
0c40: 72 20 29 42 20 5c 5c 77 27 5c 5c 24 32 27 75 2b  r )B \\w'\\$2'u+
0c50: 5c 5c 6e 28 29 41 75 2b 33 6e 0a 2e 6e 72 20 29  \\n()Au+3n..nr )
0c60: 43 20 5c 5c 6e 28 29 42 75 2b 5c 5c 77 27 28 69  C \\n()Bu+\\w'(i
0c70: 6e 2f 6f 75 74 29 27 75 2b 32 6e 0a 2e 2e 0a 2e  n/out)'u+2n.....
0c80: 41 53 20 54 63 6c 5f 49 6e 74 65 72 70 20 54 63  AS Tcl_Interp Tc
0c90: 6c 5f 43 72 65 61 74 65 49 6e 74 65 72 70 20 69  l_CreateInterp i
0ca0: 6e 2f 6f 75 74 0a 2e 5c 22 09 23 20 42 53 20 2d  n/out..\".# BS -
0cb0: 20 73 74 61 72 74 20 62 6f 78 65 64 20 74 65 78   start boxed tex
0cc0: 74 0a 2e 5c 22 09 23 20 5e 79 20 3d 20 73 74 61  t..\".# ^y = sta
0cd0: 72 74 69 6e 67 20 79 20 6c 6f 63 61 74 69 6f 6e  rting y location
0ce0: 0a 2e 5c 22 09 23 20 5e 62 20 3d 20 31 0a 2e 64  ..\".# ^b = 1..d
0cf0: 65 20 42 53 0a 2e 62 72 0a 2e 6d 6b 20 5e 79 0a  e BS..br..mk ^y.
0d00: 2e 6e 72 20 5e 62 20 31 75 0a 2e 69 66 20 6e 20  .nr ^b 1u..if n 
0d10: 2e 6e 66 0a 2e 69 66 20 6e 20 2e 74 69 20 30 0a  .nf..if n .ti 0.
0d20: 2e 69 66 20 6e 20 5c 6c 27 5c 5c 6e 28 2e 6c 75  .if n \l'\\n(.lu
0d30: 5c 28 75 6c 27 0a 2e 69 66 20 6e 20 2e 66 69 0a  \(ul'..if n .fi.
0d40: 2e 2e 0a 2e 5c 22 09 23 20 42 45 20 2d 20 65 6e  ....\".# BE - en
0d50: 64 20 62 6f 78 65 64 20 74 65 78 74 20 28 64 72  d boxed text (dr
0d60: 61 77 20 62 6f 78 20 6e 6f 77 29 0a 2e 64 65 20  aw box now)..de 
0d70: 42 45 0a 2e 6e 66 0a 2e 74 69 20 30 0a 2e 6d 6b  BE..nf..ti 0..mk
0d80: 20 5e 74 0a 2e 69 65 20 6e 20 5c 6c 27 5c 5c 6e   ^t..ie n \l'\\n
0d90: 28 5e 6c 75 5c 28 75 6c 27 0a 2e 65 6c 20 5c 7b  (^lu\(ul'..el \{
0da0: 5c 0a 2e 5c 22 09 44 72 61 77 20 66 6f 75 72 2d  \..\".Draw four-
0db0: 73 69 64 65 64 20 62 6f 78 20 6e 6f 72 6d 61 6c  sided box normal
0dc0: 6c 79 2c 20 62 75 74 20 64 6f 6e 27 74 20 64 72  ly, but don't dr
0dd0: 61 77 20 74 6f 70 20 6f 66 0a 2e 5c 22 09 62 6f  aw top of..\".bo
0de0: 78 20 69 66 20 74 68 65 20 62 6f 78 20 73 74 61  x if the box sta
0df0: 72 74 65 64 20 6f 6e 20 61 6e 20 65 61 72 6c 69  rted on an earli
0e00: 65 72 20 70 61 67 65 2e 0a 2e 69 65 20 21 5c 5c  er page...ie !\\
0e10: 6e 28 5e 62 2d 31 20 5c 7b 5c 0a 5c 68 27 2d 31  n(^b-1 \{\.\h'-1
0e20: 2e 35 6e 27 5c 4c 27 7c 5c 5c 6e 28 5e 79 75 2d  .5n'\L'|\\n(^yu-
0e30: 31 76 27 5c 6c 27 5c 5c 6e 28 5e 6c 75 2b 33 6e  1v'\l'\\n(^lu+3n
0e40: 5c 28 75 6c 27 5c 4c 27 5c 5c 6e 28 5e 74 75 2b  \(ul'\L'\\n(^tu+
0e50: 31 76 2d 5c 5c 6e 28 5e 79 75 27 5c 6c 27 7c 30  1v-\\n(^yu'\l'|0
0e60: 75 2d 31 2e 35 6e 5c 28 75 6c 27 0a 2e 5c 7d 0a  u-1.5n\(ul'..\}.
0e70: 2e 65 6c 20 5c 7d 5c 0a 5c 68 27 2d 31 2e 35 6e  .el \}\.\h'-1.5n
0e80: 27 5c 4c 27 7c 5c 5c 6e 28 5e 79 75 2d 31 76 27  '\L'|\\n(^yu-1v'
0e90: 5c 68 27 5c 5c 6e 28 5e 6c 75 2b 33 6e 27 5c 4c  \h'\\n(^lu+3n'\L
0ea0: 27 5c 5c 6e 28 5e 74 75 2b 31 76 2d 5c 5c 6e 28  '\\n(^tu+1v-\\n(
0eb0: 5e 79 75 27 5c 6c 27 7c 30 75 2d 31 2e 35 6e 5c  ^yu'\l'|0u-1.5n\
0ec0: 28 75 6c 27 0a 2e 5c 7d 0a 2e 5c 7d 0a 2e 66 69  (ul'..\}..\}..fi
0ed0: 0a 2e 62 72 0a 2e 6e 72 20 5e 62 20 30 0a 2e 2e  ..br..nr ^b 0...
0ee0: 0a 2e 5c 22 09 23 20 56 53 20 2d 20 73 74 61 72  ..\".# VS - star
0ef0: 74 20 76 65 72 74 69 63 61 6c 20 73 69 64 65 62  t vertical sideb
0f00: 61 72 0a 2e 5c 22 09 23 20 5e 59 20 3d 20 73 74  ar..\".# ^Y = st
0f10: 61 72 74 69 6e 67 20 79 20 6c 6f 63 61 74 69 6f  arting y locatio
0f20: 6e 0a 2e 5c 22 09 23 20 5e 76 20 3d 20 31 20 28  n..\".# ^v = 1 (
0f30: 66 6f 72 20 74 72 6f 66 66 3b 20 20 66 6f 72 20  for troff;  for 
0f40: 6e 72 6f 66 66 20 74 68 69 73 20 64 6f 65 73 6e  nroff this doesn
0f50: 27 74 20 6d 61 74 74 65 72 29 0a 2e 64 65 20 56  't matter)..de V
0f60: 53 0a 2e 69 66 20 21 22 5c 5c 24 32 22 22 20 2e  S..if !"\\$2"" .
0f70: 62 72 0a 2e 6d 6b 20 5e 59 0a 2e 69 65 20 6e 20  br..mk ^Y..ie n 
0f80: 27 6d 63 20 5c 73 31 32 5c 28 62 72 5c 73 30 0a  'mc \s12\(br\s0.
0f90: 2e 65 6c 20 2e 6e 72 20 5e 76 20 31 75 0a 2e 2e  .el .nr ^v 1u...
0fa0: 0a 2e 5c 22 09 23 20 56 45 20 2d 20 65 6e 64 20  ..\".# VE - end 
0fb0: 6f 66 20 76 65 72 74 69 63 61 6c 20 73 69 64 65  of vertical side
0fc0: 62 61 72 0a 2e 64 65 20 56 45 0a 2e 69 65 20 6e  bar..de VE..ie n
0fd0: 20 27 6d 63 0a 2e 65 6c 20 5c 7b 5c 0a 2e 65 76   'mc..el \{\..ev
0fe0: 20 32 0a 2e 6e 66 0a 2e 74 69 20 30 0a 2e 6d 6b   2..nf..ti 0..mk
0ff0: 20 5e 74 0a 5c 68 27 7c 5c 5c 6e 28 5e 6c 75 2b   ^t.\h'|\\n(^lu+
1000: 33 6e 27 5c 4c 27 7c 5c 5c 6e 28 5e 59 75 2d 31  3n'\L'|\\n(^Yu-1
1010: 76 5c 28 62 76 27 5c 76 27 5c 5c 6e 28 5e 74 75  v\(bv'\v'\\n(^tu
1020: 2b 31 76 2d 5c 5c 6e 28 5e 59 75 27 5c 68 27 2d  +1v-\\n(^Yu'\h'-
1030: 7c 5c 5c 6e 28 5e 6c 75 2b 33 6e 27 0a 2e 73 70  |\\n(^lu+3n'..sp
1040: 20 2d 31 0a 2e 66 69 0a 2e 65 76 0a 2e 5c 7d 0a   -1..fi..ev..\}.
1050: 2e 6e 72 20 5e 76 20 30 0a 2e 2e 0a 2e 5c 22 09  .nr ^v 0.....\".
1060: 23 20 53 70 65 63 69 61 6c 20 6d 61 63 72 6f 20  # Special macro 
1070: 74 6f 20 68 61 6e 64 6c 65 20 70 61 67 65 20 62  to handle page b
1080: 6f 74 74 6f 6d 3a 20 20 66 69 6e 69 73 68 20 6f  ottom:  finish o
1090: 66 66 20 63 75 72 72 65 6e 74 0a 2e 5c 22 09 23  ff current..\".#
10a0: 20 62 6f 78 2f 73 69 64 65 62 61 72 20 69 66 20   box/sidebar if 
10b0: 69 6e 20 62 6f 78 2f 73 69 64 65 62 61 72 20 6d  in box/sidebar m
10c0: 6f 64 65 2c 20 74 68 65 6e 20 69 6e 76 6f 6b 65  ode, then invoke
10d0: 64 20 73 74 61 6e 64 61 72 64 0a 2e 5c 22 09 23  d standard..\".#
10e0: 20 70 61 67 65 20 62 6f 74 74 6f 6d 20 6d 61 63   page bottom mac
10f0: 72 6f 2e 0a 2e 64 65 20 5e 42 0a 2e 65 76 20 32  ro...de ^B..ev 2
1100: 0a 27 74 69 20 30 0a 27 6e 66 0a 2e 6d 6b 20 5e  .'ti 0.'nf..mk ^
1110: 74 0a 2e 69 66 20 5c 5c 6e 28 5e 62 20 5c 7b 5c  t..if \\n(^b \{\
1120: 0a 2e 5c 22 09 44 72 61 77 20 74 68 72 65 65 2d  ..\".Draw three-
1130: 73 69 64 65 64 20 62 6f 78 20 69 66 20 74 68 69  sided box if thi
1140: 73 20 69 73 20 74 68 65 20 62 6f 78 27 73 20 66  s is the box's f
1150: 69 72 73 74 20 70 61 67 65 2c 0a 2e 5c 22 09 64  irst page,..\".d
1160: 72 61 77 20 74 77 6f 20 73 69 64 65 73 20 62 75  raw two sides bu
1170: 74 20 6e 6f 20 74 6f 70 20 6f 74 68 65 72 77 69  t no top otherwi
1180: 73 65 2e 0a 2e 69 65 20 21 5c 5c 6e 28 5e 62 2d  se...ie !\\n(^b-
1190: 31 20 5c 68 27 2d 31 2e 35 6e 27 5c 4c 27 7c 5c  1 \h'-1.5n'\L'|\
11a0: 5c 6e 28 5e 79 75 2d 31 76 27 5c 6c 27 5c 5c 6e  \n(^yu-1v'\l'\\n
11b0: 28 5e 6c 75 2b 33 6e 5c 28 75 6c 27 5c 4c 27 5c  (^lu+3n\(ul'\L'\
11c0: 5c 6e 28 5e 74 75 2b 31 76 2d 5c 5c 6e 28 5e 79  \n(^tu+1v-\\n(^y
11d0: 75 27 5c 68 27 7c 30 75 27 5c 63 0a 2e 65 6c 20  u'\h'|0u'\c..el 
11e0: 5c 68 27 2d 31 2e 35 6e 27 5c 4c 27 7c 5c 5c 6e  \h'-1.5n'\L'|\\n
11f0: 28 5e 79 75 2d 31 76 27 5c 68 27 5c 5c 6e 28 5e  (^yu-1v'\h'\\n(^
1200: 6c 75 2b 33 6e 27 5c 4c 27 5c 5c 6e 28 5e 74 75  lu+3n'\L'\\n(^tu
1210: 2b 31 76 2d 5c 5c 6e 28 5e 79 75 27 5c 68 27 7c  +1v-\\n(^yu'\h'|
1220: 30 75 27 5c 63 0a 2e 5c 7d 0a 2e 69 66 20 5c 5c  0u'\c..\}..if \\
1230: 6e 28 5e 76 20 5c 7b 5c 0a 2e 6e 72 20 5e 78 20  n(^v \{\..nr ^x 
1240: 5c 5c 6e 28 5e 74 75 2b 31 76 2d 5c 5c 6e 28 5e  \\n(^tu+1v-\\n(^
1250: 59 75 0a 5c 6b 78 5c 68 27 2d 5c 5c 6e 78 75 27  Yu.\kx\h'-\\nxu'
1260: 5c 68 27 7c 5c 5c 6e 28 5e 6c 75 2b 33 6e 27 5c  \h'|\\n(^lu+3n'\
1270: 6b 79 5c 4c 27 2d 5c 5c 6e 28 5e 78 75 27 5c 76  ky\L'-\\n(^xu'\v
1280: 27 5c 5c 6e 28 5e 78 75 27 5c 68 27 7c 30 75 27  '\\n(^xu'\h'|0u'
1290: 5c 63 0a 2e 5c 7d 0a 2e 62 70 0a 27 66 69 0a 2e  \c..\}..bp.'fi..
12a0: 65 76 0a 2e 69 66 20 5c 5c 6e 28 5e 62 20 5c 7b  ev..if \\n(^b \{
12b0: 5c 0a 2e 6d 6b 20 5e 79 0a 2e 6e 72 20 5e 62 20  \..mk ^y..nr ^b 
12c0: 32 0a 2e 5c 7d 0a 2e 69 66 20 5c 5c 6e 28 5e 76  2..\}..if \\n(^v
12d0: 20 5c 7b 5c 0a 2e 6d 6b 20 5e 59 0a 2e 5c 7d 0a   \{\..mk ^Y..\}.
12e0: 2e 2e 0a 2e 5c 22 09 23 20 44 53 20 2d 20 62 65  ....\".# DS - be
12f0: 67 69 6e 20 64 69 73 70 6c 61 79 0a 2e 64 65 20  gin display..de 
1300: 44 53 0a 2e 52 53 0a 2e 6e 66 0a 2e 73 70 0a 2e  DS..RS..nf..sp..
1310: 2e 0a 2e 5c 22 09 23 20 44 45 20 2d 20 65 6e 64  ...\".# DE - end
1320: 20 64 69 73 70 6c 61 79 0a 2e 64 65 20 44 45 0a   display..de DE.
1330: 2e 66 69 0a 2e 52 45 0a 2e 73 70 0a 2e 2e 0a 2e  .fi..RE..sp.....
1340: 5c 22 09 23 20 53 4f 20 2d 20 73 74 61 72 74 20  \".# SO - start 
1350: 6f 66 20 6c 69 73 74 20 6f 66 20 73 74 61 6e 64  of list of stand
1360: 61 72 64 20 6f 70 74 69 6f 6e 73 0a 2e 64 65 20  ard options..de 
1370: 53 4f 0a 27 69 65 20 27 5c 5c 24 31 27 27 20 2e  SO.'ie '\\$1'' .
1380: 64 73 20 53 6f 20 5c 5c 66 42 6f 70 74 69 6f 6e  ds So \\fBoption
1390: 73 5c 5c 66 52 0a 27 65 6c 20 2e 64 73 20 53 6f  s\\fR.'el .ds So
13a0: 20 5c 5c 66 42 5c 5c 24 31 5c 5c 66 52 0a 2e 53   \\fB\\$1\\fR..S
13b0: 48 20 22 53 54 41 4e 44 41 52 44 20 4f 50 54 49  H "STANDARD OPTI
13c0: 4f 4e 53 22 0a 2e 4c 50 0a 2e 6e 66 0a 2e 74 61  ONS"..LP..nf..ta
13d0: 20 35 2e 35 63 20 31 31 63 0a 2e 66 74 20 42 0a   5.5c 11c..ft B.
13e0: 2e 2e 0a 2e 5c 22 09 23 20 53 45 20 2d 20 65 6e  ....\".# SE - en
13f0: 64 20 6f 66 20 6c 69 73 74 20 6f 66 20 73 74 61  d of list of sta
1400: 6e 64 61 72 64 20 6f 70 74 69 6f 6e 73 0a 2e 64  ndard options..d
1410: 65 20 53 45 0a 2e 66 69 0a 2e 66 74 20 52 0a 2e  e SE..fi..ft R..
1420: 4c 50 0a 53 65 65 20 74 68 65 20 5c 5c 2a 28 53  LP.See the \\*(S
1430: 6f 20 6d 61 6e 75 61 6c 20 65 6e 74 72 79 20 66  o manual entry f
1440: 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 74 68  or details on th
1450: 65 20 73 74 61 6e 64 61 72 64 20 6f 70 74 69 6f  e standard optio
1460: 6e 73 2e 0a 2e 2e 0a 2e 5c 22 09 23 20 4f 50 20  ns......\".# OP 
1470: 2d 20 73 74 61 72 74 20 6f 66 20 66 75 6c 6c 20  - start of full 
1480: 64 65 73 63 72 69 70 74 69 6f 6e 20 66 6f 72 20  description for 
1490: 61 20 73 69 6e 67 6c 65 20 6f 70 74 69 6f 6e 0a  a single option.
14a0: 2e 64 65 20 4f 50 0a 2e 4c 50 0a 2e 6e 66 0a 2e  .de OP..LP..nf..
14b0: 74 61 20 34 63 0a 43 6f 6d 6d 61 6e 64 2d 4c 69  ta 4c.Command-Li
14c0: 6e 65 20 4e 61 6d 65 3a 09 5c 5c 66 42 5c 5c 24  ne Name:.\\fB\\$
14d0: 31 5c 5c 66 52 0a 44 61 74 61 62 61 73 65 20 4e  1\\fR.Database N
14e0: 61 6d 65 3a 09 5c 5c 66 42 5c 5c 24 32 5c 5c 66  ame:.\\fB\\$2\\f
14f0: 52 0a 44 61 74 61 62 61 73 65 20 43 6c 61 73 73  R.Database Class
1500: 3a 09 5c 5c 66 42 5c 5c 24 33 5c 5c 66 52 0a 2e  :.\\fB\\$3\\fR..
1510: 66 69 0a 2e 49 50 0a 2e 2e 0a 2e 5c 22 09 23 20  fi..IP.....\".# 
1520: 43 53 20 2d 20 62 65 67 69 6e 20 63 6f 64 65 20  CS - begin code 
1530: 65 78 63 65 72 70 74 0a 2e 64 65 20 43 53 0a 2e  excerpt..de CS..
1540: 52 53 0a 2e 6e 66 0a 2e 74 61 20 2e 32 35 69 20  RS..nf..ta .25i 
1550: 2e 35 69 20 2e 37 35 69 20 31 69 0a 2e 2e 0a 2e  .5i .75i 1i.....
1560: 5c 22 09 23 20 43 45 20 2d 20 65 6e 64 20 63 6f  \".# CE - end co
1570: 64 65 20 65 78 63 65 72 70 74 0a 2e 64 65 20 43  de excerpt..de C
1580: 45 0a 2e 66 69 0a 2e 52 45 0a 2e 2e 0a 2e 5c 22  E..fi..RE.....\"
1590: 09 23 20 55 4c 20 2d 20 75 6e 64 65 72 6c 69 6e  .# UL - underlin
15a0: 65 20 77 6f 72 64 0a 2e 64 65 20 55 4c 0a 5c 5c  e word..de UL.\\
15b0: 24 31 5c 6c 27 7c 30 5c 28 75 6c 27 5c 5c 24 32  $1\l'|0\(ul'\\$2
15c0: 0a 2e 2e 0a 2e 5c 22 09 23 20 51 57 20 2d 20 61  .....\".# QW - a
15d0: 70 70 6c 79 20 71 75 6f 74 61 74 69 6f 6e 20 6d  pply quotation m
15e0: 61 72 6b 73 20 74 6f 20 77 6f 72 64 0a 2e 64 65  arks to word..de
15f0: 20 51 57 0a 2e 69 65 20 27 5c 5c 2a 28 6c 71 27   QW..ie '\\*(lq'
1600: 22 27 20 60 60 5c 5c 24 31 27 27 5c 5c 24 32 0a  "' ``\\$1''\\$2.
1610: 2e 5c 22 22 20 66 69 78 20 65 6d 61 63 73 20 68  .\"" fix emacs h
1620: 69 67 68 6c 69 67 68 74 69 6e 67 0a 2e 65 6c 20  ighlighting..el 
1630: 5c 5c 2a 28 6c 71 5c 5c 24 31 5c 5c 2a 28 72 71  \\*(lq\\$1\\*(rq
1640: 5c 5c 24 32 0a 2e 2e 0a 2e 5c 22 09 23 20 50 51  \\$2.....\".# PQ
1650: 20 2d 20 61 70 70 6c 79 20 70 61 72 65 6e 73 20   - apply parens 
1660: 61 6e 64 20 71 75 6f 74 61 74 69 6f 6e 20 6d 61  and quotation ma
1670: 72 6b 73 20 74 6f 20 77 6f 72 64 0a 2e 64 65 20  rks to word..de 
1680: 50 51 0a 2e 69 65 20 27 5c 5c 2a 28 6c 71 27 22  PQ..ie '\\*(lq'"
1690: 27 20 28 60 60 5c 5c 24 31 27 27 5c 5c 24 32 29  ' (``\\$1''\\$2)
16a0: 5c 5c 24 33 0a 2e 5c 22 22 20 66 69 78 20 65 6d  \\$3..\"" fix em
16b0: 61 63 73 20 68 69 67 68 6c 69 67 68 74 69 6e 67  acs highlighting
16c0: 0a 2e 65 6c 20 28 5c 5c 2a 28 6c 71 5c 5c 24 31  ..el (\\*(lq\\$1
16d0: 5c 5c 2a 28 72 71 5c 5c 24 32 29 5c 5c 24 33 0a  \\*(rq\\$2)\\$3.
16e0: 2e 2e 0a 2e 5c 22 09 23 20 51 52 20 2d 20 71 75  ....\".# QR - qu
16f0: 6f 74 65 64 20 72 61 6e 67 65 0a 2e 64 65 20 51  oted range..de Q
1700: 52 0a 2e 69 65 20 27 5c 5c 2a 28 6c 71 27 22 27  R..ie '\\*(lq'"'
1710: 20 60 60 5c 5c 24 31 27 27 5c 5c 2d 60 60 5c 5c   ``\\$1''\\-``\\
1720: 24 32 27 27 5c 5c 24 33 0a 2e 5c 22 22 20 66 69  $2''\\$3..\"" fi
1730: 78 20 65 6d 61 63 73 20 68 69 67 68 6c 69 67 68  x emacs highligh
1740: 74 69 6e 67 0a 2e 65 6c 20 5c 5c 2a 28 6c 71 5c  ting..el \\*(lq\
1750: 5c 24 31 5c 5c 2a 28 72 71 5c 5c 2d 5c 5c 2a 28  \$1\\*(rq\\-\\*(
1760: 6c 71 5c 5c 24 32 5c 5c 2a 28 72 71 5c 5c 24 33  lq\\$2\\*(rq\\$3
1770: 0a 2e 2e 0a 2e 5c 22 09 23 20 4d 54 20 2d 20 22  .....\".# MT - "
1780: 65 6d 70 74 79 22 20 73 74 72 69 6e 67 0a 2e 64  empty" string..d
1790: 65 20 4d 54 0a 2e 51 57 20 22 22 0a 2e 2e 0a 2e  e MT..QW "".....
17a0: 42 53 0a 2e 53 48 20 4e 41 4d 45 0a 74 6c 73 20  BS..SH NAME.tls 
17b0: 5c 2d 20 62 69 6e 64 69 6e 67 20 74 6f 20 74 68  \- binding to th
17c0: 65 20 4f 70 65 6e 53 53 4c 20 6c 69 62 72 61 72  e OpenSSL librar
17d0: 79 20 66 6f 72 20 65 6e 63 72 79 70 74 65 64 20  y for encrypted 
17e0: 73 6f 63 6b 65 74 20 61 6e 64 20 49 2f 4f 20 63  socket and I/O c
17f0: 68 61 6e 6e 65 6c 20 63 6f 6d 6d 75 6e 69 63 61  hannel communica
1800: 74 69 6f 6e 73 0a 2e 53 48 20 53 59 4e 4f 50 53  tions..SH SYNOPS
1810: 49 53 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69  IS.package requi
1820: 72 65 20 5c 66 42 54 63 6c 20 38 5c 26 2e 35 2d  re \fBTcl 8\&.5-
1830: 5c 66 52 0a 2e 73 70 0a 70 61 63 6b 61 67 65 20  \fR..sp.package 
1840: 72 65 71 75 69 72 65 20 5c 66 42 74 6c 73 20 32  require \fBtls 2
1850: 5c 26 2e 30 5c 66 52 0a 2e 73 70 0a 5c 66 42 74  \&.0\fR..sp.\fBt
1860: 6c 73 3a 3a 69 6e 69 74 5c 66 52 20 3f 5c 66 49  ls::init\fR ?\fI
1870: 2d 6f 70 74 69 6f 6e 5c 66 52 3f 20 3f 5c 66 49  -option\fR? ?\fI
1880: 76 61 6c 75 65 5c 66 52 3f 20 3f 5c 66 49 2d 6f  value\fR? ?\fI-o
1890: 70 74 69 6f 6e 20 76 61 6c 75 65 20 5c 26 2e 5c  ption value \&.\
18a0: 26 2e 5c 26 2e 5c 66 52 3f 0a 2e 73 70 0a 5c 66  &.\&.\fR?..sp.\f
18b0: 42 74 6c 73 3a 3a 73 6f 63 6b 65 74 5c 66 52 20  Btls::socket\fR 
18c0: 3f 5c 66 49 2d 6f 70 74 69 6f 6e 5c 66 52 3f 20  ?\fI-option\fR? 
18d0: 3f 5c 66 49 76 61 6c 75 65 5c 66 52 3f 20 3f 5c  ?\fIvalue\fR? ?\
18e0: 66 49 2d 6f 70 74 69 6f 6e 20 76 61 6c 75 65 20  fI-option value 
18f0: 5c 26 2e 5c 26 2e 5c 26 2e 5c 66 52 3f 20 5c 66  \&.\&.\&.\fR? \f
1900: 49 68 6f 73 74 5c 66 52 20 5c 66 49 70 6f 72 74  Ihost\fR \fIport
1910: 5c 66 52 0a 2e 73 70 0a 5c 66 42 74 6c 73 3a 3a  \fR..sp.\fBtls::
1920: 73 6f 63 6b 65 74 5c 66 52 20 5c 66 42 2d 73 65  socket\fR \fB-se
1930: 72 76 65 72 5c 66 52 20 5c 66 49 63 6f 6d 6d 61  rver\fR \fIcomma
1940: 6e 64 5c 66 52 20 3f 5c 66 49 2d 6f 70 74 69 6f  nd\fR ?\fI-optio
1950: 6e 5c 66 52 3f 20 3f 5c 66 49 76 61 6c 75 65 5c  n\fR? ?\fIvalue\
1960: 66 52 3f 20 3f 5c 66 49 2d 6f 70 74 69 6f 6e 20  fR? ?\fI-option 
1970: 76 61 6c 75 65 20 5c 26 2e 5c 26 2e 5c 26 2e 5c  value \&.\&.\&.\
1980: 66 52 3f 20 5c 66 49 70 6f 72 74 5c 66 52 0a 2e  fR? \fIport\fR..
1990: 73 70 0a 5c 66 42 74 6c 73 3a 3a 69 6d 70 6f 72  sp.\fBtls::impor
19a0: 74 5c 66 52 20 5c 66 49 63 68 61 6e 6e 65 6c 5c  t\fR \fIchannel\
19b0: 66 52 20 3f 5c 66 49 2d 6f 70 74 69 6f 6e 5c 66  fR ?\fI-option\f
19c0: 52 3f 20 3f 5c 66 49 76 61 6c 75 65 5c 66 52 3f  R? ?\fIvalue\fR?
19d0: 20 3f 5c 66 49 2d 6f 70 74 69 6f 6e 20 76 61 6c   ?\fI-option val
19e0: 75 65 20 5c 26 2e 5c 26 2e 5c 26 2e 5c 66 52 3f  ue \&.\&.\&.\fR?
19f0: 0a 2e 73 70 0a 5c 66 42 74 6c 73 3a 3a 73 74 61  ..sp.\fBtls::sta
1a00: 72 74 74 6c 73 5c 66 52 20 5c 66 49 63 68 61 6e  rttls\fR \fIchan
1a10: 6e 65 6c 5c 66 52 20 3f 5c 66 49 2d 6f 70 74 69  nel\fR ?\fI-opti
1a20: 6f 6e 5c 66 52 3f 20 3f 5c 66 49 76 61 6c 75 65  on\fR? ?\fIvalue
1a30: 5c 66 52 3f 20 3f 5c 66 49 2d 6f 70 74 69 6f 6e  \fR? ?\fI-option
1a40: 20 76 61 6c 75 65 20 5c 26 2e 5c 26 2e 5c 26 2e   value \&.\&.\&.
1a50: 5c 66 52 3f 0a 2e 73 70 0a 5c 66 42 74 6c 73 3a  \fR?..sp.\fBtls:
1a60: 3a 68 61 6e 64 73 68 61 6b 65 5c 66 52 20 5c 66  :handshake\fR \f
1a70: 49 63 68 61 6e 6e 65 6c 5c 66 52 0a 2e 73 70 0a  Ichannel\fR..sp.
1a80: 5c 66 42 74 6c 73 3a 3a 73 68 75 74 64 6f 77 6e  \fBtls::shutdown
1a90: 5c 66 52 20 5c 66 49 63 68 61 6e 6e 65 6c 5c 66  \fR \fIchannel\f
1aa0: 52 0a 2e 73 70 0a 5c 66 42 74 6c 73 3a 3a 75 6e  R..sp.\fBtls::un
1ab0: 69 6d 70 6f 72 74 5c 66 52 20 5c 66 49 63 68 61  import\fR \fIcha
1ac0: 6e 6e 65 6c 5c 66 52 0a 2e 73 70 0a 5c 66 42 74  nnel\fR..sp.\fBt
1ad0: 6c 73 3a 3a 75 6e 73 74 61 63 6b 5c 66 52 20 5c  ls::unstack\fR \
1ae0: 66 49 63 68 61 6e 6e 65 6c 5c 66 52 0a 2e 73 70  fIchannel\fR..sp
1af0: 0a 5c 66 42 74 6c 73 3a 3a 73 74 61 74 75 73 5c  .\fBtls::status\
1b00: 66 52 20 3f 5c 66 42 2d 6c 6f 63 61 6c 5c 66 52  fR ?\fB-local\fR
1b10: 3f 20 5c 66 49 63 68 61 6e 6e 65 6c 5c 66 52 0a  ? \fIchannel\fR.
1b20: 2e 73 70 0a 5c 66 42 74 6c 73 3a 3a 63 6f 6e 6e  .sp.\fBtls::conn
1b30: 65 63 74 69 6f 6e 5c 66 52 20 5c 66 49 63 68 61  ection\fR \fIcha
1b40: 6e 6e 65 6c 5c 66 52 0a 2e 73 70 0a 5c 66 42 74  nnel\fR..sp.\fBt
1b50: 6c 73 3a 3a 63 69 70 68 65 72 73 5c 66 52 20 3f  ls::ciphers\fR ?
1b60: 5c 66 49 70 72 6f 74 6f 63 6f 6c 5c 66 52 3f 20  \fIprotocol\fR? 
1b70: 3f 5c 66 49 76 65 72 62 6f 73 65 5c 66 52 3f 20  ?\fIverbose\fR? 
1b80: 3f 5c 66 49 73 75 70 70 6f 72 74 65 64 5c 66 52  ?\fIsupported\fR
1b90: 3f 0a 2e 73 70 0a 5c 66 42 74 6c 73 3a 3a 70 72  ?..sp.\fBtls::pr
1ba0: 6f 74 6f 63 6f 6c 73 5c 66 52 0a 2e 73 70 0a 5c  otocols\fR..sp.\
1bb0: 66 42 74 6c 73 3a 3a 76 65 72 73 69 6f 6e 5c 66  fBtls::version\f
1bc0: 52 0a 2e 73 70 0a 2e 42 45 0a 2e 53 48 20 44 45  R..sp..BE..SH DE
1bd0: 53 43 52 49 50 54 49 4f 4e 0a 54 68 69 73 20 65  SCRIPTION.This e
1be0: 78 74 65 6e 73 69 6f 6e 20 70 72 6f 76 69 64 65  xtension provide
1bf0: 73 20 54 43 4c 20 73 63 72 69 70 74 20 61 63 63  s TCL script acc
1c00: 65 73 73 20 74 6f 20 53 65 63 75 72 65 20 53 6f  ess to Secure So
1c10: 63 6b 65 74 20 4c 61 79 65 72 20 28 53 53 4c 29  cket Layer (SSL)
1c20: 0a 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20  .communications 
1c30: 75 73 69 6e 67 20 74 68 65 20 54 72 61 6e 73 70  using the Transp
1c40: 6f 72 74 20 4c 61 79 65 72 20 53 65 63 75 72 69  ort Layer Securi
1c50: 74 79 20 28 54 4c 53 29 20 70 72 6f 74 6f 63 6f  ty (TLS) protoco
1c60: 6c 5c 26 2e 20 49 74 20 70 72 6f 76 69 64 65 73  l\&. It provides
1c70: 20 61 0a 67 65 6e 65 72 69 63 20 62 69 6e 64 69   a.generic bindi
1c80: 6e 67 20 74 6f 20 5c 66 49 4f 70 65 6e 53 53 4c  ng to \fIOpenSSL
1c90: 5c 66 52 20 5b 68 74 74 70 73 3a 2f 2f 77 77 77  \fR [https://www
1ca0: 5c 26 2e 6f 70 65 6e 73 73 6c 5c 26 2e 6f 72 67  \&.openssl\&.org
1cb0: 2f 5d 2c 20 75 74 69 6c 69 7a 69 6e 67 20 74 68  /], utilizing th
1cc0: 65 0a 5c 66 42 54 63 6c 5f 53 74 61 63 6b 43 68  e.\fBTcl_StackCh
1cd0: 61 6e 6e 65 6c 5c 66 52 20 41 50 49 20 69 6e 20  annel\fR API in 
1ce0: 54 43 4c 20 38 5c 26 2e 34 20 6f 72 20 6c 61 74  TCL 8\&.4 or lat
1cf0: 65 72 5c 26 2e 20 54 68 65 73 65 20 73 6f 63 6b  er\&. These sock
1d00: 65 74 73 20 62 65 68 61 76 65 20 65 78 61 63 74  ets behave exact
1d10: 6c 79 0a 74 68 65 20 73 61 6d 65 20 61 73 20 63  ly.the same as c
1d20: 68 61 6e 6e 65 6c 73 20 63 72 65 61 74 65 64 20  hannels created 
1d30: 75 73 69 6e 67 20 74 68 65 20 62 75 69 6c 74 2d  using the built-
1d40: 69 6e 20 5c 66 42 73 6f 63 6b 65 74 5c 66 52 20  in \fBsocket\fR 
1d50: 63 6f 6d 6d 61 6e 64 2c 20 62 75 74 0a 70 72 6f  command, but.pro
1d60: 76 69 64 65 20 61 64 64 69 74 69 6f 6e 61 6c 20  vide additional 
1d70: 6f 70 74 69 6f 6e 73 20 66 6f 72 20 63 6f 6e 74  options for cont
1d80: 72 6f 6c 6c 69 6e 67 20 74 68 65 20 53 53 4c 2f  rolling the SSL/
1d90: 54 4c 53 20 73 65 73 73 69 6f 6e 5c 26 2e 0a 2e  TLS session\&...
1da0: 53 48 20 43 4f 4d 50 41 54 49 42 49 4c 49 54 59  SH COMPATIBILITY
1db0: 0a 54 68 69 73 20 65 78 74 65 6e 73 69 6f 6e 20  .This extension 
1dc0: 69 73 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69  is compatible wi
1dd0: 74 68 20 4f 70 65 6e 53 53 4c 20 31 5c 26 2e 31  th OpenSSL 1\&.1
1de0: 5c 26 2e 31 20 6f 72 20 6c 61 74 65 72 5c 26 2e  \&.1 or later\&.
1df0: 20 49 74 20 72 65 71 75 69 72 65 73 20 54 63 6c   It requires Tcl
1e00: 0a 76 65 72 73 69 6f 6e 20 38 5c 26 2e 35 20 6f  .version 8\&.5 o
1e10: 72 20 6c 61 74 65 72 20 61 6e 64 20 77 69 6c 6c  r later and will
1e20: 20 77 6f 72 6b 20 77 69 74 68 20 54 63 6c 20 39   work with Tcl 9
1e30: 5c 26 2e 30 5c 26 2e 0a 2e 53 48 20 43 4f 4d 4d  \&.0\&...SH COMM
1e40: 41 4e 44 53 0a 54 68 65 20 66 6f 6c 6c 6f 77 69  ANDS.The followi
1e50: 6e 67 20 61 72 65 20 74 68 65 20 63 6f 6d 6d 61  ng are the comma
1e60: 6e 64 73 20 70 72 6f 76 69 64 65 64 20 62 79 20  nds provided by 
1e70: 74 68 65 20 54 63 4c 54 4c 53 20 70 61 63 6b 61  the TcLTLS packa
1e80: 67 65 5c 26 2e 20 53 65 65 0a 5c 66 42 45 78 61  ge\&. See.\fBExa
1e90: 6d 70 6c 65 73 5c 66 52 20 66 6f 72 20 65 78 61  mples\fR for exa
1ea0: 6d 70 6c 65 20 75 73 61 67 65 20 61 6e 64 20 74  mple usage and t
1eb0: 68 65 20 22 5c 66 49 64 65 6d 6f 73 5c 66 52 22  he "\fIdemos\fR"
1ec0: 20 64 69 72 65 63 74 6f 72 79 20 66 6f 72 0a 6d   directory for.m
1ed0: 6f 72 65 20 65 78 61 6d 70 6c 65 20 75 73 61 67  ore example usag
1ee0: 65 5c 26 2e 0a 2e 54 50 0a 5c 66 42 74 6c 73 3a  e\&...TP.\fBtls:
1ef0: 3a 69 6e 69 74 5c 66 52 20 3f 5c 66 49 2d 6f 70  :init\fR ?\fI-op
1f00: 74 69 6f 6e 5c 66 52 3f 20 3f 5c 66 49 76 61 6c  tion\fR? ?\fIval
1f10: 75 65 5c 66 52 3f 20 3f 5c 66 49 2d 6f 70 74 69  ue\fR? ?\fI-opti
1f20: 6f 6e 20 76 61 6c 75 65 20 5c 26 2e 5c 26 2e 5c  on value \&.\&.\
1f30: 26 2e 5c 66 52 3f 0a 4f 70 74 69 6f 6e 61 6c 20  &.\fR?.Optional 
1f40: 66 75 6e 63 74 69 6f 6e 20 74 6f 20 73 65 74 20  function to set 
1f50: 74 68 65 20 64 65 66 61 75 6c 74 20 6f 70 74 69  the default opti
1f60: 6f 6e 73 20 75 73 65 64 20 62 79 20 5c 66 42 74  ons used by \fBt
1f70: 6c 73 3a 3a 73 6f 63 6b 65 74 5c 66 52 5c 26 2e  ls::socket\fR\&.
1f80: 20 49 66 20 79 6f 75 0a 63 61 6c 6c 20 5c 66 42   If you.call \fB
1f90: 74 6c 73 3a 3a 69 6d 70 6f 72 74 5c 66 52 20 64  tls::import\fR d
1fa0: 69 72 65 63 74 6c 79 2c 20 74 68 65 20 76 61 6c  irectly, the val
1fb0: 75 65 73 20 73 65 74 20 62 79 20 74 68 69 73 20  ues set by this 
1fc0: 63 6f 6d 6d 61 6e 64 20 68 61 76 65 20 6e 6f 20  command have no 
1fd0: 65 66 66 65 63 74 5c 26 2e 0a 54 68 69 73 20 63  effect\&..This c
1fe0: 6f 6d 6d 61 6e 64 20 73 75 70 70 6f 72 74 73 20  ommand supports 
1ff0: 61 6c 6c 20 6f 66 20 74 68 65 20 73 61 6d 65 20  all of the same 
2000: 6f 70 74 69 6f 6e 73 20 61 73 20 74 68 65 20 5c  options as the \
2010: 66 42 74 6c 73 3a 3a 73 6f 63 6b 65 74 5c 66 52  fBtls::socket\fR
2020: 20 63 6f 6d 6d 61 6e 64 2c 0a 74 68 6f 75 67 68   command,.though
2030: 20 79 6f 75 20 73 68 6f 75 6c 64 20 6c 69 6d 69   you should limi
2040: 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 73 20 74  t your options t
2050: 6f 20 6f 6e 6c 79 20 74 68 65 20 54 4c 53 20 72  o only the TLS r
2060: 65 6c 61 74 65 64 20 6f 6e 65 73 5c 26 2e 0a 2e  elated ones\&...
2070: 54 50 0a 5c 66 42 74 6c 73 3a 3a 73 6f 63 6b 65  TP.\fBtls::socke
2080: 74 5c 66 52 20 3f 5c 66 49 2d 6f 70 74 69 6f 6e  t\fR ?\fI-option
2090: 5c 66 52 3f 20 3f 5c 66 49 76 61 6c 75 65 5c 66  \fR? ?\fIvalue\f
20a0: 52 3f 20 3f 5c 66 49 2d 6f 70 74 69 6f 6e 20 76  R? ?\fI-option v
20b0: 61 6c 75 65 20 5c 26 2e 5c 26 2e 5c 26 2e 5c 66  alue \&.\&.\&.\f
20c0: 52 3f 20 5c 66 49 68 6f 73 74 5c 66 52 20 5c 66  R? \fIhost\fR \f
20d0: 49 70 6f 72 74 5c 66 52 0a 54 68 69 73 20 69 73  Iport\fR.This is
20e0: 20 61 20 68 65 6c 70 65 72 20 66 75 6e 63 74 69   a helper functi
20f0: 6f 6e 20 74 68 61 74 20 75 74 69 6c 69 7a 65 73  on that utilizes
2100: 20 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20   the underlying 
2110: 63 6f 6d 6d 61 6e 64 73 20 5c 66 42 73 6f 63 6b  commands \fBsock
2120: 65 74 5c 66 52 0a 61 6e 64 20 5c 66 42 74 6c 73  et\fR.and \fBtls
2130: 3a 3a 69 6d 70 6f 72 74 5c 66 52 20 74 6f 20 63  ::import\fR to c
2140: 72 65 61 74 65 20 74 68 65 20 63 6f 6e 6e 65 63  reate the connec
2150: 74 69 6f 6e 5c 26 2e 20 49 74 20 62 65 68 61 76  tion\&. It behav
2160: 65 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 74  es the same as t
2170: 68 65 0a 6e 61 74 69 76 65 20 54 43 4c 20 5c 66  he.native TCL \f
2180: 42 73 6f 63 6b 65 74 5c 66 52 20 63 6f 6d 6d 61  Bsocket\fR comma
2190: 6e 64 2c 20 62 75 74 20 61 6c 73 6f 20 73 75 70  nd, but also sup
21a0: 70 6f 72 74 73 20 74 68 65 20 5c 66 42 74 6c 73  ports the \fBtls
21b0: 3a 3a 69 6d 70 6f 72 74 5c 66 52 0a 63 6f 6d 6d  ::import\fR.comm
21c0: 61 6e 64 20 6f 70 74 69 6f 6e 73 20 77 69 74 68  and options with
21d0: 20 6f 6e 65 20 61 64 64 69 74 69 6f 6e 61 6c 20   one additional 
21e0: 6f 70 74 69 6f 6e 5c 26 2e 20 49 74 20 72 65 74  option\&. It ret
21f0: 75 72 6e 73 20 74 68 65 20 63 68 61 6e 6e 65 6c  urns the channel
2200: 20 68 61 6e 64 6c 65 20 69 64 0a 66 6f 72 20 74   handle id.for t
2210: 68 65 20 6e 65 77 20 73 6f 63 6b 65 74 5c 26 2e  he new socket\&.
2220: 20 41 64 64 69 74 69 6f 6e 61 6c 20 6f 70 74 69   Additional opti
2230: 6f 6e 73 20 61 72 65 3a 0a 2e 52 53 0a 2e 54 50  ons are:..RS..TP
2240: 0a 5c 66 42 2d 61 75 74 6f 73 65 72 76 65 72 6e  .\fB-autoservern
2250: 61 6d 65 5c 66 52 20 5c 66 49 62 6f 6f 6c 5c 66  ame\fR \fIbool\f
2260: 52 0a 49 66 20 5c 66 42 74 72 75 65 5c 66 52 2c  R.If \fBtrue\fR,
2270: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 73   automatically s
2280: 65 74 20 74 68 65 20 5c 66 42 2d 73 65 72 76 65  et the \fB-serve
2290: 72 6e 61 6d 65 5c 66 52 20 61 72 67 75 6d 65 6e  rname\fR argumen
22a0: 74 20 74 6f 20 74 68 65 0a 5c 66 49 68 6f 73 74  t to the.\fIhost
22b0: 5c 66 52 20 61 72 67 75 6d 65 6e 74 5c 26 2e 20  \fR argument\&. 
22c0: 50 72 69 6f 72 20 74 6f 20 54 63 6c 54 4c 53 20  Prior to TclTLS 
22d0: 32 5c 26 2e 30 2c 20 74 68 65 20 64 65 66 61 75  2\&.0, the defau
22e0: 6c 74 20 69 73 20 5c 66 42 66 61 6c 73 65 5c 66  lt is \fBfalse\f
22f0: 52 5c 26 2e 0a 53 74 61 72 74 69 6e 67 20 69 6e  R\&..Starting in
2300: 20 54 63 6c 54 4c 53 20 32 5c 26 2e 30 2c 20 74   TclTLS 2\&.0, t
2310: 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 5c 66  he default is \f
2320: 42 74 72 75 65 5c 66 52 20 75 6e 6c 65 73 73 20  Btrue\fR unless 
2330: 5c 66 42 2d 73 65 72 76 65 72 6e 61 6d 65 5c 66  \fB-servername\f
2340: 52 0a 69 73 20 61 6c 73 6f 20 73 70 65 63 69 66  R.is also specif
2350: 69 65 64 5c 26 2e 0a 2e 52 45 0a 2e 54 50 0a 5c  ied\&...RE..TP.\
2360: 66 42 74 6c 73 3a 3a 73 6f 63 6b 65 74 5c 66 52  fBtls::socket\fR
2370: 20 5c 66 42 2d 73 65 72 76 65 72 5c 66 52 20 5c   \fB-server\fR \
2380: 66 49 63 6f 6d 6d 61 6e 64 5c 66 52 20 3f 5c 66  fIcommand\fR ?\f
2390: 49 2d 6f 70 74 69 6f 6e 5c 66 52 3f 20 3f 5c 66  I-option\fR? ?\f
23a0: 49 76 61 6c 75 65 5c 66 52 3f 20 3f 5c 66 49 2d  Ivalue\fR? ?\fI-
23b0: 6f 70 74 69 6f 6e 20 76 61 6c 75 65 20 5c 26 2e  option value \&.
23c0: 5c 26 2e 5c 26 2e 5c 66 52 3f 20 5c 66 49 70 6f  \&.\&.\fR? \fIpo
23d0: 72 74 5c 66 52 0a 53 61 6d 65 20 61 73 20 70 72  rt\fR.Same as pr
23e0: 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 2c 20  evious command, 
23f0: 62 75 74 20 69 6e 73 74 65 61 64 20 63 72 65 61  but instead crea
2400: 74 65 73 20 61 20 73 65 72 76 65 72 20 73 6f 63  tes a server soc
2410: 6b 65 74 20 66 6f 72 20 63 6c 69 65 6e 74 73 20  ket for clients 
2420: 74 6f 0a 63 6f 6e 6e 65 63 74 20 74 6f 20 6a 75  to.connect to ju
2430: 73 74 20 6c 69 6b 65 20 74 68 65 20 54 63 6c 20  st like the Tcl 
2440: 5c 66 42 73 6f 63 6b 65 74 20 2d 73 65 72 76 65  \fBsocket -serve
2450: 72 5c 66 52 20 63 6f 6d 6d 61 6e 64 5c 26 2e 20  r\fR command\&. 
2460: 49 74 20 72 65 74 75 72 6e 73 20 74 68 65 0a 63  It returns the.c
2470: 68 61 6e 6e 65 6c 20 68 61 6e 64 6c 65 20 69 64  hannel handle id
2480: 20 66 6f 72 20 74 68 65 20 6e 65 77 20 73 6f 63   for the new soc
2490: 6b 65 74 5c 26 2e 0a 2e 54 50 0a 5c 66 42 74 6c  ket\&...TP.\fBtl
24a0: 73 3a 3a 69 6d 70 6f 72 74 5c 66 52 20 5c 66 49  s::import\fR \fI
24b0: 63 68 61 6e 6e 65 6c 5c 66 52 20 3f 5c 66 49 2d  channel\fR ?\fI-
24c0: 6f 70 74 69 6f 6e 5c 66 52 3f 20 3f 5c 66 49 76  option\fR? ?\fIv
24d0: 61 6c 75 65 5c 66 52 3f 20 3f 5c 66 49 2d 6f 70  alue\fR? ?\fI-op
24e0: 74 69 6f 6e 20 76 61 6c 75 65 20 5c 26 2e 5c 26  tion value \&.\&
24f0: 2e 5c 26 2e 5c 66 52 3f 0a 2e 54 50 0a 5c 66 42  .\&.\fR?..TP.\fB
2500: 74 6c 73 3a 3a 73 74 61 72 74 74 6c 73 5c 66 52  tls::starttls\fR
2510: 20 5c 66 49 63 68 61 6e 6e 65 6c 5c 66 52 20 3f   \fIchannel\fR ?
2520: 5c 66 49 2d 6f 70 74 69 6f 6e 5c 66 52 3f 20 3f  \fI-option\fR? ?
2530: 5c 66 49 76 61 6c 75 65 5c 66 52 3f 20 3f 5c 66  \fIvalue\fR? ?\f
2540: 49 2d 6f 70 74 69 6f 6e 20 76 61 6c 75 65 20 5c  I-option value \
2550: 26 2e 5c 26 2e 5c 26 2e 5c 66 52 3f 0a 53 74 61  &.\&.\&.\fR?.Sta
2560: 72 74 20 54 4c 53 20 65 6e 63 72 79 70 74 69 6f  rt TLS encryptio
2570: 6e 20 6f 6e 20 54 43 4c 20 63 68 61 6e 6e 65 6c  n on TCL channel
2580: 20 5c 66 49 63 68 61 6e 6e 65 6c 5c 66 52 20 76   \fIchannel\fR v
2590: 69 61 20 61 20 73 74 61 63 6b 65 64 20 63 68 61  ia a stacked cha
25a0: 6e 6e 65 6c 5c 26 2e 20 49 74 0a 6e 65 65 64 20  nnel\&. It.need 
25b0: 6e 6f 74 20 62 65 20 61 20 73 6f 63 6b 65 74 2c  not be a socket,
25c0: 20 62 75 74 20 6d 75 73 74 20 70 72 6f 76 69 64   but must provid
25d0: 65 20 62 69 2d 64 69 72 65 63 74 69 6f 6e 61 6c  e bi-directional
25e0: 20 66 6c 6f 77 5c 26 2e 20 41 6c 73 6f 20 73 65   flow\&. Also se
25f0: 74 73 20 73 65 73 73 69 6f 6e 0a 70 61 72 61 6d  ts session.param
2600: 65 74 65 72 73 20 66 6f 72 20 53 53 4c 20 68 61  eters for SSL ha
2610: 6e 64 73 68 61 6b 65 5c 26 2e 20 56 61 6c 69 64  ndshake\&. Valid
2620: 20 6f 70 74 69 6f 6e 73 20 61 72 65 3a 0a 2e 52   options are:..R
2630: 53 0a 2e 54 50 0a 5c 66 42 2d 61 6c 70 6e 5c 66  S..TP.\fB-alpn\f
2640: 52 20 5c 66 49 6c 69 73 74 5c 66 52 0a 4c 69 73  R \fIlist\fR.Lis
2650: 74 20 6f 66 20 70 72 6f 74 6f 63 6f 6c 73 20 74  t of protocols t
2660: 6f 20 6f 66 66 65 72 20 64 75 72 69 6e 67 20 41  o offer during A
2670: 70 70 6c 69 63 61 74 69 6f 6e 2d 4c 61 79 65 72  pplication-Layer
2680: 20 50 72 6f 74 6f 63 6f 6c 20 4e 65 67 6f 74 69   Protocol Negoti
2690: 61 74 69 6f 6e 0a 28 41 4c 50 4e 29 5c 26 2e 20  ation.(ALPN)\&. 
26a0: 46 6f 72 20 65 78 61 6d 70 6c 65 3a 20 5c 66 42  For example: \fB
26b0: 68 32 5c 66 52 20 61 6e 64 20 5c 66 42 68 74 74  h2\fR and \fBhtt
26c0: 70 2f 31 5c 26 2e 31 5c 66 52 2c 20 62 75 74 20  p/1\&.1\fR, but 
26d0: 6e 6f 74 20 5c 66 42 68 33 5c 66 52 20 6f 72 0a  not \fBh3\fR or.
26e0: 5c 66 42 71 75 69 63 5c 66 52 5c 26 2e 20 54 68  \fBquic\fR\&. Th
26f0: 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 6e 65 77  is option is new
2700: 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e   for TclTLS 1\&.
2710: 38 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 63 61 64  8\&...TP.\fB-cad
2720: 69 72 5c 66 52 20 5c 66 49 64 69 72 65 63 74 6f  ir\fR \fIdirecto
2730: 72 79 5c 66 52 0a 53 70 65 63 69 66 69 65 73 20  ry\fR.Specifies 
2740: 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 77 68  the directory wh
2750: 65 72 65 20 74 68 65 20 43 65 72 74 69 66 69 63  ere the Certific
2760: 61 74 65 20 41 75 74 68 6f 72 69 74 79 20 28 43  ate Authority (C
2770: 41 29 20 63 65 72 74 69 66 69 63 61 74 65 73 20  A) certificates 
2780: 61 72 65 0a 73 74 6f 72 65 64 5c 26 2e 20 54 68  are.stored\&. Th
2790: 65 20 64 65 66 61 75 6c 74 20 69 73 20 70 6c 61  e default is pla
27a0: 74 66 6f 72 6d 20 73 70 65 63 69 66 69 63 20 61  tform specific a
27b0: 6e 64 20 63 61 6e 20 62 65 20 73 65 74 20 61 74  nd can be set at
27c0: 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 5c 26 2e   compile time\&.
27d0: 20 54 68 65 0a 64 65 66 61 75 6c 74 20 6c 6f 63   The.default loc
27e0: 61 74 69 6f 6e 20 63 61 6e 20 62 65 20 6f 76 65  ation can be ove
27f0: 72 72 69 64 64 65 6e 20 62 79 20 74 68 65 20 5c  rridden by the \
2800: 66 42 53 53 4c 5f 43 45 52 54 5f 44 49 52 5c 66  fBSSL_CERT_DIR\f
2810: 52 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a 76 61  R environment.va
2820: 72 69 61 62 6c 65 5c 26 2e 20 53 65 65 20 5c 66  riable\&. See \f
2830: 42 43 65 72 74 69 66 69 63 61 74 65 20 56 61 6c  BCertificate Val
2840: 69 64 61 74 69 6f 6e 5c 66 52 20 66 6f 72 20 6d  idation\fR for m
2850: 6f 72 65 20 64 65 74 61 69 6c 73 5c 26 2e 0a 2e  ore details\&...
2860: 54 50 0a 5c 66 42 2d 63 61 66 69 6c 65 5c 66 52  TP.\fB-cafile\fR
2870: 20 5c 66 49 66 69 6c 65 6e 61 6d 65 5c 66 52 0a   \fIfilename\fR.
2880: 53 70 65 63 69 66 69 65 73 20 74 68 65 20 66 69  Specifies the fi
2890: 6c 65 20 77 69 74 68 20 74 68 65 20 43 65 72 74  le with the Cert
28a0: 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74  ificate Authorit
28b0: 79 20 28 43 41 29 20 63 65 72 74 69 66 69 63 61  y (CA) certifica
28c0: 74 65 73 20 74 6f 20 75 73 65 20 69 6e 0a 5c 66  tes to use in.\f
28d0: 42 50 45 4d 5c 66 52 20 66 69 6c 65 20 66 6f 72  BPEM\fR file for
28e0: 6d 61 74 5c 26 2e 20 54 68 65 20 64 65 66 61 75  mat\&. The defau
28f0: 6c 74 20 69 73 20 22 5c 66 49 63 65 72 74 5c 26  lt is "\fIcert\&
2900: 2e 70 65 6d 5c 66 52 22 2c 20 69 6e 20 74 68 65  .pem\fR", in the
2910: 20 4f 70 65 6e 53 53 4c 0a 64 69 72 65 63 74 6f   OpenSSL.directo
2920: 72 79 5c 26 2e 20 54 68 65 20 64 65 66 61 75 6c  ry\&. The defaul
2930: 74 20 66 69 6c 65 20 63 61 6e 20 62 65 20 6f 76  t file can be ov
2940: 65 72 72 69 64 64 65 6e 20 62 79 20 74 68 65 20  erridden by the 
2950: 5c 66 42 53 53 4c 5f 43 45 52 54 5f 46 49 4c 45  \fBSSL_CERT_FILE
2960: 5c 66 52 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a  \fR environment.
2970: 76 61 72 69 61 62 6c 65 5c 26 2e 20 53 65 65 20  variable\&. See 
2980: 5c 66 42 43 65 72 74 69 66 69 63 61 74 65 20 56  \fBCertificate V
2990: 61 6c 69 64 61 74 69 6f 6e 5c 66 52 20 66 6f 72  alidation\fR for
29a0: 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 5c 26 2e   more details\&.
29b0: 0a 2e 54 50 0a 5c 66 42 2d 63 61 73 74 6f 72 65  ..TP.\fB-castore
29c0: 5c 66 52 20 5c 66 49 55 52 49 5c 66 52 0a 53 70  \fR \fIURI\fR.Sp
29d0: 65 63 69 66 69 65 73 20 74 68 65 20 55 6e 69 66  ecifies the Unif
29e0: 6f 72 6d 20 52 65 73 6f 75 72 63 65 20 49 64 65  orm Resource Ide
29f0: 6e 74 69 66 69 65 72 20 28 55 52 49 29 20 66 6f  ntifier (URI) fo
2a00: 72 20 74 68 65 20 43 65 72 74 69 66 69 63 61 74  r the Certificat
2a10: 65 20 41 75 74 68 6f 72 69 74 79 0a 28 43 41 29  e Authority.(CA)
2a20: 20 73 74 6f 72 65 2c 20 77 68 69 63 68 20 6d 61   store, which ma
2a30: 79 20 62 65 20 61 20 73 69 6e 67 6c 65 20 63 6f  y be a single co
2a40: 6e 74 61 69 6e 65 72 20 6f 72 20 61 20 63 61 74  ntainer or a cat
2a50: 61 6c 6f 67 20 6f 66 20 63 6f 6e 74 61 69 6e 65  alog of containe
2a60: 72 73 5c 26 2e 0a 53 74 61 72 74 69 6e 67 20 77  rs\&..Starting w
2a70: 69 74 68 20 4f 70 65 6e 53 53 4c 20 33 5c 26 2e  ith OpenSSL 3\&.
2a80: 32 20 6f 6e 20 4d 53 20 57 69 6e 64 6f 77 73 2c  2 on MS Windows,
2a90: 20 73 65 74 20 74 6f 20 22 5c 66 42 6f 72 67 5c   set to "\fBorg\
2aa0: 26 2e 6f 70 65 6e 73 73 6c 5c 26 2e 77 69 6e 73  &.openssl\&.wins
2ab0: 74 6f 72 65 3a 2f 2f 5c 66 52 22 0a 74 6f 20 75  tore://\fR".to u
2ac0: 73 65 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20  se the built-in 
2ad0: 4d 53 20 57 69 6e 64 6f 77 73 20 43 65 72 74 69  MS Windows Certi
2ae0: 66 69 63 61 74 65 20 53 74 6f 72 65 5c 26 2e 0a  ficate Store\&..
2af0: 53 65 65 20 5c 66 42 43 65 72 74 69 66 69 63 61  See \fBCertifica
2b00: 74 65 20 56 61 6c 69 64 61 74 69 6f 6e 5c 66 52  te Validation\fR
2b10: 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c   for more detail
2b20: 73 5c 26 2e 0a 54 68 69 73 20 6f 70 74 69 6f 6e  s\&..This option
2b30: 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54   is new for TclT
2b40: 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54 50 0a  LS 1\&.8\&...TP.
2b50: 5c 66 42 2d 63 65 72 74 66 69 6c 65 5c 66 52 20  \fB-certfile\fR 
2b60: 5c 66 49 66 69 6c 65 6e 61 6d 65 5c 66 52 0a 53  \fIfilename\fR.S
2b70: 70 65 63 69 66 69 65 73 20 74 68 65 20 6e 61 6d  pecifies the nam
2b80: 65 20 6f 66 20 74 68 65 20 66 69 6c 65 20 77 69  e of the file wi
2b90: 74 68 20 74 68 65 20 63 65 72 74 69 66 69 63 61  th the certifica
2ba0: 74 65 20 74 6f 20 75 73 65 20 69 6e 20 50 45 4d  te to use in PEM
2bb0: 20 66 6f 72 6d 61 74 0a 61 73 20 74 68 65 20 6c   format.as the l
2bc0: 6f 63 61 6c 20 28 63 6c 69 65 6e 74 20 6f 72 20  ocal (client or 
2bd0: 73 65 72 76 65 72 29 20 63 65 72 74 69 66 69 63  server) certific
2be0: 61 74 65 5c 26 2e 20 49 74 20 61 6c 73 6f 20 63  ate\&. It also c
2bf0: 6f 6e 74 61 69 6e 73 20 74 68 65 20 70 75 62 6c  ontains the publ
2c00: 69 63 20 6b 65 79 5c 26 2e 0a 2e 54 50 0a 5c 66  ic key\&...TP.\f
2c10: 42 2d 63 65 72 74 5c 66 52 20 5c 66 49 73 74 72  B-cert\fR \fIstr
2c20: 69 6e 67 5c 66 52 0a 53 70 65 63 69 66 69 65 73  ing\fR.Specifies
2c30: 20 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65   the certificate
2c40: 20 74 6f 20 75 73 65 20 61 73 20 61 20 44 45 52   to use as a DER
2c50: 20 65 6e 63 6f 64 65 64 20 73 74 72 69 6e 67 20   encoded string 
2c60: 28 58 5c 26 2e 35 30 39 20 44 45 52 29 5c 26 2e  (X\&.509 DER)\&.
2c70: 0a 2e 54 50 0a 5c 66 42 2d 63 69 70 68 65 72 5c  ..TP.\fB-cipher\
2c80: 66 52 20 5c 66 49 73 74 72 69 6e 67 5c 66 52 0a  fR \fIstring\fR.
2c90: 53 70 65 63 69 66 69 65 73 20 74 68 65 20 6c 69  Specifies the li
2ca0: 73 74 20 6f 66 20 63 69 70 68 65 72 73 20 74 6f  st of ciphers to
2cb0: 20 75 73 65 20 66 6f 72 20 54 4c 53 20 31 5c 26   use for TLS 1\&
2cc0: 2e 32 20 61 6e 64 20 65 61 72 6c 69 65 72 20 63  .2 and earlier c
2cd0: 6f 6e 6e 65 63 74 69 6f 6e 73 5c 26 2e 0a 53 74  onnections\&..St
2ce0: 72 69 6e 67 20 69 73 20 61 20 63 6f 6c 6f 6e 20  ring is a colon 
2cf0: 22 5c 66 42 3a 5c 66 52 22 20 73 65 70 61 72 61  "\fB:\fR" separa
2d00: 74 65 64 20 6c 69 73 74 20 6f 66 20 63 69 70 68  ted list of ciph
2d10: 65 72 73 5c 26 2e 0a 43 69 70 68 65 72 73 20 63  ers\&..Ciphers c
2d20: 61 6e 20 62 65 20 63 6f 6d 62 69 6e 65 64 20 75  an be combined u
2d30: 73 69 6e 67 20 74 68 65 20 22 5c 66 42 2b 5c 66  sing the "\fB+\f
2d40: 52 22 20 63 68 61 72 61 63 74 65 72 5c 26 2e 0a  R" character\&..
2d50: 50 72 65 66 69 78 65 73 20 63 61 6e 20 62 65 20  Prefixes can be 
2d60: 75 73 65 64 20 74 6f 20 70 65 72 6d 61 6e 65 6e  used to permanen
2d70: 74 6c 79 20 72 65 6d 6f 76 65 20 22 5c 66 42 21  tly remove "\fB!
2d80: 5c 66 52 22 2c 20 64 65 6c 65 74 65 20 22 5c 66  \fR", delete "\f
2d90: 42 2d 5c 66 52 22 2c 20 6f 72 0a 6d 6f 76 65 20  B-\fR", or.move 
2da0: 74 6f 20 74 68 65 20 65 6e 64 20 22 5c 66 42 2b  to the end "\fB+
2db0: 5c 66 52 22 20 61 20 73 70 65 63 69 66 69 65 64  \fR" a specified
2dc0: 20 63 69 70 68 65 72 5c 26 2e 0a 4b 65 79 77 6f   cipher\&..Keywo
2dd0: 72 64 73 20 5c 66 42 40 53 54 52 45 4e 47 54 48  rds \fB@STRENGTH
2de0: 5c 66 52 20 28 73 6f 72 74 20 62 79 20 61 6c 67  \fR (sort by alg
2df0: 6f 72 69 74 68 6d 20 6b 65 79 20 6c 65 6e 67 74  orithm key lengt
2e00: 68 29 2c 0a 5c 66 42 40 53 45 43 4c 45 56 45 4c  h),.\fB@SECLEVEL
2e10: 3d 5c 66 52 5c 66 49 6e 5c 66 52 20 28 73 65 74  =\fR\fIn\fR (set
2e20: 20 73 65 63 75 72 69 74 79 20 6c 65 76 65 6c 20   security level 
2e30: 74 6f 20 6e 29 2c 20 61 6e 64 0a 5c 66 42 44 45  to n), and.\fBDE
2e40: 46 41 55 4c 54 5c 66 52 20 28 75 73 65 20 64 65  FAULT\fR (use de
2e50: 66 61 75 6c 74 20 63 69 70 68 65 72 20 6c 69 73  fault cipher lis
2e60: 74 2c 20 61 74 20 73 74 61 72 74 20 6f 6e 6c 79  t, at start only
2e70: 29 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 73 70  ) can also be sp
2e80: 65 63 69 66 69 65 64 5c 26 2e 0a 53 65 65 20 74  ecified\&..See t
2e90: 68 65 20 5c 66 49 4f 70 65 6e 53 53 4c 5c 66 52  he \fIOpenSSL\fR
2ea0: 20 5b 68 74 74 70 73 3a 2f 2f 64 6f 63 73 5c 26   [https://docs\&
2eb0: 2e 6f 70 65 6e 73 73 6c 5c 26 2e 6f 72 67 2f 6d  .openssl\&.org/m
2ec0: 61 73 74 65 72 2f 6d 61 6e 31 2f 6f 70 65 6e 73  aster/man1/opens
2ed0: 73 6c 2d 63 69 70 68 65 72 73 2f 23 6f 70 74 69  sl-ciphers/#opti
2ee0: 6f 6e 73 5d 0a 64 6f 63 75 6d 65 6e 74 61 74 69  ons].documentati
2ef0: 6f 6e 20 66 6f 72 20 74 68 65 20 66 75 6c 6c 20  on for the full 
2f00: 6c 69 73 74 20 6f 66 20 76 61 6c 69 64 20 76 61  list of valid va
2f10: 6c 75 65 73 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d  lues\&...TP.\fB-
2f20: 63 69 70 68 65 72 73 75 69 74 65 73 5c 66 52 20  ciphersuites\fR 
2f30: 5c 66 49 73 74 72 69 6e 67 5c 66 52 0a 53 70 65  \fIstring\fR.Spe
2f40: 63 69 66 69 65 73 20 74 68 65 20 6c 69 73 74 20  cifies the list 
2f50: 6f 66 20 63 69 70 68 65 72 20 73 75 69 74 65 73  of cipher suites
2f60: 20 74 6f 20 75 73 65 20 66 6f 72 20 54 4c 53 20   to use for TLS 
2f70: 31 5c 26 2e 33 20 61 73 20 61 20 63 6f 6c 6f 6e  1\&.3 as a colon
2f80: 0a 22 5c 66 42 3a 5c 66 52 22 20 73 65 70 61 72  ."\fB:\fR" separ
2f90: 61 74 65 64 20 6c 69 73 74 20 6f 66 20 63 69 70  ated list of cip
2fa0: 68 65 72 20 73 75 69 74 65 20 6e 61 6d 65 73 5c  her suite names\
2fb0: 26 2e 20 53 65 65 20 74 68 65 0a 5c 66 49 4f 70  &. See the.\fIOp
2fc0: 65 6e 53 53 4c 5c 66 52 20 5b 68 74 74 70 73 3a  enSSL\fR [https:
2fd0: 2f 2f 64 6f 63 73 5c 26 2e 6f 70 65 6e 73 73 6c  //docs\&.openssl
2fe0: 5c 26 2e 6f 72 67 2f 6d 61 73 74 65 72 2f 6d 61  \&.org/master/ma
2ff0: 6e 31 2f 6f 70 65 6e 73 73 6c 2d 63 69 70 68 65  n1/openssl-ciphe
3000: 72 73 2f 23 6f 70 74 69 6f 6e 73 5d 0a 64 6f 63  rs/#options].doc
3010: 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74  umentation for t
3020: 68 65 20 66 75 6c 6c 20 6c 69 73 74 20 6f 66 20  he full list of 
3030: 76 61 6c 69 64 20 76 61 6c 75 65 73 5c 26 2e 0a  valid values\&..
3040: 54 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 6e  This option is n
3050: 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c  ew for TclTLS 1\
3060: 26 2e 38 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 63  &.8\&...TP.\fB-c
3070: 6f 6d 6d 61 6e 64 5c 66 52 20 5c 66 49 63 61 6c  ommand\fR \fIcal
3080: 6c 62 61 63 6b 5c 66 52 0a 53 70 65 63 69 66 69  lback\fR.Specifi
3090: 65 73 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20  es the callback 
30a0: 63 6f 6d 6d 61 6e 64 20 74 6f 20 62 65 20 69 6e  command to be in
30b0: 76 6f 6b 65 64 20 61 74 20 73 65 76 65 72 61 6c  voked at several
30c0: 20 70 6f 69 6e 74 73 20 64 75 72 69 6e 67 20 74   points during t
30d0: 68 65 0a 68 61 6e 64 73 68 61 6b 65 20 74 6f 20  he.handshake to 
30e0: 70 61 73 73 20 65 72 72 6f 72 73 2c 20 74 72 61  pass errors, tra
30f0: 63 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e  cing information
3100: 2c 20 61 6e 64 20 70 72 6f 74 6f 63 6f 6c 20 6d  , and protocol m
3110: 65 73 73 61 67 65 73 5c 26 2e 0a 53 65 65 20 5c  essages\&..See \
3120: 66 42 43 61 6c 6c 62 61 63 6b 20 4f 70 74 69 6f  fBCallback Optio
3130: 6e 73 5c 66 52 20 66 6f 72 20 6d 6f 72 65 20 69  ns\fR for more i
3140: 6e 66 6f 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 64  nfo\&...TP.\fB-d
3150: 68 70 61 72 61 6d 73 5c 66 52 20 5c 66 49 66 69  hparams\fR \fIfi
3160: 6c 65 6e 61 6d 65 5c 66 52 0a 53 70 65 63 69 66  lename\fR.Specif
3170: 69 65 73 20 74 68 65 20 44 69 66 66 69 65 2d 48  ies the Diffie-H
3180: 65 6c 6c 6d 61 6e 20 28 44 48 29 20 70 61 72 61  ellman (DH) para
3190: 6d 65 74 65 72 73 20 66 69 6c 65 5c 26 2e 0a 2e  meters file\&...
31a0: 54 50 0a 5c 66 42 2d 6b 65 79 66 69 6c 65 5c 66  TP.\fB-keyfile\f
31b0: 52 20 5c 66 49 66 69 6c 65 6e 61 6d 65 5c 66 52  R \fIfilename\fR
31c0: 0a 53 70 65 63 69 66 69 65 73 20 74 68 65 20 70  .Specifies the p
31d0: 72 69 76 61 74 65 20 6b 65 79 20 66 69 6c 65 5c  rivate key file\
31e0: 26 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 69  &. The default i
31f0: 73 20 74 6f 20 75 73 65 20 74 68 65 20 66 69 6c  s to use the fil
3200: 65 0a 73 70 65 63 69 66 69 65 64 20 62 79 20 74  e.specified by t
3210: 68 65 20 5c 66 42 2d 63 65 72 74 66 69 6c 65 5c  he \fB-certfile\
3220: 66 52 20 6f 70 74 69 6f 6e 5c 26 2e 0a 2e 54 50  fR option\&...TP
3230: 0a 5c 66 42 2d 6b 65 79 5c 66 52 20 5c 66 49 73  .\fB-key\fR \fIs
3240: 74 72 69 6e 67 5c 66 52 0a 53 70 65 63 69 66 69  tring\fR.Specifi
3250: 65 73 20 74 68 65 20 70 72 69 76 61 74 65 20 6b  es the private k
3260: 65 79 20 74 6f 20 75 73 65 20 61 73 20 61 20 44  ey to use as a D
3270: 45 52 20 65 6e 63 6f 64 65 64 20 73 74 72 69 6e  ER encoded strin
3280: 67 20 28 50 4b 43 53 23 31 20 44 45 52 29 5c 26  g (PKCS#1 DER)\&
3290: 2e 0a 2e 54 50 0a 5c 66 42 2d 6d 6f 64 65 6c 5c  ...TP.\fB-model\
32a0: 66 52 20 5c 66 49 63 68 61 6e 6e 65 6c 5c 66 52  fR \fIchannel\fR
32b0: 0a 46 6f 72 63 65 20 74 68 69 73 20 63 68 61 6e  .Force this chan
32c0: 6e 65 6c 20 74 6f 20 73 68 61 72 65 20 74 68 65  nel to share the
32d0: 20 73 61 6d 65 20 5c 66 49 53 53 4c 5f 43 54 58   same \fISSL_CTX
32e0: 5c 66 52 20 73 74 72 75 63 74 75 72 65 20 61 73  \fR structure as
32f0: 20 74 68 65 0a 73 70 65 63 69 66 69 65 64 20 5c   the.specified \
3300: 66 49 63 68 61 6e 6e 65 6c 5c 66 52 2c 20 61 6e  fIchannel\fR, an
3310: 64 20 74 68 65 72 65 66 6f 72 65 20 73 68 61 72  d therefore shar
3320: 65 20 63 6f 6e 66 69 67 2c 20 63 61 6c 6c 62 61  e config, callba
3330: 63 6b 73 2c 20 65 74 63 5c 26 2e 0a 2e 54 50 0a  cks, etc\&...TP.
3340: 5c 66 42 2d 70 61 73 73 77 6f 72 64 5c 66 52 20  \fB-password\fR 
3350: 5c 66 49 63 61 6c 6c 62 61 63 6b 5c 66 52 0a 53  \fIcallback\fR.S
3360: 70 65 63 69 66 69 65 73 20 74 68 65 20 63 61 6c  pecifies the cal
3370: 6c 62 61 63 6b 20 63 6f 6d 6d 61 6e 64 20 74 6f  lback command to
3380: 20 69 6e 76 6f 6b 65 20 77 68 65 6e 20 4f 70 65   invoke when Ope
3390: 6e 53 53 4c 20 6e 65 65 64 73 20 74 6f 20 6f 62  nSSL needs to ob
33a0: 74 61 69 6e 20 61 0a 70 61 73 73 77 6f 72 64 5c  tain a.password\
33b0: 26 2e 20 54 68 69 73 20 69 73 20 74 79 70 69 63  &. This is typic
33c0: 61 6c 6c 79 20 75 73 65 64 20 74 6f 20 75 6e 6c  ally used to unl
33d0: 6f 63 6b 20 74 68 65 20 70 72 69 76 61 74 65 20  ock the private 
33e0: 6b 65 79 20 6f 66 20 61 20 63 65 72 74 69 66 69  key of a certifi
33f0: 63 61 74 65 5c 26 2e 0a 54 68 65 20 63 61 6c 6c  cate\&..The call
3400: 62 61 63 6b 20 73 68 6f 75 6c 64 20 72 65 74 75  back should retu
3410: 72 6e 20 61 20 70 61 73 73 77 6f 72 64 20 73 74  rn a password st
3420: 72 69 6e 67 5c 26 2e 20 54 68 69 73 20 6f 70 74  ring\&. This opt
3430: 69 6f 6e 20 68 61 73 20 63 68 61 6e 67 65 64 20  ion has changed 
3440: 66 6f 72 0a 54 63 6c 54 4c 53 20 31 5c 26 2e 38  for.TclTLS 1\&.8
3450: 5c 26 2e 20 53 65 65 20 5c 66 42 43 61 6c 6c 62  \&. See \fBCallb
3460: 61 63 6b 20 4f 70 74 69 6f 6e 73 5c 66 52 20 66  ack Options\fR f
3470: 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 5c 26 2e 0a  or more info\&..
3480: 2e 54 50 0a 5c 66 42 2d 70 6f 73 74 5f 68 61 6e  .TP.\fB-post_han
3490: 64 73 68 61 6b 65 5c 66 52 20 5c 66 49 62 6f 6f  dshake\fR \fIboo
34a0: 6c 5c 66 52 0a 41 6c 6c 6f 77 20 70 6f 73 74 2d  l\fR.Allow post-
34b0: 68 61 6e 64 73 68 61 6b 65 20 73 65 73 73 69 6f  handshake sessio
34c0: 6e 20 74 69 63 6b 65 74 20 75 70 64 61 74 65 73  n ticket updates
34d0: 5c 26 2e 20 54 68 69 73 20 6f 70 74 69 6f 6e 20  \&. This option 
34e0: 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c  is new for TclTL
34f0: 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54 50 0a 5c  S 1\&.8\&...TP.\
3500: 66 42 2d 72 65 71 75 65 73 74 5c 66 52 20 5c 66  fB-request\fR \f
3510: 49 62 6f 6f 6c 5c 66 52 0a 52 65 71 75 65 73 74  Ibool\fR.Request
3520: 20 61 20 63 65 72 74 69 66 69 63 61 74 65 20 66   a certificate f
3530: 72 6f 6d 20 74 68 65 20 70 65 65 72 20 64 75 72  rom the peer dur
3540: 69 6e 67 20 74 68 65 20 53 53 4c 20 68 61 6e 64  ing the SSL hand
3550: 73 68 61 6b 65 5c 26 2e 20 54 68 69 73 20 69 73  shake\&. This is
3560: 20 6e 65 65 64 65 64 0a 74 6f 20 64 6f 20 43 65   needed.to do Ce
3570: 72 74 69 66 69 63 61 74 65 20 56 61 6c 69 64 61  rtificate Valida
3580: 74 69 6f 6e 5c 26 2e 20 53 74 61 72 74 69 6e 67  tion\&. Starting
3590: 20 69 6e 20 54 63 6c 54 4c 53 20 31 5c 26 2e 38   in TclTLS 1\&.8
35a0: 2c 20 74 68 65 20 64 65 66 61 75 6c 74 20 69 73  , the default is
35b0: 0a 5c 66 42 74 72 75 65 5c 66 52 20 66 6f 72 20  .\fBtrue\fR for 
35c0: 63 6c 69 65 6e 74 20 63 6f 6e 6e 65 63 74 69 6f  client connectio
35d0: 6e 73 5c 26 2e 20 53 74 61 72 74 69 6e 67 20 69  ns\&. Starting i
35e0: 6e 20 54 63 6c 54 4c 53 20 32 5c 26 2e 30 2c 20  n TclTLS 2\&.0, 
35f0: 69 66 20 73 65 74 20 74 6f 0a 5c 66 42 66 61 6c  if set to.\fBfal
3600: 73 65 5c 66 52 20 61 6e 64 20 5c 66 42 2d 72 65  se\fR and \fB-re
3610: 71 75 69 72 65 5c 66 52 20 69 73 20 5c 66 42 74  quire\fR is \fBt
3620: 72 75 65 5c 66 52 2c 20 74 68 65 6e 20 74 68 69  rue\fR, then thi
3630: 73 20 77 69 6c 6c 20 62 65 0a 6f 76 65 72 72 69  s will be.overri
3640: 64 64 65 6e 20 74 6f 20 5c 66 42 74 72 75 65 5c  dden to \fBtrue\
3650: 66 52 5c 26 2e 0a 53 65 65 20 5c 66 42 43 65 72  fR\&..See \fBCer
3660: 74 69 66 69 63 61 74 65 20 56 61 6c 69 64 61 74  tificate Validat
3670: 69 6f 6e 5c 66 52 20 66 6f 72 20 6d 6f 72 65 20  ion\fR for more 
3680: 64 65 74 61 69 6c 73 5c 26 2e 0a 2e 54 50 0a 5c  details\&...TP.\
3690: 66 42 2d 72 65 71 75 69 72 65 5c 66 52 20 5c 66  fB-require\fR \f
36a0: 49 62 6f 6f 6c 5c 66 52 0a 52 65 71 75 69 72 65  Ibool\fR.Require
36b0: 20 61 20 76 61 6c 69 64 20 63 65 72 74 69 66 69   a valid certifi
36c0: 63 61 74 65 20 66 72 6f 6d 20 74 68 65 20 70 65  cate from the pe
36d0: 65 72 20 64 75 72 69 6e 67 20 74 68 65 20 53 53  er during the SS
36e0: 4c 20 68 61 6e 64 73 68 61 6b 65 5c 26 2e 20 49  L handshake\&. I
36f0: 66 20 74 68 69 73 20 69 73 0a 73 65 74 20 74 6f  f this is.set to
3700: 20 74 72 75 65 2c 20 74 68 65 6e 20 5c 66 42 2d   true, then \fB-
3710: 72 65 71 75 65 73 74 5c 66 52 20 6d 75 73 74 20  request\fR must 
3720: 61 6c 73 6f 20 62 65 20 73 65 74 20 74 6f 20 74  also be set to t
3730: 72 75 65 20 61 6e 64 20 61 20 65 69 74 68 65 72  rue and a either
3740: 0a 5c 66 42 2d 63 61 64 69 72 5c 66 52 2c 20 5c  .\fB-cadir\fR, \
3750: 66 42 2d 63 61 66 69 6c 65 5c 66 52 2c 20 5c 66  fB-cafile\fR, \f
3760: 42 2d 63 61 73 74 6f 72 65 5c 66 52 2c 20 6f 72  B-castore\fR, or
3770: 20 61 20 70 6c 61 74 66 6f 72 6d 20 64 65 66 61   a platform defa
3780: 75 6c 74 0a 6d 75 73 74 20 62 65 20 70 72 6f 76  ult.must be prov
3790: 69 64 65 64 20 69 6e 20 6f 72 64 65 72 20 74 6f  ided in order to
37a0: 20 76 61 6c 69 64 61 74 65 20 61 67 61 69 6e 73   validate agains
37b0: 74 5c 26 2e 20 54 68 65 20 64 65 66 61 75 6c 74  t\&. The default
37c0: 20 69 6e 20 54 63 6c 54 4c 53 20 31 5c 26 2e 38   in TclTLS 1\&.8
37d0: 20 61 6e 64 0a 65 61 72 6c 69 65 72 20 76 65 72   and.earlier ver
37e0: 73 69 6f 6e 73 20 69 73 20 5c 66 42 66 61 6c 73  sions is \fBfals
37f0: 65 5c 66 52 20 73 69 6e 63 65 20 6e 6f 74 20 61  e\fR since not a
3800: 6c 6c 20 70 6c 61 74 66 6f 72 6d 73 20 68 61 76  ll platforms hav
3810: 65 20 63 65 72 74 69 66 69 63 61 74 65 73 20 74  e certificates t
3820: 6f 0a 76 61 6c 69 64 61 74 65 20 61 67 61 69 6e  o.validate again
3830: 73 74 20 69 6e 20 61 20 66 6f 72 6d 20 63 6f 6d  st in a form com
3840: 70 61 74 69 62 6c 65 20 77 69 74 68 20 4f 70 65  patible with Ope
3850: 6e 53 53 4c 5c 26 2e 20 53 74 61 72 74 69 6e 67  nSSL\&. Starting
3860: 20 69 6e 20 54 63 6c 54 4c 53 20 32 5c 26 2e 30   in TclTLS 2\&.0
3870: 2c 0a 74 68 65 20 64 65 66 61 75 6c 74 20 69 73  ,.the default is
3880: 20 5c 66 42 74 72 75 65 5c 66 52 20 66 6f 72 20   \fBtrue\fR for 
3890: 63 6c 69 65 6e 74 20 63 6f 6e 6e 65 63 74 69 6f  client connectio
38a0: 6e 73 5c 26 2e 0a 53 65 65 20 5c 66 42 43 65 72  ns\&..See \fBCer
38b0: 74 69 66 69 63 61 74 65 20 56 61 6c 69 64 61 74  tificate Validat
38c0: 69 6f 6e 5c 66 52 20 66 6f 72 20 6d 6f 72 65 20  ion\fR for more 
38d0: 64 65 74 61 69 6c 73 5c 26 2e 0a 2e 54 50 0a 5c  details\&...TP.\
38e0: 66 42 2d 73 65 63 75 72 69 74 79 5f 6c 65 76 65  fB-security_leve
38f0: 6c 5c 66 52 20 5c 66 49 69 6e 74 65 67 65 72 5c  l\fR \fIinteger\
3900: 66 52 0a 53 70 65 63 69 66 69 65 73 20 74 68 65  fR.Specifies the
3910: 20 73 65 63 75 72 69 74 79 20 6c 65 76 65 6c 20   security level 
3920: 28 76 61 6c 75 65 20 66 72 6f 6d 20 30 20 74 6f  (value from 0 to
3930: 20 35 29 5c 26 2e 20 54 68 65 20 73 65 63 75 72   5)\&. The secur
3940: 69 74 79 20 6c 65 76 65 6c 20 61 66 66 65 63 74  ity level affect
3950: 73 0a 74 68 65 20 61 6c 6c 6f 77 65 64 20 63 69  s.the allowed ci
3960: 70 68 65 72 20 73 75 69 74 65 20 65 6e 63 72 79  pher suite encry
3970: 70 74 69 6f 6e 20 61 6c 67 6f 72 69 74 68 6d 73  ption algorithms
3980: 2c 20 73 75 70 70 6f 72 74 65 64 20 45 43 43 20  , supported ECC 
3990: 63 75 72 76 65 73 2c 0a 73 75 70 70 6f 72 74 65  curves,.supporte
39a0: 64 20 73 69 67 6e 61 74 75 72 65 20 61 6c 67 6f  d signature algo
39b0: 72 69 74 68 6d 73 2c 20 44 48 20 70 61 72 61 6d  rithms, DH param
39c0: 65 74 65 72 20 73 69 7a 65 73 2c 20 63 65 72 74  eter sizes, cert
39d0: 69 66 69 63 61 74 65 20 6b 65 79 20 73 69 7a 65  ificate key size
39e0: 73 0a 61 6e 64 20 73 69 67 6e 61 74 75 72 65 20  s.and signature 
39f0: 61 6c 67 6f 72 69 74 68 6d 73 5c 26 2e 20 54 68  algorithms\&. Th
3a00: 65 20 64 65 66 61 75 6c 74 20 69 73 20 31 20 70  e default is 1 p
3a10: 72 69 6f 72 20 74 6f 20 4f 70 65 6e 53 53 4c 20  rior to OpenSSL 
3a20: 33 5c 26 2e 32 20 61 6e 64 20 32 0a 74 68 65 72  3\&.2 and 2.ther
3a30: 65 61 66 74 65 72 5c 26 2e 20 4c 65 76 65 6c 20  eafter\&. Level 
3a40: 33 20 61 6e 64 20 68 69 67 68 65 72 20 64 69 73  3 and higher dis
3a50: 61 62 6c 65 20 73 75 70 70 6f 72 74 20 66 6f 72  able support for
3a60: 20 73 65 73 73 69 6f 6e 20 74 69 63 6b 65 74 73   session tickets
3a70: 20 61 6e 64 0a 6f 6e 6c 79 20 61 63 63 65 70 74   and.only accept
3a80: 20 63 69 70 68 65 72 20 73 75 69 74 65 73 20 74   cipher suites t
3a90: 68 61 74 20 70 72 6f 76 69 64 65 20 66 6f 72 77  hat provide forw
3aa0: 61 72 64 20 73 65 63 72 65 63 79 5c 26 2e 0a 54  ard secrecy\&..T
3ab0: 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 6e 65  his option is ne
3ac0: 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c 26  w for TclTLS 1\&
3ad0: 2e 38 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 73 65  .8\&...TP.\fB-se
3ae0: 72 76 65 72 5c 66 52 20 5c 66 49 62 6f 6f 6c 5c  rver\fR \fIbool\
3af0: 66 52 0a 53 70 65 63 69 66 69 65 73 20 77 68 65  fR.Specifies whe
3b00: 74 68 65 72 20 74 6f 20 61 63 74 20 61 73 20 61  ther to act as a
3b10: 20 73 65 72 76 65 72 20 61 6e 64 20 72 65 73 70   server and resp
3b20: 6f 6e 64 20 77 69 74 68 20 61 20 73 65 72 76 65  ond with a serve
3b30: 72 20 68 61 6e 64 73 68 61 6b 65 20 77 68 65 6e  r handshake when
3b40: 20 61 0a 63 6c 69 65 6e 74 20 63 6f 6e 6e 65 63   a.client connec
3b50: 74 73 20 61 6e 64 20 70 72 6f 76 69 64 65 73 20  ts and provides 
3b60: 61 20 63 6c 69 65 6e 74 20 68 61 6e 64 73 68 61  a client handsha
3b70: 6b 65 5c 26 2e 20 54 68 65 20 64 65 66 61 75 6c  ke\&. The defaul
3b80: 74 20 69 73 20 5c 66 42 66 61 6c 73 65 5c 66 52  t is \fBfalse\fR
3b90: 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 73 65 72 76  \&...TP.\fB-serv
3ba0: 65 72 6e 61 6d 65 5c 66 52 20 5c 66 49 68 6f 73  ername\fR \fIhos
3bb0: 74 6e 61 6d 65 5c 66 52 0a 53 70 65 63 69 66 79  tname\fR.Specify
3bc0: 20 74 68 65 20 70 65 65 72 27 73 20 68 6f 73 74   the peer's host
3bd0: 6e 61 6d 65 5c 26 2e 20 54 68 69 73 20 69 73 20  name\&. This is 
3be0: 75 73 65 64 20 74 6f 20 73 65 74 20 74 68 65 20  used to set the 
3bf0: 54 4c 53 20 53 65 72 76 65 72 20 4e 61 6d 65 20  TLS Server Name 
3c00: 49 6e 64 69 63 61 74 69 6f 6e 0a 28 53 4e 49 29  Indication.(SNI)
3c10: 20 65 78 74 65 6e 73 69 6f 6e 5c 26 2e 20 53 65   extension\&. Se
3c20: 74 20 74 68 69 73 20 74 6f 20 74 68 65 20 65 78  t this to the ex
3c30: 70 65 63 74 65 64 20 73 65 72 76 65 72 6e 61 6d  pected servernam
3c40: 65 20 69 6e 20 74 68 65 20 73 65 72 76 65 72 27  e in the server'
3c50: 73 20 63 65 72 74 69 66 69 63 61 74 65 0a 6f 72  s certificate.or
3c60: 20 6f 6e 65 20 6f 66 20 74 68 65 20 53 75 62 6a   one of the Subj
3c70: 65 63 74 20 41 6c 74 65 72 6e 61 74 65 20 4e 61  ect Alternate Na
3c80: 6d 65 73 20 28 53 41 4e 29 5c 26 2e 20 53 74 61  mes (SAN)\&. Sta
3c90: 72 74 69 6e 67 20 69 6e 20 54 63 6c 54 4c 53 20  rting in TclTLS 
3ca0: 32 5c 26 2e 30 2c 20 74 68 69 73 20 77 69 6c 6c  2\&.0, this will
3cb0: 0a 64 65 66 61 75 6c 74 20 74 6f 20 74 68 65 20  .default to the 
3cc0: 68 6f 73 74 20 66 72 6f 6d 20 74 68 65 20 5c 66  host from the \f
3cd0: 42 74 6c 73 3a 3a 73 6f 63 6b 65 74 5c 66 52 20  Btls::socket\fR 
3ce0: 63 6f 6d 6d 61 6e 64 5c 26 2e 0a 2e 54 50 0a 5c  command\&...TP.\
3cf0: 66 42 2d 73 65 73 73 69 6f 6e 5f 69 64 5c 66 52  fB-session_id\fR
3d00: 20 5c 66 49 62 69 6e 61 72 79 5f 73 74 72 69 6e   \fIbinary_strin
3d10: 67 5c 66 52 0a 53 70 65 63 69 66 69 65 73 20 74  g\fR.Specifies t
3d20: 68 65 20 73 65 73 73 69 6f 6e 20 69 64 20 74 6f  he session id to
3d30: 20 72 65 73 75 6d 65 20 61 20 73 65 73 73 69 6f   resume a sessio
3d40: 6e 5c 26 2e 20 4e 6f 74 20 73 75 70 70 6f 72 74  n\&. Not support
3d50: 65 64 20 79 65 74 5c 26 2e 0a 54 68 69 73 20 6f  ed yet\&..This o
3d60: 70 74 69 6f 6e 20 69 73 20 6e 65 77 20 66 6f 72  ption is new for
3d70: 20 54 63 6c 54 4c 53 20 31 5c 26 2e 38 5c 26 2e   TclTLS 1\&.8\&.
3d80: 0a 2e 54 50 0a 5c 66 42 2d 73 73 6c 32 5c 66 52  ..TP.\fB-ssl2\fR
3d90: 20 5c 66 49 62 6f 6f 6c 5c 66 52 0a 45 6e 61 62   \fIbool\fR.Enab
3da0: 6c 65 20 75 73 65 20 6f 66 20 53 53 4c 20 76 32  le use of SSL v2
3db0: 5c 26 2e 54 68 65 20 64 65 66 61 75 6c 74 20 69  \&.The default i
3dc0: 73 20 5c 66 42 66 61 6c 73 65 5c 66 52 5c 26 2e  s \fBfalse\fR\&.
3dd0: 0a 4f 70 65 6e 53 53 4c 20 31 5c 26 2e 31 2b 20  .OpenSSL 1\&.1+ 
3de0: 6e 6f 20 6c 6f 6e 67 65 72 20 73 75 70 70 6f 72  no longer suppor
3df0: 74 73 20 53 53 4c 20 76 32 2c 20 73 6f 20 74 68  ts SSL v2, so th
3e00: 69 73 20 6d 61 79 20 6e 6f 74 20 68 61 76 65 20  is may not have 
3e10: 61 6e 79 20 65 66 66 65 63 74 5c 26 2e 0a 53 65  any effect\&..Se
3e20: 65 20 74 68 65 20 5c 66 42 74 6c 73 3a 3a 70 72  e the \fBtls::pr
3e30: 6f 74 6f 63 6f 6c 73 5c 66 52 20 63 6f 6d 6d 61  otocols\fR comma
3e40: 6e 64 20 66 6f 72 20 73 75 70 70 6f 72 74 65 64  nd for supported
3e50: 20 70 72 6f 74 6f 63 6f 6c 73 5c 26 2e 0a 2e 54   protocols\&...T
3e60: 50 0a 5c 66 42 2d 73 73 6c 33 5c 66 52 20 5c 66  P.\fB-ssl3\fR \f
3e70: 49 62 6f 6f 6c 5c 66 52 0a 45 6e 61 62 6c 65 20  Ibool\fR.Enable 
3e80: 75 73 65 20 6f 66 20 53 53 4c 20 76 33 5c 26 2e  use of SSL v3\&.
3e90: 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 20   The default is 
3ea0: 5c 66 42 66 61 6c 73 65 5c 66 52 5c 26 2e 20 53  \fBfalse\fR\&. S
3eb0: 74 61 72 74 69 6e 67 20 69 6e 20 54 63 6c 54 4c  tarting in TclTL
3ec0: 53 20 31 5c 26 2e 38 2c 0a 75 73 65 20 6f 66 20  S 1\&.8,.use of 
3ed0: 53 53 4c 20 76 33 20 69 66 20 6f 6e 6c 79 20 61  SSL v3 if only a
3ee0: 76 61 69 6c 61 62 6c 65 20 76 69 61 20 61 20 63  vailable via a c
3ef0: 6f 6d 70 69 6c 65 20 74 69 6d 65 20 6f 70 74 69  ompile time opti
3f00: 6f 6e 5c 26 2e 0a 53 65 65 20 74 68 65 20 5c 66  on\&..See the \f
3f10: 42 74 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 5c  Btls::protocols\
3f20: 66 52 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 73  fR command for s
3f30: 75 70 70 6f 72 74 65 64 20 70 72 6f 74 6f 63 6f  upported protoco
3f40: 6c 73 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 74 6c  ls\&...TP.\fB-tl
3f50: 73 31 5c 66 52 20 5c 66 49 62 6f 6f 6c 5c 66 52  s1\fR \fIbool\fR
3f60: 0a 45 6e 61 62 6c 65 20 75 73 65 20 6f 66 20 54  .Enable use of T
3f70: 4c 53 20 76 31 5c 26 2e 20 53 74 61 72 74 69 6e  LS v1\&. Startin
3f80: 67 20 69 6e 20 54 63 6c 54 4c 53 20 32 5c 26 2e  g in TclTLS 2\&.
3f90: 30 2c 20 74 68 65 20 64 65 66 61 75 6c 74 20 69  0, the default i
3fa0: 73 20 5c 66 42 66 61 6c 73 65 5c 66 52 5c 26 2e  s \fBfalse\fR\&.
3fb0: 0a 4e 6f 74 65 3a 20 54 4c 53 20 31 5c 26 2e 30  .Note: TLS 1\&.0
3fc0: 20 6e 65 65 64 73 20 53 48 41 31 20 74 6f 20 6f   needs SHA1 to o
3fd0: 70 65 72 61 74 65 2c 20 77 68 69 63 68 20 69 73  perate, which is
3fe0: 20 6f 6e 6c 79 20 61 76 61 69 6c 61 62 6c 65 20   only available 
3ff0: 69 6e 20 73 65 63 75 72 69 74 79 20 6c 65 76 65  in security leve
4000: 6c 0a 30 20 66 6f 72 20 4f 70 65 6e 20 53 53 4c  l.0 for Open SSL
4010: 20 33 5c 26 2e 30 2b 5c 26 2e 20 53 65 65 20 74   3\&.0+\&. See t
4020: 68 65 20 5c 66 42 2d 73 65 63 75 72 69 74 79 5f  he \fB-security_
4030: 6c 65 76 65 6c 5c 66 52 20 6f 70 74 69 6f 6e 5c  level\fR option\
4040: 26 2e 0a 2e 54 50 0a 5c 66 42 2d 74 6c 73 31 5c  &...TP.\fB-tls1\
4050: 26 2e 31 5c 66 52 20 5c 66 49 62 6f 6f 6c 5c 66  &.1\fR \fIbool\f
4060: 52 0a 45 6e 61 62 6c 65 20 75 73 65 20 6f 66 20  R.Enable use of 
4070: 54 4c 53 20 76 31 5c 26 2e 31 5c 26 2e 20 53 74  TLS v1\&.1\&. St
4080: 61 72 74 69 6e 67 20 69 6e 20 54 63 6c 54 4c 53  arting in TclTLS
4090: 20 32 5c 26 2e 30 2c 20 74 68 65 20 64 65 66 61   2\&.0, the defa
40a0: 75 6c 74 20 69 73 20 5c 66 42 66 61 6c 73 65 5c  ult is \fBfalse\
40b0: 66 52 5c 26 2e 0a 4e 6f 74 65 3a 20 54 4c 53 20  fR\&..Note: TLS 
40c0: 31 5c 26 2e 31 20 6e 65 65 64 73 20 53 48 41 31  1\&.1 needs SHA1
40d0: 20 74 6f 20 6f 70 65 72 61 74 65 2c 20 77 68 69   to operate, whi
40e0: 63 68 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 6c  ch is only avail
40f0: 61 62 6c 65 20 69 6e 20 73 65 63 75 72 69 74 79  able in security
4100: 20 6c 65 76 65 6c 0a 30 20 66 6f 72 20 4f 70 65   level.0 for Ope
4110: 6e 20 53 53 4c 20 33 5c 26 2e 30 2b 5c 26 2e 20  n SSL 3\&.0+\&. 
4120: 53 65 65 20 74 68 65 20 5c 66 42 2d 73 65 63 75  See the \fB-secu
4130: 72 69 74 79 5f 6c 65 76 65 6c 5c 66 52 20 6f 70  rity_level\fR op
4140: 74 69 6f 6e 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d  tion\&...TP.\fB-
4150: 74 6c 73 31 5c 26 2e 32 5c 66 52 20 5c 66 49 62  tls1\&.2\fR \fIb
4160: 6f 6f 6c 5c 66 52 0a 45 6e 61 62 6c 65 20 75 73  ool\fR.Enable us
4170: 65 20 6f 66 20 54 4c 53 20 76 31 5c 26 2e 32 5c  e of TLS v1\&.2\
4180: 26 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 69  &. The default i
4190: 73 20 5c 66 42 74 72 75 65 5c 66 52 5c 26 2e 0a  s \fBtrue\fR\&..
41a0: 2e 54 50 0a 5c 66 42 2d 74 6c 73 31 5c 26 2e 33  .TP.\fB-tls1\&.3
41b0: 5c 66 52 20 5c 66 49 62 6f 6f 6c 5c 66 52 0a 45  \fR \fIbool\fR.E
41c0: 6e 61 62 6c 65 20 75 73 65 20 6f 66 20 54 4c 53  nable use of TLS
41d0: 20 76 31 5c 26 2e 33 5c 26 2e 20 54 68 65 20 64   v1\&.3\&. The d
41e0: 65 66 61 75 6c 74 20 69 73 20 5c 66 42 74 72 75  efault is \fBtru
41f0: 65 5c 66 52 5c 26 2e 20 54 68 69 73 20 69 73 20  e\fR\&. This is 
4200: 6f 6e 6c 79 20 61 76 61 69 6c 61 62 6c 65 0a 73  only available.s
4210: 74 61 72 74 69 6e 67 20 77 69 74 68 20 4f 70 65  tarting with Ope
4220: 6e 53 53 4c 20 31 5c 26 2e 31 5c 26 2e 31 20 61  nSSL 1\&.1\&.1 a
4230: 6e 64 20 54 63 6c 54 4c 53 20 31 5c 26 2e 37 5c  nd TclTLS 1\&.7\
4240: 26 2e 0a 2e 54 50 0a 5c 66 42 2d 76 61 6c 69 64  &...TP.\fB-valid
4250: 61 74 65 63 6f 6d 6d 61 6e 64 5c 66 52 20 5c 66  atecommand\fR \f
4260: 49 63 61 6c 6c 62 61 63 6b 5c 66 52 0a 53 70 65  Icallback\fR.Spe
4270: 63 69 66 69 65 73 20 74 68 65 20 63 61 6c 6c 62  cifies the callb
4280: 61 63 6b 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 69  ack command to i
4290: 6e 76 6f 6b 65 20 74 6f 20 76 61 6c 69 64 61 74  nvoke to validat
42a0: 65 20 74 68 65 20 70 65 65 72 20 63 65 72 74 69  e the peer certi
42b0: 66 69 63 61 74 65 73 0a 61 6e 64 20 6f 74 68 65  ficates.and othe
42c0: 72 20 63 6f 6e 66 69 67 20 69 6e 66 6f 20 64 75  r config info du
42d0: 72 69 6e 67 20 74 68 65 20 70 72 6f 74 6f 63 6f  ring the protoco
42e0: 6c 20 6e 65 67 6f 74 69 61 74 69 6f 6e 20 70 68  l negotiation ph
42f0: 61 73 65 5c 26 2e 20 54 68 69 73 20 63 61 6e 20  ase\&. This can 
4300: 62 65 20 75 73 65 64 0a 62 79 20 54 43 4c 20 73  be used.by TCL s
4310: 63 72 69 70 74 73 20 74 6f 20 70 65 72 66 6f 72  cripts to perfor
4320: 6d 20 74 68 65 69 72 20 6f 77 6e 20 43 65 72 74  m their own Cert
4330: 69 66 69 63 61 74 65 20 56 61 6c 69 64 61 74 69  ificate Validati
4340: 6f 6e 20 74 6f 20 73 75 70 70 6c 65 6d 65 6e 74  on to supplement
4350: 20 74 68 65 0a 64 65 66 61 75 6c 74 20 76 61 6c   the.default val
4360: 69 64 61 74 69 6f 6e 20 70 72 6f 76 69 64 65 64  idation provided
4370: 20 62 79 20 4f 70 65 6e 53 53 4c 5c 26 2e 20 54   by OpenSSL\&. T
4380: 68 65 20 73 63 72 69 70 74 20 6d 75 73 74 20 72  he script must r
4390: 65 74 75 72 6e 20 61 20 62 6f 6f 6c 65 61 6e 20  eturn a boolean 
43a0: 74 72 75 65 0a 74 6f 20 63 6f 6e 74 69 6e 75 65  true.to continue
43b0: 20 74 68 65 20 6e 65 67 6f 74 69 61 74 69 6f 6e   the negotiation
43c0: 5c 26 2e 20 53 65 65 20 5c 66 42 43 61 6c 6c 62  \&. See \fBCallb
43d0: 61 63 6b 20 4f 70 74 69 6f 6e 73 5c 66 52 20 66  ack Options\fR f
43e0: 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 5c 26 2e 0a  or more info\&..
43f0: 54 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 6e  This option is n
4400: 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c  ew for TclTLS 1\
4410: 26 2e 38 5c 26 2e 0a 2e 52 45 0a 2e 54 50 0a 5c  &.8\&...RE..TP.\
4420: 66 42 74 6c 73 3a 3a 68 61 6e 64 73 68 61 6b 65  fBtls::handshake
4430: 5c 66 52 20 5c 66 49 63 68 61 6e 6e 65 6c 5c 66  \fR \fIchannel\f
4440: 52 0a 46 6f 72 63 65 73 20 74 68 65 20 54 4c 53  R.Forces the TLS
4450: 20 6e 65 67 6f 74 69 61 74 69 6f 6e 20 68 61 6e   negotiation han
4460: 64 73 68 61 6b 65 20 74 6f 20 74 61 6b 65 20 70  dshake to take p
4470: 6c 61 63 65 20 69 6d 6d 65 64 69 61 74 65 6c 79  lace immediately
4480: 2c 20 61 6e 64 20 72 65 74 75 72 6e 73 20 30 0a  , and returns 0.
4490: 69 66 20 68 61 6e 64 73 68 61 6b 65 20 69 73 20  if handshake is 
44a0: 73 74 69 6c 6c 20 69 6e 20 70 72 6f 67 72 65 73  still in progres
44b0: 73 20 28 6e 6f 6e 2d 62 6c 6f 63 6b 69 6e 67 29  s (non-blocking)
44c0: 2c 20 6f 72 20 31 20 69 66 20 74 68 65 20 68 61  , or 1 if the ha
44d0: 6e 64 73 68 61 6b 65 20 77 61 73 0a 73 75 63 63  ndshake was.succ
44e0: 65 73 73 66 75 6c 5c 26 2e 20 49 66 20 74 68 65  essful\&. If the
44f0: 20 68 61 6e 64 73 68 61 6b 65 20 66 61 69 6c 65   handshake faile
4500: 64 2c 20 61 6e 20 65 72 72 6f 72 20 77 69 6c 6c  d, an error will
4510: 20 62 65 20 72 65 74 75 72 6e 65 64 5c 26 2e 0a   be returned\&..
4520: 2e 54 50 0a 5c 66 42 74 6c 73 3a 3a 73 68 75 74  .TP.\fBtls::shut
4530: 64 6f 77 6e 5c 66 52 20 5c 66 49 63 68 61 6e 6e  down\fR \fIchann
4540: 65 6c 5c 66 52 0a 2e 54 50 0a 5c 66 42 74 6c 73  el\fR..TP.\fBtls
4550: 3a 3a 75 6e 69 6d 70 6f 72 74 5c 66 52 20 5c 66  ::unimport\fR \f
4560: 49 63 68 61 6e 6e 65 6c 5c 66 52 0a 2e 54 50 0a  Ichannel\fR..TP.
4570: 5c 66 42 74 6c 73 3a 3a 75 6e 73 74 61 63 6b 5c  \fBtls::unstack\
4580: 66 52 20 5c 66 49 63 68 61 6e 6e 65 6c 5c 66 52  fR \fIchannel\fR
4590: 0a 54 68 69 73 20 74 65 72 6d 69 6e 61 74 65 73  .This terminates
45a0: 20 74 68 65 20 53 53 4c 2f 54 4c 53 20 73 65 73   the SSL/TLS ses
45b0: 73 69 6f 6e 20 62 79 20 73 65 6e 64 69 6e 67 20  sion by sending 
45c0: 74 68 65 20 22 63 6c 6f 73 65 5f 6e 6f 74 69 66  the "close_notif
45d0: 79 22 20 6d 65 73 73 61 67 65 20 61 6e 64 0a 72  y" message and.r
45e0: 65 6d 6f 76 65 73 20 74 68 65 20 74 6f 70 20 6c  emoves the top l
45f0: 65 76 65 6c 20 73 74 61 63 6b 65 64 20 63 68 61  evel stacked cha
4600: 6e 6e 65 6c 20 66 72 6f 6d 20 5c 66 49 63 68 61  nnel from \fIcha
4610: 6e 6e 65 6c 5c 66 52 2c 20 62 75 74 20 69 74 20  nnel\fR, but it 
4620: 64 6f 65 73 20 6e 6f 74 20 63 6c 6f 73 65 0a 74  does not close.t
4630: 68 65 20 73 6f 63 6b 65 74 5c 26 2e 20 49 74 20  he socket\&. It 
4640: 69 73 20 74 68 65 20 63 6f 6d 70 6c 69 6d 65 6e  is the complimen
4650: 74 20 74 6f 20 5c 66 42 74 6c 73 3a 3a 69 6d 70  t to \fBtls::imp
4660: 6f 72 74 5c 66 52 20 62 79 20 65 6e 64 69 6e 67  ort\fR by ending
4670: 20 65 6e 63 72 79 70 74 69 6f 6e 20 6f 66 0a 61   encryption of.a
4680: 20 54 43 4c 20 63 68 61 6e 6e 65 6c 5c 26 2e 20   TCL channel\&. 
4690: 41 6e 20 65 72 72 6f 72 20 69 73 20 74 68 72 6f  An error is thro
46a0: 77 6e 20 69 66 20 54 4c 53 20 69 73 20 6e 6f 74  wn if TLS is not
46b0: 20 74 68 65 20 74 6f 70 20 73 74 61 63 6b 65 64   the top stacked
46c0: 20 63 68 61 6e 6e 65 6c 20 74 79 70 65 5c 26 2e   channel type\&.
46d0: 0a 2e 54 50 0a 5c 66 42 74 6c 73 3a 3a 73 74 61  ..TP.\fBtls::sta
46e0: 74 75 73 5c 66 52 20 3f 5c 66 42 2d 6c 6f 63 61  tus\fR ?\fB-loca
46f0: 6c 5c 66 52 3f 20 5c 66 49 63 68 61 6e 6e 65 6c  l\fR? \fIchannel
4700: 5c 66 52 0a 52 65 74 75 72 6e 73 20 74 68 65 20  \fR.Returns the 
4710: 63 75 72 72 65 6e 74 20 73 74 61 74 75 73 20 6f  current status o
4720: 66 20 61 6e 20 53 53 4c 20 63 68 61 6e 6e 65 6c  f an SSL channel
4730: 5c 26 2e 20 54 68 65 20 72 65 73 75 6c 74 20 69  \&. The result i
4740: 73 20 61 20 6c 69 73 74 20 6f 66 20 6b 65 79 2d  s a list of key-
4750: 76 61 6c 75 65 0a 70 61 69 72 73 20 64 65 73 63  value.pairs desc
4760: 72 69 62 69 6e 67 20 74 68 65 20 53 53 4c 2c 20  ribing the SSL, 
4770: 63 65 72 74 69 66 69 63 61 74 65 2c 20 61 6e 64  certificate, and
4780: 20 63 65 72 74 69 66 69 63 61 74 65 20 76 65 72   certificate ver
4790: 69 66 69 63 61 74 69 6f 6e 20 73 74 61 74 75 73  ification status
47a0: 5c 26 2e 20 49 66 0a 74 68 65 20 53 53 4c 20 68  \&. If.the SSL h
47b0: 61 6e 64 73 68 61 6b 65 20 68 61 73 20 6e 6f 74  andshake has not
47c0: 20 79 65 74 20 63 6f 6d 70 6c 65 74 65 64 2c 20   yet completed, 
47d0: 61 6e 20 65 6d 70 74 79 20 6c 69 73 74 20 69 73  an empty list is
47e0: 20 72 65 74 75 72 6e 65 64 5c 26 2e 20 49 66 20   returned\&. If 
47f0: 74 68 65 0a 5c 66 42 2d 6c 6f 63 61 6c 5c 66 52  the.\fB-local\fR
4800: 20 6f 70 74 69 6f 6e 20 69 73 20 73 70 65 63 69   option is speci
4810: 66 69 65 64 2c 20 74 68 65 6e 20 74 68 65 20 6c  fied, then the l
4820: 6f 63 61 6c 20 63 65 72 74 69 66 69 63 61 74 65  ocal certificate
4830: 20 69 73 20 75 73 65 64 5c 26 2e 0a 52 65 74 75   is used\&..Retu
4840: 72 6e 65 64 20 76 61 6c 75 65 73 20 69 6e 63 6c  rned values incl
4850: 75 64 65 3a 0a 2e 73 70 0a 53 53 4c 20 53 74 61  ude:..sp.SSL Sta
4860: 74 75 73 0a 2e 52 53 0a 2e 54 50 0a 5c 66 42 61  tus..RS..TP.\fBa
4870: 6c 70 6e 5c 66 52 20 5c 66 49 70 72 6f 74 6f 63  lpn\fR \fIprotoc
4880: 6f 6c 5c 66 52 0a 54 68 65 20 70 72 6f 74 6f 63  ol\fR.The protoc
4890: 6f 6c 20 73 65 6c 65 63 74 65 64 20 61 66 74 65  ol selected afte
48a0: 72 20 41 70 70 6c 69 63 61 74 69 6f 6e 2d 4c 61  r Application-La
48b0: 79 65 72 20 50 72 6f 74 6f 63 6f 6c 20 4e 65 67  yer Protocol Neg
48c0: 6f 74 69 61 74 69 6f 6e 20 28 41 4c 50 4e 29 5c  otiation (ALPN)\
48d0: 26 2e 0a 54 68 69 73 20 76 61 6c 75 65 20 69 73  &..This value is
48e0: 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20   new for TclTLS 
48f0: 31 5c 26 2e 38 5c 26 2e 0a 2e 54 50 0a 5c 66 42  1\&.8\&...TP.\fB
4900: 63 69 70 68 65 72 5c 66 52 20 5c 66 49 63 69 70  cipher\fR \fIcip
4910: 68 65 72 5c 66 52 0a 54 68 65 20 63 75 72 72 65  her\fR.The curre
4920: 6e 74 20 63 69 70 68 65 72 20 69 6e 20 75 73 65  nt cipher in use
4930: 20 66 6f 72 20 74 68 65 20 73 65 73 73 69 6f 6e   for the session
4940: 5c 26 2e 0a 2e 54 50 0a 5c 66 42 70 65 65 72 6e  \&...TP.\fBpeern
4950: 61 6d 65 5c 66 52 20 5c 66 49 6e 61 6d 65 5c 66  ame\fR \fIname\f
4960: 52 0a 54 68 65 20 70 65 65 72 6e 61 6d 65 20 66  R.The peername f
4970: 72 6f 6d 20 74 68 65 20 63 65 72 74 69 66 69 63  rom the certific
4980: 61 74 65 5c 26 2e 0a 54 68 69 73 20 76 61 6c 75  ate\&..This valu
4990: 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c  e is new for Tcl
49a0: 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54 50  TLS 1\&.8\&...TP
49b0: 0a 5c 66 42 70 72 6f 74 6f 63 6f 6c 5c 66 52 20  .\fBprotocol\fR 
49c0: 5c 66 49 76 65 72 73 69 6f 6e 5c 66 52 0a 54 68  \fIversion\fR.Th
49d0: 65 20 70 72 6f 74 6f 63 6f 6c 20 76 65 72 73 69  e protocol versi
49e0: 6f 6e 20 75 73 65 64 20 66 6f 72 20 74 68 65 20  on used for the 
49f0: 63 6f 6e 6e 65 63 74 69 6f 6e 3a 20 53 53 4c 32  connection: SSL2
4a00: 2c 20 53 53 4c 33 2c 20 54 4c 53 31 2c 20 54 4c  , SSL3, TLS1, TL
4a10: 53 31 5c 26 2e 31 2c 20 54 4c 53 31 5c 26 2e 32  S1\&.1, TLS1\&.2
4a20: 2c 0a 54 4c 53 31 5c 26 2e 33 2c 20 6f 72 20 75  ,.TLS1\&.3, or u
4a30: 6e 6b 6e 6f 77 6e 5c 26 2e 20 54 68 69 73 20 76  nknown\&. This v
4a40: 61 6c 75 65 20 69 73 20 6e 65 77 20 66 6f 72 20  alue is new for 
4a50: 54 63 6c 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a  TclTLS 1\&.8\&..
4a60: 2e 54 50 0a 5c 66 42 73 62 69 74 73 5c 66 52 20  .TP.\fBsbits\fR 
4a70: 5c 66 49 6e 5c 66 52 0a 54 68 65 20 6e 75 6d 62  \fIn\fR.The numb
4a80: 65 72 20 6f 66 20 62 69 74 73 20 75 73 65 64 20  er of bits used 
4a90: 66 6f 72 20 74 68 65 20 73 65 73 73 69 6f 6e 20  for the session 
4aa0: 6b 65 79 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 69  key\&...TP.\fBsi
4ab0: 67 6e 61 74 75 72 65 48 61 73 68 41 6c 67 6f 72  gnatureHashAlgor
4ac0: 69 74 68 6d 5c 66 52 20 5c 66 49 61 6c 67 6f 72  ithm\fR \fIalgor
4ad0: 69 74 68 6d 5c 66 52 0a 54 68 65 20 73 69 67 6e  ithm\fR.The sign
4ae0: 61 74 75 72 65 20 68 61 73 68 20 61 6c 67 6f 72  ature hash algor
4af0: 69 74 68 6d 5c 26 2e 0a 54 68 69 73 20 76 61 6c  ithm\&..This val
4b00: 75 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63  ue is new for Tc
4b10: 6c 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54  lTLS 1\&.8\&...T
4b20: 50 0a 5c 66 42 73 69 67 6e 61 74 75 72 65 54 79  P.\fBsignatureTy
4b30: 70 65 5c 66 52 20 5c 66 49 74 79 70 65 5c 66 52  pe\fR \fItype\fR
4b40: 0a 54 68 65 20 73 69 67 6e 61 74 75 72 65 20 74  .The signature t
4b50: 79 70 65 20 76 61 6c 75 65 5c 26 2e 0a 54 68 69  ype value\&..Thi
4b60: 73 20 76 61 6c 75 65 20 69 73 20 6e 65 77 20 66  s value is new f
4b70: 6f 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e 38 5c  or TclTLS 1\&.8\
4b80: 26 2e 0a 2e 54 50 0a 5c 66 42 76 65 72 69 66 79  &...TP.\fBverify
4b90: 44 65 70 74 68 5c 66 52 20 5c 66 49 6e 5c 66 52  Depth\fR \fIn\fR
4ba0: 0a 4d 61 78 69 6d 75 6d 20 64 65 70 74 68 20 66  .Maximum depth f
4bb0: 6f 72 20 74 68 65 20 63 65 72 74 69 66 69 63 61  or the certifica
4bc0: 74 65 20 63 68 61 69 6e 20 76 65 72 69 66 69 63  te chain verific
4bd0: 61 74 69 6f 6e 5c 26 2e 20 44 65 66 61 75 6c 74  ation\&. Default
4be0: 20 69 73 20 2d 31 2c 20 74 6f 20 63 68 65 63 6b   is -1, to check
4bf0: 20 61 6c 6c 5c 26 2e 0a 54 68 69 73 20 76 61 6c   all\&..This val
4c00: 75 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63  ue is new for Tc
4c10: 6c 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54  lTLS 1\&.8\&...T
4c20: 50 0a 5c 66 42 76 65 72 69 66 79 4d 6f 64 65 5c  P.\fBverifyMode\
4c30: 66 52 20 5c 66 49 6c 69 73 74 5c 66 52 0a 4c 69  fR \fIlist\fR.Li
4c40: 73 74 20 6f 66 20 63 65 72 74 69 66 69 63 61 74  st of certificat
4c50: 65 20 76 65 72 69 66 69 63 61 74 69 6f 6e 20 6d  e verification m
4c60: 6f 64 65 73 5c 26 2e 0a 54 68 69 73 20 76 61 6c  odes\&..This val
4c70: 75 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63  ue is new for Tc
4c80: 6c 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54  lTLS 1\&.8\&...T
4c90: 50 0a 5c 66 42 76 65 72 69 66 79 52 65 73 75 6c  P.\fBverifyResul
4ca0: 74 5c 66 52 20 5c 66 49 72 65 73 75 6c 74 5c 66  t\fR \fIresult\f
4cb0: 52 0a 43 65 72 74 69 66 69 63 61 74 65 20 76 65  R.Certificate ve
4cc0: 72 69 66 69 63 61 74 69 6f 6e 20 72 65 73 75 6c  rification resul
4cd0: 74 5c 26 2e 0a 54 68 69 73 20 76 61 6c 75 65 20  t\&..This value 
4ce0: 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c  is new for TclTL
4cf0: 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54 50 0a 5c  S 1\&.8\&...TP.\
4d00: 66 42 63 61 5f 6e 61 6d 65 73 5c 66 52 20 5c 66  fBca_names\fR \f
4d10: 49 6c 69 73 74 5c 66 52 0a 4c 69 73 74 20 6f 66  Ilist\fR.List of
4d20: 20 74 68 65 20 43 65 72 74 69 66 69 63 61 74 65   the Certificate
4d30: 20 41 75 74 68 6f 72 69 74 69 65 73 20 75 73 65   Authorities use
4d40: 64 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20  d to create the 
4d50: 63 65 72 74 69 66 69 63 61 74 65 5c 26 2e 0a 54  certificate\&..T
4d60: 68 69 73 20 76 61 6c 75 65 20 69 73 20 6e 65 77  his value is new
4d70: 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e   for TclTLS 1\&.
4d80: 38 5c 26 2e 0a 2e 52 45 0a 2e 49 50 0a 43 65 72  8\&...RE..IP.Cer
4d90: 74 69 66 69 63 61 74 65 20 53 74 61 74 75 73 0a  tificate Status.
4da0: 2e 52 53 0a 2e 54 50 0a 5c 66 42 61 6c 6c 5c 66  .RS..TP.\fBall\f
4db0: 52 20 5c 66 49 73 74 72 69 6e 67 5c 66 52 0a 44  R \fIstring\fR.D
4dc0: 75 6d 70 20 6f 66 20 61 6c 6c 20 63 65 72 74 69  ump of all certi
4dd0: 66 69 63 61 74 65 20 69 6e 66 6f 5c 26 2e 0a 54  ficate info\&..T
4de0: 68 69 73 20 76 61 6c 75 65 20 69 73 20 6e 65 77  his value is new
4df0: 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e   for TclTLS 1\&.
4e00: 38 5c 26 2e 0a 2e 54 50 0a 5c 66 42 76 65 72 73  8\&...TP.\fBvers
4e10: 69 6f 6e 5c 66 52 20 5c 66 49 76 61 6c 75 65 5c  ion\fR \fIvalue\
4e20: 66 52 0a 54 68 65 20 63 65 72 74 69 66 69 63 61  fR.The certifica
4e30: 74 65 20 76 65 72 73 69 6f 6e 5c 26 2e 0a 2e 54  te version\&...T
4e40: 50 0a 5c 66 42 73 65 72 69 61 6c 4e 75 6d 62 65  P.\fBserialNumbe
4e50: 72 5c 66 52 20 5c 66 49 73 74 72 69 6e 67 5c 66  r\fR \fIstring\f
4e60: 52 0a 54 68 65 20 73 65 72 69 61 6c 20 6e 75 6d  R.The serial num
4e70: 62 65 72 20 6f 66 20 74 68 65 20 63 65 72 74 69  ber of the certi
4e80: 66 69 63 61 74 65 20 61 73 20 61 20 68 65 78 20  ficate as a hex 
4e90: 73 74 72 69 6e 67 5c 26 2e 0a 54 68 69 73 20 76  string\&..This v
4ea0: 61 6c 75 65 20 77 61 73 20 63 68 61 6e 67 65 64  alue was changed
4eb0: 20 66 72 6f 6d 20 73 65 72 69 61 6c 20 69 6e 20   from serial in 
4ec0: 54 63 6c 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a  TclTLS 1\&.8\&..
4ed0: 2e 54 50 0a 5c 66 42 73 69 67 6e 61 74 75 72 65  .TP.\fBsignature
4ee0: 5c 66 52 20 5c 66 49 61 6c 67 6f 72 69 74 68 6d  \fR \fIalgorithm
4ef0: 5c 66 52 0a 43 69 70 68 65 72 20 61 6c 67 6f 72  \fR.Cipher algor
4f00: 69 74 68 6d 20 75 73 65 64 20 66 6f 72 20 63 65  ithm used for ce
4f10: 72 74 69 66 69 63 61 74 65 20 73 69 67 6e 61 74  rtificate signat
4f20: 75 72 65 5c 26 2e 0a 54 68 69 73 20 76 61 6c 75  ure\&..This valu
4f30: 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c  e is new for Tcl
4f40: 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54 50  TLS 1\&.8\&...TP
4f50: 0a 5c 66 42 69 73 73 75 65 72 5c 66 52 20 5c 66  .\fBissuer\fR \f
4f60: 49 73 74 72 69 6e 67 5c 66 52 0a 54 68 65 20 64  Istring\fR.The d
4f70: 69 73 74 69 6e 67 75 69 73 68 65 64 20 6e 61 6d  istinguished nam
4f80: 65 20 28 44 4e 29 20 6f 66 20 74 68 65 20 63 65  e (DN) of the ce
4f90: 72 74 69 66 69 63 61 74 65 20 69 73 73 75 65 72  rtificate issuer
4fa0: 5c 26 2e 0a 2e 54 50 0a 5c 66 42 6e 6f 74 42 65  \&...TP.\fBnotBe
4fb0: 66 6f 72 65 5c 66 52 20 5c 66 49 64 61 74 65 5c  fore\fR \fIdate\
4fc0: 66 52 0a 54 68 65 20 62 65 67 69 6e 6e 69 6e 67  fR.The beginning
4fd0: 20 64 61 74 65 20 6f 66 20 74 68 65 20 63 65 72   date of the cer
4fe0: 74 69 66 69 63 61 74 65 20 76 61 6c 69 64 69 74  tificate validit
4ff0: 79 5c 26 2e 0a 2e 54 50 0a 5c 66 42 6e 6f 74 41  y\&...TP.\fBnotA
5000: 66 74 65 72 5c 66 52 20 5c 66 49 64 61 74 65 5c  fter\fR \fIdate\
5010: 66 52 0a 54 68 65 20 65 78 70 69 72 61 74 69 6f  fR.The expiratio
5020: 6e 20 64 61 74 65 20 6f 66 20 74 68 65 20 63 65  n date of the ce
5030: 72 74 69 66 69 63 61 74 65 20 76 61 6c 69 64 69  rtificate validi
5040: 74 79 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 75 62  ty\&...TP.\fBsub
5050: 6a 65 63 74 5c 66 52 20 5c 66 49 73 74 72 69 6e  ject\fR \fIstrin
5060: 67 5c 66 52 0a 54 68 65 20 64 69 73 74 69 6e 67  g\fR.The disting
5070: 75 69 73 68 65 64 20 6e 61 6d 65 20 28 44 4e 29  uished name (DN)
5080: 20 6f 66 20 74 68 65 20 63 65 72 74 69 66 69 63   of the certific
5090: 61 74 65 20 73 75 62 6a 65 63 74 5c 26 2e 20 46  ate subject\&. F
50a0: 69 65 6c 64 73 20 69 6e 63 6c 75 64 65 3a 20 43  ields include: C
50b0: 6f 6d 6d 6f 6e 0a 4e 61 6d 65 20 28 43 4e 29 2c  ommon.Name (CN),
50c0: 20 4f 72 67 61 6e 69 7a 61 74 69 6f 6e 20 28 4f   Organization (O
50d0: 29 2c 20 4c 6f 63 61 6c 69 74 79 20 6f 72 20 43  ), Locality or C
50e0: 69 74 79 20 28 4c 29 2c 20 53 74 61 74 65 20 6f  ity (L), State o
50f0: 72 20 50 72 6f 76 69 6e 63 65 20 28 53 29 2c 20  r Province (S), 
5100: 61 6e 64 0a 43 6f 75 6e 74 72 79 20 4e 61 6d 65  and.Country Name
5110: 20 28 43 29 5c 26 2e 0a 2e 54 50 0a 5c 66 42 69   (C)\&...TP.\fBi
5120: 73 73 75 65 72 55 6e 69 71 75 65 49 44 5c 66 52  ssuerUniqueID\fR
5130: 20 5c 66 49 73 74 72 69 6e 67 5c 66 52 0a 54 68   \fIstring\fR.Th
5140: 65 20 69 73 73 75 65 72 20 75 6e 69 71 75 65 20  e issuer unique 
5150: 69 64 5c 26 2e 0a 54 68 69 73 20 76 61 6c 75 65  id\&..This value
5160: 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54   is new for TclT
5170: 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54 50 0a  LS 1\&.8\&...TP.
5180: 5c 66 42 73 75 62 6a 65 63 74 55 6e 69 71 75 65  \fBsubjectUnique
5190: 49 44 5c 66 52 20 5c 66 49 73 74 72 69 6e 67 5c  ID\fR \fIstring\
51a0: 66 52 0a 54 68 65 20 73 75 62 6a 65 63 74 20 75  fR.The subject u
51b0: 6e 69 71 75 65 20 69 64 5c 26 2e 0a 54 68 69 73  nique id\&..This
51c0: 20 76 61 6c 75 65 20 69 73 20 6e 65 77 20 66 6f   value is new fo
51d0: 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e 38 5c 26  r TclTLS 1\&.8\&
51e0: 2e 0a 2e 54 50 0a 5c 66 42 6e 75 6d 5f 65 78 74  ...TP.\fBnum_ext
51f0: 65 6e 73 69 6f 6e 73 5c 66 52 20 5c 66 49 6e 5c  ensions\fR \fIn\
5200: 66 52 0a 4e 75 6d 62 65 72 20 6f 66 20 63 65 72  fR.Number of cer
5210: 74 69 66 69 63 61 74 65 20 65 78 74 65 6e 73 69  tificate extensi
5220: 6f 6e 73 5c 26 2e 0a 54 68 69 73 20 76 61 6c 75  ons\&..This valu
5230: 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c  e is new for Tcl
5240: 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54 50  TLS 1\&.8\&...TP
5250: 0a 5c 66 42 65 78 74 65 6e 73 69 6f 6e 73 5c 66  .\fBextensions\f
5260: 52 20 5c 66 49 6c 69 73 74 5c 66 52 0a 4c 69 73  R \fIlist\fR.Lis
5270: 74 20 6f 66 20 63 65 72 74 69 66 69 63 61 74 65  t of certificate
5280: 20 65 78 74 65 6e 73 69 6f 6e 20 6e 61 6d 65 73   extension names
5290: 5c 26 2e 0a 54 68 69 73 20 76 61 6c 75 65 20 69  \&..This value i
52a0: 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53  s new for TclTLS
52b0: 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54 50 0a 5c 66   1\&.8\&...TP.\f
52c0: 42 61 75 74 68 6f 72 69 74 79 4b 65 79 49 64 65  BauthorityKeyIde
52d0: 6e 74 69 66 69 65 72 5c 66 52 20 5c 66 49 73 74  ntifier\fR \fIst
52e0: 72 69 6e 67 5c 66 52 0a 41 75 74 68 6f 72 69 74  ring\fR.Authorit
52f0: 79 20 4b 65 79 20 49 64 65 6e 74 69 66 69 65 72  y Key Identifier
5300: 20 28 41 4b 49 29 20 6f 66 20 74 68 65 20 49 73   (AKI) of the Is
5310: 73 75 69 6e 67 20 43 41 20 63 65 72 74 69 66 69  suing CA certifi
5320: 63 61 74 65 20 74 68 61 74 20 73 69 67 6e 65 64  cate that signed
5330: 20 74 68 65 0a 53 53 4c 20 63 65 72 74 69 66 69   the.SSL certifi
5340: 63 61 74 65 20 61 73 20 61 20 68 65 78 20 73 74  cate as a hex st
5350: 72 69 6e 67 5c 26 2e 20 54 68 69 73 20 76 61 6c  ring\&. This val
5360: 75 65 20 6d 61 74 63 68 65 73 20 74 68 65 20 53  ue matches the S
5370: 4b 49 20 76 61 6c 75 65 20 6f 66 20 74 68 65 0a  KI value of the.
5380: 49 6e 74 65 72 6d 65 64 69 61 74 65 20 43 41 20  Intermediate CA 
5390: 63 65 72 74 69 66 69 63 61 74 65 5c 26 2e 0a 54  certificate\&..T
53a0: 68 69 73 20 76 61 6c 75 65 20 69 73 20 6e 65 77  his value is new
53b0: 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e   for TclTLS 1\&.
53c0: 38 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 75 62 6a  8\&...TP.\fBsubj
53d0: 65 63 74 4b 65 79 49 64 65 6e 74 69 66 69 65 72  ectKeyIdentifier
53e0: 5c 66 52 20 5c 66 49 73 74 72 69 6e 67 5c 66 52  \fR \fIstring\fR
53f0: 0a 53 75 62 6a 65 63 74 20 4b 65 79 20 49 64 65  .Subject Key Ide
5400: 6e 74 69 66 69 65 72 20 28 53 4b 49 29 20 68 61  ntifier (SKI) ha
5410: 73 68 20 6f 66 20 74 68 65 20 70 75 62 6c 69 63  sh of the public
5420: 20 6b 65 79 20 69 6e 73 69 64 65 20 74 68 65 20   key inside the 
5430: 63 65 72 74 69 66 69 63 61 74 65 20 61 73 20 61  certificate as a
5440: 0a 68 65 78 20 73 74 72 69 6e 67 5c 26 2e 20 55  .hex string\&. U
5450: 73 65 64 20 74 6f 20 69 64 65 6e 74 69 66 79 20  sed to identify 
5460: 63 65 72 74 69 66 69 63 61 74 65 73 20 74 68 61  certificates tha
5470: 74 20 63 6f 6e 74 61 69 6e 20 61 20 70 61 72 74  t contain a part
5480: 69 63 75 6c 61 72 20 70 75 62 6c 69 63 20 6b 65  icular public ke
5490: 79 5c 26 2e 0a 54 68 69 73 20 76 61 6c 75 65 20  y\&..This value 
54a0: 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c  is new for TclTL
54b0: 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54 50 0a 5c  S 1\&.8\&...TP.\
54c0: 66 42 73 75 62 6a 65 63 74 41 6c 74 4e 61 6d 65  fBsubjectAltName
54d0: 5c 66 52 20 5c 66 49 6c 69 73 74 5c 66 52 0a 4c  \fR \fIlist\fR.L
54e0: 69 73 74 20 6f 66 20 61 6c 6c 20 6f 66 20 74 68  ist of all of th
54f0: 65 20 53 75 62 6a 65 63 74 20 41 6c 74 65 72 6e  e Subject Altern
5500: 61 74 69 76 65 20 4e 61 6d 65 73 20 28 53 41 4e  ative Names (SAN
5510: 29 20 69 6e 63 6c 75 64 69 6e 67 20 64 6f 6d 61  ) including doma
5520: 69 6e 20 6e 61 6d 65 73 2c 20 73 75 62 0a 64 6f  in names, sub.do
5530: 6d 61 69 6e 73 2c 20 61 6e 64 20 49 50 20 61 64  mains, and IP ad
5540: 64 72 65 73 73 65 73 20 74 68 61 74 20 61 72 65  dresses that are
5550: 20 73 65 63 75 72 65 64 20 62 79 20 74 68 65 20   secured by the 
5560: 63 65 72 74 69 66 69 63 61 74 65 5c 26 2e 0a 54  certificate\&..T
5570: 68 69 73 20 76 61 6c 75 65 20 69 73 20 6e 65 77  his value is new
5580: 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e   for TclTLS 1\&.
5590: 38 5c 26 2e 0a 2e 54 50 0a 5c 66 42 6f 63 73 70  8\&...TP.\fBocsp
55a0: 5c 66 52 20 5c 66 49 6c 69 73 74 5c 66 52 0a 4c  \fR \fIlist\fR.L
55b0: 69 73 74 20 6f 66 20 61 6c 6c 20 4f 6e 6c 69 6e  ist of all Onlin
55c0: 65 20 43 65 72 74 69 66 69 63 61 74 65 20 53 74  e Certificate St
55d0: 61 74 75 73 20 50 72 6f 74 6f 63 6f 6c 20 28 4f  atus Protocol (O
55e0: 43 53 50 29 20 55 52 4c 73 20 74 68 61 74 20 63  CSP) URLs that c
55f0: 61 6e 20 62 65 20 75 73 65 64 20 74 6f 0a 63 68  an be used to.ch
5600: 65 63 6b 20 74 68 65 20 76 61 6c 69 64 69 74 79  eck the validity
5610: 20 6f 66 20 74 68 69 73 20 63 65 72 74 69 66 69   of this certifi
5620: 63 61 74 65 5c 26 2e 0a 54 68 69 73 20 76 61 6c  cate\&..This val
5630: 75 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63  ue is new for Tc
5640: 6c 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54  lTLS 1\&.8\&...T
5650: 50 0a 5c 66 42 63 65 72 74 69 66 69 63 61 74 65  P.\fBcertificate
5660: 5c 66 52 20 5c 66 49 63 65 72 74 5c 66 52 0a 54  \fR \fIcert\fR.T
5670: 68 65 20 50 45 4d 20 65 6e 63 6f 64 65 64 20 63  he PEM encoded c
5680: 65 72 74 69 66 69 63 61 74 65 5c 26 2e 0a 2e 54  ertificate\&...T
5690: 50 0a 5c 66 42 73 69 67 6e 61 74 75 72 65 41 6c  P.\fBsignatureAl
56a0: 67 6f 72 69 74 68 6d 5c 66 52 20 5c 66 49 61 6c  gorithm\fR \fIal
56b0: 67 6f 72 69 74 68 6d 5c 66 52 0a 43 69 70 68 65  gorithm\fR.Ciphe
56c0: 72 20 61 6c 67 6f 72 69 74 68 6d 20 75 73 65 64  r algorithm used
56d0: 20 66 6f 72 20 74 68 65 20 63 65 72 74 69 66 69   for the certifi
56e0: 63 61 74 65 20 73 69 67 6e 61 74 75 72 65 5c 26  cate signature\&
56f0: 2e 0a 54 68 69 73 20 76 61 6c 75 65 20 69 73 20  ..This value is 
5700: 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31  new for TclTLS 1
5710: 5c 26 2e 38 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73  \&.8\&...TP.\fBs
5720: 69 67 6e 61 74 75 72 65 56 61 6c 75 65 5c 66 52  ignatureValue\fR
5730: 20 5c 66 49 73 74 72 69 6e 67 5c 66 52 0a 43 65   \fIstring\fR.Ce
5740: 72 74 69 66 69 63 61 74 65 20 73 69 67 6e 61 74  rtificate signat
5750: 75 72 65 20 61 73 20 61 20 68 65 78 20 73 74 72  ure as a hex str
5760: 69 6e 67 5c 26 2e 0a 54 68 69 73 20 76 61 6c 75  ing\&..This valu
5770: 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c  e is new for Tcl
5780: 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54 50  TLS 1\&.8\&...TP
5790: 0a 5c 66 42 73 69 67 6e 61 74 75 72 65 44 69 67  .\fBsignatureDig
57a0: 65 73 74 5c 66 52 20 5c 66 49 76 65 72 73 69 6f  est\fR \fIversio
57b0: 6e 5c 66 52 0a 43 65 72 74 69 66 69 63 61 74 65  n\fR.Certificate
57c0: 20 73 69 67 6e 69 6e 67 20 64 69 67 65 73 74 20   signing digest 
57d0: 61 73 20 61 20 68 65 78 20 73 74 72 69 6e 67 5c  as a hex string\
57e0: 26 2e 0a 54 68 69 73 20 76 61 6c 75 65 20 69 73  &..This value is
57f0: 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20   new for TclTLS 
5800: 31 5c 26 2e 38 5c 26 2e 0a 2e 54 50 0a 5c 66 42  1\&.8\&...TP.\fB
5810: 70 75 62 6c 69 63 4b 65 79 41 6c 67 6f 72 69 74  publicKeyAlgorit
5820: 68 6d 5c 66 52 20 5c 66 49 61 6c 67 6f 72 69 74  hm\fR \fIalgorit
5830: 68 6d 5c 66 52 0a 43 65 72 74 69 66 69 63 61 74  hm\fR.Certificat
5840: 65 20 73 69 67 6e 61 74 75 72 65 20 70 75 62 6c  e signature publ
5850: 69 63 20 6b 65 79 20 61 6c 67 6f 72 69 74 68 6d  ic key algorithm
5860: 5c 26 2e 0a 54 68 69 73 20 76 61 6c 75 65 20 69  \&..This value i
5870: 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53  s new for TclTLS
5880: 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54 50 0a 5c 66   1\&.8\&...TP.\f
5890: 42 70 75 62 6c 69 63 4b 65 79 5c 66 52 20 5c 66  BpublicKey\fR \f
58a0: 49 73 74 72 69 6e 67 5c 66 52 0a 43 65 72 74 69  Istring\fR.Certi
58b0: 66 69 63 61 74 65 20 73 69 67 6e 61 74 75 72 65  ficate signature
58c0: 20 70 75 62 6c 69 63 20 6b 65 79 20 61 73 20 61   public key as a
58d0: 20 68 65 78 20 73 74 72 69 6e 67 5c 26 2e 0a 54   hex string\&..T
58e0: 68 69 73 20 76 61 6c 75 65 20 69 73 20 6e 65 77  his value is new
58f0: 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e   for TclTLS 1\&.
5900: 38 5c 26 2e 0a 2e 54 50 0a 5c 66 42 62 69 74 73  8\&...TP.\fBbits
5910: 5c 66 52 20 5c 66 49 6e 5c 66 52 0a 4e 75 6d 62  \fR \fIn\fR.Numb
5920: 65 72 20 6f 66 20 62 69 74 73 20 75 73 65 64 20  er of bits used 
5930: 66 6f 72 20 63 65 72 74 69 66 69 63 61 74 65 20  for certificate 
5940: 73 69 67 6e 61 74 75 72 65 20 6b 65 79 5c 26 2e  signature key\&.
5950: 0a 54 68 69 73 20 76 61 6c 75 65 20 69 73 20 6e  .This value is n
5960: 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c  ew for TclTLS 1\
5970: 26 2e 38 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 65  &.8\&...TP.\fBse
5980: 6c 66 5f 73 69 67 6e 65 64 5c 66 52 20 5c 66 49  lf_signed\fR \fI
5990: 62 6f 6f 6c 65 61 6e 5c 66 52 0a 57 68 65 74 68  boolean\fR.Wheth
59a0: 65 72 20 74 68 65 20 63 65 72 74 69 66 69 63 61  er the certifica
59b0: 74 65 20 73 69 67 6e 61 74 75 72 65 20 69 73 20  te signature is 
59c0: 73 65 6c 66 20 73 69 67 6e 65 64 5c 26 2e 0a 54  self signed\&..T
59d0: 68 69 73 20 76 61 6c 75 65 20 69 73 20 6e 65 77  his value is new
59e0: 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e   for TclTLS 1\&.
59f0: 38 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 68 61 31  8\&...TP.\fBsha1
5a00: 5f 68 61 73 68 5c 66 52 20 5c 66 49 68 61 73 68  _hash\fR \fIhash
5a10: 5c 66 52 0a 54 68 65 20 53 48 41 31 20 68 61 73  \fR.The SHA1 has
5a20: 68 20 6f 66 20 74 68 65 20 63 65 72 74 69 66 69  h of the certifi
5a30: 63 61 74 65 20 61 73 20 61 20 68 65 78 20 73 74  cate as a hex st
5a40: 72 69 6e 67 5c 26 2e 0a 54 68 69 73 20 76 61 6c  ring\&..This val
5a50: 75 65 20 69 73 20 6e 65 77 20 66 6f 72 20 54 63  ue is new for Tc
5a60: 6c 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54  lTLS 1\&.8\&...T
5a70: 50 0a 5c 66 42 73 68 61 32 35 36 5f 68 61 73 68  P.\fBsha256_hash
5a80: 5c 66 52 20 5c 66 49 68 61 73 68 5c 66 52 0a 54  \fR \fIhash\fR.T
5a90: 68 65 20 53 48 41 32 35 36 20 68 61 73 68 20 6f  he SHA256 hash o
5aa0: 66 20 74 68 65 20 63 65 72 74 69 66 69 63 61 74  f the certificat
5ab0: 65 20 61 73 20 61 20 68 65 78 20 73 74 72 69 6e  e as a hex strin
5ac0: 67 5c 26 2e 0a 54 68 69 73 20 76 61 6c 75 65 20  g\&..This value 
5ad0: 69 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c  is new for TclTL
5ae0: 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 52 45 0a 2e  S 1\&.8\&...RE..
5af0: 54 50 0a 5c 66 42 74 6c 73 3a 3a 63 6f 6e 6e 65  TP.\fBtls::conne
5b00: 63 74 69 6f 6e 5c 66 52 20 5c 66 49 63 68 61 6e  ction\fR \fIchan
5b10: 6e 65 6c 5c 66 52 0a 52 65 74 75 72 6e 73 20 74  nel\fR.Returns t
5b20: 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6e 6e 65  he current conne
5b30: 63 74 69 6f 6e 20 73 74 61 74 75 73 20 6f 66 20  ction status of 
5b40: 61 6e 20 53 53 4c 20 63 68 61 6e 6e 65 6c 5c 26  an SSL channel\&
5b50: 2e 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20  . The result is 
5b60: 61 20 6c 69 73 74 0a 6f 66 20 6b 65 79 2d 76 61  a list.of key-va
5b70: 6c 75 65 20 70 61 69 72 73 20 64 65 73 63 72 69  lue pairs descri
5b80: 62 69 6e 67 20 74 68 65 20 63 6f 6e 6e 65 63 74  bing the connect
5b90: 69 6f 6e 5c 26 2e 0a 54 68 69 73 20 63 6f 6d 6d  ion\&..This comm
5ba0: 61 6e 64 20 69 73 20 6e 65 77 20 66 6f 72 20 54  and is new for T
5bb0: 63 6c 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 20 52  clTLS 1\&.8\&. R
5bc0: 65 74 75 72 6e 65 64 20 76 61 6c 75 65 73 20 69  eturned values i
5bd0: 6e 63 6c 75 64 65 3a 0a 2e 73 70 0a 53 53 4c 20  nclude:..sp.SSL 
5be0: 53 74 61 74 75 73 0a 2e 52 53 0a 2e 54 50 0a 5c  Status..RS..TP.\
5bf0: 66 42 73 74 61 74 65 5c 66 52 20 5c 66 49 73 74  fBstate\fR \fIst
5c00: 61 74 65 5c 66 52 0a 53 74 61 74 65 20 6f 66 20  ate\fR.State of 
5c10: 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 5c 26  the connection\&
5c20: 2e 0a 2e 54 50 0a 5c 66 42 73 65 72 76 65 72 6e  ...TP.\fBservern
5c30: 61 6d 65 5c 66 52 20 5c 66 49 6e 61 6d 65 5c 66  ame\fR \fIname\f
5c40: 52 0a 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68  R.The name of th
5c50: 65 20 63 6f 6e 6e 65 63 74 65 64 20 74 6f 20 73  e connected to s
5c60: 65 72 76 65 72 5c 26 2e 0a 2e 54 50 0a 5c 66 42  erver\&...TP.\fB
5c70: 70 72 6f 74 6f 63 6f 6c 5c 66 52 20 5c 66 49 76  protocol\fR \fIv
5c80: 65 72 73 69 6f 6e 5c 66 52 0a 54 68 65 20 70 72  ersion\fR.The pr
5c90: 6f 74 6f 63 6f 6c 20 76 65 72 73 69 6f 6e 20 75  otocol version u
5ca0: 73 65 64 20 66 6f 72 20 74 68 65 20 63 6f 6e 6e  sed for the conn
5cb0: 65 63 74 69 6f 6e 3a 20 53 53 4c 32 2c 20 53 53  ection: SSL2, SS
5cc0: 4c 33 2c 20 54 4c 53 31 2c 20 54 4c 53 31 5c 26  L3, TLS1, TLS1\&
5cd0: 2e 31 2c 20 54 4c 53 31 5c 26 2e 32 2c 20 54 4c  .1, TLS1\&.2, TL
5ce0: 53 31 5c 26 2e 33 2c 20 6f 72 20 75 6e 6b 6e 6f  S1\&.3, or unkno
5cf0: 77 6e 5c 26 2e 0a 2e 54 50 0a 5c 66 42 72 65 6e  wn\&...TP.\fBren
5d00: 65 67 6f 74 69 61 74 69 6f 6e 5f 61 6c 6c 6f 77  egotiation_allow
5d10: 65 64 5c 66 52 20 5c 66 49 62 6f 6f 6c 65 61 6e  ed\fR \fIboolean
5d20: 5c 66 52 0a 57 68 65 74 68 65 72 20 70 72 6f 74  \fR.Whether prot
5d30: 6f 63 6f 6c 20 72 65 6e 65 67 6f 74 69 61 74 69  ocol renegotiati
5d40: 6f 6e 20 69 73 20 73 75 70 70 6f 72 74 65 64 20  on is supported 
5d50: 6f 72 20 6e 6f 74 5c 26 2e 0a 2e 54 50 0a 5c 66  or not\&...TP.\f
5d60: 42 73 65 63 75 72 69 74 79 5f 6c 65 76 65 6c 5c  Bsecurity_level\
5d70: 66 52 20 5c 66 49 6c 65 76 65 6c 5c 66 52 0a 54  fR \fIlevel\fR.T
5d80: 68 65 20 73 65 63 75 72 69 74 79 20 6c 65 76 65  he security leve
5d90: 6c 20 75 73 65 64 20 66 6f 72 20 73 65 6c 65 63  l used for selec
5da0: 74 69 6f 6e 20 6f 66 20 63 69 70 68 65 72 73 2c  tion of ciphers,
5db0: 20 6b 65 79 20 73 69 7a 65 2c 20 65 74 63 5c 26   key size, etc\&
5dc0: 2e 0a 2e 54 50 0a 5c 66 42 73 65 73 73 69 6f 6e  ...TP.\fBsession
5dd0: 5f 72 65 75 73 65 64 5c 66 52 20 5c 66 49 62 6f  _reused\fR \fIbo
5de0: 6f 6c 65 61 6e 5c 66 52 0a 57 68 65 74 68 65 72  olean\fR.Whether
5df0: 20 74 68 65 20 73 65 73 73 69 6f 6e 20 68 61 73   the session has
5e00: 20 62 65 65 6e 20 72 65 75 73 65 64 20 6f 72 20   been reused or 
5e10: 6e 6f 74 5c 26 2e 0a 2e 54 50 0a 5c 66 42 69 73  not\&...TP.\fBis
5e20: 5f 73 65 72 76 65 72 5c 66 52 20 5c 66 49 62 6f  _server\fR \fIbo
5e30: 6f 6c 65 61 6e 5c 66 52 0a 57 68 65 74 68 65 72  olean\fR.Whether
5e40: 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20   the connection 
5e50: 69 73 20 63 6f 6e 66 69 67 75 72 65 64 20 61 73  is configured as
5e60: 20 61 20 73 65 72 76 65 72 20 28 31 29 20 6f 72   a server (1) or
5e70: 20 63 6c 69 65 6e 74 20 28 30 29 5c 26 2e 0a 2e   client (0)\&...
5e80: 54 50 0a 5c 66 42 63 6f 6d 70 72 65 73 73 69 6f  TP.\fBcompressio
5e90: 6e 5c 66 52 20 5c 66 49 6d 6f 64 65 5c 66 52 0a  n\fR \fImode\fR.
5ea0: 43 6f 6d 70 72 65 73 73 69 6f 6e 20 6d 65 74 68  Compression meth
5eb0: 6f 64 5c 26 2e 0a 2e 54 50 0a 5c 66 42 65 78 70  od\&...TP.\fBexp
5ec0: 61 6e 73 69 6f 6e 5c 66 52 20 5c 66 49 6d 6f 64  ansion\fR \fImod
5ed0: 65 5c 66 52 0a 45 78 70 61 6e 73 69 6f 6e 20 6d  e\fR.Expansion m
5ee0: 65 74 68 6f 64 5c 26 2e 0a 2e 54 50 0a 5c 66 42  ethod\&...TP.\fB
5ef0: 63 61 4c 69 73 74 5c 66 52 20 5c 66 49 6c 69 73  caList\fR \fIlis
5f00: 74 5c 66 52 0a 4c 69 73 74 20 6f 66 20 43 65 72  t\fR.List of Cer
5f10: 74 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 69  tificate Authori
5f20: 74 69 65 73 20 28 43 41 29 20 66 6f 72 20 58 5c  ties (CA) for X\
5f30: 26 2e 35 30 39 20 63 65 72 74 69 66 69 63 61 74  &.509 certificat
5f40: 65 5c 26 2e 0a 2e 52 45 0a 2e 49 50 0a 43 69 70  e\&...RE..IP.Cip
5f50: 68 65 72 20 49 6e 66 6f 0a 2e 52 53 0a 2e 54 50  her Info..RS..TP
5f60: 0a 5c 66 42 63 69 70 68 65 72 5c 66 52 20 5c 66  .\fBcipher\fR \f
5f70: 49 63 69 70 68 65 72 5c 66 52 0a 54 68 65 20 63  Icipher\fR.The c
5f80: 75 72 72 65 6e 74 20 63 69 70 68 65 72 20 69 6e  urrent cipher in
5f90: 20 75 73 65 20 66 6f 72 20 74 68 65 20 63 6f 6e   use for the con
5fa0: 6e 65 63 74 69 6f 6e 5c 26 2e 0a 2e 54 50 0a 5c  nection\&...TP.\
5fb0: 66 42 73 74 61 6e 64 61 72 64 5f 6e 61 6d 65 5c  fBstandard_name\
5fc0: 66 52 20 5c 66 49 6e 61 6d 65 5c 66 52 0a 54 68  fR \fIname\fR.Th
5fd0: 65 20 73 74 61 6e 64 61 72 64 20 52 46 43 20 6e  e standard RFC n
5fe0: 61 6d 65 20 6f 66 20 63 69 70 68 65 72 5c 26 2e  ame of cipher\&.
5ff0: 0a 2e 54 50 0a 5c 66 42 61 6c 67 6f 72 69 74 68  ..TP.\fBalgorith
6000: 6d 5f 62 69 74 73 5c 66 52 20 5c 66 49 6e 5c 66  m_bits\fR \fIn\f
6010: 52 0a 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20  R.The number of 
6020: 70 72 6f 63 65 73 73 65 64 20 62 69 74 73 20 75  processed bits u
6030: 73 65 64 20 66 6f 72 20 63 69 70 68 65 72 5c 26  sed for cipher\&
6040: 2e 0a 2e 54 50 0a 5c 66 42 73 65 63 72 65 74 5f  ...TP.\fBsecret_
6050: 62 69 74 73 5c 66 52 20 5c 66 49 6e 5c 66 52 0a  bits\fR \fIn\fR.
6060: 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 65  The number of se
6070: 63 72 65 74 20 62 69 74 73 20 75 73 65 64 20 66  cret bits used f
6080: 6f 72 20 63 69 70 68 65 72 5c 26 2e 0a 2e 54 50  or cipher\&...TP
6090: 0a 5c 66 42 6d 69 6e 5f 76 65 72 73 69 6f 6e 5c  .\fBmin_version\
60a0: 66 52 20 5c 66 49 76 65 72 73 69 6f 6e 5c 66 52  fR \fIversion\fR
60b0: 0a 54 68 65 20 6d 69 6e 69 6d 75 6d 20 70 72 6f  .The minimum pro
60c0: 74 6f 63 6f 6c 20 76 65 72 73 69 6f 6e 20 66 6f  tocol version fo
60d0: 72 20 63 69 70 68 65 72 5c 26 2e 0a 2e 54 50 0a  r cipher\&...TP.
60e0: 5c 66 42 63 69 70 68 65 72 5f 69 73 5f 61 65 61  \fBcipher_is_aea
60f0: 64 5c 66 52 20 5c 66 49 62 6f 6f 6c 65 61 6e 5c  d\fR \fIboolean\
6100: 66 52 0a 57 68 65 74 68 65 72 20 74 68 65 20 63  fR.Whether the c
6110: 69 70 68 65 72 20 69 73 20 41 75 74 68 65 6e 74  ipher is Authent
6120: 69 63 61 74 65 64 20 45 6e 63 72 79 70 74 69 6f  icated Encryptio
6130: 6e 20 77 69 74 68 20 41 73 73 6f 63 69 61 74 65  n with Associate
6140: 64 20 44 61 74 61 20 28 41 45 41 44 29 5c 26 2e  d Data (AEAD)\&.
6150: 0a 2e 54 50 0a 5c 66 42 63 69 70 68 65 72 5f 69  ..TP.\fBcipher_i
6160: 64 5c 66 52 20 5c 66 49 69 64 5c 66 52 0a 54 68  d\fR \fIid\fR.Th
6170: 65 20 4f 70 65 6e 53 53 4c 20 63 69 70 68 65 72  e OpenSSL cipher
6180: 20 69 64 5c 26 2e 0a 2e 54 50 0a 5c 66 42 64 65   id\&...TP.\fBde
6190: 73 63 72 69 70 74 69 6f 6e 5c 66 52 20 5c 66 49  scription\fR \fI
61a0: 73 74 72 69 6e 67 5c 66 52 0a 41 20 74 65 78 74  string\fR.A text
61b0: 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20   description of 
61c0: 74 68 65 20 63 69 70 68 65 72 5c 26 2e 0a 2e 54  the cipher\&...T
61d0: 50 0a 5c 66 42 68 61 6e 64 73 68 61 6b 65 5f 64  P.\fBhandshake_d
61e0: 69 67 65 73 74 5c 66 52 20 5c 66 49 62 6f 6f 6c  igest\fR \fIbool
61f0: 65 61 6e 5c 66 52 0a 44 69 67 65 73 74 20 75 73  ean\fR.Digest us
6200: 65 64 20 64 75 72 69 6e 67 20 68 61 6e 64 73 68  ed during handsh
6210: 61 6b 65 5c 26 2e 0a 2e 52 45 0a 2e 49 50 0a 53  ake\&...RE..IP.S
6220: 65 73 73 69 6f 6e 20 49 6e 66 6f 0a 2e 52 53 0a  ession Info..RS.
6230: 2e 54 50 0a 5c 66 42 61 6c 70 6e 5c 66 52 20 5c  .TP.\fBalpn\fR \
6240: 66 49 70 72 6f 74 6f 63 6f 6c 5c 66 52 0a 54 68  fIprotocol\fR.Th
6250: 65 20 70 72 6f 74 6f 63 6f 6c 20 73 65 6c 65 63  e protocol selec
6260: 74 65 64 20 61 66 74 65 72 20 41 70 70 6c 69 63  ted after Applic
6270: 61 74 69 6f 6e 2d 4c 61 79 65 72 20 50 72 6f 74  ation-Layer Prot
6280: 6f 63 6f 6c 20 4e 65 67 6f 74 69 61 74 69 6f 6e  ocol Negotiation
6290: 20 28 41 4c 50 4e 29 5c 26 2e 0a 2e 54 50 0a 5c   (ALPN)\&...TP.\
62a0: 66 42 72 65 73 75 6d 61 62 6c 65 5c 66 52 20 5c  fBresumable\fR \
62b0: 66 49 62 6f 6f 6c 65 61 6e 5c 66 52 0a 57 68 65  fIboolean\fR.Whe
62c0: 74 68 65 72 20 74 68 65 20 73 65 73 73 69 6f 6e  ther the session
62d0: 20 63 61 6e 20 62 65 20 72 65 73 75 6d 65 64 20   can be resumed 
62e0: 6f 72 20 6e 6f 74 5c 26 2e 0a 2e 54 50 0a 5c 66  or not\&...TP.\f
62f0: 42 73 74 61 72 74 5f 74 69 6d 65 5c 66 52 20 5c  Bstart_time\fR \
6300: 66 49 73 65 63 6f 6e 64 73 5c 66 52 0a 54 69 6d  fIseconds\fR.Tim
6310: 65 20 73 69 6e 63 65 20 73 65 73 73 69 6f 6e 20  e since session 
6320: 73 74 61 72 74 65 64 20 69 6e 20 73 65 63 6f 6e  started in secon
6330: 64 73 20 73 69 6e 63 65 20 65 70 6f 63 68 5c 26  ds since epoch\&
6340: 2e 0a 2e 54 50 0a 5c 66 42 74 69 6d 65 6f 75 74  ...TP.\fBtimeout
6350: 5c 66 52 20 5c 66 49 73 65 63 6f 6e 64 73 5c 66  \fR \fIseconds\f
6360: 52 0a 4d 61 78 20 64 75 72 61 74 69 6f 6e 20 6f  R.Max duration o
6370: 66 20 73 65 73 73 69 6f 6e 20 69 6e 20 73 65 63  f session in sec
6380: 6f 6e 64 73 20 62 65 66 6f 72 65 20 74 69 6d 65  onds before time
6390: 2d 6f 75 74 5c 26 2e 0a 2e 54 50 0a 5c 66 42 6c  -out\&...TP.\fBl
63a0: 69 66 65 74 69 6d 65 5c 66 52 20 5c 66 49 73 65  ifetime\fR \fIse
63b0: 63 6f 6e 64 73 5c 66 52 0a 53 65 73 73 69 6f 6e  conds\fR.Session
63c0: 20 74 69 63 6b 65 74 20 6c 69 66 65 74 69 6d 65   ticket lifetime
63d0: 20 68 69 6e 74 20 69 6e 20 73 65 63 6f 6e 64 73   hint in seconds
63e0: 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 65 73 73 69  \&...TP.\fBsessi
63f0: 6f 6e 5f 69 64 5c 66 52 20 5c 66 49 62 69 6e 61  on_id\fR \fIbina
6400: 72 79 5f 73 74 72 69 6e 67 5c 66 52 0a 55 6e 69  ry_string\fR.Uni
6410: 71 75 65 20 73 65 73 73 69 6f 6e 20 69 64 20 66  que session id f
6420: 6f 72 20 75 73 65 20 69 6e 20 72 65 73 75 6d 69  or use in resumi
6430: 6e 67 20 74 68 65 20 73 65 73 73 69 6f 6e 5c 26  ng the session\&
6440: 2e 0a 2e 54 50 0a 5c 66 42 73 65 73 73 69 6f 6e  ...TP.\fBsession
6450: 5f 74 69 63 6b 65 74 5c 66 52 20 5c 66 49 62 69  _ticket\fR \fIbi
6460: 6e 61 72 79 5f 73 74 72 69 6e 67 5c 66 52 0a 55  nary_string\fR.U
6470: 6e 69 71 75 65 20 73 65 73 73 69 6f 6e 20 74 69  nique session ti
6480: 63 6b 65 74 20 66 6f 72 20 75 73 65 20 69 6e 20  cket for use in 
6490: 72 65 73 75 6d 69 6e 67 20 74 68 65 20 73 65 73  resuming the ses
64a0: 73 69 6f 6e 5c 26 2e 0a 2e 54 50 0a 5c 66 42 74  sion\&...TP.\fBt
64b0: 69 63 6b 65 74 5f 61 70 70 5f 64 61 74 61 5c 66  icket_app_data\f
64c0: 52 20 5c 66 49 62 69 6e 61 72 79 5f 73 74 72 69  R \fIbinary_stri
64d0: 6e 67 5c 66 52 0a 55 6e 69 71 75 65 20 73 65 73  ng\fR.Unique ses
64e0: 73 69 6f 6e 20 74 69 63 6b 65 74 20 61 70 70 6c  sion ticket appl
64f0: 69 63 61 74 69 6f 6e 20 64 61 74 61 5c 26 2e 0a  ication data\&..
6500: 2e 54 50 0a 5c 66 42 6d 61 73 74 65 72 5f 6b 65  .TP.\fBmaster_ke
6510: 79 5c 66 52 20 5c 66 49 62 69 6e 61 72 79 5f 73  y\fR \fIbinary_s
6520: 74 72 69 6e 67 5c 66 52 0a 55 6e 69 71 75 65 20  tring\fR.Unique 
6530: 73 65 73 73 69 6f 6e 20 6d 61 73 74 65 72 20 6b  session master k
6540: 65 79 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 65 73  ey\&...TP.\fBses
6550: 73 69 6f 6e 5f 63 61 63 68 65 5f 6d 6f 64 65 5c  sion_cache_mode\
6560: 66 52 20 5c 66 49 6d 6f 64 65 5c 66 52 0a 53 65  fR \fImode\fR.Se
6570: 72 76 65 72 20 63 61 63 68 65 20 6d 6f 64 65 20  rver cache mode 
6580: 28 63 6c 69 65 6e 74 2c 20 73 65 72 76 65 72 2c  (client, server,
6590: 20 6f 72 20 62 6f 74 68 29 5c 26 2e 0a 2e 52 45   or both)\&...RE
65a0: 0a 2e 54 50 0a 5c 66 42 74 6c 73 3a 3a 63 69 70  ..TP.\fBtls::cip
65b0: 68 65 72 73 5c 66 52 20 3f 5c 66 49 70 72 6f 74  hers\fR ?\fIprot
65c0: 6f 63 6f 6c 5c 66 52 3f 20 3f 5c 66 49 76 65 72  ocol\fR? ?\fIver
65d0: 62 6f 73 65 5c 66 52 3f 20 3f 5c 66 49 73 75 70  bose\fR? ?\fIsup
65e0: 70 6f 72 74 65 64 5c 66 52 3f 0a 57 69 74 68 6f  ported\fR?.Witho
65f0: 75 74 20 61 6e 79 20 6f 70 74 69 6f 6e 73 2c 20  ut any options, 
6600: 69 74 20 72 65 74 75 72 6e 73 20 61 20 6c 69 73  it returns a lis
6610: 74 20 6f 66 20 61 6c 6c 20 73 79 6d 6d 65 74 72  t of all symmetr
6620: 69 63 20 63 69 70 68 65 72 73 20 66 6f 72 20 75  ic ciphers for u
6630: 73 65 20 77 69 74 68 20 74 68 65 0a 5c 66 49 2d  se with the.\fI-
6640: 63 69 70 68 65 72 5c 66 52 20 6f 70 74 69 6f 6e  cipher\fR option
6650: 5c 26 2e 20 57 69 74 68 20 5c 66 49 70 72 6f 74  \&. With \fIprot
6660: 6f 63 6f 6c 5c 66 52 2c 20 6f 6e 6c 79 20 74 68  ocol\fR, only th
6670: 65 20 63 69 70 68 65 72 73 20 73 75 70 70 6f 72  e ciphers suppor
6680: 74 65 64 20 66 6f 72 20 74 68 61 74 0a 70 72 6f  ted for that.pro
6690: 74 6f 63 6f 6c 20 61 72 65 20 72 65 74 75 72 6e  tocol are return
66a0: 65 64 5c 26 2e 20 53 65 65 20 74 68 65 20 5c 66  ed\&. See the \f
66b0: 42 74 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 5c  Btls::protocols\
66c0: 66 52 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 74  fR command for t
66d0: 68 65 20 73 75 70 70 6f 72 74 65 64 0a 70 72 6f  he supported.pro
66e0: 74 6f 63 6f 6c 73 5c 26 2e 20 49 66 20 5c 66 49  tocols\&. If \fI
66f0: 76 65 72 62 6f 73 65 5c 66 52 20 69 73 20 73 70  verbose\fR is sp
6700: 65 63 69 66 69 65 64 20 61 73 20 74 72 75 65 20  ecified as true 
6710: 74 68 65 6e 20 61 20 76 65 72 62 6f 73 65 2c 20  then a verbose, 
6720: 68 75 6d 61 6e 20 72 65 61 64 61 62 6c 65 0a 6c  human readable.l
6730: 69 73 74 20 69 73 20 72 65 74 75 72 6e 65 64 20  ist is returned 
6740: 77 69 74 68 20 61 64 64 69 74 69 6f 6e 61 6c 20  with additional 
6750: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 74  information on t
6760: 68 65 20 63 69 70 68 65 72 5c 26 2e 20 49 66 20  he cipher\&. If 
6770: 5c 66 49 73 75 70 70 6f 72 74 65 64 5c 66 52 0a  \fIsupported\fR.
6780: 69 73 20 73 70 65 63 69 66 69 65 64 20 61 73 20  is specified as 
6790: 74 72 75 65 2c 20 74 68 65 6e 20 6f 6e 6c 79 20  true, then only 
67a0: 74 68 65 20 63 69 70 68 65 72 73 20 73 75 70 70  the ciphers supp
67b0: 6f 72 74 65 64 20 66 6f 72 20 70 72 6f 74 6f 63  orted for protoc
67c0: 6f 6c 20 77 69 6c 6c 20 62 65 20 6c 69 73 74 65  ol will be liste
67d0: 64 5c 26 2e 0a 54 68 65 20 5c 66 49 73 75 70 70  d\&..The \fIsupp
67e0: 6f 72 74 65 64 5c 66 52 20 61 72 67 20 69 73 20  orted\fR arg is 
67f0: 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31  new for TclTLS 1
6800: 5c 26 2e 38 5c 26 2e 0a 2e 54 50 0a 5c 66 42 74  \&.8\&...TP.\fBt
6810: 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 5c 66 52  ls::protocols\fR
6820: 0a 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20  .Returns a list 
6830: 6f 66 20 74 68 65 20 73 75 70 70 6f 72 74 65 64  of the supported
6840: 20 53 53 4c 2f 54 4c 53 20 70 72 6f 74 6f 63 6f   SSL/TLS protoco
6850: 6c 73 5c 26 2e 20 56 61 6c 69 64 20 76 61 6c 75  ls\&. Valid valu
6860: 65 73 20 61 72 65 3a 0a 5c 66 42 73 73 6c 32 5c  es are:.\fBssl2\
6870: 66 52 2c 20 5c 66 42 73 73 6c 33 5c 66 52 2c 20  fR, \fBssl3\fR, 
6880: 5c 66 42 74 6c 73 31 5c 66 52 2c 20 5c 66 42 74  \fBtls1\fR, \fBt
6890: 6c 73 31 5c 26 2e 31 5c 66 52 2c 20 5c 66 42 74  ls1\&.1\fR, \fBt
68a0: 6c 73 31 5c 26 2e 32 5c 66 52 2c 20 61 6e 64 0a  ls1\&.2\fR, and.
68b0: 5c 66 42 74 6c 73 31 5c 26 2e 33 5c 66 52 5c 26  \fBtls1\&.3\fR\&
68c0: 2e 20 45 78 61 63 74 20 6c 69 73 74 20 64 65 70  . Exact list dep
68d0: 65 6e 64 73 20 6f 6e 20 4f 70 65 6e 53 53 4c 20  ends on OpenSSL 
68e0: 76 65 72 73 69 6f 6e 20 61 6e 64 20 63 6f 6d 70  version and comp
68f0: 69 6c 65 20 74 69 6d 65 20 66 6c 61 67 73 5c 26  ile time flags\&
6900: 2e 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69  ..This command i
6910: 73 20 6e 65 77 20 66 6f 72 20 54 63 6c 54 4c 53  s new for TclTLS
6920: 20 31 5c 26 2e 38 5c 26 2e 0a 2e 54 50 0a 5c 66   1\&.8\&...TP.\f
6930: 42 74 6c 73 3a 3a 76 65 72 73 69 6f 6e 5c 66 52  Btls::version\fR
6940: 0a 52 65 74 75 72 6e 73 20 74 68 65 20 4f 70 65  .Returns the Ope
6950: 6e 53 53 4c 20 76 65 72 73 69 6f 6e 20 73 74 72  nSSL version str
6960: 69 6e 67 5c 26 2e 0a 2e 50 50 0a 2e 53 48 20 22  ing\&...PP..SH "
6970: 43 45 52 54 49 46 49 43 41 54 45 20 56 41 4c 49  CERTIFICATE VALI
6980: 44 41 54 49 4f 4e 22 0a 2e 53 53 20 22 50 4b 49  DATION"..SS "PKI
6990: 20 41 4e 44 20 43 45 52 54 49 46 49 43 41 54 45   AND CERTIFICATE
69a0: 53 22 0a 55 73 69 6e 67 20 74 68 65 20 50 75 62  S".Using the Pub
69b0: 6c 69 63 20 4b 65 79 20 49 6e 66 72 61 73 74 72  lic Key Infrastr
69c0: 75 63 74 75 72 65 20 28 50 4b 49 29 2c 20 65 61  ucture (PKI), ea
69d0: 63 68 20 75 73 65 72 20 63 72 65 61 74 65 73 20  ch user creates 
69e0: 61 20 70 72 69 76 61 74 65 20 6b 65 79 20 74 68  a private key th
69f0: 61 74 0a 6f 6e 6c 79 20 74 68 65 79 20 6b 6e 6f  at.only they kno
6a00: 77 20 61 62 6f 75 74 20 61 6e 64 20 61 20 70 75  w about and a pu
6a10: 62 6c 69 63 20 6b 65 79 20 74 68 65 79 20 63 61  blic key they ca
6a20: 6e 20 65 78 63 68 61 6e 67 65 20 77 69 74 68 20  n exchange with 
6a30: 6f 74 68 65 72 73 20 66 6f 72 20 75 73 65 20 69  others for use i
6a40: 6e 0a 65 6e 63 72 79 70 74 69 6e 67 20 61 6e 64  n.encrypting and
6a50: 20 64 65 63 72 79 70 74 69 6e 67 20 64 61 74 61   decrypting data
6a60: 5c 26 2e 20 54 68 65 20 70 72 6f 63 65 73 73 20  \&. The process 
6a70: 69 73 20 74 68 65 20 73 65 6e 64 65 72 20 65 6e  is the sender en
6a80: 63 72 79 70 74 73 20 74 68 65 69 72 20 64 61 74  crypts their dat
6a90: 61 0a 75 73 69 6e 67 20 74 68 65 69 72 20 70 72  a.using their pr
6aa0: 69 76 61 74 65 20 6b 65 79 20 61 6e 64 20 74 68  ivate key and th
6ab0: 65 20 72 65 63 65 69 76 65 72 27 73 20 70 75 62  e receiver's pub
6ac0: 6c 69 63 20 6b 65 79 5c 26 2e 20 54 68 65 20 64  lic key\&. The d
6ad0: 61 74 61 20 69 73 20 74 68 65 6e 20 73 65 6e 74  ata is then sent
6ae0: 0a 74 6f 20 74 68 65 20 72 65 63 65 69 76 65 72  .to the receiver
6af0: 5c 26 2e 20 49 6e 20 61 20 73 69 6d 69 6c 61 72  \&. In a similar
6b00: 20 6d 61 6e 6e 65 72 2c 20 74 68 65 20 72 65 63   manner, the rec
6b10: 65 69 76 65 72 20 75 73 65 73 20 74 68 65 69 72  eiver uses their
6b20: 20 70 72 69 76 61 74 65 20 6b 65 79 20 61 6e 64   private key and
6b30: 0a 74 68 65 20 73 65 6e 64 65 72 27 73 20 70 75  .the sender's pu
6b40: 62 6c 69 63 20 6b 65 79 20 74 6f 20 64 65 63 72  blic key to decr
6b50: 79 70 74 20 74 68 65 20 64 61 74 61 5c 26 2e 20  ypt the data\&. 
6b60: 54 68 69 73 20 70 72 6f 76 69 64 65 73 20 64 61  This provides da
6b70: 74 61 20 69 6e 74 65 67 72 69 74 79 2c 20 74 6f  ta integrity, to
6b80: 0a 65 6e 73 75 72 65 20 74 68 65 20 64 61 74 61  .ensure the data
6b90: 20 63 61 6e 27 74 20 62 65 20 76 69 65 77 65 64   can't be viewed
6ba0: 20 6f 72 20 61 6c 74 65 72 65 64 20 64 75 72 69   or altered duri
6bb0: 6e 67 20 74 72 61 6e 73 70 6f 72 74 5c 26 2e 20  ng transport\&. 
6bc0: 53 65 65 20 74 68 65 0a 5c 66 42 2d 6b 65 79 5c  See the.\fB-key\
6bd0: 66 52 20 61 6e 64 20 5c 66 42 2d 6b 65 79 66 69  fR and \fB-keyfi
6be0: 6c 65 5c 66 52 20 6f 70 74 69 6f 6e 73 20 66 6f  le\fR options fo
6bf0: 72 20 68 6f 77 20 74 6f 20 73 70 65 63 69 66 79  r how to specify
6c00: 20 74 68 65 20 70 72 69 76 61 74 65 20 6b 65 79   the private key
6c10: 5c 26 2e 0a 41 6c 73 6f 20 73 65 65 20 74 68 65  \&..Also see the
6c20: 20 5c 66 42 2d 70 61 73 73 77 6f 72 64 5c 66 52   \fB-password\fR
6c30: 20 6f 70 74 69 6f 6e 20 66 6f 72 20 68 6f 77 20   option for how 
6c40: 74 6f 20 70 72 6f 76 69 64 65 20 74 68 65 20 70  to provide the p
6c50: 61 73 73 77 6f 72 64 5c 26 2e 0a 2e 50 50 0a 49  assword\&...PP.I
6c60: 6e 20 6f 72 64 65 72 20 74 6f 20 70 72 6f 76 69  n order to provi
6c70: 64 65 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f  de authenticatio
6c80: 6e 2c 20 69 5c 26 2e 65 5c 26 2e 20 65 6e 73 75  n, i\&.e\&. ensu
6c90: 72 69 6e 67 20 73 6f 6d 65 6f 6e 65 20 69 73 20  ring someone is 
6ca0: 77 68 6f 20 74 68 65 79 20 73 61 79 20 74 68 65  who they say the
6cb0: 79 0a 61 72 65 2c 20 74 68 65 20 70 75 62 6c 69  y.are, the publi
6cc0: 63 20 6b 65 79 20 61 6e 64 20 75 73 65 72 20 69  c key and user i
6cd0: 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 20 69 6e  dentification in
6ce0: 66 6f 20 69 73 20 73 74 6f 72 65 64 20 69 6e 20  fo is stored in 
6cf0: 61 20 58 5c 26 2e 35 30 39 0a 63 65 72 74 69 66  a X\&.509.certif
6d00: 69 63 61 74 65 20 61 6e 64 20 74 68 61 74 20 63  icate and that c
6d10: 65 72 74 69 66 69 63 61 74 65 20 69 73 20 61 75  ertificate is au
6d20: 74 68 65 6e 74 69 63 61 74 65 64 20 28 69 5c 26  thenticated (i\&
6d30: 2e 65 5c 26 2e 20 73 69 67 6e 65 64 29 20 62 79  .e\&. signed) by
6d40: 20 61 20 43 65 72 74 69 66 69 63 61 74 65 0a 41   a Certificate.A
6d50: 75 74 68 6f 72 69 74 79 20 28 43 41 29 5c 26 2e  uthority (CA)\&.
6d60: 20 55 73 65 72 73 20 63 61 6e 20 74 68 65 6e 20   Users can then 
6d70: 65 78 63 68 61 6e 67 65 20 74 68 65 73 65 20 63  exchange these c
6d80: 65 72 74 69 66 69 63 61 74 65 73 20 64 75 72 69  ertificates duri
6d90: 6e 67 20 74 68 65 20 54 4c 53 0a 69 6e 69 74 69  ng the TLS.initi
6da0: 61 6c 69 7a 61 74 69 6f 6e 20 70 72 6f 63 65 73  alization proces
6db0: 73 20 61 6e 64 20 63 68 65 63 6b 20 74 68 65 6d  s and check them
6dc0: 20 61 67 61 69 6e 73 74 20 74 68 65 20 72 6f 6f   against the roo
6dd0: 74 20 43 41 20 63 65 72 74 69 66 69 63 61 74 65  t CA certificate
6de0: 73 20 74 6f 20 65 6e 73 75 72 65 0a 74 68 65 79  s to ensure.they
6df0: 20 61 72 65 20 76 61 6c 69 64 5c 26 2e 20 54 68   are valid\&. Th
6e00: 69 73 20 69 73 20 68 61 6e 64 6c 65 64 20 62 79  is is handled by
6e10: 20 4f 70 65 6e 53 53 4c 20 76 69 61 20 74 68 65   OpenSSL via the
6e20: 20 5c 66 42 2d 72 65 71 75 65 73 74 5c 66 52 20   \fB-request\fR 
6e30: 61 6e 64 0a 5c 66 42 2d 72 65 71 75 69 72 65 5c  and.\fB-require\
6e40: 66 52 20 6f 70 74 69 6f 6e 73 5c 26 2e 20 53 65  fR options\&. Se
6e50: 65 20 74 68 65 20 5c 66 42 2d 63 61 64 69 72 5c  e the \fB-cadir\
6e60: 66 52 2c 20 5c 66 42 2d 63 61 64 69 72 5c 66 52  fR, \fB-cadir\fR
6e70: 2c 20 61 6e 64 0a 5c 66 42 2d 63 61 73 74 6f 72  , and.\fB-castor
6e80: 65 5c 66 52 20 6f 70 74 69 6f 6e 73 20 66 6f 72  e\fR options for
6e90: 20 68 6f 77 20 74 6f 20 73 70 65 63 69 66 79 20   how to specify 
6ea0: 77 68 65 72 65 20 74 6f 20 66 69 6e 64 20 74 68  where to find th
6eb0: 65 20 43 41 20 63 65 72 74 69 66 69 63 61 74 65  e CA certificate
6ec0: 73 5c 26 2e 0a 4f 70 74 69 6f 6e 61 6c 6c 79 2c  s\&..Optionally,
6ed0: 20 69 6e 20 61 20 66 75 74 75 72 65 20 72 65 6c   in a future rel
6ee0: 65 61 73 65 2c 20 74 68 65 79 20 63 61 6e 20 61  ease, they can a
6ef0: 6c 73 6f 20 62 65 20 63 68 65 63 6b 65 64 20 61  lso be checked a
6f00: 67 61 69 6e 73 74 20 74 68 65 20 43 65 72 74 69  gainst the Certi
6f10: 66 69 63 61 74 65 0a 52 65 76 6f 63 61 74 69 6f  ficate.Revocatio
6f20: 6e 20 4c 69 73 74 20 28 43 52 4c 29 20 6f 66 20  n List (CRL) of 
6f30: 72 65 76 6f 6b 65 64 20 63 65 72 74 69 66 69 63  revoked certific
6f40: 61 74 65 73 5c 26 2e 20 43 65 72 74 69 66 69 63  ates\&. Certific
6f50: 61 74 65 73 20 63 61 6e 20 61 6c 73 6f 20 62 65  ates can also be
6f60: 0a 73 65 6c 66 2d 73 69 67 6e 65 64 2c 20 62 75  .self-signed, bu
6f70: 74 20 74 68 65 79 20 61 72 65 20 62 79 20 64 65  t they are by de
6f80: 66 61 75 6c 74 20 6e 6f 74 20 74 72 75 73 74 65  fault not truste
6f90: 64 20 75 6e 6c 65 73 73 20 79 6f 75 20 61 64 64  d unless you add
6fa0: 20 74 68 65 6d 20 74 6f 20 79 6f 75 72 0a 63 65   them to your.ce
6fb0: 72 74 69 66 69 63 61 74 65 20 73 74 6f 72 65 5c  rtificate store\
6fc0: 26 2e 0a 2e 50 50 0a 54 79 70 69 63 61 6c 6c 79  &...PP.Typically
6fd0: 20 77 68 65 6e 20 76 69 73 69 74 69 6e 67 20 77   when visiting w
6fe0: 65 62 20 73 69 74 65 73 2c 20 6f 6e 6c 79 20 74  eb sites, only t
6ff0: 68 65 20 63 6c 69 65 6e 74 20 6e 65 65 64 73 20  he client needs 
7000: 74 6f 20 63 68 65 63 6b 20 74 68 65 20 73 65 72  to check the ser
7010: 76 65 72 27 73 0a 63 65 72 74 69 66 69 63 61 74  ver's.certificat
7020: 65 20 74 6f 20 65 6e 73 75 72 65 20 69 74 20 69  e to ensure it i
7030: 73 20 76 61 6c 69 64 5c 26 2e 20 54 68 65 20 73  s valid\&. The s
7040: 65 72 76 65 72 20 64 6f 65 73 6e 27 74 20 6e 65  erver doesn't ne
7050: 65 64 20 74 6f 20 63 68 65 63 6b 20 74 68 65 20  ed to check the 
7060: 63 6c 69 65 6e 74 0a 63 65 72 74 69 66 69 63 61  client.certifica
7070: 74 65 20 75 6e 6c 65 73 73 20 79 6f 75 20 6e 65  te unless you ne
7080: 65 64 20 74 6f 20 61 75 74 68 65 6e 74 69 63 61  ed to authentica
7090: 74 65 20 77 69 74 68 20 74 68 65 6d 20 74 6f 20  te with them to 
70a0: 6c 6f 67 69 6e 2c 20 65 74 63 5c 26 2e 20 53 65  login, etc\&. Se
70b0: 65 20 74 68 65 0a 5c 66 42 2d 63 65 72 74 5c 66  e the.\fB-cert\f
70c0: 52 20 61 6e 64 20 5c 66 42 2d 63 65 72 74 66 69  R and \fB-certfi
70d0: 6c 65 5c 66 52 20 6f 70 74 69 6f 6e 73 20 69 66  le\fR options if
70e0: 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 70 72 6f   you need to pro
70f0: 76 69 64 65 20 61 20 63 65 72 74 69 66 69 63 61  vide a certifica
7100: 74 65 5c 26 2e 0a 2e 53 53 20 22 53 55 4d 4d 41  te\&...SS "SUMMA
7110: 52 59 20 4f 46 20 43 4f 4d 4d 41 4e 44 20 4c 49  RY OF COMMAND LI
7120: 4e 45 20 4f 50 54 49 4f 4e 53 22 0a 54 68 65 20  NE OPTIONS".The 
7130: 66 6f 6c 6c 6f 77 69 6e 67 20 6f 70 74 69 6f 6e  following option
7140: 73 20 61 72 65 20 75 73 65 64 20 66 6f 72 20 70  s are used for p
7150: 65 65 72 20 63 65 72 74 69 66 69 63 61 74 65 20  eer certificate 
7160: 76 61 6c 69 64 61 74 69 6f 6e 3a 0a 2e 54 50 0a  validation:..TP.
7170: 5c 66 42 2d 63 61 64 69 72 5c 66 52 20 5c 66 49  \fB-cadir\fR \fI
7180: 64 69 72 65 63 74 6f 72 79 5c 66 52 0a 53 70 65  directory\fR.Spe
7190: 63 69 66 69 65 73 20 74 68 65 20 64 69 72 65 63  cifies the direc
71a0: 74 6f 72 79 20 77 68 65 72 65 20 74 68 65 20 43  tory where the C
71b0: 65 72 74 69 66 69 63 61 74 65 20 41 75 74 68 6f  ertificate Autho
71c0: 72 69 74 79 20 28 43 41 29 20 63 65 72 74 69 66  rity (CA) certif
71d0: 69 63 61 74 65 73 20 61 72 65 0a 73 74 6f 72 65  icates are.store
71e0: 64 5c 26 2e 20 54 68 65 20 64 65 66 61 75 6c 74  d\&. The default
71f0: 20 69 73 20 70 6c 61 74 66 6f 72 6d 20 73 70 65   is platform spe
7200: 63 69 66 69 63 2c 20 62 75 74 20 69 73 20 75 73  cific, but is us
7210: 75 61 6c 6c 79 20 22 5c 66 49 2f 65 74 63 2f 73  ually "\fI/etc/s
7220: 73 6c 2f 63 65 72 74 73 5c 66 52 22 20 6f 6e 0a  sl/certs\fR" on.
7230: 4c 69 6e 75 78 2f 55 6e 69 78 20 73 79 73 74 65  Linux/Unix syste
7240: 6d 73 5c 26 2e 20 54 68 65 20 64 65 66 61 75 6c  ms\&. The defaul
7250: 74 20 6c 6f 63 61 74 69 6f 6e 20 63 61 6e 20 62  t location can b
7260: 65 20 6f 76 65 72 72 69 64 64 65 6e 20 62 79 20  e overridden by 
7270: 74 68 65 0a 5c 66 42 53 53 4c 5f 43 45 52 54 5f  the.\fBSSL_CERT_
7280: 44 49 52 5c 66 52 20 65 6e 76 69 72 6f 6e 6d 65  DIR\fR environme
7290: 6e 74 20 76 61 72 69 61 62 6c 65 5c 26 2e 0a 2e  nt variable\&...
72a0: 54 50 0a 5c 66 42 2d 63 61 66 69 6c 65 5c 66 52  TP.\fB-cafile\fR
72b0: 20 5c 66 49 66 69 6c 65 6e 61 6d 65 5c 66 52 0a   \fIfilename\fR.
72c0: 53 70 65 63 69 66 69 65 73 20 74 68 65 20 66 69  Specifies the fi
72d0: 6c 65 20 77 69 74 68 20 74 68 65 20 43 65 72 74  le with the Cert
72e0: 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74  ificate Authorit
72f0: 79 20 28 43 41 29 20 63 65 72 74 69 66 69 63 61  y (CA) certifica
7300: 74 65 73 20 74 6f 20 75 73 65 20 69 6e 0a 5c 66  tes to use in.\f
7310: 42 50 45 4d 5c 66 52 20 66 69 6c 65 20 66 6f 72  BPEM\fR file for
7320: 6d 61 74 5c 26 2e 20 54 68 65 20 64 65 66 61 75  mat\&. The defau
7330: 6c 74 20 69 73 20 22 5c 66 49 63 65 72 74 5c 26  lt is "\fIcert\&
7340: 2e 70 65 6d 5c 66 52 22 2c 20 69 6e 20 74 68 65  .pem\fR", in the
7350: 20 4f 70 65 6e 53 53 4c 0a 64 69 72 65 63 74 6f   OpenSSL.directo
7360: 72 79 5c 26 2e 20 4f 6e 20 4c 69 6e 75 78 2f 55  ry\&. On Linux/U
7370: 6e 69 78 20 73 79 73 74 65 6d 73 2c 20 74 68 69  nix systems, thi
7380: 73 20 69 73 20 75 73 75 61 6c 6c 79 20 22 5c 66  s is usually "\f
7390: 49 2f 65 74 63 2f 73 73 6c 2f 63 61 2d 62 75 6e  I/etc/ssl/ca-bun
73a0: 64 6c 65 5c 26 2e 70 65 6d 5c 66 52 22 5c 26 2e  dle\&.pem\fR"\&.
73b0: 0a 54 68 65 20 64 65 66 61 75 6c 74 20 66 69 6c  .The default fil
73c0: 65 20 63 61 6e 20 62 65 20 6f 76 65 72 72 69 64  e can be overrid
73d0: 64 65 6e 20 62 79 20 74 68 65 20 5c 66 42 53 53  den by the \fBSS
73e0: 4c 5f 43 45 52 54 5f 46 49 4c 45 5c 66 52 20 65  L_CERT_FILE\fR e
73f0: 6e 76 69 72 6f 6e 6d 65 6e 74 0a 76 61 72 69 61  nvironment.varia
7400: 62 6c 65 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 63  ble\&...TP.\fB-c
7410: 61 73 74 6f 72 65 5c 66 52 20 5c 66 49 55 52 49  astore\fR \fIURI
7420: 5c 66 52 0a 53 70 65 63 69 66 69 65 73 20 74 68  \fR.Specifies th
7430: 65 20 55 6e 69 66 6f 72 6d 20 52 65 73 6f 75 72  e Uniform Resour
7440: 63 65 20 49 64 65 6e 74 69 66 69 65 72 20 28 55  ce Identifier (U
7450: 52 49 29 20 66 6f 72 20 74 68 65 20 43 65 72 74  RI) for the Cert
7460: 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74  ificate Authorit
7470: 79 0a 28 43 41 29 20 73 74 6f 72 65 2c 20 77 68  y.(CA) store, wh
7480: 69 63 68 20 6d 61 79 20 62 65 20 61 20 73 69 6e  ich may be a sin
7490: 67 6c 65 20 63 6f 6e 74 61 69 6e 65 72 20 6f 72  gle container or
74a0: 20 61 20 63 61 74 61 6c 6f 67 20 6f 66 20 63 6f   a catalog of co
74b0: 6e 74 61 69 6e 65 72 73 5c 26 2e 0a 53 74 61 72  ntainers\&..Star
74c0: 74 69 6e 67 20 77 69 74 68 20 4f 70 65 6e 53 53  ting with OpenSS
74d0: 4c 20 33 5c 26 2e 32 20 6f 6e 20 4d 53 20 57 69  L 3\&.2 on MS Wi
74e0: 6e 64 6f 77 73 2c 20 73 65 74 20 74 6f 20 22 5c  ndows, set to "\
74f0: 66 42 6f 72 67 5c 26 2e 6f 70 65 6e 73 73 6c 5c  fBorg\&.openssl\
7500: 26 2e 77 69 6e 73 74 6f 72 65 3a 2f 2f 5c 66 52  &.winstore://\fR
7510: 22 0a 74 6f 20 75 73 65 20 74 68 65 20 62 75 69  ".to use the bui
7520: 6c 74 2d 69 6e 20 4d 53 20 57 69 6e 64 6f 77 73  lt-in MS Windows
7530: 20 43 65 72 74 69 66 69 63 61 74 65 20 53 74 6f   Certificate Sto
7540: 72 65 5c 26 2e 20 53 74 61 72 74 69 6e 67 20 69  re\&. Starting i
7550: 6e 20 54 63 6c 54 4c 53 20 32 5c 26 2e 30 2c 20  n TclTLS 2\&.0, 
7560: 74 68 69 73 0a 69 73 20 74 68 65 20 64 65 66 61  this.is the defa
7570: 75 6c 74 20 69 66 20 5c 66 42 2d 63 61 64 69 72  ult if \fB-cadir
7580: 5c 66 52 2c 20 5c 66 42 2d 63 61 64 69 72 5c 66  \fR, \fB-cadir\f
7590: 52 2c 20 61 6e 64 20 5c 66 42 2d 63 61 73 74 6f  R, and \fB-casto
75a0: 72 65 5c 66 52 20 61 72 65 0a 6e 6f 74 20 73 70  re\fR are.not sp
75b0: 65 63 69 66 69 65 64 5c 26 2e 20 54 68 69 73 20  ecified\&. This 
75c0: 73 74 6f 72 65 20 6f 6e 6c 79 20 73 75 70 70 6f  store only suppo
75d0: 72 74 73 20 72 6f 6f 74 20 63 65 72 74 69 66 69  rts root certifi
75e0: 63 61 74 65 20 73 74 6f 72 65 73 5c 26 2e 0a 2e  cate stores\&...
75f0: 54 50 0a 5c 66 42 2d 72 65 71 75 65 73 74 5c 66  TP.\fB-request\f
7600: 52 20 5c 66 49 62 6f 6f 6c 5c 66 52 0a 52 65 71  R \fIbool\fR.Req
7610: 75 65 73 74 20 61 20 63 65 72 74 69 66 69 63 61  uest a certifica
7620: 74 65 20 66 72 6f 6d 20 74 68 65 20 70 65 65 72  te from the peer
7630: 20 64 75 72 69 6e 67 20 74 68 65 20 53 53 4c 20   during the SSL 
7640: 68 61 6e 64 73 68 61 6b 65 5c 26 2e 20 54 68 69  handshake\&. Thi
7650: 73 20 69 73 20 6e 65 65 64 65 64 0a 74 6f 20 64  s is needed.to d
7660: 6f 20 43 65 72 74 69 66 69 63 61 74 65 20 56 61  o Certificate Va
7670: 6c 69 64 61 74 69 6f 6e 5c 26 2e 20 53 74 61 72  lidation\&. Star
7680: 74 69 6e 67 20 69 6e 20 54 63 6c 54 4c 53 20 31  ting in TclTLS 1
7690: 5c 26 2e 38 2c 20 74 68 65 20 64 65 66 61 75 6c  \&.8, the defaul
76a0: 74 20 69 73 0a 5c 66 42 74 72 75 65 5c 66 52 20  t is.\fBtrue\fR 
76b0: 66 6f 72 20 63 6c 69 65 6e 74 20 63 6f 6e 6e 65  for client conne
76c0: 63 74 69 6f 6e 73 5c 26 2e 20 53 74 61 72 74 69  ctions\&. Starti
76d0: 6e 67 20 69 6e 20 54 63 6c 54 4c 53 20 32 5c 26  ng in TclTLS 2\&
76e0: 2e 30 2c 20 69 66 20 73 65 74 20 74 6f 0a 5c 66  .0, if set to.\f
76f0: 42 66 61 6c 73 65 5c 66 52 20 61 6e 64 20 5c 66  Bfalse\fR and \f
7700: 42 2d 72 65 71 75 69 72 65 5c 66 52 20 69 73 20  B-require\fR is 
7710: 5c 66 42 74 72 75 65 5c 66 52 2c 20 74 68 65 6e  \fBtrue\fR, then
7720: 20 74 68 69 73 20 77 69 6c 6c 20 62 65 0a 6f 76   this will be.ov
7730: 65 72 72 69 64 64 65 6e 20 74 6f 20 5c 66 42 74  erridden to \fBt
7740: 72 75 65 5c 66 52 5c 26 2e 20 49 6e 20 61 64 64  rue\fR\&. In add
7750: 69 74 69 6f 6e 2c 20 74 68 65 20 63 6c 69 65 6e  ition, the clien
7760: 74 20 63 61 6e 20 6d 61 6e 75 61 6c 6c 79 20 69  t can manually i
7770: 6e 73 70 65 63 74 20 61 6e 64 0a 61 63 63 65 70  nspect and.accep
7780: 74 20 6f 72 20 72 65 6a 65 63 74 20 65 61 63 68  t or reject each
7790: 20 63 65 72 74 69 66 69 63 61 74 65 20 75 73 69   certificate usi
77a0: 6e 67 20 74 68 65 20 5c 66 42 2d 76 61 6c 69 64  ng the \fB-valid
77b0: 61 74 65 63 6f 6d 6d 61 6e 64 5c 66 52 20 6f 70  atecommand\fR op
77c0: 74 69 6f 6e 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d  tion\&...TP.\fB-
77d0: 72 65 71 75 69 72 65 5c 66 52 20 5c 66 49 62 6f  require\fR \fIbo
77e0: 6f 6c 5c 66 52 0a 52 65 71 75 69 72 65 20 61 20  ol\fR.Require a 
77f0: 76 61 6c 69 64 20 63 65 72 74 69 66 69 63 61 74  valid certificat
7800: 65 20 66 72 6f 6d 20 74 68 65 20 70 65 65 72 20  e from the peer 
7810: 64 75 72 69 6e 67 20 74 68 65 20 53 53 4c 20 68  during the SSL h
7820: 61 6e 64 73 68 61 6b 65 5c 26 2e 20 49 66 20 74  andshake\&. If t
7830: 68 69 73 20 69 73 0a 73 65 74 20 74 6f 20 74 72  his is.set to tr
7840: 75 65 2c 20 74 68 65 6e 20 5c 66 42 2d 72 65 71  ue, then \fB-req
7850: 75 65 73 74 5c 66 52 20 6d 75 73 74 20 61 6c 73  uest\fR must als
7860: 6f 20 62 65 20 73 65 74 20 74 6f 20 74 72 75 65  o be set to true
7870: 20 61 6e 64 20 61 20 65 69 74 68 65 72 0a 5c 66   and a either.\f
7880: 42 2d 63 61 64 69 72 5c 66 52 2c 20 5c 66 42 2d  B-cadir\fR, \fB-
7890: 63 61 66 69 6c 65 5c 66 52 2c 20 5c 66 42 2d 63  cafile\fR, \fB-c
78a0: 61 73 74 6f 72 65 5c 66 52 2c 20 6f 72 20 61 20  astore\fR, or a 
78b0: 70 6c 61 74 66 6f 72 6d 20 64 65 66 61 75 6c 74  platform default
78c0: 0a 6d 75 73 74 20 62 65 20 70 72 6f 76 69 64 65  .must be provide
78d0: 64 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 76 61  d in order to va
78e0: 6c 69 64 61 74 65 20 61 67 61 69 6e 73 74 5c 26  lidate against\&
78f0: 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 6e  . The default in
7900: 20 54 63 6c 54 4c 53 20 31 5c 26 2e 38 20 61 6e   TclTLS 1\&.8 an
7910: 64 0a 65 61 72 6c 69 65 72 20 76 65 72 73 69 6f  d.earlier versio
7920: 6e 73 20 69 73 20 5c 66 42 66 61 6c 73 65 5c 66  ns is \fBfalse\f
7930: 52 20 73 69 6e 63 65 20 6e 6f 74 20 61 6c 6c 20  R since not all 
7940: 70 6c 61 74 66 6f 72 6d 73 20 68 61 76 65 20 63  platforms have c
7950: 65 72 74 69 66 69 63 61 74 65 73 20 74 6f 0a 76  ertificates to.v
7960: 61 6c 69 64 61 74 65 20 61 67 61 69 6e 73 74 20  alidate against 
7970: 69 6e 20 61 20 66 6f 72 6d 20 63 6f 6d 70 61 74  in a form compat
7980: 69 62 6c 65 20 77 69 74 68 20 4f 70 65 6e 53 53  ible with OpenSS
7990: 4c 5c 26 2e 20 53 74 61 72 74 69 6e 67 20 69 6e  L\&. Starting in
79a0: 20 54 63 6c 54 4c 53 20 32 5c 26 2e 30 2c 0a 74   TclTLS 2\&.0,.t
79b0: 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 5c 66  he default is \f
79c0: 42 74 72 75 65 5c 66 52 20 66 6f 72 20 63 6c 69  Btrue\fR for cli
79d0: 65 6e 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 5c  ent connections\
79e0: 26 2e 0a 2e 50 50 0a 2e 53 53 20 22 57 48 45 4e  &...PP..SS "WHEN
79f0: 20 41 52 45 20 43 4f 4d 4d 41 4e 44 20 4c 49 4e   ARE COMMAND LIN
7a00: 45 20 4f 50 54 49 4f 4e 53 20 4e 45 45 44 45 44  E OPTIONS NEEDED
7a10: 3f 22 0a 49 6e 20 54 63 6c 54 4c 53 20 31 5c 26  ?".In TclTLS 1\&
7a20: 2e 38 20 61 6e 64 20 65 61 72 6c 69 65 72 20 76  .8 and earlier v
7a30: 65 72 73 69 6f 6e 73 2c 20 63 65 72 74 69 66 69  ersions, certifi
7a40: 63 61 74 65 20 76 61 6c 69 64 61 74 69 6f 6e 20  cate validation 
7a50: 69 73 0a 5c 66 49 4e 4f 54 5c 66 52 20 65 6e 61  is.\fINOT\fR ena
7a60: 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 5c  bled by default\
7a70: 26 2e 20 54 68 69 73 20 6c 69 6d 69 74 61 74 69  &. This limitati
7a80: 6f 6e 20 69 73 20 64 75 65 20 74 6f 20 74 68 65  on is due to the
7a90: 20 6c 61 63 6b 20 6f 66 20 61 20 63 6f 6d 6d 6f   lack of a commo
7aa0: 6e 0a 63 72 6f 73 73 20 70 6c 61 74 66 6f 72 6d  n.cross platform
7ab0: 20 64 61 74 61 62 61 73 65 20 6f 66 20 43 65 72   database of Cer
7ac0: 74 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 69  tificate Authori
7ad0: 74 79 20 28 43 41 29 20 70 72 6f 76 69 64 65 64  ty (CA) provided
7ae0: 20 63 65 72 74 69 66 69 63 61 74 65 73 20 74 6f   certificates to
7af0: 0a 76 61 6c 69 64 61 74 65 20 61 67 61 69 6e 73  .validate agains
7b00: 74 5c 26 2e 20 4d 61 6e 79 20 4c 69 6e 75 78 20  t\&. Many Linux 
7b10: 73 79 73 74 65 6d 73 20 6e 61 74 69 76 65 6c 79  systems natively
7b20: 20 73 75 70 70 6f 72 74 20 4f 70 65 6e 53 53 4c   support OpenSSL
7b30: 20 61 6e 64 20 74 68 75 73 20 68 61 76 65 0a 74   and thus have.t
7b40: 68 65 73 65 20 63 65 72 74 69 66 69 63 61 74 65  hese certificate
7b50: 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 73 20 70  s installed as p
7b60: 61 72 74 20 6f 66 20 74 68 65 20 4f 53 2c 20 62  art of the OS, b
7b70: 75 74 20 4d 61 63 4f 53 20 61 6e 64 20 4d 53 20  ut MacOS and MS 
7b80: 57 69 6e 64 6f 77 73 20 64 6f 20 6e 6f 74 5c 26  Windows do not\&
7b90: 2e 0a 53 74 61 72 69 6e 67 20 69 6e 20 54 63 6c  ..Staring in Tcl
7ba0: 54 4c 53 20 32 5c 26 2e 30 2c 20 74 68 65 20 64  TLS 2\&.0, the d
7bb0: 65 66 61 75 6c 74 20 66 6f 72 20 63 6c 69 65 6e  efault for clien
7bc0: 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 68 61  t connections ha
7bd0: 73 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 74  s been changed t
7be0: 6f 0a 72 65 71 75 69 72 65 20 63 65 72 74 69 66  o.require certif
7bf0: 69 63 61 74 65 20 76 61 6c 69 64 61 74 69 6f 6e  icate validation
7c00: 20 62 79 20 64 65 66 61 75 6c 74 5c 26 2e 20 49   by default\&. I
7c10: 6e 20 6f 72 64 65 72 20 74 6f 20 75 73 65 20 74  n order to use t
7c20: 68 65 20 5c 66 42 2d 72 65 71 75 69 72 65 5c 66  he \fB-require\f
7c30: 52 0a 6f 70 74 69 6f 6e 2c 20 6f 6e 65 20 6f 66  R.option, one of
7c40: 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d   the following m
7c50: 75 73 74 20 62 65 20 74 72 75 65 3a 0a 2e 49 50  ust be true:..IP
7c60: 20 5c 28 62 75 0a 4f 6e 20 4c 69 6e 75 78 20 61   \(bu.On Linux a
7c70: 6e 64 20 55 6e 69 78 20 73 79 73 74 65 6d 73 20  nd Unix systems 
7c80: 77 69 74 68 20 4f 70 65 6e 53 53 4c 20 61 6c 72  with OpenSSL alr
7c90: 65 61 64 79 20 69 6e 73 74 61 6c 6c 65 64 20 6f  eady installed o
7ca0: 72 20 69 66 20 74 68 65 20 43 41 0a 63 65 72 74  r if the CA.cert
7cb0: 69 66 69 63 61 74 65 73 20 61 72 65 20 61 76 61  ificates are ava
7cc0: 69 6c 61 62 6c 65 20 69 6e 20 50 45 4d 20 66 6f  ilable in PEM fo
7cd0: 72 6d 61 74 2c 20 61 6e 64 20 69 66 20 74 68 65  rmat, and if the
7ce0: 79 20 61 72 65 20 73 74 6f 72 65 64 20 69 6e 20  y are stored in 
7cf0: 74 68 65 0a 73 74 61 6e 64 61 72 64 20 6c 6f 63  the.standard loc
7d00: 61 74 69 6f 6e 73 2c 20 6f 72 20 69 66 20 74 68  ations, or if th
7d10: 65 20 5c 66 42 53 53 4c 5f 43 45 52 54 5f 44 49  e \fBSSL_CERT_DI
7d20: 52 5c 66 52 20 6f 72 20 5c 66 42 53 53 4c 5f 43  R\fR or \fBSSL_C
7d30: 45 52 54 5f 46 49 4c 45 5c 66 52 0a 65 6e 76 69  ERT_FILE\fR.envi
7d40: 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65  ronment variable
7d50: 73 20 61 72 65 20 73 65 74 2c 20 74 68 65 6e 20  s are set, then 
7d60: 5c 66 42 2d 63 61 64 69 72 5c 66 52 2c 20 5c 66  \fB-cadir\fR, \f
7d70: 42 2d 63 61 64 69 72 5c 66 52 2c 0a 61 6e 64 20  B-cadir\fR,.and 
7d80: 5c 66 42 2d 63 61 73 74 6f 72 65 5c 66 52 20 61  \fB-castore\fR a
7d90: 72 65 6e 27 74 20 6e 65 65 64 65 64 5c 26 2e 0a  ren't needed\&..
7da0: 2e 49 50 20 5c 28 62 75 0a 49 66 20 4f 70 65 6e  .IP \(bu.If Open
7db0: 53 53 4c 20 69 73 20 6e 6f 74 20 69 6e 73 74 61  SSL is not insta
7dc0: 6c 6c 65 64 20 69 6e 20 74 68 65 20 64 65 66 61  lled in the defa
7dd0: 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 2c 20 6f 72  ult location, or
7de0: 20 77 68 65 6e 20 75 73 69 6e 67 20 4d 61 63 20   when using Mac 
7df0: 4f 53 0a 6f 72 20 4d 53 20 57 69 6e 64 6f 77 73  OS.or MS Windows
7e00: 20 61 6e 64 20 4f 70 65 6e 53 53 4c 20 69 73 20   and OpenSSL is 
7e10: 69 6e 73 74 61 6c 6c 65 64 2c 20 74 68 65 20 5c  installed, the \
7e20: 66 42 53 53 4c 5f 43 45 52 54 5f 44 49 52 5c 66  fBSSL_CERT_DIR\f
7e30: 52 20 61 6e 64 2f 6f 72 0a 5c 66 42 53 53 4c 5f  R and/or.\fBSSL_
7e40: 43 45 52 54 5f 46 49 4c 45 5c 66 52 20 65 6e 76  CERT_FILE\fR env
7e50: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c  ironment variabl
7e60: 65 73 20 6f 72 20 74 68 65 20 6f 6e 65 20 6f 66  es or the one of
7e70: 20 74 68 65 20 5c 66 42 2d 63 61 64 69 72 5c 66   the \fB-cadir\f
7e80: 52 2c 0a 5c 66 42 2d 63 61 64 69 72 5c 66 52 2c  R,.\fB-cadir\fR,
7e90: 20 6f 72 20 5c 66 42 2d 63 61 73 74 6f 72 65 5c   or \fB-castore\
7ea0: 66 52 20 6f 70 74 69 6f 6e 73 20 6d 75 73 74 20  fR options must 
7eb0: 62 65 20 64 65 66 69 6e 65 64 5c 26 2e 0a 2e 49  be defined\&...I
7ec0: 50 20 5c 28 62 75 0a 4f 6e 20 4d 53 20 57 69 6e  P \(bu.On MS Win
7ed0: 64 6f 77 73 2c 20 73 74 61 72 74 69 6e 67 20 69  dows, starting i
7ee0: 6e 20 4f 70 65 6e 53 53 4c 20 33 5c 26 2e 32 2c  n OpenSSL 3\&.2,
7ef0: 20 69 74 20 69 73 20 6e 6f 77 20 70 6f 73 73 69   it is now possi
7f00: 62 6c 65 20 74 6f 20 61 63 63 65 73 73 20 74 68  ble to access th
7f10: 65 0a 62 75 69 6c 74 2d 69 6e 20 57 69 6e 64 6f  e.built-in Windo
7f20: 77 73 20 43 65 72 74 69 66 69 63 61 74 65 20 53  ws Certificate S
7f30: 74 6f 72 65 20 66 72 6f 6d 20 4f 70 65 6e 53 53  tore from OpenSS
7f40: 4c 5c 26 2e 20 54 68 69 73 20 63 61 6e 20 62 65  L\&. This can be
7f50: 20 75 74 69 6c 69 7a 65 64 20 62 79 0a 73 65 74   utilized by.set
7f60: 74 69 6e 67 20 74 68 65 20 5c 66 42 2d 63 61 73  ting the \fB-cas
7f70: 74 6f 72 65 5c 66 52 20 6f 70 74 69 6f 6e 20 74  tore\fR option t
7f80: 6f 20 22 5c 66 42 6f 72 67 5c 26 2e 6f 70 65 6e  o "\fBorg\&.open
7f90: 73 73 6c 5c 26 2e 77 69 6e 73 74 6f 72 65 3a 2f  ssl\&.winstore:/
7fa0: 2f 5c 66 52 22 5c 26 2e 0a 49 6e 20 54 63 6c 54  /\fR"\&..In TclT
7fb0: 4c 53 20 32 5c 26 2e 30 2c 20 74 68 69 73 20 69  LS 2\&.0, this i
7fc0: 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 76 61  s the default va
7fd0: 6c 75 65 20 69 66 20 5c 66 42 2d 63 61 64 69 72  lue if \fB-cadir
7fe0: 5c 66 52 2c 0a 5c 66 42 2d 63 61 64 69 72 5c 66  \fR,.\fB-cadir\f
7ff0: 52 2c 20 61 6e 64 20 5c 66 42 2d 63 61 73 74 6f  R, and \fB-casto
8000: 72 65 5c 66 52 20 61 72 65 20 6e 6f 74 20 73 70  re\fR are not sp
8010: 65 63 69 66 69 65 64 5c 26 2e 0a 2e 49 50 20 5c  ecified\&...IP \
8020: 28 62 75 0a 49 66 20 4f 70 65 6e 53 53 4c 20 69  (bu.If OpenSSL i
8030: 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 20  s not installed 
8040: 6f 72 20 74 68 65 20 43 41 20 63 65 72 74 69 66  or the CA certif
8050: 69 63 61 74 65 73 20 61 72 65 20 6e 6f 74 20 61  icates are not a
8060: 76 61 69 6c 61 62 6c 65 20 69 6e 20 50 45 4d 0a  vailable in PEM.
8070: 66 6f 72 6d 61 74 2c 20 74 68 65 20 43 41 20 63  format, the CA c
8080: 65 72 74 69 66 69 63 61 74 65 73 20 6d 75 73 74  ertificates must
8090: 20 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 20 61   be downloaded a
80a0: 6e 64 20 69 6e 73 74 61 6c 6c 65 64 20 77 69 74  nd installed wit
80b0: 68 20 74 68 65 20 75 73 65 72 0a 73 6f 66 74 77  h the user.softw
80c0: 61 72 65 5c 26 2e 20 54 68 65 20 43 55 52 4c 20  are\&. The CURL 
80d0: 74 65 61 6d 20 6d 61 6b 65 73 20 74 68 65 6d 20  team makes them 
80e0: 61 76 61 69 6c 61 62 6c 65 20 61 74 0a 5c 66 49  available at.\fI
80f0: 43 41 20 63 65 72 74 69 66 69 63 61 74 65 73 20  CA certificates 
8100: 65 78 74 72 61 63 74 65 64 0a 66 72 6f 6d 20 4d  extracted.from M
8110: 6f 7a 69 6c 6c 61 5c 66 52 20 5b 68 74 74 70 73  ozilla\fR [https
8120: 3a 2f 2f 63 75 72 6c 5c 26 2e 73 65 2f 64 6f 63  ://curl\&.se/doc
8130: 73 2f 63 61 65 78 74 72 61 63 74 5c 26 2e 68 74  s/caextract\&.ht
8140: 6d 6c 5d 20 69 6e 20 74 68 65 20 22 5c 66 49 63  ml] in the "\fIc
8150: 61 63 65 72 74 5c 26 2e 70 65 6d 5c 66 52 22 20  acert\&.pem\fR" 
8160: 66 69 6c 65 5c 26 2e 20 59 6f 75 20 6d 75 73 74  file\&. You must
8170: 20 74 68 65 6e 20 65 69 74 68 65 72 20 73 65 74   then either set
8180: 20 74 68 65 0a 5c 66 42 53 53 4c 5f 43 45 52 54   the.\fBSSL_CERT
8190: 5f 44 49 52 5c 66 52 20 61 6e 64 2f 6f 72 20 5c  _DIR\fR and/or \
81a0: 66 42 53 53 4c 5f 43 45 52 54 5f 46 49 4c 45 5c  fBSSL_CERT_FILE\
81b0: 66 52 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76  fR environment v
81c0: 61 72 69 61 62 6c 65 73 20 6f 72 20 74 68 65 0a  ariables or the.
81d0: 5c 66 42 2d 63 61 64 69 72 5c 66 52 20 6f 72 20  \fB-cadir\fR or 
81e0: 5c 66 42 2d 63 61 66 69 6c 65 5c 66 52 20 6f 70  \fB-cafile\fR op
81f0: 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 43 41 20  tions to the CA 
8200: 63 65 72 74 20 66 69 6c 65 27 73 20 69 6e 73 74  cert file's inst
8210: 61 6c 6c 0a 6c 6f 63 61 74 69 6f 6e 5c 26 2e 20  all.location\&. 
8220: 49 74 20 69 73 20 79 6f 75 72 20 72 65 73 70 6f  It is your respo
8230: 6e 73 69 62 69 6c 69 74 79 20 74 6f 20 6b 65 65  nsibility to kee
8240: 70 20 74 68 69 73 20 66 69 6c 65 20 75 70 20 74  p this file up t
8250: 6f 20 64 61 74 65 5c 26 2e 0a 2e 50 50 0a 2e 53  o date\&...PP..S
8260: 48 20 22 43 41 4c 4c 42 41 43 4b 20 4f 50 54 49  H "CALLBACK OPTI
8270: 4f 4e 53 22 0a 41 73 20 70 72 65 76 69 6f 75 73  ONS".As previous
8280: 6c 79 20 64 65 73 63 72 69 62 65 64 2c 20 65 61  ly described, ea
8290: 63 68 20 63 68 61 6e 6e 65 6c 20 63 61 6e 20 62  ch channel can b
82a0: 65 20 67 69 76 65 6e 20 74 68 65 69 72 20 6f 77  e given their ow
82b0: 6e 20 63 61 6c 6c 62 61 63 6b 73 0a 74 6f 20 68  n callbacks.to h
82c0: 61 6e 64 6c 65 20 69 6e 74 65 72 6d 65 64 69 61  andle intermedia
82d0: 74 65 20 70 72 6f 63 65 73 73 69 6e 67 20 62 79  te processing by
82e0: 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 6c 69 62   the OpenSSL lib
82f0: 72 61 72 79 2c 20 75 73 69 6e 67 20 74 68 65 0a  rary, using the.
8300: 5c 66 42 2d 63 6f 6d 6d 61 6e 64 5c 66 52 2c 20  \fB-command\fR, 
8310: 5c 66 42 2d 70 61 73 73 77 6f 72 64 5c 66 52 2c  \fB-password\fR,
8320: 20 61 6e 64 20 5c 66 42 2d 76 61 6c 69 64 61 74   and \fB-validat
8330: 65 5f 63 6f 6d 6d 61 6e 64 5c 66 52 20 6f 70 74  e_command\fR opt
8340: 69 6f 6e 73 0a 70 61 73 73 65 64 20 74 6f 20 65  ions.passed to e
8350: 69 74 68 65 72 20 6f 66 20 5c 66 42 74 6c 73 3a  ither of \fBtls:
8360: 3a 73 6f 63 6b 65 74 5c 66 52 20 6f 72 20 5c 66  :socket\fR or \f
8370: 42 74 6c 73 3a 3a 69 6d 70 6f 72 74 5c 66 52 5c  Btls::import\fR\
8380: 26 2e 0a 55 6e 6c 69 6b 65 20 70 72 65 76 69 6f  &..Unlike previo
8390: 75 73 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 54  us versions of T
83a0: 63 6c 54 4c 53 2c 20 6f 6e 6c 79 20 69 66 20 74  clTLS, only if t
83b0: 68 65 20 63 61 6c 6c 62 61 63 6b 20 67 65 6e 65  he callback gene
83c0: 72 61 74 65 73 20 61 6e 20 65 72 72 6f 72 2c 0a  rates an error,.
83d0: 77 69 6c 6c 20 74 68 65 20 5c 66 42 62 67 65 72  will the \fBbger
83e0: 72 6f 72 5c 66 52 20 63 6f 6d 6d 61 6e 64 20 62  ror\fR command b
83f0: 65 20 69 6e 76 6f 6b 65 64 20 77 69 74 68 20 74  e invoked with t
8400: 68 65 20 65 72 72 6f 72 20 69 6e 66 6f 72 6d 61  he error informa
8410: 74 69 6f 6e 5c 26 2e 0a 2e 53 53 20 22 56 41 4c  tion\&...SS "VAL
8420: 55 45 53 20 46 4f 52 20 43 4f 4d 4d 41 4e 44 20  UES FOR COMMAND 
8430: 43 41 4c 4c 42 41 43 4b 22 0a 54 68 65 20 63 61  CALLBACK".The ca
8440: 6c 6c 62 61 63 6b 20 66 6f 72 20 74 68 65 20 5c  llback for the \
8450: 66 42 2d 63 6f 6d 6d 61 6e 64 5c 66 52 20 6f 70  fB-command\fR op
8460: 74 69 6f 6e 20 69 73 20 69 6e 76 6f 6b 65 64 20  tion is invoked 
8470: 61 74 20 73 65 76 65 72 61 6c 20 70 6f 69 6e 74  at several point
8480: 73 20 64 75 72 69 6e 67 20 74 68 65 0a 4f 70 65  s during the.Ope
8490: 6e 53 53 4c 20 68 61 6e 64 73 68 61 6b 65 20 61  nSSL handshake a
84a0: 6e 64 20 64 75 72 69 6e 67 20 72 6f 75 74 69 6e  nd during routin
84b0: 65 20 6f 70 65 72 61 74 69 6f 6e 73 5c 26 2e 20  e operations\&. 
84c0: 53 65 65 20 62 65 6c 6f 77 20 66 6f 72 20 74 68  See below for th
84d0: 65 20 70 6f 73 73 69 62 6c 65 0a 61 72 67 75 6d  e possible.argum
84e0: 65 6e 74 73 20 70 61 73 73 65 64 20 74 6f 20 74  ents passed to t
84f0: 68 65 20 63 61 6c 6c 62 61 63 6b 20 73 63 72 69  he callback scri
8500: 70 74 5c 26 2e 20 56 61 6c 75 65 73 20 72 65 74  pt\&. Values ret
8510: 75 72 6e 65 64 20 66 72 6f 6d 20 74 68 65 20 63  urned from the c
8520: 61 6c 6c 62 61 63 6b 20 61 72 65 0a 69 67 6e 6f  allback are.igno
8530: 72 65 64 5c 26 2e 0a 2e 54 50 0a 5c 66 42 65 72  red\&...TP.\fBer
8540: 72 6f 72 5c 66 52 20 5c 66 49 63 68 61 6e 6e 65  ror\fR \fIchanne
8550: 6c 49 64 20 6d 65 73 73 61 67 65 5c 66 52 0a 54  lId message\fR.T
8560: 68 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c  his form of call
8570: 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20  back is invoked 
8580: 77 68 65 6e 65 76 65 72 20 61 6e 20 65 72 72 6f  whenever an erro
8590: 72 20 6f 63 63 75 72 73 20 64 75 72 69 6e 67 20  r occurs during 
85a0: 74 68 65 20 69 6e 69 74 69 61 6c 0a 63 6f 6e 6e  the initial.conn
85b0: 65 63 74 69 6f 6e 2c 20 68 61 6e 64 73 68 61 6b  ection, handshak
85c0: 65 2c 20 6f 72 20 49 2f 4f 20 6f 70 65 72 61 74  e, or I/O operat
85d0: 69 6f 6e 73 5c 26 2e 20 54 68 65 20 5c 66 49 6d  ions\&. The \fIm
85e0: 65 73 73 61 67 65 5c 66 52 20 61 72 67 75 6d 65  essage\fR argume
85f0: 6e 74 20 63 61 6e 20 62 65 0a 66 72 6f 6d 20 74  nt can be.from t
8600: 68 65 20 54 63 6c 5f 45 72 72 6e 6f 4d 73 67 2c  he Tcl_ErrnoMsg,
8610: 20 4f 70 65 6e 53 53 4c 20 66 75 6e 63 74 69 6f   OpenSSL functio
8620: 6e 20 5c 66 42 45 52 52 5f 72 65 61 73 6f 6e 5f  n \fBERR_reason_
8630: 65 72 72 6f 72 5f 73 74 72 69 6e 67 28 29 5c 66  error_string()\f
8640: 52 2c 0a 6f 72 20 61 20 63 75 73 74 6f 6d 20 6d  R,.or a custom m
8650: 65 73 73 61 67 65 5c 26 2e 20 54 68 69 73 20 63  essage\&. This c
8660: 61 6c 6c 62 61 63 6b 20 69 73 20 6e 65 77 20 66  allback is new f
8670: 6f 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e 38 5c  or TclTLS 1\&.8\
8680: 26 2e 0a 2e 54 50 0a 5c 66 42 69 6e 66 6f 5c 66  &...TP.\fBinfo\f
8690: 52 20 5c 66 49 63 68 61 6e 6e 65 6c 49 64 20 6d  R \fIchannelId m
86a0: 61 6a 6f 72 20 6d 69 6e 6f 72 20 6d 65 73 73 61  ajor minor messa
86b0: 67 65 20 74 79 70 65 5c 66 52 0a 54 68 69 73 20  ge type\fR.This 
86c0: 66 6f 72 6d 20 6f 66 20 63 61 6c 6c 62 61 63 6b  form of callback
86d0: 20 69 73 20 69 6e 76 6f 6b 65 64 20 62 79 20 74   is invoked by t
86e0: 68 65 20 4f 70 65 6e 53 53 4c 20 66 75 6e 63 74  he OpenSSL funct
86f0: 69 6f 6e 0a 5c 66 42 53 53 4c 5f 73 65 74 5f 69  ion.\fBSSL_set_i
8700: 6e 66 6f 5f 63 61 6c 6c 62 61 63 6b 28 29 5c 66  nfo_callback()\f
8710: 52 20 64 75 72 69 6e 67 20 74 68 65 20 69 6e 69  R during the ini
8720: 74 69 61 6c 20 63 6f 6e 6e 65 63 74 69 6f 6e 20  tial connection 
8730: 61 6e 64 20 68 61 6e 64 73 68 61 6b 65 0a 6f 70  and handshake.op
8740: 65 72 61 74 69 6f 6e 73 5c 26 2e 20 54 68 65 20  erations\&. The 
8750: 61 72 67 75 6d 65 6e 74 73 20 61 72 65 3a 0a 2e  arguments are:..
8760: 52 53 0a 2e 54 50 0a 5c 66 49 6d 61 6a 6f 72 5c  RS..TP.\fImajor\
8770: 66 52 0a 4d 61 6a 6f 72 20 63 61 74 65 67 6f 72  fR.Major categor
8780: 79 20 66 6f 72 20 65 72 72 6f 72 5c 26 2e 20 56  y for error\&. V
8790: 61 6c 69 64 20 65 6e 75 6d 73 20 61 72 65 3a 20  alid enums are: 
87a0: 5c 66 42 68 61 6e 64 73 68 61 6b 65 5c 66 52 2c  \fBhandshake\fR,
87b0: 20 5c 66 42 61 6c 65 72 74 5c 66 52 2c 0a 5c 66   \fBalert\fR,.\f
87c0: 42 63 6f 6e 6e 65 63 74 5c 66 52 2c 20 5c 66 42  Bconnect\fR, \fB
87d0: 61 63 63 65 70 74 5c 66 52 5c 26 2e 0a 2e 54 50  accept\fR\&...TP
87e0: 0a 5c 66 49 6d 69 6e 6f 72 5c 66 52 0a 4d 69 6e  .\fIminor\fR.Min
87f0: 6f 72 20 63 61 74 65 67 6f 72 79 20 66 6f 72 20  or category for 
8800: 65 72 72 6f 72 5c 26 2e 20 56 61 6c 69 64 20 65  error\&. Valid e
8810: 6e 75 6d 73 20 61 72 65 3a 20 5c 66 42 73 74 61  nums are: \fBsta
8820: 72 74 5c 66 52 2c 20 5c 66 42 64 6f 6e 65 5c 66  rt\fR, \fBdone\f
8830: 52 2c 20 5c 66 42 72 65 61 64 5c 66 52 2c 0a 5c  R, \fBread\fR,.\
8840: 66 42 77 72 69 74 65 5c 66 52 2c 20 5c 66 42 6c  fBwrite\fR, \fBl
8850: 6f 6f 70 5c 66 52 2c 20 5c 66 42 65 78 69 74 5c  oop\fR, \fBexit\
8860: 66 52 5c 26 2e 0a 2e 54 50 0a 5c 66 49 6d 65 73  fR\&...TP.\fImes
8870: 73 61 67 65 5c 66 52 0a 44 65 73 63 72 69 70 74  sage\fR.Descript
8880: 69 76 65 20 6d 65 73 73 61 67 65 20 73 74 72 69  ive message stri
8890: 6e 67 20 77 68 69 63 68 20 6d 61 79 20 62 65 20  ng which may be 
88a0: 67 65 6e 65 72 61 74 65 64 20 65 69 74 68 65 72  generated either
88b0: 20 62 79 0a 5c 66 42 53 53 4c 5f 73 74 61 74 65   by.\fBSSL_state
88c0: 5f 73 74 72 69 6e 67 5f 6c 6f 6e 67 28 29 5c 66  _string_long()\f
88d0: 52 20 6f 72 20 5c 66 42 53 53 4c 5f 61 6c 65 72  R or \fBSSL_aler
88e0: 74 5f 64 65 73 63 5f 73 74 72 69 6e 67 5f 6c 6f  t_desc_string_lo
88f0: 6e 67 28 29 5c 66 52 2c 0a 64 65 70 65 6e 64 69  ng()\fR,.dependi
8900: 6e 67 20 6f 6e 20 74 68 65 20 63 6f 6e 74 65 78  ng on the contex
8910: 74 5c 26 2e 0a 2e 54 50 0a 5c 66 49 74 79 70 65  t\&...TP.\fItype
8920: 5c 66 52 0a 46 6f 72 20 61 6c 65 72 74 73 2c 20  \fR.For alerts, 
8930: 74 68 65 20 70 6f 73 73 69 62 6c 65 20 76 61 6c  the possible val
8940: 75 65 73 20 61 72 65 3a 20 5c 66 42 77 61 72 6e  ues are: \fBwarn
8950: 69 6e 67 5c 66 52 2c 0a 5c 66 42 66 61 74 61 6c  ing\fR,.\fBfatal
8960: 5c 66 52 2c 20 61 6e 64 20 5c 66 42 75 6e 6b 6e  \fR, and \fBunkn
8970: 6f 77 6e 5c 66 52 5c 26 2e 20 46 6f 72 20 6f 74  own\fR\&. For ot
8980: 68 65 72 73 2c 20 5c 66 42 69 6e 66 6f 5c 66 52  hers, \fBinfo\fR
8990: 20 69 73 20 75 73 65 64 5c 26 2e 0a 54 68 69 73   is used\&..This
89a0: 20 61 72 67 75 6d 65 6e 74 20 69 73 20 6e 65 77   argument is new
89b0: 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e   for TclTLS 1\&.
89c0: 38 5c 26 2e 0a 2e 52 45 0a 2e 54 50 0a 5c 66 42  8\&...RE..TP.\fB
89d0: 6d 65 73 73 61 67 65 5c 66 52 20 5c 66 49 63 68  message\fR \fIch
89e0: 61 6e 6e 65 6c 49 64 20 64 69 72 65 63 74 69 6f  annelId directio
89f0: 6e 20 76 65 72 73 69 6f 6e 20 63 6f 6e 74 65 6e  n version conten
8a00: 74 5f 74 79 70 65 20 6d 65 73 73 61 67 65 5c 66  t_type message\f
8a10: 52 0a 54 68 69 73 20 66 6f 72 6d 20 6f 66 20 63  R.This form of c
8a20: 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b  allback is invok
8a30: 65 64 20 62 79 20 74 68 65 20 4f 70 65 6e 53 53  ed by the OpenSS
8a40: 4c 20 66 75 6e 63 74 69 6f 6e 0a 5c 66 42 53 53  L function.\fBSS
8a50: 4c 5f 73 65 74 5f 6d 73 67 5f 63 61 6c 6c 62 61  L_set_msg_callba
8a60: 63 6b 28 29 5c 66 52 20 77 68 65 6e 65 76 65 72  ck()\fR whenever
8a70: 20 61 20 6d 65 73 73 61 67 65 20 69 73 20 73 65   a message is se
8a80: 6e 74 20 6f 72 20 72 65 63 65 69 76 65 64 20 64  nt or received d
8a90: 75 72 69 6e 67 20 74 68 65 0a 69 6e 69 74 69 61  uring the.initia
8aa0: 6c 20 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 68 61  l connection, ha
8ab0: 6e 64 73 68 61 6b 65 2c 20 6f 72 20 49 2f 4f 20  ndshake, or I/O 
8ac0: 6f 70 65 72 61 74 69 6f 6e 73 5c 26 2e 20 49 74  operations\&. It
8ad0: 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 6c 61 62   is only availab
8ae0: 6c 65 20 77 68 65 6e 0a 4f 70 65 6e 53 53 4c 20  le when.OpenSSL 
8af0: 69 73 20 63 6f 6d 70 6c 69 65 64 20 77 69 74 68  is complied with
8b00: 20 74 68 65 20 5c 66 42 65 6e 61 62 6c 65 2d 73   the \fBenable-s
8b10: 73 6c 2d 74 72 61 63 65 5c 66 52 20 6f 70 74 69  sl-trace\fR opti
8b20: 6f 6e 5c 26 2e 20 54 68 69 73 20 63 61 6c 6c 62  on\&. This callb
8b30: 61 63 6b 20 69 73 0a 6e 65 77 20 66 6f 72 20 54  ack is.new for T
8b40: 63 6c 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 20 54  clTLS 1\&.8\&. T
8b50: 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65  he arguments are
8b60: 3a 0a 2e 52 53 0a 2e 54 50 0a 5c 66 49 64 69 72  :..RS..TP.\fIdir
8b70: 65 63 74 69 6f 6e 5c 66 52 0a 44 69 72 65 63 74  ection\fR.Direct
8b80: 69 6f 6e 20 69 73 20 65 69 74 68 65 72 20 5c 66  ion is either \f
8b90: 42 53 65 6e 74 5c 66 52 20 6f 72 20 5c 66 42 52  BSent\fR or \fBR
8ba0: 65 63 65 69 76 65 64 5c 66 52 5c 26 2e 0a 2e 54  eceived\fR\&...T
8bb0: 50 0a 5c 66 49 76 65 72 73 69 6f 6e 5c 66 52 0a  P.\fIversion\fR.
8bc0: 56 65 72 73 69 6f 6e 20 69 73 20 74 68 65 20 70  Version is the p
8bd0: 72 6f 74 6f 63 6f 6c 20 76 65 72 73 69 6f 6e 5c  rotocol version\
8be0: 26 2e 0a 2e 54 50 0a 5c 66 49 63 6f 6e 74 65 6e  &...TP.\fIconten
8bf0: 74 5f 74 79 70 65 5c 66 52 0a 43 6f 6e 74 65 6e  t_type\fR.Conten
8c00: 74 20 74 79 70 65 20 69 73 20 74 68 65 20 6d 65  t type is the me
8c10: 73 73 61 67 65 20 63 6f 6e 74 65 6e 74 20 74 79  ssage content ty
8c20: 70 65 5c 26 2e 0a 2e 54 50 0a 5c 66 49 6d 65 73  pe\&...TP.\fImes
8c30: 73 61 67 65 5c 66 52 0a 4d 65 73 73 61 67 65 20  sage\fR.Message 
8c40: 69 73 20 6d 6f 72 65 20 69 6e 66 6f 20 66 72 6f  is more info fro
8c50: 6d 20 74 68 65 20 5c 66 42 53 53 4c 5f 74 72 61  m the \fBSSL_tra
8c60: 63 65 5c 66 52 20 41 50 49 5c 26 2e 0a 2e 52 45  ce\fR API\&...RE
8c70: 0a 2e 54 50 0a 5c 66 42 73 65 73 73 69 6f 6e 5c  ..TP.\fBsession\
8c80: 66 52 20 5c 66 49 63 68 61 6e 6e 65 6c 49 64 20  fR \fIchannelId 
8c90: 73 65 73 73 69 6f 6e 5f 69 64 20 73 65 73 73 69  session_id sessi
8ca0: 6f 6e 5f 74 69 63 6b 65 74 20 6c 69 66 65 74 69  on_ticket lifeti
8cb0: 6d 65 5c 66 52 0a 54 68 69 73 20 66 6f 72 6d 20  me\fR.This form 
8cc0: 6f 66 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 69  of callback is i
8cd0: 6e 76 6f 6b 65 64 20 62 79 20 74 68 65 20 4f 70  nvoked by the Op
8ce0: 65 6e 53 53 4c 20 66 75 6e 63 74 69 6f 6e 0a 5c  enSSL function.\
8cf0: 66 42 53 53 4c 5f 43 54 58 5f 73 65 73 73 5f 73  fBSSL_CTX_sess_s
8d00: 65 74 5f 6e 65 77 5f 63 62 28 29 5c 66 52 20 77  et_new_cb()\fR w
8d10: 68 65 6e 65 76 65 72 20 61 20 6e 65 77 20 73 65  henever a new se
8d20: 73 73 69 6f 6e 20 69 64 20 69 73 20 73 65 6e 74  ssion id is sent
8d30: 20 62 79 20 74 68 65 0a 73 65 72 76 65 72 20 64   by the.server d
8d40: 75 72 69 6e 67 20 74 68 65 20 69 6e 69 74 69 61  uring the initia
8d50: 6c 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 61 6e 64  l connection and
8d60: 20 68 61 6e 64 73 68 61 6b 65 20 61 6e 64 20 61   handshake and a
8d70: 6c 73 6f 20 64 75 72 69 6e 67 20 74 68 65 20 73  lso during the s
8d80: 65 73 73 69 6f 6e 0a 69 66 20 74 68 65 20 5c 66  ession.if the \f
8d90: 42 2d 70 6f 73 74 5f 68 61 6e 64 73 68 61 6b 65  B-post_handshake
8da0: 5c 66 52 20 6f 70 74 69 6f 6e 20 69 73 20 73 65  \fR option is se
8db0: 74 20 74 6f 20 74 72 75 65 5c 26 2e 20 54 68 69  t to true\&. Thi
8dc0: 73 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 6e 65  s callback is ne
8dd0: 77 20 66 6f 72 0a 54 63 6c 54 4c 53 20 31 5c 26  w for.TclTLS 1\&
8de0: 2e 38 5c 26 2e 20 54 68 65 20 61 72 67 75 6d 65  .8\&. The argume
8df0: 6e 74 73 20 61 72 65 3a 0a 2e 52 53 0a 2e 54 50  nts are:..RS..TP
8e00: 0a 5c 66 49 73 65 73 73 69 6f 6e 5f 69 64 5c 66  .\fIsession_id\f
8e10: 52 0a 53 65 73 73 69 6f 6e 20 49 64 20 69 73 20  R.Session Id is 
8e20: 74 68 65 20 63 75 72 72 65 6e 74 20 73 65 73 73  the current sess
8e30: 69 6f 6e 20 69 64 65 6e 74 69 66 69 65 72 0a 2e  ion identifier..
8e40: 54 50 0a 5c 66 49 73 65 73 73 69 6f 6e 5f 74 69  TP.\fIsession_ti
8e50: 63 6b 65 74 5c 66 52 0a 54 69 63 6b 65 74 20 69  cket\fR.Ticket i
8e60: 73 20 74 68 65 20 73 65 73 73 69 6f 6e 20 74 69  s the session ti
8e70: 63 6b 65 74 20 69 6e 66 6f 0a 2e 54 50 0a 5c 66  cket info..TP.\f
8e80: 49 6c 69 66 65 74 69 6d 65 5c 66 52 0a 4c 69 66  Ilifetime\fR.Lif
8e90: 65 74 69 6d 65 20 69 73 20 74 68 65 20 74 69 63  etime is the tic
8ea0: 6b 65 74 20 6c 69 66 65 74 69 6d 65 20 69 6e 20  ket lifetime in 
8eb0: 73 65 63 6f 6e 64 73 5c 26 2e 0a 2e 52 45 0a 2e  seconds\&...RE..
8ec0: 54 50 0a 5c 66 42 76 65 72 69 66 79 5c 66 52 20  TP.\fBverify\fR 
8ed0: 5c 66 49 63 68 61 6e 6e 65 6c 49 64 20 64 65 70  \fIchannelId dep
8ee0: 74 68 20 63 65 72 74 20 73 74 61 74 75 73 20 65  th cert status e
8ef0: 72 72 6f 72 5c 66 52 0a 54 68 69 73 20 63 61 6c  rror\fR.This cal
8f00: 6c 62 61 63 6b 20 77 61 73 20 6d 6f 76 65 64 20  lback was moved 
8f10: 74 6f 20 5c 66 42 2d 76 61 6c 69 64 61 74 65 63  to \fB-validatec
8f20: 6f 6d 6d 61 6e 64 5c 66 52 20 69 6e 20 54 63 6c  ommand\fR in Tcl
8f30: 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e 50 50  TLS 1\&.8\&...PP
8f40: 0a 2e 53 53 20 22 56 41 4c 55 45 53 20 46 4f 52  ..SS "VALUES FOR
8f50: 20 50 41 53 53 57 4f 52 44 20 43 41 4c 4c 42 41   PASSWORD CALLBA
8f60: 43 4b 22 0a 54 68 65 20 63 61 6c 6c 62 61 63 6b  CK".The callback
8f70: 20 66 6f 72 20 74 68 65 20 5c 66 42 2d 70 61 73   for the \fB-pas
8f80: 73 77 6f 72 64 5c 66 52 20 6f 70 74 69 6f 6e 20  sword\fR option 
8f90: 69 73 20 69 6e 76 6f 6b 65 64 20 62 79 20 54 63  is invoked by Tc
8fa0: 6c 54 4c 53 20 77 68 65 6e 65 76 65 72 20 4f 70  lTLS whenever Op
8fb0: 65 6e 53 53 4c 20 6e 65 65 64 73 0a 74 6f 20 6f  enSSL needs.to o
8fc0: 62 74 61 69 6e 20 61 20 70 61 73 73 77 6f 72 64  btain a password
8fd0: 5c 26 2e 20 53 65 65 20 62 65 6c 6f 77 20 66 6f  \&. See below fo
8fe0: 72 20 74 68 65 20 70 6f 73 73 69 62 6c 65 20 61  r the possible a
8ff0: 72 67 75 6d 65 6e 74 73 20 70 61 73 73 65 64 20  rguments passed 
9000: 74 6f 20 74 68 65 0a 63 61 6c 6c 62 61 63 6b 20  to the.callback 
9010: 73 63 72 69 70 74 5c 26 2e 20 54 68 65 20 75 73  script\&. The us
9020: 65 72 20 70 72 6f 76 69 64 65 64 20 70 61 73 73  er provided pass
9030: 77 6f 72 64 20 69 73 20 65 78 70 65 63 74 65 64  word is expected
9040: 20 74 6f 20 62 65 20 72 65 74 75 72 6e 65 64 20   to be returned 
9050: 62 79 20 74 68 65 0a 63 61 6c 6c 62 61 63 6b 5c  by the.callback\
9060: 26 2e 0a 2e 54 50 0a 5c 66 42 70 61 73 73 77 6f  &...TP.\fBpasswo
9070: 72 64 5c 66 52 20 5c 66 49 72 77 66 6c 61 67 20  rd\fR \fIrwflag 
9080: 73 69 7a 65 5c 66 52 0a 49 6e 76 6f 6b 65 64 20  size\fR.Invoked 
9090: 77 68 65 6e 20 6c 6f 61 64 69 6e 67 20 6f 72 20  when loading or 
90a0: 73 74 6f 72 69 6e 67 20 61 6e 20 65 6e 63 72 79  storing an encry
90b0: 70 74 65 64 20 50 45 4d 20 63 65 72 74 69 66 69  pted PEM certifi
90c0: 63 61 74 65 5c 26 2e 20 54 68 65 20 61 72 67 75  cate\&. The argu
90d0: 6d 65 6e 74 73 20 61 72 65 3a 0a 2e 52 53 0a 2e  ments are:..RS..
90e0: 54 50 0a 5c 66 49 72 77 66 6c 61 67 5c 66 52 0a  TP.\fIrwflag\fR.
90f0: 54 68 65 20 72 65 61 64 2f 77 72 69 74 65 20 66  The read/write f
9100: 6c 61 67 20 69 73 20 30 20 66 6f 72 20 72 65 61  lag is 0 for rea
9110: 64 69 6e 67 2f 64 65 63 72 79 70 74 69 6f 6e 20  ding/decryption 
9120: 6f 72 20 31 20 66 6f 72 20 77 72 69 74 69 6e 67  or 1 for writing
9130: 2f 65 6e 63 72 79 70 74 69 6f 6e 5c 26 2e 0a 54  /encryption\&..T
9140: 68 65 20 6c 61 74 74 65 72 20 63 61 6e 20 62 65  he latter can be
9150: 20 75 73 65 64 20 74 6f 20 64 65 74 65 72 6d 69   used to determi
9160: 6e 65 20 77 68 65 6e 20 74 6f 20 70 72 6f 6d 70  ne when to promp
9170: 74 20 74 68 65 20 75 73 65 72 20 74 6f 20 63 6f  t the user to co
9180: 6e 66 69 72 6d 5c 26 2e 0a 54 68 69 73 20 61 72  nfirm\&..This ar
9190: 67 75 6d 65 6e 74 20 69 73 20 6e 65 77 20 66 6f  gument is new fo
91a0: 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e 38 5c 26  r TclTLS 1\&.8\&
91b0: 2e 0a 2e 54 50 0a 5c 66 49 73 69 7a 65 5c 66 52  ...TP.\fIsize\fR
91c0: 0a 54 68 65 20 73 69 7a 65 20 69 73 20 74 68 65  .The size is the
91d0: 20 6d 61 78 69 6d 75 6d 20 6c 65 6e 67 74 68 20   maximum length 
91e0: 6f 66 20 74 68 65 20 70 61 73 73 77 6f 72 64 20  of the password 
91f0: 69 6e 20 62 79 74 65 73 5c 26 2e 0a 54 68 69 73  in bytes\&..This
9200: 20 61 72 67 75 6d 65 6e 74 20 69 73 20 6e 65 77   argument is new
9210: 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e   for TclTLS 1\&.
9220: 38 5c 26 2e 0a 2e 52 45 0a 2e 50 50 0a 2e 53 53  8\&...RE..PP..SS
9230: 20 22 56 41 4c 55 45 53 20 46 4f 52 20 56 41 4c   "VALUES FOR VAL
9240: 49 44 41 54 45 20 43 4f 4d 4d 41 4e 44 20 43 41  IDATE COMMAND CA
9250: 4c 4c 42 41 43 4b 22 0a 54 68 65 20 63 61 6c 6c  LLBACK".The call
9260: 62 61 63 6b 20 66 6f 72 20 74 68 65 20 5c 66 42  back for the \fB
9270: 2d 76 61 6c 69 64 61 74 65 63 6f 6d 6d 61 6e 64  -validatecommand
9280: 5c 66 52 20 6f 70 74 69 6f 6e 20 69 73 20 69 6e  \fR option is in
9290: 76 6f 6b 65 64 20 64 75 72 69 6e 67 20 74 68 65  voked during the
92a0: 20 68 61 6e 64 73 68 61 6b 65 0a 70 72 6f 63 65   handshake.proce
92b0: 73 73 20 69 6e 20 6f 72 64 65 72 20 66 6f 72 20  ss in order for 
92c0: 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20  the application 
92d0: 74 6f 20 76 61 6c 69 64 61 74 65 20 74 68 65 20  to validate the 
92e0: 70 72 6f 76 69 64 65 64 20 76 61 6c 75 65 28 73  provided value(s
92f0: 29 5c 26 2e 20 53 65 65 0a 62 65 6c 6f 77 20 66  )\&. See.below f
9300: 6f 72 20 74 68 65 20 70 6f 73 73 69 62 6c 65 20  or the possible 
9310: 61 72 67 75 6d 65 6e 74 73 20 70 61 73 73 65 64  arguments passed
9320: 20 74 6f 20 74 68 65 20 63 61 6c 6c 62 61 63 6b   to the callback
9330: 20 73 63 72 69 70 74 5c 26 2e 20 49 66 20 6e 6f   script\&. If no
9340: 74 0a 73 70 65 63 69 66 69 65 64 2c 20 4f 70 65  t.specified, Ope
9350: 6e 53 53 4c 20 77 69 6c 6c 20 61 63 63 65 70 74  nSSL will accept
9360: 20 61 6c 6c 20 76 61 6c 69 64 20 63 65 72 74 69   all valid certi
9370: 66 69 63 61 74 65 73 20 61 6e 64 20 65 78 74 65  ficates and exte
9380: 6e 73 69 6f 6e 73 5c 26 2e 20 54 6f 20 72 65 6a  nsions\&. To rej
9390: 65 63 74 0a 74 68 65 20 76 61 6c 75 65 20 61 6e  ect.the value an
93a0: 64 20 61 62 6f 72 74 20 74 68 65 20 63 6f 6e 6e  d abort the conn
93b0: 65 63 74 69 6f 6e 2c 20 74 68 65 20 63 61 6c 6c  ection, the call
93c0: 62 61 63 6b 20 73 68 6f 75 6c 64 20 72 65 74 75  back should retu
93d0: 72 6e 20 30 5c 26 2e 20 54 6f 20 61 63 63 65 70  rn 0\&. To accep
93e0: 74 20 74 68 65 0a 76 61 6c 75 65 20 61 6e 64 20  t the.value and 
93f0: 63 6f 6e 74 69 6e 75 65 20 74 68 65 20 63 6f 6e  continue the con
9400: 6e 65 63 74 69 6f 6e 2c 20 69 74 20 73 68 6f 75  nection, it shou
9410: 6c 64 20 72 65 74 75 72 6e 20 31 5c 26 2e 20 54  ld return 1\&. T
9420: 6f 20 72 65 6a 65 63 74 20 74 68 65 20 76 61 6c  o reject the val
9430: 75 65 2c 20 62 75 74 0a 63 6f 6e 74 69 6e 75 65  ue, but.continue
9440: 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2c   the connection,
9450: 20 69 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72   it should retur
9460: 6e 20 32 5c 26 2e 20 54 68 69 73 20 63 61 6c 6c  n 2\&. This call
9470: 62 61 63 6b 20 69 73 20 6e 65 77 20 66 6f 72 20  back is new for 
9480: 54 63 6c 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a  TclTLS 1\&.8\&..
9490: 2e 54 50 0a 5c 66 42 61 6c 70 6e 5c 66 52 20 5c  .TP.\fBalpn\fR \
94a0: 66 49 63 68 61 6e 6e 65 6c 49 64 20 70 72 6f 74  fIchannelId prot
94b0: 6f 63 6f 6c 20 6d 61 74 63 68 5c 66 52 0a 46 6f  ocol match\fR.Fo
94c0: 72 20 73 65 72 76 65 72 73 2c 20 74 68 69 73 20  r servers, this 
94d0: 66 6f 72 6d 20 6f 66 20 63 61 6c 6c 62 61 63 6b  form of callback
94e0: 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e   is invoked when
94f0: 20 74 68 65 20 63 6c 69 65 6e 74 20 41 4c 50 4e   the client ALPN
9500: 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 0a 72 65   extension is.re
9510: 63 65 69 76 65 64 5c 26 2e 20 49 66 20 5c 66 49  ceived\&. If \fI
9520: 6d 61 74 63 68 5c 66 52 20 69 73 20 74 72 75 65  match\fR is true
9530: 2c 20 74 68 65 6e 20 5c 66 49 70 72 6f 74 6f 63  , then \fIprotoc
9540: 6f 6c 5c 66 52 20 69 73 20 74 68 65 20 66 69 72  ol\fR is the fir
9550: 73 74 0a 5c 66 42 2d 61 6c 70 6e 5c 66 52 20 70  st.\fB-alpn\fR p
9560: 72 6f 74 6f 63 6f 6c 20 6f 70 74 69 6f 6e 20 69  rotocol option i
9570: 6e 20 63 6f 6d 6d 6f 6e 20 74 6f 20 62 6f 74 68  n common to both
9580: 20 74 68 65 20 63 6c 69 65 6e 74 20 61 6e 64 20   the client and 
9590: 73 65 72 76 65 72 5c 26 2e 0a 49 66 20 6e 6f 74  server\&..If not
95a0: 2c 20 74 68 65 20 66 69 72 73 74 20 63 6c 69 65  , the first clie
95b0: 6e 74 20 73 70 65 63 69 66 69 65 64 20 70 72 6f  nt specified pro
95c0: 74 6f 63 6f 6c 20 69 73 20 75 73 65 64 5c 26 2e  tocol is used\&.
95d0: 20 54 68 69 73 20 63 61 6c 6c 62 61 63 6b 20 69   This callback i
95e0: 73 20 63 61 6c 6c 65 64 0a 61 66 74 65 72 20 74  s called.after t
95f0: 68 65 20 48 65 6c 6c 6f 20 61 6e 64 20 53 4e 49  he Hello and SNI
9600: 20 63 61 6c 6c 62 61 63 6b 73 5c 26 2e 0a 2e 54   callbacks\&...T
9610: 50 0a 5c 66 42 68 65 6c 6c 6f 5c 66 52 20 5c 66  P.\fBhello\fR \f
9620: 49 63 68 61 6e 6e 65 6c 49 64 20 73 65 72 76 65  IchannelId serve
9630: 72 6e 61 6d 65 20 73 65 73 73 69 6f 6e 5f 69 64  rname session_id
9640: 5c 66 52 0a 46 6f 72 20 73 65 72 76 65 72 73 2c  \fR.For servers,
9650: 20 74 68 69 73 20 66 6f 72 6d 20 6f 66 20 63 61   this form of ca
9660: 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65  llback is invoke
9670: 64 20 64 75 72 69 6e 67 20 63 6c 69 65 6e 74 20  d during client 
9680: 68 65 6c 6c 6f 20 6d 65 73 73 61 67 65 0a 70 72  hello message.pr
9690: 6f 63 65 73 73 69 6e 67 5c 26 2e 20 54 68 65 20  ocessing\&. The 
96a0: 70 75 72 70 6f 73 65 20 69 73 20 73 6f 20 74 68  purpose is so th
96b0: 65 20 73 65 72 76 65 72 20 63 61 6e 20 73 65 6c  e server can sel
96c0: 65 63 74 20 74 68 65 20 61 70 70 72 6f 70 72 69  ect the appropri
96d0: 61 74 65 20 63 65 72 74 69 66 69 63 61 74 65 0a  ate certificate.
96e0: 74 6f 20 70 72 65 73 65 6e 74 20 74 6f 20 74 68  to present to th
96f0: 65 20 63 6c 69 65 6e 74 2c 20 61 6e 64 20 74 6f  e client, and to
9700: 20 6d 61 6b 65 20 6f 74 68 65 72 20 63 6f 6e 66   make other conf
9710: 69 67 75 72 61 74 69 6f 6e 20 61 64 6a 75 73 74  iguration adjust
9720: 6d 65 6e 74 73 20 72 65 6c 65 76 61 6e 74 0a 74  ments relevant.t
9730: 6f 20 74 68 61 74 20 73 65 72 76 65 72 20 6e 61  o that server na
9740: 6d 65 20 61 6e 64 20 69 74 73 20 63 6f 6e 66 69  me and its confi
9750: 67 75 72 61 74 69 6f 6e 5c 26 2e 20 49 74 20 69  guration\&. It i
9760: 73 20 63 61 6c 6c 65 64 20 62 65 66 6f 72 65 20  s called before 
9770: 74 68 65 20 53 4e 49 20 61 6e 64 20 41 4c 50 4e  the SNI and ALPN
9780: 0a 63 61 6c 6c 62 61 63 6b 73 5c 26 2e 0a 2e 54  .callbacks\&...T
9790: 50 0a 5c 66 42 73 6e 69 5c 66 52 20 5c 66 49 63  P.\fBsni\fR \fIc
97a0: 68 61 6e 6e 65 6c 49 64 20 73 65 72 76 65 72 6e  hannelId servern
97b0: 61 6d 65 5c 66 52 0a 46 6f 72 20 73 65 72 76 65  ame\fR.For serve
97c0: 72 73 2c 20 74 68 69 73 20 66 6f 72 6d 20 6f 66  rs, this form of
97d0: 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76   callback is inv
97e0: 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 53 65  oked when the Se
97f0: 72 76 65 72 20 4e 61 6d 65 20 49 6e 64 69 63 61  rver Name Indica
9800: 74 69 6f 6e 0a 28 53 4e 49 29 20 65 78 74 65 6e  tion.(SNI) exten
9810: 73 69 6f 6e 20 69 73 20 72 65 63 65 69 76 65 64  sion is received
9820: 5c 26 2e 20 54 68 65 20 5c 66 49 73 65 72 76 65  \&. The \fIserve
9830: 72 6e 61 6d 65 5c 66 52 20 61 72 67 75 6d 65 6e  rname\fR argumen
9840: 74 20 69 73 20 74 68 65 20 63 6c 69 65 6e 74 0a  t is the client.
9850: 70 72 6f 76 69 64 65 64 20 73 65 72 76 65 72 20  provided server 
9860: 6e 61 6d 65 20 73 70 65 63 69 66 69 65 64 20 69  name specified i
9870: 6e 20 74 68 65 20 5c 66 42 2d 73 65 72 76 65 72  n the \fB-server
9880: 6e 61 6d 65 5c 66 52 20 6f 70 74 69 6f 6e 5c 26  name\fR option\&
9890: 2e 20 54 68 65 0a 70 75 72 70 6f 73 65 20 69 73  . The.purpose is
98a0: 20 73 6f 20 77 68 65 6e 20 61 20 73 65 72 76 65   so when a serve
98b0: 72 20 73 75 70 70 6f 72 74 73 20 6d 75 6c 74 69  r supports multi
98c0: 70 6c 65 20 6e 61 6d 65 73 2c 20 74 68 65 20 72  ple names, the r
98d0: 69 67 68 74 20 63 65 72 74 69 66 69 63 61 74 65  ight certificate
98e0: 0a 63 61 6e 20 62 65 20 75 73 65 64 5c 26 2e 20  .can be used\&. 
98f0: 49 74 20 69 73 20 63 61 6c 6c 65 64 20 61 66 74  It is called aft
9900: 65 72 20 74 68 65 20 48 65 6c 6c 6f 20 63 61 6c  er the Hello cal
9910: 6c 62 61 63 6b 20 62 75 74 20 62 65 66 6f 72 65  lback but before
9920: 20 74 68 65 20 41 4c 50 4e 0a 63 61 6c 6c 62 61   the ALPN.callba
9930: 63 6b 5c 26 2e 0a 2e 54 50 0a 5c 66 42 76 65 72  ck\&...TP.\fBver
9940: 69 66 79 5c 66 52 20 5c 66 49 63 68 61 6e 6e 65  ify\fR \fIchanne
9950: 6c 49 64 20 64 65 70 74 68 20 63 65 72 74 20 73  lId depth cert s
9960: 74 61 74 75 73 20 65 72 72 6f 72 5c 66 52 0a 54  tatus error\fR.T
9970: 68 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c  his form of call
9980: 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20  back is invoked 
9990: 62 79 20 4f 70 65 6e 53 53 4c 20 77 68 65 6e 20  by OpenSSL when 
99a0: 61 20 6e 65 77 20 63 65 72 74 69 66 69 63 61 74  a new certificat
99b0: 65 20 69 73 20 72 65 63 65 69 76 65 64 0a 66 72  e is received.fr
99c0: 6f 6d 20 74 68 65 20 70 65 65 72 5c 26 2e 20 49  om the peer\&. I
99d0: 74 20 61 6c 6c 6f 77 73 20 74 68 65 20 63 6c 69  t allows the cli
99e0: 65 6e 74 20 74 6f 20 63 68 65 63 6b 20 74 68 65  ent to check the
99f0: 20 63 65 72 74 69 66 69 63 61 74 65 20 76 65 72   certificate ver
9a00: 69 66 69 63 61 74 69 6f 6e 0a 72 65 73 75 6c 74  ification.result
9a10: 73 20 61 6e 64 20 63 68 6f 6f 73 65 20 77 68 65  s and choose whe
9a20: 74 68 65 72 20 74 6f 20 63 6f 6e 74 69 6e 75 65  ther to continue
9a30: 20 6f 72 20 6e 6f 74 5c 26 2e 20 49 74 20 69 73   or not\&. It is
9a40: 20 63 61 6c 6c 65 64 20 66 6f 72 20 65 61 63 68   called for each
9a50: 0a 63 65 72 74 69 66 69 63 61 74 65 20 69 6e 20  .certificate in 
9a60: 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 20  the certificate 
9a70: 63 68 61 69 6e 5c 26 2e 20 54 68 69 73 20 63 61  chain\&. This ca
9a80: 6c 6c 62 61 63 6b 20 77 61 73 20 6d 6f 76 65 64  llback was moved
9a90: 20 66 72 6f 6d 0a 5c 66 42 2d 63 6f 6d 6d 61 6e   from.\fB-comman
9aa0: 64 5c 66 52 20 69 6e 20 54 63 6c 54 4c 53 20 31  d\fR in TclTLS 1
9ab0: 5c 26 2e 38 5c 26 2e 20 54 68 65 20 61 72 67 75  \&.8\&. The argu
9ac0: 6d 65 6e 74 73 20 61 72 65 3a 0a 2e 52 53 0a 2e  ments are:..RS..
9ad0: 54 50 0a 5c 66 49 64 65 70 74 68 5c 66 52 0a 54  TP.\fIdepth\fR.T
9ae0: 68 65 20 64 65 70 74 68 20 69 73 20 74 68 65 20  he depth is the 
9af0: 69 6e 74 65 67 65 72 20 64 65 70 74 68 20 6f 66  integer depth of
9b00: 20 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65   the certificate
9b10: 20 69 6e 20 74 68 65 20 63 65 72 74 69 66 69 63   in the certific
9b20: 61 74 65 20 63 68 61 69 6e 2c 0a 77 68 65 72 65  ate chain,.where
9b30: 20 30 20 69 73 20 74 68 65 20 70 65 65 72 20 63   0 is the peer c
9b40: 65 72 74 69 66 69 63 61 74 65 20 61 6e 64 20 68  ertificate and h
9b50: 69 67 68 65 72 20 76 61 6c 75 65 73 20 67 6f 69  igher values goi
9b60: 6e 67 20 75 70 20 74 6f 20 74 68 65 20 43 65 72  ng up to the Cer
9b70: 74 69 66 69 63 61 74 65 0a 41 75 74 68 6f 72 69  tificate.Authori
9b80: 74 79 20 28 43 41 29 5c 26 2e 0a 2e 54 50 0a 5c  ty (CA)\&...TP.\
9b90: 66 49 63 65 72 74 5c 66 52 0a 54 68 65 20 63 65  fIcert\fR.The ce
9ba0: 72 74 20 61 72 67 75 6d 65 6e 74 20 69 73 20 61  rt argument is a
9bb0: 20 6c 69 73 74 20 6f 66 20 6b 65 79 2d 76 61 6c   list of key-val
9bc0: 75 65 20 70 61 69 72 73 20 73 69 6d 69 6c 61 72  ue pairs similar
9bd0: 20 74 6f 20 74 68 6f 73 65 20 72 65 74 75 72 6e   to those return
9be0: 65 64 20 62 79 0a 5c 66 42 74 6c 73 3a 3a 73 74  ed by.\fBtls::st
9bf0: 61 74 75 73 5c 66 52 5c 26 2e 0a 2e 54 50 0a 5c  atus\fR\&...TP.\
9c00: 66 49 73 74 61 74 75 73 5c 66 52 0a 54 68 65 20  fIstatus\fR.The 
9c10: 73 74 61 74 75 73 20 61 72 67 75 6d 65 6e 74 20  status argument 
9c20: 69 73 20 74 68 65 20 62 6f 6f 6c 65 61 6e 20 76  is the boolean v
9c30: 61 6c 69 64 69 74 79 20 6f 66 20 74 68 65 20 63  alidity of the c
9c40: 75 72 72 65 6e 74 20 63 65 72 74 69 66 69 63 61  urrent certifica
9c50: 74 65 20 77 68 65 72 65 20 30 0a 69 73 20 69 6e  te where 0.is in
9c60: 76 61 6c 69 64 20 61 6e 64 20 31 20 69 73 20 76  valid and 1 is v
9c70: 61 6c 69 64 5c 26 2e 0a 2e 54 50 0a 5c 66 49 65  alid\&...TP.\fIe
9c80: 72 72 6f 72 5c 66 52 0a 54 68 65 20 65 72 72 6f  rror\fR.The erro
9c90: 72 20 61 72 67 75 6d 65 6e 74 20 69 73 20 74 68  r argument is th
9ca0: 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 2c  e error message,
9cb0: 20 69 66 20 61 6e 79 2c 20 67 65 6e 65 72 61 74   if any, generat
9cc0: 65 64 20 62 79 0a 5c 66 42 58 35 30 39 5f 53 54  ed by.\fBX509_ST
9cd0: 4f 52 45 5f 43 54 58 5f 67 65 74 5f 65 72 72 6f  ORE_CTX_get_erro
9ce0: 72 28 29 5c 66 52 5c 26 2e 0a 2e 52 45 0a 2e 50  r()\fR\&...RE..P
9cf0: 50 0a 52 65 66 65 72 65 6e 63 65 20 69 6d 70 6c  P.Reference impl
9d00: 65 6d 65 6e 74 61 74 69 6f 6e 73 20 6f 66 20 74  ementations of t
9d10: 68 65 73 65 20 63 61 6c 6c 62 61 63 6b 73 20 61  hese callbacks a
9d20: 72 65 20 70 72 6f 76 69 64 65 64 20 69 6e 20 22  re provided in "
9d30: 5c 66 49 74 6c 73 5c 26 2e 74 63 6c 5c 66 52 22  \fItls\&.tcl\fR"
9d40: 0a 61 73 20 5c 66 42 74 6c 73 3a 3a 63 61 6c 6c  .as \fBtls::call
9d50: 62 61 63 6b 5c 66 52 2c 20 5c 66 42 74 6c 73 3a  back\fR, \fBtls:
9d60: 3a 70 61 73 73 77 6f 72 64 5c 66 52 2c 20 61 6e  :password\fR, an
9d70: 64 20 5c 66 42 74 6c 73 3a 3a 76 61 6c 69 64 61  d \fBtls::valida
9d80: 74 65 5f 63 6f 6d 6d 61 6e 64 5c 66 52 0a 72 65  te_command\fR.re
9d90: 73 70 65 63 74 69 76 65 6c 79 5c 26 2e 20 4e 6f  spectively\&. No
9da0: 74 65 20 74 68 61 74 20 74 68 65 73 65 20 61 72  te that these ar
9db0: 65 20 6f 6e 6c 79 20 5c 66 49 73 61 6d 70 6c 65  e only \fIsample
9dc0: 5c 66 52 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69  \fR implementati
9dd0: 6f 6e 73 5c 26 2e 20 49 6e 20 61 20 6d 6f 72 65  ons\&. In a more
9de0: 0a 72 65 61 6c 69 73 74 69 63 20 64 65 70 6c 6f  .realistic deplo
9df0: 79 6d 65 6e 74 20 79 6f 75 20 77 6f 75 6c 64 20  yment you would 
9e00: 73 70 65 63 69 66 79 20 79 6f 75 72 20 6f 77 6e  specify your own
9e10: 20 63 61 6c 6c 62 61 63 6b 20 73 63 72 69 70 74   callback script
9e20: 73 20 6f 6e 20 65 61 63 68 20 54 4c 53 0a 63 68  s on each TLS.ch
9e30: 61 6e 6e 65 6c 20 75 73 69 6e 67 20 74 68 65 20  annel using the 
9e40: 5c 66 42 2d 63 6f 6d 6d 61 6e 64 5c 66 52 2c 20  \fB-command\fR, 
9e50: 5c 66 42 2d 70 61 73 73 77 6f 72 64 5c 66 52 2c  \fB-password\fR,
9e60: 20 61 6e 64 0a 5c 66 42 2d 76 61 6c 69 64 61 74   and.\fB-validat
9e70: 65 5f 63 6f 6d 6d 61 6e 64 5c 66 52 20 6f 70 74  e_command\fR opt
9e80: 69 6f 6e 73 5c 26 2e 0a 2e 50 50 0a 54 68 65 20  ions\&...PP.The 
9e90: 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f 72  default behavior
9ea0: 20 77 68 65 6e 20 74 68 65 20 5c 66 42 2d 63 6f   when the \fB-co
9eb0: 6d 6d 61 6e 64 5c 66 52 20 61 6e 64 20 5c 66 42  mmand\fR and \fB
9ec0: 2d 76 61 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 6e  -validate_comman
9ed0: 64 5c 66 52 0a 6f 70 74 69 6f 6e 73 20 61 72 65  d\fR.options are
9ee0: 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 2c 20   not specified, 
9ef0: 69 73 20 66 6f 72 20 54 63 6c 54 4c 53 20 74 6f  is for TclTLS to
9f00: 20 70 72 6f 63 65 73 73 20 74 68 65 20 61 73 73   process the ass
9f10: 6f 63 69 61 74 65 64 20 6c 69 62 72 61 72 79 0a  ociated library.
9f20: 63 61 6c 6c 62 61 63 6b 73 20 69 6e 74 65 72 6e  callbacks intern
9f30: 61 6c 6c 79 5c 26 2e 20 54 68 65 20 64 65 66 61  ally\&. The defa
9f40: 75 6c 74 20 62 65 68 61 76 69 6f 72 20 77 68 65  ult behavior whe
9f50: 6e 20 74 68 65 20 5c 66 42 2d 70 61 73 73 77 6f  n the \fB-passwo
9f60: 72 64 5c 66 52 20 6f 70 74 69 6f 6e 0a 69 73 20  rd\fR option.is 
9f70: 6e 6f 74 20 73 70 65 63 69 66 69 65 64 20 69 73  not specified is
9f80: 20 66 6f 72 20 54 63 6c 54 4c 53 20 74 6f 20 70   for TclTLS to p
9f90: 72 6f 63 65 73 73 20 74 68 65 20 61 73 73 6f 63  rocess the assoc
9fa0: 69 61 74 65 64 20 6c 69 62 72 61 72 79 20 63 61  iated library ca
9fb0: 6c 6c 62 61 63 6b 73 20 62 79 0a 61 74 74 65 6d  llbacks by.attem
9fc0: 70 74 69 6e 67 20 74 6f 20 63 61 6c 6c 20 5c 66  pting to call \f
9fd0: 42 74 6c 73 3a 3a 70 61 73 73 77 6f 72 64 5c 66  Btls::password\f
9fe0: 52 5c 26 2e 20 54 68 65 20 64 69 66 66 65 72 65  R\&. The differe
9ff0: 6e 63 65 20 62 65 74 77 65 65 6e 20 74 68 65 73  nce between thes
a000: 65 20 74 77 6f 0a 62 65 68 61 76 69 6f 72 73 20  e two.behaviors 
a010: 69 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65  is a consequence
a020: 20 6f 66 20 6d 61 69 6e 74 61 69 6e 69 6e 67 20   of maintaining 
a030: 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69  compatibility wi
a040: 74 68 20 65 61 72 6c 69 65 72 0a 69 6d 70 6c 65  th earlier.imple
a050: 6d 65 6e 74 61 74 69 6f 6e 73 5c 26 2e 0a 2e 50  mentations\&...P
a060: 50 0a 5c 66 49 54 68 65 20 75 73 65 20 6f 66 20  P.\fIThe use of 
a070: 74 68 65 20 72 65 66 65 72 65 6e 63 65 20 63 61  the reference ca
a080: 6c 6c 62 61 63 6b 73 20 5c 66 42 74 6c 73 3a 3a  llbacks \fBtls::
a090: 63 61 6c 6c 62 61 63 6b 5c 66 52 2c 20 5c 66 42  callback\fR, \fB
a0a0: 74 6c 73 3a 3a 70 61 73 73 77 6f 72 64 5c 66 52  tls::password\fR
a0b0: 2c 0a 61 6e 64 20 5c 66 42 74 6c 73 3a 3a 76 61  ,.and \fBtls::va
a0c0: 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 6e 64 5c 66  lidate_command\f
a0d0: 52 20 69 73 20 6e 6f 74 20 72 65 63 6f 6d 6d 65  R is not recomme
a0e0: 6e 64 65 64 5c 26 2e 20 54 68 65 79 20 6d 61 79  nded\&. They may
a0f0: 20 62 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d   be removed from
a100: 20 66 75 74 75 72 65 20 72 65 6c 65 61 73 65 73   future releases
a110: 5c 26 2e 5c 66 52 0a 2e 53 48 20 44 45 42 55 47  \&.\fR..SH DEBUG
a120: 0a 46 6f 72 20 6d 6f 73 74 20 64 65 62 75 67 67  .For most debugg
a130: 69 6e 67 20 6e 65 65 64 73 2c 20 74 68 65 20 5c  ing needs, the \
a140: 66 42 2d 63 61 6c 6c 62 61 63 6b 5c 66 52 20 6f  fB-callback\fR o
a150: 70 74 69 6f 6e 20 63 61 6e 20 62 65 20 75 73 65  ption can be use
a160: 64 20 74 6f 20 70 72 6f 76 69 64 65 0a 73 75 66  d to provide.suf
a170: 66 69 63 69 65 6e 74 20 69 6e 73 69 67 68 74 20  ficient insight 
a180: 61 6e 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20  and information 
a190: 6f 6e 20 74 68 65 20 54 4c 53 20 68 61 6e 64 73  on the TLS hands
a1a0: 68 61 6b 65 20 61 6e 64 20 70 72 6f 67 72 65 73  hake and progres
a1b0: 73 5c 26 2e 20 49 66 0a 66 75 72 74 68 65 72 20  s\&. If.further 
a1c0: 74 72 6f 75 62 6c 65 73 68 6f 6f 74 69 6e 67 20  troubleshooting 
a1d0: 69 6e 73 69 67 68 74 20 69 73 20 6e 65 65 64 65  insight is neede
a1e0: 64 2c 20 74 68 65 20 63 6f 6d 70 69 6c 65 20 74  d, the compile t
a1f0: 69 6d 65 20 6f 70 74 69 6f 6e 0a 5c 66 42 2d 2d  ime option.\fB--
a200: 65 6e 61 62 6c 65 2d 64 65 62 75 67 5c 66 52 20  enable-debug\fR 
a210: 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 67  can be used to g
a220: 65 74 20 64 65 74 61 69 6c 65 64 20 65 78 65 63  et detailed exec
a230: 75 74 69 6f 6e 20 66 6c 6f 77 20 73 74 61 74 75  ution flow statu
a240: 73 5c 26 2e 0a 2e 50 50 0a 54 4c 53 20 6b 65 79  s\&...PP.TLS key
a250: 20 6c 6f 67 67 69 6e 67 20 63 61 6e 20 62 65 20   logging can be 
a260: 65 6e 61 62 6c 65 64 20 62 79 20 73 65 74 74 69  enabled by setti
a270: 6e 67 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d 65  ng the environme
a280: 6e 74 20 76 61 72 69 61 62 6c 65 0a 5c 66 42 53  nt variable.\fBS
a290: 53 4c 4b 45 59 4c 4f 47 46 49 4c 45 5c 66 52 20  SLKEYLOGFILE\fR 
a2a0: 74 6f 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74  to the name of t
a2b0: 68 65 20 66 69 6c 65 20 74 6f 20 6c 6f 67 20 74  he file to log t
a2c0: 6f 5c 26 2e 20 54 68 65 6e 20 77 68 65 6e 65 76  o\&. Then whenev
a2d0: 65 72 20 54 4c 53 20 6b 65 79 0a 6d 61 74 65 72  er TLS key.mater
a2e0: 69 61 6c 20 69 73 20 67 65 6e 65 72 61 74 65 64  ial is generated
a2f0: 20 6f 72 20 72 65 63 65 69 76 65 64 20 69 74 20   or received it 
a300: 77 69 6c 6c 20 62 65 20 6c 6f 67 67 65 64 20 74  will be logged t
a310: 6f 20 74 68 65 20 66 69 6c 65 5c 26 2e 20 54 68  o the file\&. Th
a320: 69 73 20 69 73 20 75 73 65 66 75 6c 0a 66 6f 72  is is useful.for
a330: 20 6c 6f 67 67 69 6e 67 20 6b 65 79 20 64 61 74   logging key dat
a340: 61 20 66 6f 72 20 6e 65 74 77 6f 72 6b 20 6c 6f  a for network lo
a350: 67 67 69 6e 67 20 74 6f 6f 6c 73 20 74 6f 20 75  gging tools to u
a360: 73 65 20 74 6f 20 64 65 63 72 79 70 74 20 74 68  se to decrypt th
a370: 65 20 64 61 74 61 5c 26 2e 0a 2e 50 50 0a 54 68  e data\&...PP.Th
a380: 65 20 5c 66 42 74 6c 73 3a 3a 64 65 62 75 67 5c  e \fBtls::debug\
a390: 66 52 20 76 61 72 69 61 62 6c 65 20 70 72 6f 76  fR variable prov
a3a0: 69 64 65 73 20 73 6f 6d 65 20 61 64 64 69 74 69  ides some additi
a3b0: 6f 6e 61 6c 20 63 6f 6e 74 72 6f 6c 20 6f 76 65  onal control ove
a3c0: 72 20 74 68 65 0a 64 65 62 75 67 20 6c 6f 67 67  r the.debug logg
a3d0: 69 6e 67 20 69 6e 20 74 68 65 20 5c 66 42 74 6c  ing in the \fBtl
a3e0: 73 3a 3a 63 61 6c 6c 62 61 63 6b 5c 66 52 2c 20  s::callback\fR, 
a3f0: 5c 66 42 74 6c 73 3a 3a 70 61 73 73 77 6f 72 64  \fBtls::password
a400: 5c 66 52 2c 20 61 6e 64 0a 5c 66 42 74 6c 73 3a  \fR, and.\fBtls:
a410: 3a 76 61 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 6e  :validate_comman
a420: 64 5c 66 52 20 64 65 66 61 75 6c 74 20 68 61 6e  d\fR default han
a430: 64 6c 65 72 73 20 69 6e 20 22 5c 66 49 74 6c 73  dlers in "\fItls
a440: 5c 26 2e 74 63 6c 5c 66 52 22 5c 26 2e 0a 54 68  \&.tcl\fR"\&..Th
a450: 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20  e default value 
a460: 69 73 20 30 20 77 69 74 68 20 68 69 67 68 65 72  is 0 with higher
a470: 20 76 61 6c 75 65 73 20 70 72 6f 64 75 63 69 6e   values producin
a480: 67 20 6d 6f 72 65 20 64 69 61 67 6e 6f 73 74 69  g more diagnosti
a490: 63 20 6f 75 74 70 75 74 2c 0a 61 6e 64 20 77 69  c output,.and wi
a4a0: 6c 6c 20 61 6c 73 6f 20 66 6f 72 63 65 20 74 68  ll also force th
a4b0: 65 20 76 65 72 69 66 79 20 6d 65 74 68 6f 64 20  e verify method 
a4c0: 69 6e 20 5c 66 42 74 6c 73 3a 3a 63 61 6c 6c 62  in \fBtls::callb
a4d0: 61 63 6b 5c 66 52 20 74 6f 20 61 63 63 65 70 74  ack\fR to accept
a4e0: 20 74 68 65 0a 63 65 72 74 69 66 69 63 61 74 65   the.certificate
a4f0: 2c 20 65 76 65 6e 20 69 66 20 69 74 20 69 73 20  , even if it is 
a500: 69 6e 76 61 6c 69 64 20 77 68 65 6e 20 74 68 65  invalid when the
a510: 20 5c 66 42 2d 76 61 6c 69 64 61 74 65 63 6f 6d   \fB-validatecom
a520: 6d 61 6e 64 5c 66 52 0a 6f 70 74 69 6f 6e 20 69  mand\fR.option i
a530: 73 20 73 65 74 20 74 6f 20 5c 66 42 74 6c 73 3a  s set to \fBtls:
a540: 3a 76 61 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 6e  :validate_comman
a550: 64 5c 66 52 5c 26 2e 0a 2e 50 50 0a 5c 66 49 54  d\fR\&...PP.\fIT
a560: 68 65 20 75 73 65 20 6f 66 20 74 68 65 20 76 61  he use of the va
a570: 72 69 61 62 6c 65 20 5c 66 42 74 6c 73 3a 3a 64  riable \fBtls::d
a580: 65 62 75 67 5c 66 52 20 69 73 20 6e 6f 74 20 72  ebug\fR is not r
a590: 65 63 6f 6d 6d 65 6e 64 65 64 5c 26 2e 0a 49 74  ecommended\&..It
a5a0: 20 6d 61 79 20 62 65 20 72 65 6d 6f 76 65 64 20   may be removed 
a5b0: 66 72 6f 6d 20 66 75 74 75 72 65 20 72 65 6c 65  from future rele
a5c0: 61 73 65 73 5c 26 2e 5c 66 52 0a 2e 53 48 20 45  ases\&.\fR..SH E
a5d0: 58 41 4d 50 4c 45 53 0a 54 68 65 20 66 6f 6c 6c  XAMPLES.The foll
a5e0: 6f 77 69 6e 67 20 61 72 65 20 65 78 61 6d 70 6c  owing are exampl
a5f0: 65 20 73 63 72 69 70 74 73 20 74 6f 20 64 6f 77  e scripts to dow
a600: 6e 6c 6f 61 64 20 61 20 77 65 62 70 61 67 65 20  nload a webpage 
a610: 61 6e 64 20 66 69 6c 65 20 75 73 69 6e 67 20 74  and file using t
a620: 68 65 0a 68 74 74 70 20 70 61 63 6b 61 67 65 5c  he.http package\
a630: 26 2e 20 53 65 65 20 5c 66 42 43 65 72 74 69 66  &. See \fBCertif
a640: 69 63 61 74 65 20 56 61 6c 69 64 61 74 69 6f 6e  icate Validation
a650: 5c 66 52 20 66 6f 72 20 77 68 65 6e 20 74 68 65  \fR for when the
a660: 0a 5c 66 42 2d 63 61 64 69 72 5c 66 52 2c 20 5c  .\fB-cadir\fR, \
a670: 66 42 2d 63 61 66 69 6c 65 5c 66 52 2c 20 61 6e  fB-cafile\fR, an
a680: 64 20 5c 66 42 2d 63 61 73 74 6f 72 65 5c 66 52  d \fB-castore\fR
a690: 20 6f 70 74 69 6f 6e 73 20 61 72 65 20 61 6c 73   options are als
a6a0: 6f 0a 6e 65 65 64 65 64 5c 26 2e 20 53 65 65 20  o.needed\&. See 
a6b0: 74 68 65 20 22 5c 66 49 64 65 6d 6f 73 5c 66 52  the "\fIdemos\fR
a6c0: 22 20 64 69 72 65 63 74 6f 72 79 20 66 6f 72 20  " directory for 
a6d0: 6d 6f 72 65 20 65 78 61 6d 70 6c 65 20 73 63 72  more example scr
a6e0: 69 70 74 73 5c 26 2e 0a 2e 50 50 0a 45 78 61 6d  ipts\&...PP.Exam
a6f0: 70 6c 65 20 23 31 3a 20 44 6f 77 6e 6c 6f 61 64  ple #1: Download
a700: 20 61 20 77 65 62 20 70 61 67 65 0a 2e 43 53 0a   a web page..CS.
a710: 0a 0a 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69  ...package requi
a720: 72 65 20 68 74 74 70 0a 70 61 63 6b 61 67 65 20  re http.package 
a730: 72 65 71 75 69 72 65 20 74 6c 73 0a 0a 73 65 74  require tls..set
a740: 20 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 77 77   url "https://ww
a750: 77 5c 26 2e 74 63 6c 5c 26 2e 74 6b 2f 22 0a 68  w\&.tcl\&.tk/".h
a760: 74 74 70 3a 3a 72 65 67 69 73 74 65 72 20 68 74  ttp::register ht
a770: 74 70 73 20 34 34 33 20 5b 6c 69 73 74 20 3a 3a  tps 443 [list ::
a780: 74 6c 73 3a 3a 73 6f 63 6b 65 74 20 2d 61 75 74  tls::socket -aut
a790: 6f 73 65 72 76 65 72 6e 61 6d 65 20 31 20 2d 72  oservername 1 -r
a7a0: 65 71 75 69 72 65 20 31 5d 0a 0a 23 20 47 65 74  equire 1]..# Get
a7b0: 20 55 52 4c 0a 73 65 74 20 74 6f 6b 65 6e 20 5b   URL.set token [
a7c0: 68 74 74 70 3a 3a 67 65 74 75 72 6c 20 24 75 72  http::geturl $ur
a7d0: 6c 5d 0a 0a 23 20 43 68 65 63 6b 20 66 6f 72 20  l]..# Check for 
a7e0: 65 72 72 6f 72 0a 69 66 20 7b 5b 68 74 74 70 3a  error.if {[http:
a7f0: 3a 73 74 61 74 75 73 20 24 74 6f 6b 65 6e 5d 20  :status $token] 
a800: 6e 65 20 22 6f 6b 22 7d 20 7b 0a 20 20 20 20 70  ne "ok"} {.    p
a810: 75 74 73 20 5b 66 6f 72 6d 61 74 20 22 45 72 72  uts [format "Err
a820: 6f 72 20 25 73 22 20 5b 68 74 74 70 3a 3a 73 74  or %s" [http::st
a830: 61 74 75 73 20 24 74 6f 6b 65 6e 5d 5d 0a 7d 0a  atus $token]].}.
a840: 0a 23 20 53 61 76 65 20 77 65 62 20 70 61 67 65  .# Save web page
a850: 20 74 6f 20 66 69 6c 65 0a 73 65 74 20 63 68 20   to file.set ch 
a860: 5b 6f 70 65 6e 20 65 78 61 6d 70 6c 65 5c 26 2e  [open example\&.
a870: 68 74 6d 6c 20 77 62 5d 0a 70 75 74 73 20 24 63  html wb].puts $c
a880: 68 20 5b 68 74 74 70 3a 3a 64 61 74 61 20 24 74  h [http::data $t
a890: 6f 6b 65 6e 5d 0a 63 6c 6f 73 65 20 24 63 68 0a  oken].close $ch.
a8a0: 0a 23 20 43 6c 65 61 6e 75 70 0a 3a 3a 68 74 74  .# Cleanup.::htt
a8b0: 70 3a 3a 63 6c 65 61 6e 75 70 20 24 74 6f 6b 65  p::cleanup $toke
a8c0: 6e 0a 0a 2e 43 45 0a 45 78 61 6d 70 6c 65 20 23  n...CE.Example #
a8d0: 32 3a 20 44 6f 77 6e 6c 6f 61 64 20 61 20 66 69  2: Download a fi
a8e0: 6c 65 0a 2e 43 53 0a 0a 0a 0a 70 61 63 6b 61 67  le..CS....packag
a8f0: 65 20 72 65 71 75 69 72 65 20 68 74 74 70 0a 70  e require http.p
a900: 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 74  ackage require t
a910: 6c 73 0a 0a 73 65 74 20 75 72 6c 20 22 68 74 74  ls..set url "htt
a920: 70 73 3a 2f 2f 77 69 6b 69 5c 26 2e 74 63 6c 2d  ps://wiki\&.tcl-
a930: 6c 61 6e 67 5c 26 2e 6f 72 67 2f 73 69 74 65 6d  lang\&.org/sitem
a940: 61 70 5c 26 2e 78 6d 6c 22 0a 68 74 74 70 3a 3a  ap\&.xml".http::
a950: 72 65 67 69 73 74 65 72 20 68 74 74 70 73 20 34  register https 4
a960: 34 33 20 5b 6c 69 73 74 20 3a 3a 74 6c 73 3a 3a  43 [list ::tls::
a970: 73 6f 63 6b 65 74 20 2d 61 75 74 6f 73 65 72 76  socket -autoserv
a980: 65 72 6e 61 6d 65 20 31 20 2d 72 65 71 75 69 72  ername 1 -requir
a990: 65 20 31 5d 0a 0a 23 20 4f 70 65 6e 20 6f 75 74  e 1]..# Open out
a9a0: 70 75 74 20 66 69 6c 65 0a 73 65 74 20 66 69 6c  put file.set fil
a9b0: 65 6e 61 6d 65 20 5b 66 69 6c 65 20 74 61 69 6c  ename [file tail
a9c0: 20 24 75 72 6c 5d 0a 73 65 74 20 63 68 20 5b 6f   $url].set ch [o
a9d0: 70 65 6e 20 24 66 69 6c 65 6e 61 6d 65 20 77 62  pen $filename wb
a9e0: 5d 0a 0a 23 20 47 65 74 20 66 69 6c 65 0a 73 65  ]..# Get file.se
a9f0: 74 20 74 6f 6b 65 6e 20 5b 3a 3a 68 74 74 70 3a  t token [::http:
aa00: 3a 67 65 74 75 72 6c 20 24 75 72 6c 20 2d 62 6c  :geturl $url -bl
aa10: 6f 63 6b 73 69 7a 65 20 36 35 35 33 36 20 2d 63  ocksize 65536 -c
aa20: 68 61 6e 6e 65 6c 20 24 63 68 5d 0a 0a 23 20 43  hannel $ch]..# C
aa30: 68 65 63 6b 20 66 6f 72 20 65 72 72 6f 72 0a 69  heck for error.i
aa40: 66 20 7b 5b 68 74 74 70 3a 3a 73 74 61 74 75 73  f {[http::status
aa50: 20 24 74 6f 6b 65 6e 5d 20 6e 65 20 22 6f 6b 22   $token] ne "ok"
aa60: 7d 20 7b 0a 20 20 20 20 70 75 74 73 20 5b 66 6f  } {.    puts [fo
aa70: 72 6d 61 74 20 22 45 72 72 6f 72 20 25 73 22 20  rmat "Error %s" 
aa80: 5b 68 74 74 70 3a 3a 73 74 61 74 75 73 20 24 74  [http::status $t
aa90: 6f 6b 65 6e 5d 5d 0a 7d 0a 0a 23 20 43 6c 65 61  oken]].}..# Clea
aaa0: 6e 75 70 0a 63 6c 6f 73 65 20 24 63 68 0a 3a 3a  nup.close $ch.::
aab0: 68 74 74 70 3a 3a 63 6c 65 61 6e 75 70 20 24 74  http::cleanup $t
aac0: 6f 6b 65 6e 0a 0a 2e 43 45 0a 2e 53 48 20 22 53  oken...CE..SH "S
aad0: 50 45 43 49 41 4c 20 43 4f 4e 53 49 44 45 52 41  PECIAL CONSIDERA
aae0: 54 49 4f 4e 53 22 0a 54 68 65 20 63 61 70 61 62  TIONS".The capab
aaf0: 69 6c 69 74 69 65 73 20 6f 66 20 74 68 69 73 20  ilities of this 
ab00: 70 61 63 6b 61 67 65 20 63 61 6e 20 76 61 72 79  package can vary
ab10: 20 65 6e 6f 72 6d 6f 75 73 6c 79 20 62 61 73 65   enormously base
ab20: 64 20 75 70 6f 6e 20 68 6f 77 20 74 68 65 0a 6c  d upon how the.l
ab30: 69 6e 6b 65 64 20 74 6f 20 4f 70 65 6e 53 53 4c  inked to OpenSSL
ab40: 20 6c 69 62 72 61 72 79 20 77 61 73 20 63 6f 6e   library was con
ab50: 66 69 67 75 72 65 64 20 61 6e 64 20 62 75 69 6c  figured and buil
ab60: 74 5c 26 2e 20 4e 65 77 20 76 65 72 73 69 6f 6e  t\&. New version
ab70: 73 20 6d 61 79 20 6f 62 73 6f 6c 65 74 65 0a 6f  s may obsolete.o
ab80: 6c 64 65 72 20 70 72 6f 74 6f 63 6f 6c 20 76 65  lder protocol ve
ab90: 72 73 69 6f 6e 73 2c 20 61 64 64 20 6f 72 20 72  rsions, add or r
aba0: 65 6d 6f 76 65 20 63 69 70 68 65 72 73 2c 20 63  emove ciphers, c
abb0: 68 61 6e 67 65 20 64 65 66 61 75 6c 74 20 76 61  hange default va
abc0: 6c 75 65 73 2c 20 65 74 63 5c 26 2e 0a 55 73 65  lues, etc\&..Use
abd0: 20 74 68 65 20 5c 66 42 74 6c 73 3a 3a 70 72 6f   the \fBtls::pro
abe0: 74 6f 63 6f 6c 73 5c 66 52 20 63 6f 6d 6d 61 6e  tocols\fR comman
abf0: 64 20 74 6f 20 6f 62 74 61 69 6e 20 74 68 65 20  d to obtain the 
ac00: 73 75 70 70 6f 72 74 65 64 0a 70 72 6f 74 6f 63  supported.protoc
ac10: 6f 6c 20 76 65 72 73 69 6f 6e 73 5c 26 2e 0a 2e  ol versions\&...
ac20: 53 48 20 22 45 52 52 4f 52 20 4d 45 53 53 41 47  SH "ERROR MESSAG
ac30: 45 53 22 0a 53 6f 6d 65 20 4f 70 73 6e 53 53 6c  ES".Some OpsnSSl
ac40: 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 20   error messages 
ac50: 68 61 76 65 20 63 72 79 70 74 69 63 20 6d 65 61  have cryptic mea
ac60: 6e 69 6e 67 73 5c 26 2e 20 54 68 69 73 20 69 73  nings\&. This is
ac70: 20 61 20 6c 69 73 74 20 6f 66 20 6d 65 73 73 61   a list of messa
ac80: 67 65 73 0a 61 6c 6f 6e 67 20 77 69 74 68 20 74  ges.along with t
ac90: 68 65 69 72 20 74 72 75 65 20 6d 65 61 6e 69 6e  heir true meanin
aca0: 67 5c 26 2e 0a 2e 54 50 0a 5c 66 49 68 61 6e 64  g\&...TP.\fIhand
acb0: 73 68 61 6b 65 20 66 61 69 6c 65 64 3a 20 63 65  shake failed: ce
acc0: 72 74 69 66 69 63 61 74 65 20 76 65 72 69 66 79  rtificate verify
acd0: 20 66 61 69 6c 65 64 20 64 75 65 20 74 6f 20 22   failed due to "
ace0: 75 6e 61 62 6c 65 20 74 6f 20 67 65 74 20 6c 6f  unable to get lo
acf0: 63 61 6c 20 69 73 73 75 65 72 20 63 65 72 74 69  cal issuer certi
ad00: 66 69 63 61 74 65 22 5c 66 52 0a 54 68 65 20 63  ficate"\fR.The c
ad10: 65 72 74 69 66 69 63 61 74 65 73 20 69 6e 20 74  ertificates in t
ad20: 68 65 20 43 41 20 66 69 6c 65 20 6f 72 20 63 65  he CA file or ce
ad30: 72 74 69 66 69 63 61 74 65 20 73 74 6f 72 65 20  rtificate store 
ad40: 65 69 74 68 65 72 20 64 6f 20 6e 6f 74 20 68 61  either do not ha
ad50: 76 65 20 6f 6e 65 20 6f 72 0a 6d 6f 72 65 20 69  ve one or.more i
ad60: 73 73 75 65 72 73 20 6f 66 20 74 68 65 20 63 65  ssuers of the ce
ad70: 72 74 69 66 69 63 61 74 65 73 20 79 6f 75 20 61  rtificates you a
ad80: 72 65 20 76 61 6c 69 64 61 74 69 6e 67 20 6f 72  re validating or
ad90: 20 74 68 65 79 20 68 61 76 65 20 65 78 70 69 72   they have expir
ada0: 65 64 5c 26 2e 0a 55 73 75 61 6c 6c 79 20 74 68  ed\&..Usually th
adb0: 69 73 20 6d 65 61 6e 73 20 79 6f 75 20 6e 65 65  is means you nee
adc0: 64 20 61 6e 20 75 70 64 61 74 65 64 20 43 41 63  d an updated CAc
add0: 65 72 74 20 66 69 6c 65 5c 26 2e 0a 2e 54 50 0a  ert file\&...TP.
ade0: 5c 66 49 70 61 63 6b 65 74 20 6c 65 6e 67 74 68  \fIpacket length
adf0: 20 74 6f 6f 20 6c 6f 6e 67 5c 66 52 0a 43 6c 69   too long\fR.Cli
ae00: 65 6e 74 20 68 61 73 20 74 72 69 65 64 20 74 6f  ent has tried to
ae10: 20 63 6f 6e 6e 65 63 74 20 74 6f 20 61 20 48 54   connect to a HT
ae20: 54 50 20 73 65 72 76 65 72 20 6f 6e 20 74 68 65  TP server on the
ae30: 20 70 6c 61 69 6e 2d 74 65 78 74 20 70 6f 72 74   plain-text port
ae40: 20 69 6e 73 74 65 61 64 20 6f 66 0a 74 68 65 20   instead of.the 
ae50: 53 53 4c 2f 54 4c 53 20 70 6f 72 74 5c 26 2e 0a  SSL/TLS port\&..
ae60: 2e 54 50 0a 5c 66 49 75 6e 65 78 70 65 63 74 65  .TP.\fIunexpecte
ae70: 64 20 65 6f 66 20 77 68 69 6c 65 20 72 65 61 64  d eof while read
ae80: 69 6e 67 5c 66 52 0a 54 68 65 20 70 65 65 72 20  ing\fR.The peer 
ae90: 68 61 73 20 63 6c 6f 73 65 64 20 74 68 65 20 63  has closed the c
aea0: 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 6f 75  onnection withou
aeb0: 74 20 73 65 6e 64 69 6e 67 20 74 68 65 20 22 63  t sending the "c
aec0: 6c 6f 73 65 20 6e 6f 74 69 66 79 22 20 73 68 75  lose notify" shu
aed0: 74 64 6f 77 6e 0a 61 6c 65 72 74 5c 26 2e 20 53  tdown.alert\&. S
aee0: 6f 6d 65 20 73 65 72 76 65 72 73 20 77 69 6c 6c  ome servers will
aef0: 20 74 65 72 6d 69 6e 61 74 65 20 74 68 65 20 63   terminate the c
af00: 6f 6e 6e 65 63 74 69 6f 6e 20 61 66 74 65 72 20  onnection after 
af10: 74 68 65 20 66 69 6c 65 20 6f 72 20 77 65 62 70  the file or webp
af20: 61 67 65 20 68 61 73 0a 62 65 65 6e 20 73 65 6e  age has.been sen
af30: 74 20 77 69 74 68 6f 75 74 20 73 65 6e 64 69 6e  t without sendin
af40: 67 20 74 68 65 20 22 63 6c 6f 73 65 20 6e 6f 74  g the "close not
af50: 69 66 79 22 20 6d 65 73 73 61 67 65 5c 26 2e 20  ify" message\&. 
af60: 49 6e 20 74 68 69 73 20 63 61 73 65 2c 20 69 74  In this case, it
af70: 20 73 68 6f 75 6c 64 0a 6e 6f 74 20 72 65 73 75   should.not resu
af80: 6c 74 20 69 6e 20 61 20 6c 6f 73 73 20 6f 66 20  lt in a loss of 
af90: 64 61 74 61 5c 26 2e 0a 2e 54 50 0a 5c 66 49 77  data\&...TP.\fIw
afa0: 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 6e 75 6d  rong version num
afb0: 62 65 72 5c 66 52 0a 43 6c 69 65 6e 74 20 68 61  ber\fR.Client ha
afc0: 73 20 74 72 69 65 64 20 74 6f 20 63 6f 6e 6e 65  s tried to conne
afd0: 63 74 20 74 6f 20 61 20 6e 6f 6e 2d 48 54 54 50  ct to a non-HTTP
afe0: 20 73 65 72 76 65 72 20 6f 6e 20 61 20 6e 6f 6e   server on a non
aff0: 2d 54 4c 53 20 28 69 5c 26 2e 65 5c 26 2e 20 70  -TLS (i\&.e\&. p
b000: 6c 61 69 6e 20 74 65 78 74 29 20 70 6f 72 74 5c  lain text) port\
b010: 26 2e 0a 2e 50 50 0a 2e 53 48 20 22 53 45 45 20  &...PP..SH "SEE 
b020: 41 4c 53 4f 22 0a 5c 66 49 4f 70 65 6e 53 53 4c  ALSO".\fIOpenSSL
b030: 5c 66 52 20 5b 68 74 74 70 73 3a 2f 2f 77 77 77  \fR [https://www
b040: 5c 26 2e 6f 70 65 6e 73 73 6c 5c 26 2e 6f 72 67  \&.openssl\&.org
b050: 2f 5d 2c 20 68 74 74 70 2c 20 73 6f 63 6b 65 74  /], http, socket
b060: 0a 2e 53 48 20 4b 45 59 57 4f 52 44 53 0a 49 2f  ..SH KEYWORDS.I/
b070: 4f 2c 20 49 50 20 41 64 64 72 65 73 73 2c 20 4f  O, IP Address, O
b080: 70 65 6e 53 53 4c 2c 20 53 53 4c 2c 20 54 43 50  penSSL, SSL, TCP
b090: 2c 20 54 4c 53 2c 20 54 63 6c 54 4c 53 2c 20 61  , TLS, TclTLS, a
b0a0: 73 79 6e 63 68 72 6f 6e 6f 75 73 20 49 2f 4f 2c  synchronous I/O,
b0b0: 20 62 69 6e 64 2c 20 63 65 72 74 69 66 69 63 61   bind, certifica
b0c0: 74 65 2c 20 63 68 61 6e 6e 65 6c 2c 20 63 6f 6e  te, channel, con
b0d0: 6e 65 63 74 69 6f 6e 2c 20 64 6f 6d 61 69 6e 20  nection, domain 
b0e0: 6e 61 6d 65 2c 20 68 6f 73 74 2c 20 68 74 74 70  name, host, http
b0f0: 73 2c 20 6e 65 74 77 6f 72 6b 2c 20 6e 65 74 77  s, network, netw
b100: 6f 72 6b 20 61 64 64 72 65 73 73 2c 20 73 6f 63  ork address, soc
b110: 6b 65 74 2c 20 74 6c 73 0a 2e 53 48 20 43 41 54  ket, tls..SH CAT
b120: 45 47 4f 52 59 0a 74 6c 73 0a 2e 53 48 20 43 4f  EGORY.tls..SH CO
b130: 50 59 52 49 47 48 54 0a 2e 6e 66 0a 43 6f 70 79  PYRIGHT..nf.Copy
b140: 72 69 67 68 74 20 28 63 29 20 31 39 39 39 20 4d  right (c) 1999 M
b150: 61 74 74 20 4e 65 77 6d 61 6e 0a 43 6f 70 79 72  att Newman.Copyr
b160: 69 67 68 74 20 28 63 29 20 32 30 30 34 20 53 74  ight (c) 2004 St
b170: 61 72 66 69 73 68 20 53 79 73 74 65 6d 73 0a 43  arfish Systems.C
b180: 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 32  opyright (c) 202
b190: 34 20 42 72 69 61 6e 20 4f 27 48 61 67 61 6e 0a  4 Brian O'Hagan.
b1a0: 0a 2e 66 69 0a                                   ..fi.