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.