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 31 \"..TH "tls" n 1
00d0: 5c 26 2e 38 20 74 6c 73 20 22 54 63 6c 20 54 4c \&.8 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 31 require \fBtls 1
1850: 5c 26 2e 38 5c 66 52 0a 2e 73 70 0a 5c 66 42 74 \&.8\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 75 6e 69 ..sp.\fBtls::uni
1a00: 6d 70 6f 72 74 5c 66 52 20 5c 66 49 63 68 61 6e mport\fR \fIchan
1a10: 6e 65 6c 5c 66 52 0a 2e 73 70 0a 5c 66 42 74 6c nel\fR..sp.\fBtl
1a20: 73 3a 3a 68 61 6e 64 73 68 61 6b 65 5c 66 52 20 s::handshake\fR
1a30: 5c 66 49 63 68 61 6e 6e 65 6c 5c 66 52 0a 2e 73 \fIchannel\fR..s
1a40: 70 0a 5c 66 42 74 6c 73 3a 3a 73 74 61 74 75 73 p.\fBtls::status
1a50: 5c 66 52 20 3f 5c 66 42 2d 6c 6f 63 61 6c 5c 66 \fR ?\fB-local\f
1a60: 52 3f 20 5c 66 49 63 68 61 6e 6e 65 6c 5c 66 52 R? \fIchannel\fR
1a70: 0a 2e 73 70 0a 5c 66 42 74 6c 73 3a 3a 63 6f 6e ..sp.\fBtls::con
1a80: 6e 65 63 74 69 6f 6e 5c 66 52 20 5c 66 49 63 68 nection\fR \fIch
1a90: 61 6e 6e 65 6c 5c 66 52 0a 2e 73 70 0a 5c 66 42 annel\fR..sp.\fB
1aa0: 74 6c 73 3a 3a 63 69 70 68 65 72 73 5c 66 52 20 tls::ciphers\fR
1ab0: 3f 5c 66 49 70 72 6f 74 6f 63 6f 6c 5c 66 52 3f ?\fIprotocol\fR?
1ac0: 20 3f 5c 66 49 76 65 72 62 6f 73 65 5c 66 52 3f ?\fIverbose\fR?
1ad0: 20 3f 5c 66 49 73 75 70 70 6f 72 74 65 64 5c 66 ?\fIsupported\f
1ae0: 52 3f 0a 2e 73 70 0a 5c 66 42 74 6c 73 3a 3a 70 R?..sp.\fBtls::p
1af0: 72 6f 74 6f 63 6f 6c 73 5c 66 52 0a 2e 73 70 0a rotocols\fR..sp.
1b00: 5c 66 42 74 6c 73 3a 3a 76 65 72 73 69 6f 6e 5c \fBtls::version\
1b10: 66 52 0a 2e 73 70 0a 2e 42 45 0a 2e 53 48 20 44 fR..sp..BE..SH D
1b20: 45 53 43 52 49 50 54 49 4f 4e 0a 54 68 69 73 20 ESCRIPTION.This
1b30: 65 78 74 65 6e 73 69 6f 6e 20 70 72 6f 76 69 64 extension provid
1b40: 65 73 20 54 43 4c 20 73 63 72 69 70 74 20 61 63 es TCL script ac
1b50: 63 65 73 73 20 74 6f 20 73 65 63 75 72 65 20 73 cess to secure s
1b60: 6f 63 6b 65 74 20 63 6f 6d 6d 75 6e 69 63 61 74 ocket communicat
1b70: 69 6f 6e 73 0a 75 73 69 6e 67 20 74 68 65 20 54 ions.using the T
1b80: 72 61 6e 73 70 6f 72 74 20 4c 61 79 65 72 20 53 ransport Layer S
1b90: 65 63 75 72 69 74 79 20 28 54 4c 53 29 20 70 72 ecurity (TLS) pr
1ba0: 6f 74 6f 63 6f 6c 5c 26 2e 20 49 74 20 70 72 6f otocol\&. It pro
1bb0: 76 69 64 65 73 20 61 20 67 65 6e 65 72 69 63 0a vides a generic.
1bc0: 62 69 6e 64 69 6e 67 20 74 6f 20 5c 66 49 4f 70 binding to \fIOp
1bd0: 65 6e 53 53 4c 5c 66 52 20 5b 68 74 74 70 73 3a enSSL\fR [https:
1be0: 2f 2f 77 77 77 5c 26 2e 6f 70 65 6e 73 73 6c 5c //www\&.openssl\
1bf0: 26 2e 6f 72 67 2f 5d 2c 20 75 74 69 6c 69 7a 69 &.org/], utilizi
1c00: 6e 67 20 74 68 65 0a 5c 66 42 54 63 6c 5f 53 74 ng the.\fBTcl_St
1c10: 61 63 6b 43 68 61 6e 6e 65 6c 5c 66 52 20 41 50 ackChannel\fR AP
1c20: 49 20 69 6e 20 54 43 4c 20 38 5c 26 2e 34 20 61 I in TCL 8\&.4 a
1c30: 6e 64 20 68 69 67 68 65 72 5c 26 2e 0a 54 68 65 nd higher\&..The
1c40: 73 65 20 73 6f 63 6b 65 74 73 20 62 65 68 61 76 se sockets behav
1c50: 65 20 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 e exactly the sa
1c60: 6d 65 20 61 73 20 63 68 61 6e 6e 65 6c 73 20 63 me as channels c
1c70: 72 65 61 74 65 64 20 75 73 69 6e 67 20 74 68 65 reated using the
1c80: 20 62 75 69 6c 74 2d 69 6e 0a 5c 66 42 73 6f 63 built-in.\fBsoc
1c90: 6b 65 74 5c 66 52 20 63 6f 6d 6d 61 6e 64 2c 20 ket\fR command,
1ca0: 61 6c 6f 6e 67 20 77 69 74 68 20 61 64 64 69 74 along with addit
1cb0: 69 6f 6e 61 6c 20 6f 70 74 69 6f 6e 73 20 66 6f ional options fo
1cc0: 72 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 0a 74 68 r controlling.th
1cd0: 65 20 53 53 4c 2f 54 4c 53 20 73 65 73 73 69 6f e SSL/TLS sessio
1ce0: 6e 5c 26 2e 0a 2e 53 48 20 43 4f 4d 4d 41 4e 44 n\&...SH COMMAND
1cf0: 53 0a 54 79 70 69 63 61 6c 6c 79 20 6f 6e 65 20 S.Typically one
1d00: 77 6f 75 6c 64 20 75 73 65 20 74 68 65 20 5c 66 would use the \f
1d10: 42 74 6c 73 3a 3a 73 6f 63 6b 65 74 5c 66 52 20 Btls::socket\fR
1d20: 63 6f 6d 6d 61 6e 64 20 74 6f 20 63 72 65 61 74 command to creat
1d30: 65 20 61 20 6e 65 77 20 65 6e 63 72 79 70 74 65 e a new encrypte
1d40: 64 0a 54 43 50 20 73 6f 63 6b 65 74 5c 26 2e 20 d.TCP socket\&.
1d50: 49 74 20 69 73 20 63 6f 6d 70 61 74 69 62 6c 65 It is compatible
1d60: 20 77 69 74 68 20 74 68 65 20 6e 61 74 69 76 65 with the native
1d70: 20 54 43 4c 20 5c 66 42 3a 3a 73 6f 63 6b 65 74 TCL \fB::socket
1d80: 5c 66 52 20 63 6f 6d 6d 61 6e 64 5c 26 2e 0a 41 \fR command\&..A
1d90: 6c 74 65 72 6e 61 74 69 76 65 6c 79 20 66 6f 72 lternatively for
1da0: 20 61 6e 20 65 78 69 73 74 69 6e 67 20 54 43 50 an existing TCP
1db0: 20 73 6f 63 6b 65 74 2c 20 74 68 65 20 5c 66 42 socket, the \fB
1dc0: 74 6c 73 3a 3a 69 6d 70 6f 72 74 5c 66 52 20 63 tls::import\fR c
1dd0: 6f 6d 6d 61 6e 64 20 63 61 6e 20 62 65 0a 75 73 ommand can be.us
1de0: 65 64 20 74 6f 20 73 74 61 72 74 20 54 4c 53 20 ed to start TLS
1df0: 6f 6e 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f on the connectio
1e00: 6e 5c 26 2e 0a 2e 54 50 0a 5c 66 42 74 6c 73 3a n\&...TP.\fBtls:
1e10: 3a 69 6e 69 74 5c 66 52 20 3f 5c 66 49 2d 6f 70 :init\fR ?\fI-op
1e20: 74 69 6f 6e 5c 66 52 3f 20 3f 5c 66 49 76 61 6c tion\fR? ?\fIval
1e30: 75 65 5c 66 52 3f 20 3f 5c 66 49 2d 6f 70 74 69 ue\fR? ?\fI-opti
1e40: 6f 6e 20 76 61 6c 75 65 20 5c 26 2e 5c 26 2e 5c on value \&.\&.\
1e50: 26 2e 5c 66 52 3f 0a 4f 70 74 69 6f 6e 61 6c 20 &.\fR?.Optional
1e60: 66 75 6e 63 74 69 6f 6e 20 74 6f 20 73 65 74 20 function to set
1e70: 74 68 65 20 64 65 66 61 75 6c 74 20 6f 70 74 69 the default opti
1e80: 6f 6e 73 20 75 73 65 64 20 62 79 20 5c 66 42 74 ons used by \fBt
1e90: 6c 73 3a 3a 73 6f 63 6b 65 74 5c 66 52 5c 26 2e ls::socket\fR\&.
1ea0: 20 49 66 20 79 6f 75 0a 63 61 6c 6c 20 5c 66 42 If you.call \fB
1eb0: 74 6c 73 3a 3a 69 6d 70 6f 72 74 5c 66 52 20 64 tls::import\fR d
1ec0: 69 72 65 63 74 6c 79 2c 20 74 68 69 73 20 63 6f irectly, this co
1ed0: 6d 6d 61 6e 64 20 68 61 73 20 6e 6f 20 65 66 66 mmand has no eff
1ee0: 65 63 74 5c 26 2e 20 54 68 69 73 20 63 6f 6d 6d ect\&. This comm
1ef0: 61 6e 64 0a 73 75 70 70 6f 72 74 73 20 61 6c 6c and.supports all
1f00: 20 6f 66 20 74 68 65 20 73 61 6d 65 20 6f 70 74 of the same opt
1f10: 69 6f 6e 73 20 61 73 20 74 68 65 20 5c 66 42 74 ions as the \fBt
1f20: 6c 73 3a 3a 73 6f 63 6b 65 74 5c 66 52 20 63 6f ls::socket\fR co
1f30: 6d 6d 61 6e 64 2c 20 74 68 6f 75 67 68 20 79 6f mmand, though yo
1f40: 75 0a 73 68 6f 75 6c 64 20 6c 69 6d 69 74 20 79 u.should limit y
1f50: 6f 75 72 20 6f 70 74 69 6f 6e 73 20 74 6f 20 6f our options to o
1f60: 6e 6c 79 20 54 4c 53 20 72 65 6c 61 74 65 64 20 nly TLS related
1f70: 6f 6e 65 73 5c 26 2e 0a 2e 54 50 0a 5c 66 42 74 ones\&...TP.\fBt
1f80: 6c 73 3a 3a 73 6f 63 6b 65 74 5c 66 52 20 3f 5c ls::socket\fR ?\
1f90: 66 49 2d 6f 70 74 69 6f 6e 5c 66 52 3f 20 3f 5c fI-option\fR? ?\
1fa0: 66 49 76 61 6c 75 65 5c 66 52 3f 20 3f 5c 66 49 fIvalue\fR? ?\fI
1fb0: 2d 6f 70 74 69 6f 6e 20 76 61 6c 75 65 20 5c 26 -option value \&
1fc0: 2e 5c 26 2e 5c 26 2e 5c 66 52 3f 20 5c 66 49 68 .\&.\&.\fR? \fIh
1fd0: 6f 73 74 5c 66 52 20 5c 66 49 70 6f 72 74 5c 66 ost\fR \fIport\f
1fe0: 52 0a 54 68 69 73 20 69 73 20 61 20 68 65 6c 70 R.This is a help
1ff0: 65 72 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 er function that
2000: 20 75 74 69 6c 69 7a 65 73 20 74 68 65 20 75 6e utilizes the un
2010: 64 65 72 6c 79 69 6e 67 20 63 6f 6d 6d 61 6e 64 derlying command
2020: 73 20 5c 66 42 73 6f 63 6b 65 74 5c 66 52 0a 61 s \fBsocket\fR.a
2030: 6e 64 20 5c 66 42 74 6c 73 3a 3a 69 6d 70 6f 72 nd \fBtls::impor
2040: 74 5c 66 52 20 74 6f 20 63 72 65 61 74 65 20 74 t\fR to create t
2050: 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 5c 26 2e he connection\&.
2060: 20 49 74 20 62 65 68 61 76 65 73 20 74 68 65 20 It behaves the
2070: 73 61 6d 65 20 61 73 20 74 68 65 0a 6e 61 74 69 same as the.nati
2080: 76 65 20 54 43 4c 20 5c 66 42 73 6f 63 6b 65 74 ve TCL \fBsocket
2090: 5c 66 52 20 63 6f 6d 6d 61 6e 64 2c 20 62 75 74 \fR command, but
20a0: 20 61 6c 73 6f 20 73 75 70 70 6f 72 74 73 20 74 also supports t
20b0: 68 65 20 5c 66 42 74 6c 73 3a 69 6d 70 6f 72 74 he \fBtls:import
20c0: 5c 66 52 0a 63 6f 6d 6d 61 6e 64 20 6f 70 74 69 \fR.command opti
20d0: 6f 6e 73 20 77 69 74 68 20 6f 6e 65 20 61 64 64 ons with one add
20e0: 69 74 69 6f 6e 61 6c 20 6f 70 74 69 6f 6e 5c 26 itional option\&
20f0: 2e 20 49 74 20 72 65 74 75 72 6e 73 20 74 68 65 . It returns the
2100: 20 63 68 61 6e 6e 65 6c 20 68 61 6e 64 6c 65 20 channel handle
2110: 69 64 0a 66 6f 72 20 74 68 65 20 6e 65 77 20 73 id.for the new s
2120: 6f 63 6b 65 74 5c 26 2e 0a 2e 52 53 0a 2e 54 50 ocket\&...RS..TP
2130: 0a 5c 66 42 2d 61 75 74 6f 73 65 72 76 65 72 6e .\fB-autoservern
2140: 61 6d 65 5c 66 52 20 5c 66 49 62 6f 6f 6c 5c 66 ame\fR \fIbool\f
2150: 52 0a 49 66 20 5c 66 42 74 72 75 65 5c 66 52 2c R.If \fBtrue\fR,
2160: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 73 automatically s
2170: 65 74 20 74 68 65 20 5c 66 42 2d 73 65 72 76 65 et the \fB-serve
2180: 72 6e 61 6d 65 5c 66 52 20 61 72 67 75 6d 65 6e rname\fR argumen
2190: 74 20 74 6f 20 74 68 65 0a 5c 66 49 68 6f 73 74 t to the.\fIhost
21a0: 5c 66 52 20 61 72 67 75 6d 65 6e 74 5c 26 2e 20 \fR argument\&.
21b0: 44 65 66 61 75 6c 74 20 69 73 20 5c 66 42 66 61 Default is \fBfa
21c0: 6c 73 65 5c 66 52 5c 26 2e 0a 2e 52 45 0a 2e 54 lse\fR\&...RE..T
21d0: 50 0a 5c 66 42 74 6c 73 3a 3a 73 6f 63 6b 65 74 P.\fBtls::socket
21e0: 5c 66 52 20 5c 66 42 2d 73 65 72 76 65 72 5c 66 \fR \fB-server\f
21f0: 52 20 5c 66 49 63 6f 6d 6d 61 6e 64 5c 66 52 20 R \fIcommand\fR
2200: 3f 5c 66 49 2d 6f 70 74 69 6f 6e 5c 66 52 3f 20 ?\fI-option\fR?
2210: 3f 5c 66 49 76 61 6c 75 65 5c 66 52 3f 20 3f 5c ?\fIvalue\fR? ?\
2220: 66 49 2d 6f 70 74 69 6f 6e 20 76 61 6c 75 65 20 fI-option value
2230: 5c 26 2e 5c 26 2e 5c 26 2e 5c 66 52 3f 20 5c 66 \&.\&.\&.\fR? \f
2240: 49 70 6f 72 74 5c 66 52 0a 53 61 6d 65 20 61 73 Iport\fR.Same as
2250: 20 70 72 65 76 69 6f 75 73 2c 20 62 75 74 20 69 previous, but i
2260: 6e 73 74 65 61 64 20 63 72 65 61 74 65 73 20 61 nstead creates a
2270: 20 73 65 72 76 65 72 20 73 6f 63 6b 65 74 20 66 server socket f
2280: 6f 72 20 63 6c 69 65 6e 74 73 20 74 6f 20 63 6f or clients to co
2290: 6e 6e 65 63 74 20 74 6f 0a 6a 75 73 74 20 6c 69 nnect to.just li
22a0: 6b 65 20 74 68 65 20 54 63 6c 20 5c 66 42 73 6f ke the Tcl \fBso
22b0: 63 6b 65 74 20 2d 73 65 72 76 65 72 5c 66 52 20 cket -server\fR
22c0: 63 6f 6d 6d 61 6e 64 5c 26 2e 20 49 74 20 72 65 command\&. It re
22d0: 74 75 72 6e 73 20 74 68 65 20 63 68 61 6e 6e 65 turns the channe
22e0: 6c 0a 68 61 6e 64 6c 65 20 69 64 20 66 6f 72 20 l.handle id for
22f0: 74 68 65 20 6e 65 77 20 73 6f 63 6b 65 74 5c 26 the new socket\&
2300: 2e 0a 2e 54 50 0a 5c 66 42 74 6c 73 3a 3a 69 6d ...TP.\fBtls::im
2310: 70 6f 72 74 5c 66 52 20 5c 66 49 63 68 61 6e 6e port\fR \fIchann
2320: 65 6c 5c 66 52 20 3f 5c 66 49 2d 6f 70 74 69 6f el\fR ?\fI-optio
2330: 6e 5c 66 52 3f 20 3f 5c 66 49 76 61 6c 75 65 5c n\fR? ?\fIvalue\
2340: 66 52 3f 20 3f 5c 66 49 2d 6f 70 74 69 6f 6e 20 fR? ?\fI-option
2350: 76 61 6c 75 65 20 5c 26 2e 5c 26 2e 5c 26 2e 5c value \&.\&.\&.\
2360: 66 52 3f 0a 53 74 61 72 74 20 54 4c 53 20 65 6e fR?.Start TLS en
2370: 63 72 79 70 74 69 6f 6e 20 6f 6e 20 54 43 4c 20 cryption on TCL
2380: 63 68 61 6e 6e 65 6c 20 5c 66 49 63 68 61 6e 6e channel \fIchann
2390: 65 6c 5c 66 52 20 76 69 61 20 61 20 73 74 61 63 el\fR via a stac
23a0: 6b 65 64 20 63 68 61 6e 6e 65 6c 5c 26 2e 20 49 ked channel\&. I
23b0: 74 0a 6e 65 65 64 20 6e 6f 74 20 62 65 20 61 20 t.need not be a
23c0: 73 6f 63 6b 65 74 2c 20 62 75 74 20 6d 75 73 74 socket, but must
23d0: 20 70 72 6f 76 69 64 65 20 62 69 2d 64 69 72 65 provide bi-dire
23e0: 63 74 69 6f 6e 61 6c 20 66 6c 6f 77 5c 26 2e 20 ctional flow\&.
23f0: 41 6c 73 6f 20 73 65 74 73 20 73 65 73 73 69 6f Also sets sessio
2400: 6e 0a 70 61 72 61 6d 65 74 65 72 73 20 66 6f 72 n.parameters for
2410: 20 53 53 4c 20 68 61 6e 64 73 68 61 6b 65 5c 26 SSL handshake\&
2420: 2e 20 56 61 6c 69 64 20 6f 70 74 69 6f 6e 73 20 . Valid options
2430: 61 72 65 3a 0a 2e 52 53 0a 2e 54 50 0a 5c 66 42 are:..RS..TP.\fB
2440: 2d 61 6c 70 6e 5c 66 52 20 5c 66 49 6c 69 73 74 -alpn\fR \fIlist
2450: 5c 66 52 0a 4c 69 73 74 20 6f 66 20 70 72 6f 74 \fR.List of prot
2460: 6f 63 6f 6c 73 20 74 6f 20 6f 66 66 65 72 20 64 ocols to offer d
2470: 75 72 69 6e 67 20 41 70 70 6c 69 63 61 74 69 6f uring Applicatio
2480: 6e 2d 4c 61 79 65 72 20 50 72 6f 74 6f 63 6f 6c n-Layer Protocol
2490: 20 4e 65 67 6f 74 69 61 74 69 6f 6e 0a 28 41 4c Negotiation.(AL
24a0: 50 4e 29 5c 26 2e 20 46 6f 72 20 65 78 61 6d 70 PN)\&. For examp
24b0: 6c 65 3a 20 5c 66 42 68 32 5c 66 52 20 61 6e 64 le: \fBh2\fR and
24c0: 20 5c 66 42 68 74 74 70 2f 31 5c 26 2e 31 5c 66 \fBhttp/1\&.1\f
24d0: 52 2c 20 62 75 74 20 6e 6f 74 20 5c 66 42 68 33 R, but not \fBh3
24e0: 5c 66 52 20 6f 72 0a 5c 66 42 71 75 69 63 5c 66 \fR or.\fBquic\f
24f0: 52 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 63 61 64 R\&...TP.\fB-cad
2500: 69 72 5c 66 52 20 5c 66 49 64 69 72 65 63 74 6f ir\fR \fIdirecto
2510: 72 79 5c 66 52 0a 53 70 65 63 69 66 69 65 73 20 ry\fR.Specifies
2520: 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 77 68 the directory wh
2530: 65 72 65 20 74 68 65 20 43 65 72 74 69 66 69 63 ere the Certific
2540: 61 74 65 20 41 75 74 68 6f 72 69 74 79 20 28 43 ate Authority (C
2550: 41 29 20 63 65 72 74 69 66 69 63 61 74 65 73 20 A) certificates
2560: 61 72 65 0a 73 74 6f 72 65 64 5c 26 2e 20 54 68 are.stored\&. Th
2570: 65 20 64 65 66 61 75 6c 74 20 69 73 20 70 6c 61 e default is pla
2580: 74 66 6f 72 6d 20 73 70 65 63 69 66 69 63 20 61 tform specific a
2590: 6e 64 20 63 61 6e 20 62 65 20 73 65 74 20 61 74 nd can be set at
25a0: 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 5c 26 2e compile time\&.
25b0: 20 54 68 65 0a 64 65 66 61 75 6c 74 20 6c 6f 63 The.default loc
25c0: 61 74 69 6f 6e 20 63 61 6e 20 62 65 20 6f 76 65 ation can be ove
25d0: 72 72 69 64 64 65 6e 20 62 79 20 74 68 65 20 5c rridden by the \
25e0: 66 42 53 53 4c 5f 43 45 52 54 5f 44 49 52 5c 66 fBSSL_CERT_DIR\f
25f0: 52 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a 76 61 R environment.va
2600: 72 69 61 62 6c 65 5c 26 2e 20 53 65 65 20 5c 66 riable\&. See \f
2610: 42 43 65 72 74 69 66 69 63 61 74 65 20 56 61 6c BCertificate Val
2620: 69 64 61 74 69 6f 6e 5c 66 52 20 66 6f 72 20 6d idation\fR for m
2630: 6f 72 65 20 64 65 74 61 69 6c 73 5c 26 2e 0a 2e ore details\&...
2640: 54 50 0a 5c 66 42 2d 63 61 66 69 6c 65 5c 66 52 TP.\fB-cafile\fR
2650: 20 5c 66 49 66 69 6c 65 6e 61 6d 65 5c 66 52 0a \fIfilename\fR.
2660: 53 70 65 63 69 66 69 65 73 20 74 68 65 20 66 69 Specifies the fi
2670: 6c 65 20 77 69 74 68 20 74 68 65 20 43 65 72 74 le with the Cert
2680: 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 ificate Authorit
2690: 79 20 28 43 41 29 20 63 65 72 74 69 66 69 63 61 y (CA) certifica
26a0: 74 65 73 20 74 6f 20 75 73 65 5c 26 2e 0a 54 68 tes to use\&..Th
26b0: 65 20 64 65 66 61 75 6c 74 20 69 73 20 22 5c 66 e default is "\f
26c0: 49 63 65 72 74 5c 26 2e 70 65 6d 5c 66 52 22 2c Icert\&.pem\fR",
26d0: 20 69 6e 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 in the OpenSSL
26e0: 64 69 72 65 63 74 6f 72 79 5c 26 2e 20 54 68 65 directory\&. The
26f0: 20 64 65 66 61 75 6c 74 20 66 69 6c 65 20 63 61 default file ca
2700: 6e 0a 62 65 20 6f 76 65 72 72 69 64 64 65 6e 20 n.be overridden
2710: 62 79 20 74 68 65 20 5c 66 42 53 53 4c 5f 43 45 by the \fBSSL_CE
2720: 52 54 5f 46 49 4c 45 5c 66 52 20 65 6e 76 69 72 RT_FILE\fR envir
2730: 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 5c onment variable\
2740: 26 2e 20 53 65 65 0a 5c 66 42 43 65 72 74 69 66 &. See.\fBCertif
2750: 69 63 61 74 65 20 56 61 6c 69 64 61 74 69 6f 6e icate Validation
2760: 5c 66 52 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 \fR for more det
2770: 61 69 6c 73 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d ails\&...TP.\fB-
2780: 63 61 73 74 6f 72 65 5c 66 52 20 5c 66 49 55 52 castore\fR \fIUR
2790: 49 5c 66 52 0a 53 70 65 63 69 66 69 65 73 20 74 I\fR.Specifies t
27a0: 68 65 20 55 6e 69 66 6f 72 6d 20 52 65 73 6f 75 he Uniform Resou
27b0: 72 63 65 20 49 64 65 6e 74 69 66 69 65 72 20 28 rce Identifier (
27c0: 55 52 49 29 20 66 6f 72 20 74 68 65 20 43 65 72 URI) for the Cer
27d0: 74 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 tificate Authori
27e0: 74 79 0a 28 43 41 29 20 73 74 6f 72 65 2c 20 77 ty.(CA) store, w
27f0: 68 69 63 68 20 6d 61 79 20 62 65 20 61 20 73 69 hich may be a si
2800: 6e 67 6c 65 20 63 6f 6e 74 61 69 6e 65 72 20 6f ngle container o
2810: 72 20 61 20 63 61 74 61 6c 6f 67 20 6f 66 20 63 r a catalog of c
2820: 6f 6e 74 61 69 6e 65 72 73 5c 26 2e 0a 53 74 61 ontainers\&..Sta
2830: 72 74 69 6e 67 20 77 69 74 68 20 4f 70 65 6e 53 rting with OpenS
2840: 53 4c 20 33 5c 26 2e 32 20 6f 6e 20 57 69 6e 64 SL 3\&.2 on Wind
2850: 6f 77 73 2c 20 73 65 74 20 74 6f 20 22 5c 66 42 ows, set to "\fB
2860: 6f 72 67 5c 26 2e 6f 70 65 6e 73 73 6c 5c 26 2e org\&.openssl\&.
2870: 77 69 6e 73 74 6f 72 65 3a 2f 2f 5c 66 52 22 0a winstore://\fR".
2880: 74 6f 20 75 73 65 20 74 68 65 20 62 75 69 6c 74 to use the built
2890: 2d 69 6e 20 57 69 6e 64 6f 77 73 20 43 65 72 74 -in Windows Cert
28a0: 69 66 69 63 61 74 65 20 53 74 6f 72 65 5c 26 2e ificate Store\&.
28b0: 20 54 68 69 73 20 73 74 6f 72 65 20 6f 6e 6c 79 This store only
28c0: 20 73 75 70 70 6f 72 74 73 20 72 6f 6f 74 0a 63 supports root.c
28d0: 65 72 74 69 66 69 63 61 74 65 20 73 74 6f 72 65 ertificate store
28e0: 73 5c 26 2e 20 53 65 65 20 5c 66 42 43 65 72 74 s\&. See \fBCert
28f0: 69 66 69 63 61 74 65 20 56 61 6c 69 64 61 74 69 ificate Validati
2900: 6f 6e 5c 66 52 20 66 6f 72 20 6d 6f 72 65 20 64 on\fR for more d
2910: 65 74 61 69 6c 73 5c 26 2e 0a 2e 54 50 0a 5c 66 etails\&...TP.\f
2920: 42 2d 63 65 72 74 66 69 6c 65 5c 66 52 20 5c 66 B-certfile\fR \f
2930: 49 66 69 6c 65 6e 61 6d 65 5c 66 52 0a 53 70 65 Ifilename\fR.Spe
2940: 63 69 66 69 65 73 20 74 68 65 20 6e 61 6d 65 20 cifies the name
2950: 6f 66 20 74 68 65 20 66 69 6c 65 20 77 69 74 68 of the file with
2960: 20 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 the certificate
2970: 20 69 6e 20 50 45 4d 20 66 6f 72 6d 61 74 20 74 in PEM format t
2980: 6f 20 75 73 65 0a 61 73 20 74 68 65 20 6c 6f 63 o use.as the loc
2990: 61 6c 20 28 63 6c 69 65 6e 74 20 6f 72 20 73 65 al (client or se
29a0: 72 76 65 72 29 20 63 65 72 74 69 66 69 63 61 74 rver) certificat
29b0: 65 5c 26 2e 20 49 74 20 61 6c 73 6f 20 63 6f 6e e\&. It also con
29c0: 74 61 69 6e 73 20 74 68 65 20 70 75 62 6c 69 63 tains the public
29d0: 20 6b 65 79 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d key\&...TP.\fB-
29e0: 63 65 72 74 5c 66 52 20 5c 66 49 73 74 72 69 6e cert\fR \fIstrin
29f0: 67 5c 66 52 0a 53 70 65 63 69 66 69 65 73 20 74 g\fR.Specifies t
2a00: 68 65 20 63 65 72 74 69 66 69 63 61 74 65 20 74 he certificate t
2a10: 6f 20 75 73 65 20 61 73 20 61 20 44 45 52 20 65 o use as a DER e
2a20: 6e 63 6f 64 65 64 20 73 74 72 69 6e 67 20 28 58 ncoded string (X
2a30: 5c 26 2e 35 30 39 20 44 45 52 29 5c 26 2e 0a 2e \&.509 DER)\&...
2a40: 54 50 0a 5c 66 42 2d 63 69 70 68 65 72 5c 66 52 TP.\fB-cipher\fR
2a50: 20 5c 66 49 73 74 72 69 6e 67 5c 66 52 0a 53 70 \fIstring\fR.Sp
2a60: 65 63 69 66 69 65 73 20 74 68 65 20 6c 69 73 74 ecifies the list
2a70: 20 6f 66 20 63 69 70 68 65 72 73 20 74 6f 20 75 of ciphers to u
2a80: 73 65 20 66 6f 72 20 54 4c 53 20 31 5c 26 2e 32 se for TLS 1\&.2
2a90: 20 61 6e 64 20 65 61 72 6c 69 65 72 20 63 6f 6e and earlier con
2aa0: 6e 65 63 74 69 6f 6e 73 5c 26 2e 0a 53 74 72 69 nections\&..Stri
2ab0: 6e 67 20 69 73 20 61 20 63 6f 6c 6f 6e 20 22 5c ng is a colon "\
2ac0: 66 42 3a 5c 66 52 22 20 73 65 70 61 72 61 74 65 fB:\fR" separate
2ad0: 64 20 6c 69 73 74 20 6f 66 20 63 69 70 68 65 72 d list of cipher
2ae0: 73 5c 26 2e 0a 43 69 70 68 65 72 73 20 63 61 6e s\&..Ciphers can
2af0: 20 62 65 20 63 6f 6d 62 69 6e 65 64 20 75 73 69 be combined usi
2b00: 6e 67 20 74 68 65 20 22 5c 66 42 2b 5c 66 52 22 ng the "\fB+\fR"
2b10: 20 63 68 61 72 61 63 74 65 72 5c 26 2e 0a 50 72 character\&..Pr
2b20: 65 66 69 78 65 73 20 63 61 6e 20 62 65 20 75 73 efixes can be us
2b30: 65 64 20 74 6f 20 70 65 72 6d 61 6e 65 6e 74 6c ed to permanentl
2b40: 79 20 72 65 6d 6f 76 65 20 22 5c 66 42 21 5c 66 y remove "\fB!\f
2b50: 52 22 2c 20 64 65 6c 65 74 65 20 22 5c 66 42 2d R", delete "\fB-
2b60: 5c 66 52 22 2c 20 6f 72 0a 6d 6f 76 65 20 74 6f \fR", or.move to
2b70: 20 74 68 65 20 65 6e 64 20 22 5c 66 42 2b 5c 66 the end "\fB+\f
2b80: 52 22 20 61 20 73 70 65 63 69 66 69 65 64 20 63 R" a specified c
2b90: 69 70 68 65 72 5c 26 2e 0a 4b 65 79 77 6f 72 64 ipher\&..Keyword
2ba0: 73 20 5c 66 42 40 53 54 52 45 4e 47 54 48 5c 66 s \fB@STRENGTH\f
2bb0: 52 20 28 73 6f 72 74 20 62 79 20 61 6c 67 6f 72 R (sort by algor
2bc0: 69 74 68 6d 20 6b 65 79 20 6c 65 6e 67 74 68 29 ithm key length)
2bd0: 2c 0a 5c 66 42 40 53 45 43 4c 45 56 45 4c 3d 5c ,.\fB@SECLEVEL=\
2be0: 66 52 5c 66 49 6e 5c 66 52 20 28 73 65 74 20 73 fR\fIn\fR (set s
2bf0: 65 63 75 72 69 74 79 20 6c 65 76 65 6c 20 74 6f ecurity level to
2c00: 20 6e 29 2c 20 61 6e 64 0a 5c 66 42 44 45 46 41 n), and.\fBDEFA
2c10: 55 4c 54 5c 66 52 20 28 75 73 65 20 64 65 66 61 ULT\fR (use defa
2c20: 75 6c 74 20 63 69 70 68 65 72 20 6c 69 73 74 2c ult cipher list,
2c30: 20 61 74 20 73 74 61 72 74 20 6f 6e 6c 79 29 20 at start only)
2c40: 63 61 6e 20 61 6c 73 6f 20 62 65 20 73 70 65 63 can also be spec
2c50: 69 66 69 65 64 5c 26 2e 0a 53 65 65 20 74 68 65 ified\&..See the
2c60: 20 5c 66 49 4f 70 65 6e 53 53 4c 5c 66 52 20 5b \fIOpenSSL\fR [
2c70: 68 74 74 70 73 3a 2f 2f 64 6f 63 73 5c 26 2e 6f https://docs\&.o
2c80: 70 65 6e 73 73 6c 5c 26 2e 6f 72 67 2f 6d 61 73 penssl\&.org/mas
2c90: 74 65 72 2f 6d 61 6e 31 2f 6f 70 65 6e 73 73 6c ter/man1/openssl
2ca0: 2d 63 69 70 68 65 72 73 2f 23 6f 70 74 69 6f 6e -ciphers/#option
2cb0: 73 5d 0a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e s].documentation
2cc0: 20 66 6f 72 20 74 68 65 20 66 75 6c 6c 20 6c 69 for the full li
2cd0: 73 74 20 6f 66 20 76 61 6c 69 64 20 76 61 6c 75 st of valid valu
2ce0: 65 73 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 63 69 es\&...TP.\fB-ci
2cf0: 70 68 65 72 73 75 69 74 65 73 5c 66 52 20 5c 66 phersuites\fR \f
2d00: 49 73 74 72 69 6e 67 5c 66 52 0a 53 70 65 63 69 Istring\fR.Speci
2d10: 66 69 65 73 20 74 68 65 20 6c 69 73 74 20 6f 66 fies the list of
2d20: 20 63 69 70 68 65 72 20 73 75 69 74 65 73 20 74 cipher suites t
2d30: 6f 20 75 73 65 20 66 6f 72 20 54 4c 53 20 31 5c o use for TLS 1\
2d40: 26 2e 33 20 61 73 20 61 20 63 6f 6c 6f 6e 0a 22 &.3 as a colon."
2d50: 5c 66 42 3a 5c 66 52 22 20 73 65 70 61 72 61 74 \fB:\fR" separat
2d60: 65 64 20 6c 69 73 74 20 6f 66 20 63 69 70 68 65 ed list of ciphe
2d70: 72 20 73 75 69 74 65 20 6e 61 6d 65 73 5c 26 2e r suite names\&.
2d80: 20 53 65 65 20 74 68 65 0a 5c 66 49 4f 70 65 6e See the.\fIOpen
2d90: 53 53 4c 5c 66 52 20 5b 68 74 74 70 73 3a 2f 2f SSL\fR [https://
2da0: 64 6f 63 73 5c 26 2e 6f 70 65 6e 73 73 6c 5c 26 docs\&.openssl\&
2db0: 2e 6f 72 67 2f 6d 61 73 74 65 72 2f 6d 61 6e 31 .org/master/man1
2dc0: 2f 6f 70 65 6e 73 73 6c 2d 63 69 70 68 65 72 73 /openssl-ciphers
2dd0: 2f 23 6f 70 74 69 6f 6e 73 5d 0a 64 6f 63 75 6d /#options].docum
2de0: 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 entation for the
2df0: 20 66 75 6c 6c 20 6c 69 73 74 20 6f 66 20 76 61 full list of va
2e00: 6c 69 64 20 76 61 6c 75 65 73 5c 26 2e 0a 2e 54 lid values\&...T
2e10: 50 0a 5c 66 42 2d 63 6f 6d 6d 61 6e 64 5c 66 52 P.\fB-command\fR
2e20: 20 5c 66 49 63 61 6c 6c 62 61 63 6b 5c 66 52 0a \fIcallback\fR.
2e30: 53 70 65 63 69 66 69 65 73 20 74 68 65 20 63 61 Specifies the ca
2e40: 6c 6c 62 61 63 6b 20 63 6f 6d 6d 61 6e 64 20 74 llback command t
2e50: 6f 20 62 65 20 69 6e 76 6f 6b 65 64 20 61 74 20 o be invoked at
2e60: 73 65 76 65 72 61 6c 20 70 6f 69 6e 74 73 20 64 several points d
2e70: 75 72 69 6e 67 20 74 68 65 0a 68 61 6e 64 73 68 uring the.handsh
2e80: 61 6b 65 20 74 6f 20 70 61 73 73 20 65 72 72 6f ake to pass erro
2e90: 72 73 2c 20 74 72 61 63 69 6e 67 20 69 6e 66 6f rs, tracing info
2ea0: 72 6d 61 74 69 6f 6e 2c 20 61 6e 64 20 70 72 6f rmation, and pro
2eb0: 74 6f 63 6f 6c 20 6d 65 73 73 61 67 65 73 5c 26 tocol messages\&
2ec0: 2e 0a 53 65 65 20 5c 66 42 43 61 6c 6c 62 61 63 ..See \fBCallbac
2ed0: 6b 20 4f 70 74 69 6f 6e 73 5c 66 52 20 66 6f 72 k Options\fR for
2ee0: 20 6d 6f 72 65 20 69 6e 66 6f 5c 26 2e 0a 2e 54 more info\&...T
2ef0: 50 0a 5c 66 42 2d 64 68 70 61 72 61 6d 73 5c 66 P.\fB-dhparams\f
2f00: 52 20 5c 66 49 66 69 6c 65 6e 61 6d 65 5c 66 52 R \fIfilename\fR
2f10: 0a 53 70 65 63 69 66 69 65 73 20 74 68 65 20 44 .Specifies the D
2f20: 69 66 66 69 65 2d 48 65 6c 6c 6d 61 6e 20 28 44 iffie-Hellman (D
2f30: 48 29 20 70 61 72 61 6d 65 74 65 72 73 20 66 69 H) parameters fi
2f40: 6c 65 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 6b 65 le\&...TP.\fB-ke
2f50: 79 66 69 6c 65 5c 66 52 20 5c 66 49 66 69 6c 65 yfile\fR \fIfile
2f60: 6e 61 6d 65 5c 66 52 0a 53 70 65 63 69 66 69 65 name\fR.Specifie
2f70: 73 20 74 68 65 20 70 72 69 76 61 74 65 20 6b 65 s the private ke
2f80: 79 20 66 69 6c 65 5c 26 2e 20 54 68 65 20 64 65 y file\&. The de
2f90: 66 61 75 6c 74 20 76 61 6c 75 65 20 69 73 20 74 fault value is t
2fa0: 6f 20 75 73 65 20 74 68 65 20 66 69 6c 65 0a 73 o use the file.s
2fb0: 70 65 63 69 66 69 65 64 20 62 79 20 74 68 65 20 pecified by the
2fc0: 5c 66 49 2d 63 65 72 74 66 69 6c 65 5c 66 52 20 \fI-certfile\fR
2fd0: 6f 70 74 69 6f 6e 5c 26 2e 0a 2e 54 50 0a 5c 66 option\&...TP.\f
2fe0: 42 2d 6b 65 79 5c 66 52 20 5c 66 49 73 74 72 69 B-key\fR \fIstri
2ff0: 6e 67 5c 66 52 0a 53 70 65 63 69 66 69 65 73 20 ng\fR.Specifies
3000: 74 68 65 20 70 72 69 76 61 74 65 20 6b 65 79 20 the private key
3010: 74 6f 20 75 73 65 20 61 73 20 61 20 44 45 52 20 to use as a DER
3020: 65 6e 63 6f 64 65 64 20 73 74 72 69 6e 67 20 28 encoded string (
3030: 50 4b 43 53 23 31 20 44 45 52 29 5c 26 2e 0a 2e PKCS#1 DER)\&...
3040: 54 50 0a 5c 66 42 2d 6d 6f 64 65 6c 5c 66 52 20 TP.\fB-model\fR
3050: 5c 66 49 63 68 61 6e 6e 65 6c 5c 66 52 0a 46 6f \fIchannel\fR.Fo
3060: 72 63 65 20 74 68 69 73 20 63 68 61 6e 6e 65 6c rce this channel
3070: 20 74 6f 20 73 68 61 72 65 20 74 68 65 20 73 61 to share the sa
3080: 6d 65 20 5c 66 49 53 53 4c 5f 43 54 58 5c 66 52 me \fISSL_CTX\fR
3090: 20 73 74 72 75 63 74 75 72 65 20 61 73 20 74 68 structure as th
30a0: 65 0a 73 70 65 63 69 66 69 65 64 20 5c 66 49 63 e.specified \fIc
30b0: 68 61 6e 6e 65 6c 5c 66 52 2c 20 61 6e 64 20 74 hannel\fR, and t
30c0: 68 65 72 65 66 6f 72 65 20 73 68 61 72 65 20 63 herefore share c
30d0: 6f 6e 66 69 67 2c 20 63 61 6c 6c 62 61 63 6b 73 onfig, callbacks
30e0: 2c 20 65 74 63 5c 26 2e 0a 2e 54 50 0a 5c 66 42 , etc\&...TP.\fB
30f0: 2d 70 61 73 73 77 6f 72 64 5c 66 52 20 5c 66 49 -password\fR \fI
3100: 63 61 6c 6c 62 61 63 6b 5c 66 52 0a 53 70 65 63 callback\fR.Spec
3110: 69 66 69 65 73 20 74 68 65 20 63 61 6c 6c 62 61 ifies the callba
3120: 63 6b 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 69 6e ck command to in
3130: 76 6f 6b 65 20 77 68 65 6e 20 4f 70 65 6e 53 53 voke when OpenSS
3140: 4c 20 6e 65 65 64 73 20 74 6f 20 6f 62 74 61 69 L needs to obtai
3150: 6e 20 61 0a 70 61 73 73 77 6f 72 64 5c 26 2e 20 n a.password\&.
3160: 54 68 69 73 20 69 73 20 74 79 70 69 63 61 6c 6c This is typicall
3170: 79 20 75 73 65 64 20 74 6f 20 75 6e 6c 6f 63 6b y used to unlock
3180: 20 74 68 65 20 70 72 69 76 61 74 65 20 6b 65 79 the private key
3190: 20 6f 66 20 61 20 63 65 72 74 69 66 69 63 61 74 of a certificat
31a0: 65 5c 26 2e 0a 54 68 65 20 63 61 6c 6c 62 61 63 e\&..The callbac
31b0: 6b 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 k should return
31c0: 61 20 70 61 73 73 77 6f 72 64 20 73 74 72 69 6e a password strin
31d0: 67 5c 26 2e 20 53 65 65 20 5c 66 42 43 61 6c 6c g\&. See \fBCall
31e0: 62 61 63 6b 20 4f 70 74 69 6f 6e 73 5c 66 52 0a back Options\fR.
31f0: 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 5c 26 2e for more info\&.
3200: 0a 2e 54 50 0a 5c 66 42 2d 70 6f 73 74 5f 68 61 ..TP.\fB-post_ha
3210: 6e 64 73 68 61 6b 65 5c 66 52 20 5c 66 49 62 6f ndshake\fR \fIbo
3220: 6f 6c 5c 66 52 0a 41 6c 6c 6f 77 20 70 6f 73 74 ol\fR.Allow post
3230: 2d 68 61 6e 64 73 68 61 6b 65 20 73 65 73 73 69 -handshake sessi
3240: 6f 6e 20 74 69 63 6b 65 74 20 75 70 64 61 74 65 on ticket update
3250: 73 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 72 65 71 s\&...TP.\fB-req
3260: 75 65 73 74 5c 66 52 20 5c 66 49 62 6f 6f 6c 5c uest\fR \fIbool\
3270: 66 52 0a 52 65 71 75 65 73 74 20 61 20 63 65 72 fR.Request a cer
3280: 74 69 66 69 63 61 74 65 20 66 72 6f 6d 20 70 65 tificate from pe
3290: 65 72 20 64 75 72 69 6e 67 20 74 68 65 20 53 53 er during the SS
32a0: 4c 20 68 61 6e 64 73 68 61 6b 65 5c 26 2e 20 54 L handshake\&. T
32b0: 68 69 73 20 69 73 20 6e 65 65 64 65 64 20 74 6f his is needed to
32c0: 20 64 6f 0a 43 65 72 74 69 66 69 63 61 74 65 20 do.Certificate
32d0: 56 61 6c 69 64 61 74 69 6f 6e 5c 26 2e 20 44 65 Validation\&. De
32e0: 66 61 75 6c 74 20 69 73 20 5c 66 42 74 72 75 65 fault is \fBtrue
32f0: 5c 66 52 5c 26 2e 0a 53 65 65 20 5c 66 42 43 65 \fR\&..See \fBCe
3300: 72 74 69 66 69 63 61 74 65 20 56 61 6c 69 64 61 rtificate Valida
3310: 74 69 6f 6e 5c 66 52 20 66 6f 72 20 6d 6f 72 65 tion\fR for more
3320: 20 64 65 74 61 69 6c 73 5c 26 2e 0a 2e 54 50 0a details\&...TP.
3330: 5c 66 42 2d 72 65 71 75 69 72 65 5c 66 52 20 5c \fB-require\fR \
3340: 66 49 62 6f 6f 6c 5c 66 52 0a 52 65 71 75 69 72 fIbool\fR.Requir
3350: 65 20 61 20 76 61 6c 69 64 20 63 65 72 74 69 66 e a valid certif
3360: 69 63 61 74 65 20 66 72 6f 6d 20 70 65 65 72 20 icate from peer
3370: 64 75 72 69 6e 67 20 74 68 65 20 53 53 4c 20 68 during the SSL h
3380: 61 6e 64 73 68 61 6b 65 5c 26 2e 20 49 66 20 74 andshake\&. If t
3390: 68 69 73 20 69 73 20 73 65 74 20 74 6f 0a 74 72 his is set to.tr
33a0: 75 65 2c 20 74 68 65 6e 20 5c 66 42 2d 72 65 71 ue, then \fB-req
33b0: 75 65 73 74 5c 66 52 20 6d 75 73 74 20 61 6c 73 uest\fR must als
33c0: 6f 20 62 65 20 73 65 74 20 74 6f 20 74 72 75 65 o be set to true
33d0: 20 61 6e 64 20 61 20 65 69 74 68 65 72 20 5c 66 and a either \f
33e0: 42 2d 63 61 64 69 72 5c 66 52 2c 0a 5c 66 42 2d B-cadir\fR,.\fB-
33f0: 63 61 66 69 6c 65 5c 66 52 2c 20 5c 66 42 2d 63 cafile\fR, \fB-c
3400: 61 73 74 6f 72 65 5c 66 52 2c 20 6f 72 20 61 20 astore\fR, or a
3410: 70 6c 61 74 66 6f 72 6d 20 64 65 66 61 75 6c 74 platform default
3420: 20 6d 75 73 74 20 62 65 20 70 72 6f 76 69 64 65 must be provide
3430: 64 20 69 6e 20 6f 72 64 65 72 20 74 6f 0a 76 61 d in order to.va
3440: 6c 69 64 61 74 65 20 61 67 61 69 6e 73 74 5c 26 lidate against\&
3450: 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 . The default is
3460: 20 5c 66 42 66 61 6c 73 65 5c 66 52 20 73 69 6e \fBfalse\fR sin
3470: 63 65 20 6e 6f 74 20 61 6c 6c 20 70 6c 61 74 66 ce not all platf
3480: 6f 72 6d 73 20 68 61 76 65 0a 63 65 72 74 69 66 orms have.certif
3490: 69 63 61 74 65 73 20 74 6f 20 76 61 6c 69 64 61 icates to valida
34a0: 74 65 20 61 67 61 69 6e 73 74 20 69 6e 20 61 20 te against in a
34b0: 66 6f 72 6d 20 63 6f 6d 70 61 74 69 62 6c 65 20 form compatible
34c0: 77 69 74 68 20 4f 70 65 6e 53 53 4c 5c 26 2e 0a with OpenSSL\&..
34d0: 53 65 65 20 5c 66 42 43 65 72 74 69 66 69 63 61 See \fBCertifica
34e0: 74 65 20 56 61 6c 69 64 61 74 69 6f 6e 5c 66 52 te Validation\fR
34f0: 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c for more detail
3500: 73 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 73 65 63 s\&...TP.\fB-sec
3510: 75 72 69 74 79 5f 6c 65 76 65 6c 5c 66 52 20 5c urity_level\fR \
3520: 66 49 69 6e 74 65 67 65 72 5c 66 52 0a 53 70 65 fIinteger\fR.Spe
3530: 63 69 66 69 65 73 20 74 68 65 20 73 65 63 75 72 cifies the secur
3540: 69 74 79 20 6c 65 76 65 6c 20 28 76 61 6c 75 65 ity level (value
3550: 20 66 72 6f 6d 20 30 20 74 6f 20 35 29 5c 26 2e from 0 to 5)\&.
3560: 20 54 68 65 20 73 65 63 75 72 69 74 79 20 6c 65 The security le
3570: 76 65 6c 20 61 66 66 65 63 74 73 0a 74 68 65 20 vel affects.the
3580: 61 6c 6c 6f 77 65 64 20 63 69 70 68 65 72 20 73 allowed cipher s
3590: 75 69 74 65 20 65 6e 63 72 79 70 74 69 6f 6e 20 uite encryption
35a0: 61 6c 67 6f 72 69 74 68 6d 73 2c 20 73 75 70 70 algorithms, supp
35b0: 6f 72 74 65 64 20 45 43 43 20 63 75 72 76 65 73 orted ECC curves
35c0: 2c 0a 73 75 70 70 6f 72 74 65 64 20 73 69 67 6e ,.supported sign
35d0: 61 74 75 72 65 20 61 6c 67 6f 72 69 74 68 6d 73 ature algorithms
35e0: 2c 20 44 48 20 70 61 72 61 6d 65 74 65 72 20 73 , DH parameter s
35f0: 69 7a 65 73 2c 20 63 65 72 74 69 66 69 63 61 74 izes, certificat
3600: 65 20 6b 65 79 20 73 69 7a 65 73 0a 61 6e 64 20 e key sizes.and
3610: 73 69 67 6e 61 74 75 72 65 20 61 6c 67 6f 72 69 signature algori
3620: 74 68 6d 73 5c 26 2e 20 54 68 65 20 64 65 66 61 thms\&. The defa
3630: 75 6c 74 20 69 73 20 31 20 70 72 69 6f 72 20 74 ult is 1 prior t
3640: 6f 20 4f 70 65 6e 53 53 4c 20 33 5c 26 2e 32 20 o OpenSSL 3\&.2
3650: 61 6e 64 20 32 0a 74 68 65 72 65 61 66 74 65 72 and 2.thereafter
3660: 5c 26 2e 20 4c 65 76 65 6c 20 33 20 61 6e 64 20 \&. Level 3 and
3670: 68 69 67 68 65 72 20 64 69 73 61 62 6c 65 20 73 higher disable s
3680: 75 70 70 6f 72 74 20 66 6f 72 20 73 65 73 73 69 upport for sessi
3690: 6f 6e 20 74 69 63 6b 65 74 73 20 61 6e 64 0a 6f on tickets and.o
36a0: 6e 6c 79 20 61 63 63 65 70 74 20 63 69 70 68 65 nly accept ciphe
36b0: 72 20 73 75 69 74 65 73 20 74 68 61 74 20 70 72 r suites that pr
36c0: 6f 76 69 64 65 20 66 6f 72 77 61 72 64 20 73 65 ovide forward se
36d0: 63 72 65 63 79 5c 26 2e 0a 2e 54 50 0a 5c 66 42 crecy\&...TP.\fB
36e0: 2d 73 65 72 76 65 72 5c 66 52 20 5c 66 49 62 6f -server\fR \fIbo
36f0: 6f 6c 5c 66 52 0a 53 70 65 63 69 66 69 65 73 20 ol\fR.Specifies
3700: 77 68 65 74 68 65 72 20 74 6f 20 61 63 74 20 61 whether to act a
3710: 73 20 61 20 73 65 72 76 65 72 20 61 6e 64 20 72 s a server and r
3720: 65 73 70 6f 6e 64 20 77 69 74 68 20 61 20 73 65 espond with a se
3730: 72 76 65 72 20 68 61 6e 64 73 68 61 6b 65 20 77 rver handshake w
3740: 68 65 6e 20 61 0a 63 6c 69 65 6e 74 20 63 6f 6e hen a.client con
3750: 6e 65 63 74 73 20 61 6e 64 20 70 72 6f 76 69 64 nects and provid
3760: 65 73 20 61 20 63 6c 69 65 6e 74 20 68 61 6e 64 es a client hand
3770: 73 68 61 6b 65 5c 26 2e 20 54 68 65 20 64 65 66 shake\&. The def
3780: 61 75 6c 74 20 69 73 20 5c 66 42 66 61 6c 73 65 ault is \fBfalse
3790: 5c 66 52 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 73 \fR\&...TP.\fB-s
37a0: 65 72 76 65 72 6e 61 6d 65 5c 66 52 20 5c 66 49 ervername\fR \fI
37b0: 68 6f 73 74 6e 61 6d 65 5c 66 52 0a 53 70 65 63 hostname\fR.Spec
37c0: 69 66 79 20 74 68 65 20 70 65 65 72 27 73 20 68 ify the peer's h
37d0: 6f 73 74 6e 61 6d 65 5c 26 2e 20 54 68 69 73 20 ostname\&. This
37e0: 69 73 20 75 73 65 64 20 74 6f 20 73 65 74 20 74 is used to set t
37f0: 68 65 20 54 4c 53 20 53 65 72 76 65 72 20 4e 61 he TLS Server Na
3800: 6d 65 0a 49 6e 64 69 63 61 74 69 6f 6e 20 28 53 me.Indication (S
3810: 4e 49 29 20 65 78 74 65 6e 73 69 6f 6e 5c 26 2e NI) extension\&.
3820: 20 53 65 74 20 74 68 69 73 20 74 6f 20 74 68 65 Set this to the
3830: 20 65 78 70 65 63 74 65 64 20 73 65 72 76 65 72 expected server
3840: 6e 61 6d 65 20 69 6e 20 74 68 65 0a 73 65 72 76 name in the.serv
3850: 65 72 27 73 20 63 65 72 74 69 66 69 63 61 74 65 er's certificate
3860: 20 6f 72 20 6f 6e 65 20 6f 66 20 74 68 65 20 53 or one of the S
3870: 75 62 6a 65 63 74 20 41 6c 74 65 72 6e 61 74 65 ubject Alternate
3880: 20 4e 61 6d 65 73 20 28 53 41 4e 29 5c 26 2e 0a Names (SAN)\&..
3890: 2e 54 50 0a 5c 66 42 2d 73 65 73 73 69 6f 6e 5f .TP.\fB-session_
38a0: 69 64 5c 66 52 20 5c 66 49 62 69 6e 61 72 79 5f id\fR \fIbinary_
38b0: 73 74 72 69 6e 67 5c 66 52 0a 53 70 65 63 69 66 string\fR.Specif
38c0: 69 65 73 20 74 68 65 20 73 65 73 73 69 6f 6e 20 ies the session
38d0: 69 64 20 74 6f 20 72 65 73 75 6d 65 20 61 20 73 id to resume a s
38e0: 65 73 73 69 6f 6e 5c 26 2e 20 4e 6f 74 20 73 75 ession\&. Not su
38f0: 70 70 6f 72 74 65 64 20 79 65 74 5c 26 2e 0a 2e pported yet\&...
3900: 54 50 0a 5c 66 42 2d 73 73 6c 32 5c 66 52 20 5c TP.\fB-ssl2\fR \
3910: 66 49 62 6f 6f 6c 5c 66 52 0a 45 6e 61 62 6c 65 fIbool\fR.Enable
3920: 20 75 73 65 20 6f 66 20 53 53 4c 20 76 32 5c 26 use of SSL v2\&
3930: 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 . The default is
3940: 20 5c 66 42 66 61 6c 73 65 5c 66 52 5c 26 2e 20 \fBfalse\fR\&.
3950: 4e 6f 74 65 3a 20 52 65 63 65 6e 74 20 76 65 72 Note: Recent ver
3960: 73 69 6f 6e 73 20 6f 66 0a 4f 70 65 6e 53 53 4c sions of.OpenSSL
3970: 20 6e 6f 20 6c 6f 6e 67 65 72 20 73 75 70 70 6f no longer suppo
3980: 72 74 20 53 53 4c 76 32 2c 20 73 6f 20 74 68 69 rt SSLv2, so thi
3990: 73 20 6d 61 79 20 6e 6f 74 20 68 61 76 65 20 61 s may not have a
39a0: 6e 79 20 65 66 66 65 63 74 5c 26 2e 20 53 65 65 ny effect\&. See
39b0: 20 74 68 65 0a 5c 66 42 74 6c 73 3a 3a 70 72 6f the.\fBtls::pro
39c0: 74 6f 63 6f 6c 73 5c 66 52 20 63 6f 6d 6d 61 6e tocols\fR comman
39d0: 64 20 66 6f 72 20 73 75 70 70 6f 72 74 65 64 20 d for supported
39e0: 70 72 6f 74 6f 63 6f 6c 73 5c 26 2e 0a 2e 54 50 protocols\&...TP
39f0: 0a 5c 66 42 2d 73 73 6c 33 5c 66 52 20 5c 66 49 .\fB-ssl3\fR \fI
3a00: 62 6f 6f 6c 5c 66 52 0a 45 6e 61 62 6c 65 20 75 bool\fR.Enable u
3a10: 73 65 20 6f 66 20 53 53 4c 20 76 33 5c 26 2e 20 se of SSL v3\&.
3a20: 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 5c The default is \
3a30: 66 42 66 61 6c 73 65 5c 66 52 5c 26 2e 20 4e 6f fBfalse\fR\&. No
3a40: 74 65 3a 20 52 65 63 65 6e 74 20 76 65 72 73 69 te: Recent versi
3a50: 6f 6e 73 0a 6f 66 20 4f 70 65 6e 53 53 4c 20 6d ons.of OpenSSL m
3a60: 61 79 20 68 61 76 65 20 74 68 69 73 20 64 69 73 ay have this dis
3a70: 61 62 6c 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 abled at compile
3a80: 20 74 69 6d 65 2c 20 73 6f 20 74 68 69 73 20 6d time, so this m
3a90: 61 79 20 6e 6f 74 20 68 61 76 65 20 61 6e 79 0a ay not have any.
3aa0: 65 66 66 65 63 74 5c 26 2e 20 53 65 65 20 74 68 effect\&. See th
3ab0: 65 20 5c 66 42 74 6c 73 3a 3a 70 72 6f 74 6f 63 e \fBtls::protoc
3ac0: 6f 6c 73 5c 66 52 20 63 6f 6d 6d 61 6e 64 20 66 ols\fR command f
3ad0: 6f 72 20 73 75 70 70 6f 72 74 65 64 20 70 72 6f or supported pro
3ae0: 74 6f 63 6f 6c 73 5c 26 2e 0a 2e 54 50 0a 5c 66 tocols\&...TP.\f
3af0: 42 2d 74 6c 73 31 5c 66 52 20 5c 66 49 62 6f 6f B-tls1\fR \fIboo
3b00: 6c 5c 66 52 0a 45 6e 61 62 6c 65 20 75 73 65 20 l\fR.Enable use
3b10: 6f 66 20 54 4c 53 20 76 31 5c 26 2e 20 54 68 65 of TLS v1\&. The
3b20: 20 64 65 66 61 75 6c 74 20 69 73 20 5c 66 42 74 default is \fBt
3b30: 72 75 65 5c 66 52 5c 26 2e 20 4e 6f 74 65 3a 20 rue\fR\&. Note:
3b40: 54 4c 53 20 31 5c 26 2e 30 20 6e 65 65 64 73 0a TLS 1\&.0 needs.
3b50: 53 48 41 31 20 74 6f 20 6f 70 65 72 61 74 65 2c SHA1 to operate,
3b60: 20 77 68 69 63 68 20 69 73 20 6f 6e 6c 79 20 61 which is only a
3b70: 76 61 69 6c 61 62 6c 65 20 69 6e 20 73 65 63 75 vailable in secu
3b80: 72 69 74 79 20 6c 65 76 65 6c 20 30 20 66 6f 72 rity level 0 for
3b90: 20 4f 70 65 6e 20 53 53 4c 20 33 5c 26 2e 30 2b Open SSL 3\&.0+
3ba0: 5c 26 2e 0a 53 65 65 20 74 68 65 20 5c 66 49 2d \&..See the \fI-
3bb0: 73 65 63 75 72 69 74 79 5f 6c 65 76 65 6c 5c 66 security_level\f
3bc0: 52 20 6f 70 74 69 6f 6e 5c 26 2e 0a 2e 54 50 0a R option\&...TP.
3bd0: 5c 66 42 2d 74 6c 73 31 5c 26 2e 31 5c 66 52 20 \fB-tls1\&.1\fR
3be0: 5c 66 49 62 6f 6f 6c 5c 66 52 0a 45 6e 61 62 6c \fIbool\fR.Enabl
3bf0: 65 20 75 73 65 20 6f 66 20 54 4c 53 20 76 31 5c e use of TLS v1\
3c00: 26 2e 31 5c 26 2e 20 54 68 65 20 64 65 66 61 75 &.1\&. The defau
3c10: 6c 74 20 69 73 20 5c 66 42 74 72 75 65 5c 66 52 lt is \fBtrue\fR
3c20: 5c 26 2e 20 4e 6f 74 65 3a 20 54 4c 53 20 31 5c \&. Note: TLS 1\
3c30: 26 2e 31 20 6e 65 65 64 73 0a 53 48 41 31 20 74 &.1 needs.SHA1 t
3c40: 6f 20 6f 70 65 72 61 74 65 2c 20 77 68 69 63 68 o operate, which
3c50: 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 6c 61 62 is only availab
3c60: 6c 65 20 69 6e 20 73 65 63 75 72 69 74 79 20 6c le in security l
3c70: 65 76 65 6c 20 30 20 66 6f 72 20 4f 70 65 6e 20 evel 0 for Open
3c80: 53 53 4c 20 33 5c 26 2e 30 2b 5c 26 2e 0a 53 65 SSL 3\&.0+\&..Se
3c90: 65 20 74 68 65 20 5c 66 49 2d 73 65 63 75 72 69 e the \fI-securi
3ca0: 74 79 5f 6c 65 76 65 6c 5c 66 52 20 6f 70 74 69 ty_level\fR opti
3cb0: 6f 6e 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 74 6c on\&...TP.\fB-tl
3cc0: 73 31 5c 26 2e 32 5c 66 52 20 5c 66 49 62 6f 6f s1\&.2\fR \fIboo
3cd0: 6c 5c 66 52 0a 45 6e 61 62 6c 65 20 75 73 65 20 l\fR.Enable use
3ce0: 6f 66 20 54 4c 53 20 76 31 5c 26 2e 32 5c 26 2e of TLS v1\&.2\&.
3cf0: 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 The default is
3d00: 5c 66 42 74 72 75 65 5c 66 52 5c 26 2e 0a 2e 54 \fBtrue\fR\&...T
3d10: 50 0a 5c 66 42 2d 74 6c 73 31 5c 26 2e 33 5c 66 P.\fB-tls1\&.3\f
3d20: 52 20 5c 66 49 62 6f 6f 6c 5c 66 52 0a 45 6e 61 R \fIbool\fR.Ena
3d30: 62 6c 65 20 75 73 65 20 6f 66 20 54 4c 53 20 76 ble use of TLS v
3d40: 31 5c 26 2e 33 5c 26 2e 20 54 68 65 20 64 65 66 1\&.3\&. The def
3d50: 61 75 6c 74 20 69 73 20 5c 66 42 74 72 75 65 5c ault is \fBtrue\
3d60: 66 52 5c 26 2e 0a 2e 54 50 0a 5c 66 42 2d 76 61 fR\&...TP.\fB-va
3d70: 6c 69 64 61 74 65 63 6f 6d 6d 61 6e 64 5c 66 52 lidatecommand\fR
3d80: 20 5c 66 49 63 61 6c 6c 62 61 63 6b 5c 66 52 0a \fIcallback\fR.
3d90: 53 70 65 63 69 66 69 65 73 20 74 68 65 20 63 61 Specifies the ca
3da0: 6c 6c 62 61 63 6b 20 63 6f 6d 6d 61 6e 64 20 74 llback command t
3db0: 6f 20 69 6e 76 6f 6b 65 20 74 6f 20 76 61 6c 69 o invoke to vali
3dc0: 64 61 74 65 20 74 68 65 20 70 65 65 72 20 63 65 date the peer ce
3dd0: 72 74 69 66 69 63 61 74 65 73 0a 61 6e 64 20 6f rtificates.and o
3de0: 74 68 65 72 20 63 6f 6e 66 69 67 20 69 6e 66 6f ther config info
3df0: 20 64 75 72 69 6e 67 20 74 68 65 20 70 72 6f 74 during the prot
3e00: 6f 63 6f 6c 20 6e 65 67 6f 74 69 61 74 69 6f 6e ocol negotiation
3e10: 20 70 68 61 73 65 5c 26 2e 20 54 68 69 73 20 63 phase\&. This c
3e20: 61 6e 20 62 65 20 75 73 65 64 0a 62 79 20 54 43 an be used.by TC
3e30: 4c 20 73 63 72 69 70 74 73 20 74 6f 20 70 65 72 L scripts to per
3e40: 66 6f 72 6d 20 74 68 65 69 72 20 6f 77 6e 20 43 form their own C
3e50: 65 72 74 69 66 69 63 61 74 65 20 56 61 6c 69 64 ertificate Valid
3e60: 61 74 69 6f 6e 20 74 6f 20 73 75 70 70 6c 65 6d ation to supplem
3e70: 65 6e 74 20 74 68 65 0a 64 65 66 61 75 6c 74 20 ent the.default
3e80: 76 61 6c 69 64 61 74 69 6f 6e 20 70 72 6f 76 69 validation provi
3e90: 64 65 64 20 62 79 20 4f 70 65 6e 53 53 4c 5c 26 ded by OpenSSL\&
3ea0: 2e 20 54 68 65 20 73 63 72 69 70 74 20 6d 75 73 . The script mus
3eb0: 74 20 72 65 74 75 72 6e 20 61 20 62 6f 6f 6c 65 t return a boole
3ec0: 61 6e 20 74 72 75 65 0a 74 6f 20 63 6f 6e 74 69 an true.to conti
3ed0: 6e 75 65 20 74 68 65 20 6e 65 67 6f 74 69 61 74 nue the negotiat
3ee0: 69 6f 6e 5c 26 2e 20 53 65 65 20 5c 66 42 43 61 ion\&. See \fBCa
3ef0: 6c 6c 62 61 63 6b 20 4f 70 74 69 6f 6e 73 5c 66 llback Options\f
3f00: 52 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 5c R for more info\
3f10: 26 2e 0a 2e 52 45 0a 2e 54 50 0a 5c 66 42 74 6c &...RE..TP.\fBtl
3f20: 73 3a 3a 75 6e 69 6d 70 6f 72 74 5c 66 52 20 5c s::unimport\fR \
3f30: 66 49 63 68 61 6e 6e 65 6c 5c 66 52 0a 43 6f 6d fIchannel\fR.Com
3f40: 70 6c 69 6d 65 6e 74 20 74 6f 20 5c 66 42 74 6c pliment to \fBtl
3f50: 73 3a 3a 69 6d 70 6f 72 74 5c 66 52 5c 26 2e 20 s::import\fR\&.
3f60: 55 73 65 64 20 74 6f 20 72 65 6d 6f 76 65 20 74 Used to remove t
3f70: 68 65 20 74 6f 70 20 6c 65 76 65 6c 20 73 74 61 he top level sta
3f80: 63 6b 65 64 20 63 68 61 6e 6e 65 6c 0a 66 72 6f cked channel.fro
3f90: 6d 20 5c 66 49 63 68 61 6e 6e 65 6c 5c 66 52 5c m \fIchannel\fR\
3fa0: 26 2e 20 54 68 69 73 20 75 6e 73 74 61 63 6b 73 &. This unstacks
3fb0: 20 74 68 65 20 65 6e 63 72 79 70 74 69 6f 6e 20 the encryption
3fc0: 6f 66 20 61 20 72 65 67 75 6c 61 72 20 54 43 4c of a regular TCL
3fd0: 20 63 68 61 6e 6e 65 6c 5c 26 2e 20 41 6e 0a 65 channel\&. An.e
3fe0: 72 72 6f 72 20 69 73 20 74 68 72 6f 77 6e 20 69 rror is thrown i
3ff0: 66 20 54 4c 53 20 69 73 20 6e 6f 74 20 74 68 65 f TLS is not the
4000: 20 74 6f 70 20 73 74 61 63 6b 65 64 20 63 68 61 top stacked cha
4010: 6e 6e 65 6c 20 74 79 70 65 5c 26 2e 0a 2e 54 50 nnel type\&...TP
4020: 0a 5c 66 42 74 6c 73 3a 3a 68 61 6e 64 73 68 61 .\fBtls::handsha
4030: 6b 65 5c 66 52 20 5c 66 49 63 68 61 6e 6e 65 6c ke\fR \fIchannel
4040: 5c 66 52 0a 46 6f 72 63 65 73 20 74 68 65 20 54 \fR.Forces the T
4050: 4c 53 20 6e 65 67 6f 74 69 61 74 69 6f 6e 20 68 LS negotiation h
4060: 61 6e 64 73 68 61 6b 65 20 74 6f 20 74 61 6b 65 andshake to take
4070: 20 70 6c 61 63 65 20 69 6d 6d 65 64 69 61 74 65 place immediate
4080: 6c 79 2c 20 61 6e 64 20 72 65 74 75 72 6e 73 20 ly, and returns
4090: 30 0a 69 66 20 68 61 6e 64 73 68 61 6b 65 20 69 0.if handshake i
40a0: 73 20 73 74 69 6c 6c 20 69 6e 20 70 72 6f 67 72 s still in progr
40b0: 65 73 73 20 28 6e 6f 6e 2d 62 6c 6f 63 6b 69 6e ess (non-blockin
40c0: 67 29 2c 20 6f 72 20 31 20 69 66 20 74 68 65 20 g), or 1 if the
40d0: 68 61 6e 64 73 68 61 6b 65 20 77 61 73 0a 73 75 handshake was.su
40e0: 63 63 65 73 73 66 75 6c 5c 26 2e 20 49 66 20 74 ccessful\&. If t
40f0: 68 65 20 68 61 6e 64 73 68 61 6b 65 20 66 61 69 he handshake fai
4100: 6c 65 64 2c 20 61 6e 20 65 72 72 6f 72 20 77 69 led, an error wi
4110: 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 5c 26 ll be returned\&
4120: 2e 0a 2e 54 50 0a 5c 66 42 74 6c 73 3a 3a 73 74 ...TP.\fBtls::st
4130: 61 74 75 73 5c 66 52 20 3f 5c 66 42 2d 6c 6f 63 atus\fR ?\fB-loc
4140: 61 6c 5c 66 52 3f 20 5c 66 49 63 68 61 6e 6e 65 al\fR? \fIchanne
4150: 6c 5c 66 52 0a 52 65 74 75 72 6e 73 20 74 68 65 l\fR.Returns the
4160: 20 63 75 72 72 65 6e 74 20 73 74 61 74 75 73 20 current status
4170: 6f 66 20 61 6e 20 53 53 4c 20 63 68 61 6e 6e 65 of an SSL channe
4180: 6c 5c 26 2e 20 54 68 65 20 72 65 73 75 6c 74 20 l\&. The result
4190: 69 73 20 61 20 6c 69 73 74 20 6f 66 20 6b 65 79 is a list of key
41a0: 2d 76 61 6c 75 65 0a 70 61 69 72 73 20 64 65 73 -value.pairs des
41b0: 63 72 69 62 69 6e 67 20 74 68 65 20 53 53 4c 2c cribing the SSL,
41c0: 20 63 65 72 74 69 66 69 63 61 74 65 2c 20 61 6e certificate, an
41d0: 64 20 63 65 72 74 69 66 69 63 61 74 65 20 76 65 d certificate ve
41e0: 72 69 66 69 63 61 74 69 6f 6e 20 73 74 61 74 75 rification statu
41f0: 73 5c 26 2e 20 49 66 0a 74 68 65 20 53 53 4c 20 s\&. If.the SSL
4200: 68 61 6e 64 73 68 61 6b 65 20 68 61 73 20 6e 6f handshake has no
4210: 74 20 79 65 74 20 63 6f 6d 70 6c 65 74 65 64 2c t yet completed,
4220: 20 61 6e 20 65 6d 70 74 79 20 6c 69 73 74 20 69 an empty list i
4230: 73 20 72 65 74 75 72 6e 65 64 5c 26 2e 20 49 66 s returned\&. If
4240: 20 74 68 65 0a 5c 66 42 2d 6c 6f 63 61 6c 5c 66 the.\fB-local\f
4250: 52 20 6f 70 74 69 6f 6e 20 69 73 20 73 70 65 63 R option is spec
4260: 69 66 69 65 64 2c 20 74 68 65 6e 20 74 68 65 20 ified, then the
4270: 6c 6f 63 61 6c 20 63 65 72 74 69 66 69 63 61 74 local certificat
4280: 65 20 69 73 20 75 73 65 64 5c 26 2e 20 52 65 74 e is used\&. Ret
4290: 75 72 6e 65 64 0a 76 61 6c 75 65 73 20 69 6e 63 urned.values inc
42a0: 6c 75 64 65 3a 0a 2e 73 70 0a 53 53 4c 20 53 74 lude:..sp.SSL St
42b0: 61 74 75 73 0a 2e 52 53 0a 2e 54 50 0a 5c 66 42 atus..RS..TP.\fB
42c0: 61 6c 70 6e 5c 66 52 20 5c 66 49 70 72 6f 74 6f alpn\fR \fIproto
42d0: 63 6f 6c 5c 66 52 0a 54 68 65 20 70 72 6f 74 6f col\fR.The proto
42e0: 63 6f 6c 20 73 65 6c 65 63 74 65 64 20 61 66 74 col selected aft
42f0: 65 72 20 41 70 70 6c 69 63 61 74 69 6f 6e 2d 4c er Application-L
4300: 61 79 65 72 20 50 72 6f 74 6f 63 6f 6c 20 4e 65 ayer Protocol Ne
4310: 67 6f 74 69 61 74 69 6f 6e 20 28 41 4c 50 4e 29 gotiation (ALPN)
4320: 5c 26 2e 0a 2e 54 50 0a 5c 66 42 63 69 70 68 65 \&...TP.\fBciphe
4330: 72 5c 66 52 20 5c 66 49 63 69 70 68 65 72 5c 66 r\fR \fIcipher\f
4340: 52 0a 54 68 65 20 63 75 72 72 65 6e 74 20 63 69 R.The current ci
4350: 70 68 65 72 20 69 6e 20 75 73 65 20 66 6f 72 20 pher in use for
4360: 74 68 65 20 73 65 73 73 69 6f 6e 5c 26 2e 0a 2e the session\&...
4370: 54 50 0a 5c 66 42 70 65 65 72 6e 61 6d 65 5c 66 TP.\fBpeername\f
4380: 52 20 5c 66 49 6e 61 6d 65 5c 66 52 0a 54 68 65 R \fIname\fR.The
4390: 20 70 65 65 72 6e 61 6d 65 20 66 72 6f 6d 20 74 peername from t
43a0: 68 65 20 63 65 72 74 69 66 69 63 61 74 65 5c 26 he certificate\&
43b0: 2e 0a 2e 54 50 0a 5c 66 42 70 72 6f 74 6f 63 6f ...TP.\fBprotoco
43c0: 6c 5c 66 52 20 5c 66 49 76 65 72 73 69 6f 6e 5c l\fR \fIversion\
43d0: 66 52 0a 54 68 65 20 70 72 6f 74 6f 63 6f 6c 20 fR.The protocol
43e0: 76 65 72 73 69 6f 6e 20 75 73 65 64 20 66 6f 72 version used for
43f0: 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 3a the connection:
4400: 20 53 53 4c 32 2c 20 53 53 4c 33 2c 20 54 4c 53 SSL2, SSL3, TLS
4410: 31 2c 20 54 4c 53 31 5c 26 2e 31 2c 20 54 4c 53 1, TLS1\&.1, TLS
4420: 31 5c 26 2e 32 2c 20 54 4c 53 31 5c 26 2e 33 2c 1\&.2, TLS1\&.3,
4430: 20 6f 72 20 75 6e 6b 6e 6f 77 6e 5c 26 2e 0a 2e or unknown\&...
4440: 54 50 0a 5c 66 42 73 62 69 74 73 5c 66 52 20 5c TP.\fBsbits\fR \
4450: 66 49 6e 5c 66 52 0a 54 68 65 20 6e 75 6d 62 65 fIn\fR.The numbe
4460: 72 20 6f 66 20 62 69 74 73 20 75 73 65 64 20 66 r of bits used f
4470: 6f 72 20 74 68 65 20 73 65 73 73 69 6f 6e 20 6b or the session k
4480: 65 79 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 69 67 ey\&...TP.\fBsig
4490: 6e 61 74 75 72 65 48 61 73 68 41 6c 67 6f 72 69 natureHashAlgori
44a0: 74 68 6d 5c 66 52 20 5c 66 49 61 6c 67 6f 72 69 thm\fR \fIalgori
44b0: 74 68 6d 5c 66 52 0a 54 68 65 20 73 69 67 6e 61 thm\fR.The signa
44c0: 74 75 72 65 20 68 61 73 68 20 61 6c 67 6f 72 69 ture hash algori
44d0: 74 68 6d 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 69 thm\&...TP.\fBsi
44e0: 67 6e 61 74 75 72 65 54 79 70 65 5c 66 52 20 5c gnatureType\fR \
44f0: 66 49 74 79 70 65 5c 66 52 0a 54 68 65 20 73 69 fItype\fR.The si
4500: 67 6e 61 74 75 72 65 20 74 79 70 65 20 76 61 6c gnature type val
4510: 75 65 5c 26 2e 0a 2e 54 50 0a 5c 66 42 76 65 72 ue\&...TP.\fBver
4520: 69 66 79 44 65 70 74 68 5c 66 52 20 5c 66 49 6e ifyDepth\fR \fIn
4530: 5c 66 52 0a 4d 61 78 69 6d 75 6d 20 64 65 70 74 \fR.Maximum dept
4540: 68 20 66 6f 72 20 74 68 65 20 63 65 72 74 69 66 h for the certif
4550: 69 63 61 74 65 20 63 68 61 69 6e 20 76 65 72 69 icate chain veri
4560: 66 69 63 61 74 69 6f 6e 5c 26 2e 20 44 65 66 61 fication\&. Defa
4570: 75 6c 74 20 69 73 20 2d 31 2c 20 74 6f 20 63 68 ult is -1, to ch
4580: 65 63 6b 20 61 6c 6c 5c 26 2e 0a 2e 54 50 0a 5c eck all\&...TP.\
4590: 66 42 76 65 72 69 66 79 4d 6f 64 65 5c 66 52 20 fBverifyMode\fR
45a0: 5c 66 49 6c 69 73 74 5c 66 52 0a 4c 69 73 74 20 \fIlist\fR.List
45b0: 6f 66 20 63 65 72 74 69 66 69 63 61 74 65 20 76 of certificate v
45c0: 65 72 69 66 69 63 61 74 69 6f 6e 20 6d 6f 64 65 erification mode
45d0: 73 5c 26 2e 0a 2e 54 50 0a 5c 66 42 76 65 72 69 s\&...TP.\fBveri
45e0: 66 79 52 65 73 75 6c 74 5c 66 52 20 5c 66 49 72 fyResult\fR \fIr
45f0: 65 73 75 6c 74 5c 66 52 0a 43 65 72 74 69 66 69 esult\fR.Certifi
4600: 63 61 74 65 20 76 65 72 69 66 69 63 61 74 69 6f cate verificatio
4610: 6e 20 72 65 73 75 6c 74 5c 26 2e 0a 2e 54 50 0a n result\&...TP.
4620: 5c 66 42 63 61 5f 6e 61 6d 65 73 5c 66 52 20 5c \fBca_names\fR \
4630: 66 49 6c 69 73 74 5c 66 52 0a 4c 69 73 74 20 6f fIlist\fR.List o
4640: 66 20 74 68 65 20 43 65 72 74 69 66 69 63 61 74 f the Certificat
4650: 65 20 41 75 74 68 6f 72 69 74 69 65 73 20 75 73 e Authorities us
4660: 65 64 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 ed to create the
4670: 20 63 65 72 74 69 66 69 63 61 74 65 5c 26 2e 0a certificate\&..
4680: 2e 52 45 0a 2e 49 50 0a 43 65 72 74 69 66 69 63 .RE..IP.Certific
4690: 61 74 65 20 53 74 61 74 75 73 0a 2e 52 53 0a 2e ate Status..RS..
46a0: 54 50 0a 5c 66 42 61 6c 6c 5c 66 52 20 5c 66 49 TP.\fBall\fR \fI
46b0: 73 74 72 69 6e 67 5c 66 52 0a 44 75 6d 70 20 6f string\fR.Dump o
46c0: 66 20 61 6c 6c 20 63 65 72 74 69 66 69 63 61 74 f all certificat
46d0: 65 20 69 6e 66 6f 5c 26 2e 0a 2e 54 50 0a 5c 66 e info\&...TP.\f
46e0: 42 76 65 72 73 69 6f 6e 5c 66 52 20 5c 66 49 76 Bversion\fR \fIv
46f0: 61 6c 75 65 5c 66 52 0a 54 68 65 20 63 65 72 74 alue\fR.The cert
4700: 69 66 69 63 61 74 65 20 76 65 72 73 69 6f 6e 5c ificate version\
4710: 26 2e 0a 2e 54 50 0a 5c 66 42 73 65 72 69 61 6c &...TP.\fBserial
4720: 4e 75 6d 62 65 72 5c 66 52 20 5c 66 49 73 74 72 Number\fR \fIstr
4730: 69 6e 67 5c 66 52 0a 54 68 65 20 73 65 72 69 61 ing\fR.The seria
4740: 6c 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 20 l number of the
4750: 63 65 72 74 69 66 69 63 61 74 65 20 61 73 20 61 certificate as a
4760: 20 68 65 78 20 73 74 72 69 6e 67 5c 26 2e 0a 2e hex string\&...
4770: 54 50 0a 5c 66 42 73 69 67 6e 61 74 75 72 65 5c TP.\fBsignature\
4780: 66 52 20 5c 66 49 61 6c 67 6f 72 69 74 68 6d 5c fR \fIalgorithm\
4790: 66 52 0a 43 69 70 68 65 72 20 61 6c 67 6f 72 69 fR.Cipher algori
47a0: 74 68 6d 20 75 73 65 64 20 66 6f 72 20 63 65 72 thm used for cer
47b0: 74 69 66 69 63 61 74 65 20 73 69 67 6e 61 74 75 tificate signatu
47c0: 72 65 5c 26 2e 0a 2e 54 50 0a 5c 66 42 69 73 73 re\&...TP.\fBiss
47d0: 75 65 72 5c 66 52 20 5c 66 49 73 74 72 69 6e 67 uer\fR \fIstring
47e0: 5c 66 52 0a 54 68 65 20 64 69 73 74 69 6e 67 75 \fR.The distingu
47f0: 69 73 68 65 64 20 6e 61 6d 65 20 28 44 4e 29 20 ished name (DN)
4800: 6f 66 20 74 68 65 20 63 65 72 74 69 66 69 63 61 of the certifica
4810: 74 65 20 69 73 73 75 65 72 5c 26 2e 0a 2e 54 50 te issuer\&...TP
4820: 0a 5c 66 42 6e 6f 74 42 65 66 6f 72 65 5c 66 52 .\fBnotBefore\fR
4830: 20 5c 66 49 64 61 74 65 5c 66 52 0a 54 68 65 20 \fIdate\fR.The
4840: 62 65 67 69 6e 6e 69 6e 67 20 64 61 74 65 20 6f beginning date o
4850: 66 20 74 68 65 20 63 65 72 74 69 66 69 63 61 74 f the certificat
4860: 65 20 76 61 6c 69 64 69 74 79 5c 26 2e 0a 2e 54 e validity\&...T
4870: 50 0a 5c 66 42 6e 6f 74 41 66 74 65 72 5c 66 52 P.\fBnotAfter\fR
4880: 20 5c 66 49 64 61 74 65 5c 66 52 0a 54 68 65 20 \fIdate\fR.The
4890: 65 78 70 69 72 61 74 69 6f 6e 20 64 61 74 65 20 expiration date
48a0: 6f 66 20 74 68 65 20 63 65 72 74 69 66 69 63 61 of the certifica
48b0: 74 65 20 76 61 6c 69 64 69 74 79 5c 26 2e 0a 2e te validity\&...
48c0: 54 50 0a 5c 66 42 73 75 62 6a 65 63 74 5c 66 52 TP.\fBsubject\fR
48d0: 20 5c 66 49 73 74 72 69 6e 67 5c 66 52 0a 54 68 \fIstring\fR.Th
48e0: 65 20 64 69 73 74 69 6e 67 75 69 73 68 65 64 20 e distinguished
48f0: 6e 61 6d 65 20 28 44 4e 29 20 6f 66 20 74 68 65 name (DN) of the
4900: 20 63 65 72 74 69 66 69 63 61 74 65 20 73 75 62 certificate sub
4910: 6a 65 63 74 5c 26 2e 20 46 69 65 6c 64 73 20 69 ject\&. Fields i
4920: 6e 63 6c 75 64 65 3a 20 43 6f 6d 6d 6f 6e 0a 4e nclude: Common.N
4930: 61 6d 65 20 28 43 4e 29 2c 20 4f 72 67 61 6e 69 ame (CN), Organi
4940: 7a 61 74 69 6f 6e 20 28 4f 29 2c 20 4c 6f 63 61 zation (O), Loca
4950: 6c 69 74 79 20 6f 72 20 43 69 74 79 20 28 4c 29 lity or City (L)
4960: 2c 20 53 74 61 74 65 20 6f 72 20 50 72 6f 76 69 , State or Provi
4970: 6e 63 65 20 28 53 29 2c 20 61 6e 64 0a 43 6f 75 nce (S), and.Cou
4980: 6e 74 72 79 20 4e 61 6d 65 20 28 43 29 5c 26 2e ntry Name (C)\&.
4990: 0a 2e 54 50 0a 5c 66 42 69 73 73 75 65 72 55 6e ..TP.\fBissuerUn
49a0: 69 71 75 65 49 44 5c 66 52 20 5c 66 49 73 74 72 iqueID\fR \fIstr
49b0: 69 6e 67 5c 66 52 0a 54 68 65 20 69 73 73 75 65 ing\fR.The issue
49c0: 72 20 75 6e 69 71 75 65 20 69 64 5c 26 2e 0a 2e r unique id\&...
49d0: 54 50 0a 5c 66 42 73 75 62 6a 65 63 74 55 6e 69 TP.\fBsubjectUni
49e0: 71 75 65 49 44 5c 66 52 20 5c 66 49 73 74 72 69 queID\fR \fIstri
49f0: 6e 67 5c 66 52 0a 54 68 65 20 73 75 62 6a 65 63 ng\fR.The subjec
4a00: 74 20 75 6e 69 71 75 65 20 69 64 5c 26 2e 0a 2e t unique id\&...
4a10: 54 50 0a 5c 66 42 6e 75 6d 5f 65 78 74 65 6e 73 TP.\fBnum_extens
4a20: 69 6f 6e 73 5c 66 52 20 5c 66 49 6e 5c 66 52 0a ions\fR \fIn\fR.
4a30: 4e 75 6d 62 65 72 20 6f 66 20 63 65 72 74 69 66 Number of certif
4a40: 69 63 61 74 65 20 65 78 74 65 6e 73 69 6f 6e 73 icate extensions
4a50: 5c 26 2e 0a 2e 54 50 0a 5c 66 42 65 78 74 65 6e \&...TP.\fBexten
4a60: 73 69 6f 6e 73 5c 66 52 20 5c 66 49 6c 69 73 74 sions\fR \fIlist
4a70: 5c 66 52 0a 4c 69 73 74 20 6f 66 20 63 65 72 74 \fR.List of cert
4a80: 69 66 69 63 61 74 65 20 65 78 74 65 6e 73 69 6f ificate extensio
4a90: 6e 20 6e 61 6d 65 73 5c 26 2e 0a 2e 54 50 0a 5c n names\&...TP.\
4aa0: 66 42 61 75 74 68 6f 72 69 74 79 4b 65 79 49 64 fBauthorityKeyId
4ab0: 65 6e 74 69 66 69 65 72 5c 66 52 20 5c 66 49 73 entifier\fR \fIs
4ac0: 74 72 69 6e 67 5c 66 52 0a 41 75 74 68 6f 72 69 tring\fR.Authori
4ad0: 74 79 20 4b 65 79 20 49 64 65 6e 74 69 66 69 65 ty Key Identifie
4ae0: 72 20 28 41 4b 49 29 20 6f 66 20 74 68 65 20 49 r (AKI) of the I
4af0: 73 73 75 69 6e 67 20 43 41 20 63 65 72 74 69 66 ssuing CA certif
4b00: 69 63 61 74 65 20 74 68 61 74 20 73 69 67 6e 65 icate that signe
4b10: 64 20 74 68 65 0a 53 53 4c 20 63 65 72 74 69 66 d the.SSL certif
4b20: 69 63 61 74 65 20 61 73 20 61 20 68 65 78 20 73 icate as a hex s
4b30: 74 72 69 6e 67 5c 26 2e 20 54 68 69 73 20 76 61 tring\&. This va
4b40: 6c 75 65 20 6d 61 74 63 68 65 73 20 74 68 65 20 lue matches the
4b50: 53 4b 49 20 76 61 6c 75 65 20 6f 66 20 74 68 65 SKI value of the
4b60: 0a 49 6e 74 65 72 6d 65 64 69 61 74 65 20 43 41 .Intermediate CA
4b70: 20 63 65 72 74 69 66 69 63 61 74 65 5c 26 2e 0a certificate\&..
4b80: 2e 54 50 0a 5c 66 42 73 75 62 6a 65 63 74 4b 65 .TP.\fBsubjectKe
4b90: 79 49 64 65 6e 74 69 66 69 65 72 5c 66 52 20 5c yIdentifier\fR \
4ba0: 66 49 73 74 72 69 6e 67 5c 66 52 0a 53 75 62 6a fIstring\fR.Subj
4bb0: 65 63 74 20 4b 65 79 20 49 64 65 6e 74 69 66 69 ect Key Identifi
4bc0: 65 72 20 28 53 4b 49 29 20 68 61 73 68 20 6f 66 er (SKI) hash of
4bd0: 20 74 68 65 20 70 75 62 6c 69 63 20 6b 65 79 20 the public key
4be0: 69 6e 73 69 64 65 20 74 68 65 20 63 65 72 74 69 inside the certi
4bf0: 66 69 63 61 74 65 20 61 73 20 61 0a 68 65 78 20 ficate as a.hex
4c00: 73 74 72 69 6e 67 5c 26 2e 20 55 73 65 64 20 74 string\&. Used t
4c10: 6f 20 69 64 65 6e 74 69 66 79 20 63 65 72 74 69 o identify certi
4c20: 66 69 63 61 74 65 73 20 74 68 61 74 20 63 6f 6e ficates that con
4c30: 74 61 69 6e 20 61 20 70 61 72 74 69 63 75 6c 61 tain a particula
4c40: 72 20 70 75 62 6c 69 63 20 6b 65 79 5c 26 2e 0a r public key\&..
4c50: 2e 54 50 0a 5c 66 42 73 75 62 6a 65 63 74 41 6c .TP.\fBsubjectAl
4c60: 74 4e 61 6d 65 5c 66 52 20 5c 66 49 6c 69 73 74 tName\fR \fIlist
4c70: 5c 66 52 0a 4c 69 73 74 20 6f 66 20 61 6c 6c 20 \fR.List of all
4c80: 6f 66 20 74 68 65 20 53 75 62 6a 65 63 74 20 41 of the Subject A
4c90: 6c 74 65 72 6e 61 74 69 76 65 20 4e 61 6d 65 73 lternative Names
4ca0: 20 28 53 41 4e 29 20 69 6e 63 6c 75 64 69 6e 67 (SAN) including
4cb0: 20 64 6f 6d 61 69 6e 20 6e 61 6d 65 73 2c 20 73 domain names, s
4cc0: 75 62 0a 64 6f 6d 61 69 6e 73 2c 20 61 6e 64 20 ub.domains, and
4cd0: 49 50 20 61 64 64 72 65 73 73 65 73 20 74 68 61 IP addresses tha
4ce0: 74 20 61 72 65 20 73 65 63 75 72 65 64 20 62 79 t are secured by
4cf0: 20 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 the certificate
4d00: 5c 26 2e 0a 2e 54 50 0a 5c 66 42 6f 63 73 70 5c \&...TP.\fBocsp\
4d10: 66 52 20 5c 66 49 6c 69 73 74 5c 66 52 0a 4c 69 fR \fIlist\fR.Li
4d20: 73 74 20 6f 66 20 61 6c 6c 20 4f 6e 6c 69 6e 65 st of all Online
4d30: 20 43 65 72 74 69 66 69 63 61 74 65 20 53 74 61 Certificate Sta
4d40: 74 75 73 20 50 72 6f 74 6f 63 6f 6c 20 28 4f 43 tus Protocol (OC
4d50: 53 50 29 20 55 52 4c 73 20 74 68 61 74 20 63 61 SP) URLs that ca
4d60: 6e 20 62 65 20 75 73 65 64 20 74 6f 0a 63 68 65 n be used to.che
4d70: 63 6b 20 74 68 65 20 76 61 6c 69 64 69 74 79 20 ck the validity
4d80: 6f 66 20 74 68 69 73 20 63 65 72 74 69 66 69 63 of this certific
4d90: 61 74 65 5c 26 2e 0a 2e 54 50 0a 5c 66 42 63 65 ate\&...TP.\fBce
4da0: 72 74 69 66 69 63 61 74 65 5c 66 52 20 5c 66 49 rtificate\fR \fI
4db0: 63 65 72 74 5c 66 52 0a 54 68 65 20 50 45 4d 20 cert\fR.The PEM
4dc0: 65 6e 63 6f 64 65 64 20 63 65 72 74 69 66 69 63 encoded certific
4dd0: 61 74 65 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 69 ate\&...TP.\fBsi
4de0: 67 6e 61 74 75 72 65 41 6c 67 6f 72 69 74 68 6d gnatureAlgorithm
4df0: 5c 66 52 20 5c 66 49 61 6c 67 6f 72 69 74 68 6d \fR \fIalgorithm
4e00: 5c 66 52 0a 43 69 70 68 65 72 20 61 6c 67 6f 72 \fR.Cipher algor
4e10: 69 74 68 6d 20 75 73 65 64 20 66 6f 72 20 74 68 ithm used for th
4e20: 65 20 63 65 72 74 69 66 69 63 61 74 65 20 73 69 e certificate si
4e30: 67 6e 61 74 75 72 65 5c 26 2e 0a 2e 54 50 0a 5c gnature\&...TP.\
4e40: 66 42 73 69 67 6e 61 74 75 72 65 56 61 6c 75 65 fBsignatureValue
4e50: 5c 66 52 20 5c 66 49 73 74 72 69 6e 67 5c 66 52 \fR \fIstring\fR
4e60: 0a 43 65 72 74 69 66 69 63 61 74 65 20 73 69 67 .Certificate sig
4e70: 6e 61 74 75 72 65 20 61 73 20 61 20 68 65 78 20 nature as a hex
4e80: 73 74 72 69 6e 67 5c 26 2e 0a 2e 54 50 0a 5c 66 string\&...TP.\f
4e90: 42 73 69 67 6e 61 74 75 72 65 44 69 67 65 73 74 BsignatureDigest
4ea0: 5c 66 52 20 5c 66 49 76 65 72 73 69 6f 6e 5c 66 \fR \fIversion\f
4eb0: 52 0a 43 65 72 74 69 66 69 63 61 74 65 20 73 69 R.Certificate si
4ec0: 67 6e 69 6e 67 20 64 69 67 65 73 74 20 61 73 20 gning digest as
4ed0: 61 20 68 65 78 20 73 74 72 69 6e 67 5c 26 2e 0a a hex string\&..
4ee0: 2e 54 50 0a 5c 66 42 70 75 62 6c 69 63 4b 65 79 .TP.\fBpublicKey
4ef0: 41 6c 67 6f 72 69 74 68 6d 5c 66 52 20 5c 66 49 Algorithm\fR \fI
4f00: 61 6c 67 6f 72 69 74 68 6d 5c 66 52 0a 43 65 72 algorithm\fR.Cer
4f10: 74 69 66 69 63 61 74 65 20 73 69 67 6e 61 74 75 tificate signatu
4f20: 72 65 20 70 75 62 6c 69 63 20 6b 65 79 20 61 6c re public key al
4f30: 67 6f 72 69 74 68 6d 5c 26 2e 0a 2e 54 50 0a 5c gorithm\&...TP.\
4f40: 66 42 70 75 62 6c 69 63 4b 65 79 5c 66 52 20 5c fBpublicKey\fR \
4f50: 66 49 73 74 72 69 6e 67 5c 66 52 0a 43 65 72 74 fIstring\fR.Cert
4f60: 69 66 69 63 61 74 65 20 73 69 67 6e 61 74 75 72 ificate signatur
4f70: 65 20 70 75 62 6c 69 63 20 6b 65 79 20 61 73 20 e public key as
4f80: 61 20 68 65 78 20 73 74 72 69 6e 67 5c 26 2e 0a a hex string\&..
4f90: 2e 54 50 0a 5c 66 42 62 69 74 73 5c 66 52 20 5c .TP.\fBbits\fR \
4fa0: 66 49 6e 5c 66 52 0a 4e 75 6d 62 65 72 20 6f 66 fIn\fR.Number of
4fb0: 20 62 69 74 73 20 75 73 65 64 20 66 6f 72 20 63 bits used for c
4fc0: 65 72 74 69 66 69 63 61 74 65 20 73 69 67 6e 61 ertificate signa
4fd0: 74 75 72 65 20 6b 65 79 5c 26 2e 0a 2e 54 50 0a ture key\&...TP.
4fe0: 5c 66 42 73 65 6c 66 5f 73 69 67 6e 65 64 5c 66 \fBself_signed\f
4ff0: 52 20 5c 66 49 62 6f 6f 6c 65 61 6e 5c 66 52 0a R \fIboolean\fR.
5000: 57 68 65 74 68 65 72 20 74 68 65 20 63 65 72 74 Whether the cert
5010: 69 66 69 63 61 74 65 20 73 69 67 6e 61 74 75 72 ificate signatur
5020: 65 20 69 73 20 73 65 6c 66 20 73 69 67 6e 65 64 e is self signed
5030: 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 68 61 31 5f \&...TP.\fBsha1_
5040: 68 61 73 68 5c 66 52 20 5c 66 49 68 61 73 68 5c hash\fR \fIhash\
5050: 66 52 0a 54 68 65 20 53 48 41 31 20 68 61 73 68 fR.The SHA1 hash
5060: 20 6f 66 20 74 68 65 20 63 65 72 74 69 66 69 63 of the certific
5070: 61 74 65 20 61 73 20 61 20 68 65 78 20 73 74 72 ate as a hex str
5080: 69 6e 67 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 68 ing\&...TP.\fBsh
5090: 61 32 35 36 5f 68 61 73 68 5c 66 52 20 5c 66 49 a256_hash\fR \fI
50a0: 68 61 73 68 5c 66 52 0a 54 68 65 20 53 48 41 32 hash\fR.The SHA2
50b0: 35 36 20 68 61 73 68 20 6f 66 20 74 68 65 20 63 56 hash of the c
50c0: 65 72 74 69 66 69 63 61 74 65 20 61 73 20 61 20 ertificate as a
50d0: 68 65 78 20 73 74 72 69 6e 67 5c 26 2e 0a 2e 52 hex string\&...R
50e0: 45 0a 2e 54 50 0a 5c 66 42 74 6c 73 3a 3a 63 6f E..TP.\fBtls::co
50f0: 6e 6e 65 63 74 69 6f 6e 5c 66 52 20 5c 66 49 63 nnection\fR \fIc
5100: 68 61 6e 6e 65 6c 5c 66 52 0a 52 65 74 75 72 6e hannel\fR.Return
5110: 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f s the current co
5120: 6e 6e 65 63 74 69 6f 6e 20 73 74 61 74 75 73 20 nnection status
5130: 6f 66 20 61 6e 20 53 53 4c 20 63 68 61 6e 6e 65 of an SSL channe
5140: 6c 5c 26 2e 20 54 68 65 20 72 65 73 75 6c 74 20 l\&. The result
5150: 69 73 20 61 20 6c 69 73 74 0a 6f 66 20 6b 65 79 is a list.of key
5160: 2d 76 61 6c 75 65 20 70 61 69 72 73 20 64 65 73 -value pairs des
5170: 63 72 69 62 69 6e 67 20 74 68 65 20 63 6f 6e 6e cribing the conn
5180: 65 63 74 69 6f 6e 5c 26 2e 20 52 65 74 75 72 6e ection\&. Return
5190: 65 64 20 76 61 6c 75 65 73 20 69 6e 63 6c 75 64 ed values includ
51a0: 65 3a 0a 2e 73 70 0a 53 53 4c 20 53 74 61 74 75 e:..sp.SSL Statu
51b0: 73 0a 2e 52 53 0a 2e 54 50 0a 5c 66 42 73 74 61 s..RS..TP.\fBsta
51c0: 74 65 5c 66 52 20 5c 66 49 73 74 61 74 65 5c 66 te\fR \fIstate\f
51d0: 52 0a 53 74 61 74 65 20 6f 66 20 74 68 65 20 63 R.State of the c
51e0: 6f 6e 6e 65 63 74 69 6f 6e 5c 26 2e 0a 2e 54 50 onnection\&...TP
51f0: 0a 5c 66 42 73 65 72 76 65 72 6e 61 6d 65 5c 66 .\fBservername\f
5200: 52 20 5c 66 49 6e 61 6d 65 5c 66 52 0a 54 68 65 R \fIname\fR.The
5210: 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6f 6e name of the con
5220: 6e 65 63 74 65 64 20 74 6f 20 73 65 72 76 65 72 nected to server
5230: 5c 26 2e 0a 2e 54 50 0a 5c 66 42 70 72 6f 74 6f \&...TP.\fBproto
5240: 63 6f 6c 5c 66 52 20 5c 66 49 76 65 72 73 69 6f col\fR \fIversio
5250: 6e 5c 66 52 0a 54 68 65 20 70 72 6f 74 6f 63 6f n\fR.The protoco
5260: 6c 20 76 65 72 73 69 6f 6e 20 75 73 65 64 20 66 l version used f
5270: 6f 72 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f or the connectio
5280: 6e 3a 20 53 53 4c 32 2c 20 53 53 4c 33 2c 20 54 n: SSL2, SSL3, T
5290: 4c 53 31 2c 20 54 4c 53 31 5c 26 2e 31 2c 20 54 LS1, TLS1\&.1, T
52a0: 4c 53 31 5c 26 2e 32 2c 20 54 4c 53 31 5c 26 2e LS1\&.2, TLS1\&.
52b0: 33 2c 20 6f 72 20 75 6e 6b 6e 6f 77 6e 5c 26 2e 3, or unknown\&.
52c0: 0a 2e 54 50 0a 5c 66 42 72 65 6e 65 67 6f 74 69 ..TP.\fBrenegoti
52d0: 61 74 69 6f 6e 5f 61 6c 6c 6f 77 65 64 5c 66 52 ation_allowed\fR
52e0: 20 5c 66 49 62 6f 6f 6c 65 61 6e 5c 66 52 0a 57 \fIboolean\fR.W
52f0: 68 65 74 68 65 72 20 70 72 6f 74 6f 63 6f 6c 20 hether protocol
5300: 72 65 6e 65 67 6f 74 69 61 74 69 6f 6e 20 69 73 renegotiation is
5310: 20 73 75 70 70 6f 72 74 65 64 20 6f 72 20 6e 6f supported or no
5320: 74 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 65 63 75 t\&...TP.\fBsecu
5330: 72 69 74 79 5f 6c 65 76 65 6c 5c 66 52 20 5c 66 rity_level\fR \f
5340: 49 6c 65 76 65 6c 5c 66 52 0a 54 68 65 20 73 65 Ilevel\fR.The se
5350: 63 75 72 69 74 79 20 6c 65 76 65 6c 20 75 73 65 curity level use
5360: 64 20 66 6f 72 20 73 65 6c 65 63 74 69 6f 6e 20 d for selection
5370: 6f 66 20 63 69 70 68 65 72 73 2c 20 6b 65 79 20 of ciphers, key
5380: 73 69 7a 65 2c 20 65 74 63 5c 26 2e 0a 2e 54 50 size, etc\&...TP
5390: 0a 5c 66 42 73 65 73 73 69 6f 6e 5f 72 65 75 73 .\fBsession_reus
53a0: 65 64 5c 66 52 20 5c 66 49 62 6f 6f 6c 65 61 6e ed\fR \fIboolean
53b0: 5c 66 52 0a 57 68 65 74 68 65 72 20 74 68 65 20 \fR.Whether the
53c0: 73 65 73 73 69 6f 6e 20 68 61 73 20 62 65 65 6e session has been
53d0: 20 72 65 75 73 65 64 20 6f 72 20 6e 6f 74 5c 26 reused or not\&
53e0: 2e 0a 2e 54 50 0a 5c 66 42 69 73 5f 73 65 72 76 ...TP.\fBis_serv
53f0: 65 72 5c 66 52 20 5c 66 49 62 6f 6f 6c 65 61 6e er\fR \fIboolean
5400: 5c 66 52 0a 57 68 65 74 68 65 72 20 74 68 65 20 \fR.Whether the
5410: 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 73 20 63 6f connection is co
5420: 6e 66 69 67 75 72 65 64 20 61 73 20 61 20 73 65 nfigured as a se
5430: 72 76 65 72 20 28 31 29 20 6f 72 20 63 6c 69 65 rver (1) or clie
5440: 6e 74 20 28 30 29 5c 26 2e 0a 2e 54 50 0a 5c 66 nt (0)\&...TP.\f
5450: 42 63 6f 6d 70 72 65 73 73 69 6f 6e 5c 66 52 20 Bcompression\fR
5460: 5c 66 49 6d 6f 64 65 5c 66 52 0a 43 6f 6d 70 72 \fImode\fR.Compr
5470: 65 73 73 69 6f 6e 20 6d 65 74 68 6f 64 5c 26 2e ession method\&.
5480: 0a 2e 54 50 0a 5c 66 42 65 78 70 61 6e 73 69 6f ..TP.\fBexpansio
5490: 6e 5c 66 52 20 5c 66 49 6d 6f 64 65 5c 66 52 0a n\fR \fImode\fR.
54a0: 45 78 70 61 6e 73 69 6f 6e 20 6d 65 74 68 6f 64 Expansion method
54b0: 5c 26 2e 0a 2e 54 50 0a 5c 66 42 63 61 4c 69 73 \&...TP.\fBcaLis
54c0: 74 5c 66 52 20 5c 66 49 6c 69 73 74 5c 66 52 0a t\fR \fIlist\fR.
54d0: 4c 69 73 74 20 6f 66 20 43 65 72 74 69 66 69 63 List of Certific
54e0: 61 74 65 20 41 75 74 68 6f 72 69 74 69 65 73 20 ate Authorities
54f0: 28 43 41 29 20 66 6f 72 20 58 5c 26 2e 35 30 39 (CA) for X\&.509
5500: 20 63 65 72 74 69 66 69 63 61 74 65 5c 26 2e 0a certificate\&..
5510: 2e 52 45 0a 2e 49 50 0a 43 69 70 68 65 72 20 49 .RE..IP.Cipher I
5520: 6e 66 6f 0a 2e 52 53 0a 2e 54 50 0a 5c 66 42 63 nfo..RS..TP.\fBc
5530: 69 70 68 65 72 5c 66 52 20 5c 66 49 63 69 70 68 ipher\fR \fIciph
5540: 65 72 5c 66 52 0a 54 68 65 20 63 75 72 72 65 6e er\fR.The curren
5550: 74 20 63 69 70 68 65 72 20 69 6e 20 75 73 65 20 t cipher in use
5560: 66 6f 72 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 for the connecti
5570: 6f 6e 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 74 61 on\&...TP.\fBsta
5580: 6e 64 61 72 64 5f 6e 61 6d 65 5c 66 52 20 5c 66 ndard_name\fR \f
5590: 49 6e 61 6d 65 5c 66 52 0a 54 68 65 20 73 74 61 Iname\fR.The sta
55a0: 6e 64 61 72 64 20 52 46 43 20 6e 61 6d 65 20 6f ndard RFC name o
55b0: 66 20 63 69 70 68 65 72 5c 26 2e 0a 2e 54 50 0a f cipher\&...TP.
55c0: 5c 66 42 61 6c 67 6f 72 69 74 68 6d 5f 62 69 74 \fBalgorithm_bit
55d0: 73 5c 66 52 20 5c 66 49 6e 5c 66 52 0a 54 68 65 s\fR \fIn\fR.The
55e0: 20 6e 75 6d 62 65 72 20 6f 66 20 70 72 6f 63 65 number of proce
55f0: 73 73 65 64 20 62 69 74 73 20 75 73 65 64 20 66 ssed bits used f
5600: 6f 72 20 63 69 70 68 65 72 5c 26 2e 0a 2e 54 50 or cipher\&...TP
5610: 0a 5c 66 42 73 65 63 72 65 74 5f 62 69 74 73 5c .\fBsecret_bits\
5620: 66 52 20 5c 66 49 6e 5c 66 52 0a 54 68 65 20 6e fR \fIn\fR.The n
5630: 75 6d 62 65 72 20 6f 66 20 73 65 63 72 65 74 20 umber of secret
5640: 62 69 74 73 20 75 73 65 64 20 66 6f 72 20 63 69 bits used for ci
5650: 70 68 65 72 5c 26 2e 0a 2e 54 50 0a 5c 66 42 6d pher\&...TP.\fBm
5660: 69 6e 5f 76 65 72 73 69 6f 6e 5c 66 52 20 5c 66 in_version\fR \f
5670: 49 76 65 72 73 69 6f 6e 5c 66 52 0a 54 68 65 20 Iversion\fR.The
5680: 6d 69 6e 69 6d 75 6d 20 70 72 6f 74 6f 63 6f 6c minimum protocol
5690: 20 76 65 72 73 69 6f 6e 20 66 6f 72 20 63 69 70 version for cip
56a0: 68 65 72 5c 26 2e 0a 2e 54 50 0a 5c 66 42 63 69 her\&...TP.\fBci
56b0: 70 68 65 72 5f 69 73 5f 61 65 61 64 5c 66 52 20 pher_is_aead\fR
56c0: 5c 66 49 62 6f 6f 6c 65 61 6e 5c 66 52 0a 57 68 \fIboolean\fR.Wh
56d0: 65 74 68 65 72 20 74 68 65 20 63 69 70 68 65 72 ether the cipher
56e0: 20 69 73 20 41 75 74 68 65 6e 74 69 63 61 74 65 is Authenticate
56f0: 64 20 45 6e 63 72 79 70 74 69 6f 6e 20 77 69 74 d Encryption wit
5700: 68 20 41 73 73 6f 63 69 61 74 65 64 20 44 61 74 h Associated Dat
5710: 61 20 28 41 45 41 44 29 5c 26 2e 0a 2e 54 50 0a a (AEAD)\&...TP.
5720: 5c 66 42 63 69 70 68 65 72 5f 69 64 5c 66 52 20 \fBcipher_id\fR
5730: 5c 66 49 69 64 5c 66 52 0a 54 68 65 20 4f 70 65 \fIid\fR.The Ope
5740: 6e 53 53 4c 20 63 69 70 68 65 72 20 69 64 5c 26 nSSL cipher id\&
5750: 2e 0a 2e 54 50 0a 5c 66 42 64 65 73 63 72 69 70 ...TP.\fBdescrip
5760: 74 69 6f 6e 5c 66 52 20 5c 66 49 73 74 72 69 6e tion\fR \fIstrin
5770: 67 5c 66 52 0a 41 20 74 65 78 74 20 64 65 73 63 g\fR.A text desc
5780: 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 ription of the c
5790: 69 70 68 65 72 5c 26 2e 0a 2e 54 50 0a 5c 66 42 ipher\&...TP.\fB
57a0: 68 61 6e 64 73 68 61 6b 65 5f 64 69 67 65 73 74 handshake_digest
57b0: 5c 66 52 20 5c 66 49 62 6f 6f 6c 65 61 6e 5c 66 \fR \fIboolean\f
57c0: 52 0a 44 69 67 65 73 74 20 75 73 65 64 20 64 75 R.Digest used du
57d0: 72 69 6e 67 20 68 61 6e 64 73 68 61 6b 65 5c 26 ring handshake\&
57e0: 2e 0a 2e 52 45 0a 2e 49 50 0a 53 65 73 73 69 6f ...RE..IP.Sessio
57f0: 6e 20 49 6e 66 6f 0a 2e 52 53 0a 2e 54 50 0a 5c n Info..RS..TP.\
5800: 66 42 61 6c 70 6e 5c 66 52 20 5c 66 49 70 72 6f fBalpn\fR \fIpro
5810: 74 6f 63 6f 6c 5c 66 52 0a 54 68 65 20 70 72 6f tocol\fR.The pro
5820: 74 6f 63 6f 6c 20 73 65 6c 65 63 74 65 64 20 61 tocol selected a
5830: 66 74 65 72 20 41 70 70 6c 69 63 61 74 69 6f 6e fter Application
5840: 2d 4c 61 79 65 72 20 50 72 6f 74 6f 63 6f 6c 20 -Layer Protocol
5850: 4e 65 67 6f 74 69 61 74 69 6f 6e 20 28 41 4c 50 Negotiation (ALP
5860: 4e 29 5c 26 2e 0a 2e 54 50 0a 5c 66 42 72 65 73 N)\&...TP.\fBres
5870: 75 6d 61 62 6c 65 5c 66 52 20 5c 66 49 62 6f 6f umable\fR \fIboo
5880: 6c 65 61 6e 5c 66 52 0a 57 68 65 74 68 65 72 20 lean\fR.Whether
5890: 74 68 65 20 73 65 73 73 69 6f 6e 20 63 61 6e 20 the session can
58a0: 62 65 20 72 65 73 75 6d 65 64 20 6f 72 20 6e 6f be resumed or no
58b0: 74 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 74 61 72 t\&...TP.\fBstar
58c0: 74 5f 74 69 6d 65 5c 66 52 20 5c 66 49 73 65 63 t_time\fR \fIsec
58d0: 6f 6e 64 73 5c 66 52 0a 54 69 6d 65 20 73 69 6e onds\fR.Time sin
58e0: 63 65 20 73 65 73 73 69 6f 6e 20 73 74 61 72 74 ce session start
58f0: 65 64 20 69 6e 20 73 65 63 6f 6e 64 73 20 73 69 ed in seconds si
5900: 6e 63 65 20 65 70 6f 63 68 5c 26 2e 0a 2e 54 50 nce epoch\&...TP
5910: 0a 5c 66 42 74 69 6d 65 6f 75 74 5c 66 52 20 5c .\fBtimeout\fR \
5920: 66 49 73 65 63 6f 6e 64 73 5c 66 52 0a 4d 61 78 fIseconds\fR.Max
5930: 20 64 75 72 61 74 69 6f 6e 20 6f 66 20 73 65 73 duration of ses
5940: 73 69 6f 6e 20 69 6e 20 73 65 63 6f 6e 64 73 20 sion in seconds
5950: 62 65 66 6f 72 65 20 74 69 6d 65 2d 6f 75 74 5c before time-out\
5960: 26 2e 0a 2e 54 50 0a 5c 66 42 6c 69 66 65 74 69 &...TP.\fBlifeti
5970: 6d 65 5c 66 52 20 5c 66 49 73 65 63 6f 6e 64 73 me\fR \fIseconds
5980: 5c 66 52 0a 53 65 73 73 69 6f 6e 20 74 69 63 6b \fR.Session tick
5990: 65 74 20 6c 69 66 65 74 69 6d 65 20 68 69 6e 74 et lifetime hint
59a0: 20 69 6e 20 73 65 63 6f 6e 64 73 5c 26 2e 0a 2e in seconds\&...
59b0: 54 50 0a 5c 66 42 73 65 73 73 69 6f 6e 5f 69 64 TP.\fBsession_id
59c0: 5c 66 52 20 5c 66 49 62 69 6e 61 72 79 5f 73 74 \fR \fIbinary_st
59d0: 72 69 6e 67 5c 66 52 0a 55 6e 69 71 75 65 20 73 ring\fR.Unique s
59e0: 65 73 73 69 6f 6e 20 69 64 20 66 6f 72 20 75 73 ession id for us
59f0: 65 20 69 6e 20 72 65 73 75 6d 69 6e 67 20 74 68 e in resuming th
5a00: 65 20 73 65 73 73 69 6f 6e 5c 26 2e 0a 2e 54 50 e session\&...TP
5a10: 0a 5c 66 42 73 65 73 73 69 6f 6e 5f 74 69 63 6b .\fBsession_tick
5a20: 65 74 5c 66 52 20 5c 66 49 62 69 6e 61 72 79 5f et\fR \fIbinary_
5a30: 73 74 72 69 6e 67 5c 66 52 0a 55 6e 69 71 75 65 string\fR.Unique
5a40: 20 73 65 73 73 69 6f 6e 20 74 69 63 6b 65 74 20 session ticket
5a50: 66 6f 72 20 75 73 65 20 69 6e 20 72 65 73 75 6d for use in resum
5a60: 69 6e 67 20 74 68 65 20 73 65 73 73 69 6f 6e 5c ing the session\
5a70: 26 2e 0a 2e 54 50 0a 5c 66 42 74 69 63 6b 65 74 &...TP.\fBticket
5a80: 5f 61 70 70 5f 64 61 74 61 5c 66 52 20 5c 66 49 _app_data\fR \fI
5a90: 62 69 6e 61 72 79 5f 73 74 72 69 6e 67 5c 66 52 binary_string\fR
5aa0: 0a 55 6e 69 71 75 65 20 73 65 73 73 69 6f 6e 20 .Unique session
5ab0: 74 69 63 6b 65 74 20 61 70 70 6c 69 63 61 74 69 ticket applicati
5ac0: 6f 6e 20 64 61 74 61 5c 26 2e 0a 2e 54 50 0a 5c on data\&...TP.\
5ad0: 66 42 6d 61 73 74 65 72 5f 6b 65 79 5c 66 52 20 fBmaster_key\fR
5ae0: 5c 66 49 62 69 6e 61 72 79 5f 73 74 72 69 6e 67 \fIbinary_string
5af0: 5c 66 52 0a 55 6e 69 71 75 65 20 73 65 73 73 69 \fR.Unique sessi
5b00: 6f 6e 20 6d 61 73 74 65 72 20 6b 65 79 5c 26 2e on master key\&.
5b10: 0a 2e 54 50 0a 5c 66 42 73 65 73 73 69 6f 6e 5f ..TP.\fBsession_
5b20: 63 61 63 68 65 5f 6d 6f 64 65 5c 66 52 20 5c 66 cache_mode\fR \f
5b30: 49 6d 6f 64 65 5c 66 52 0a 53 65 72 76 65 72 20 Imode\fR.Server
5b40: 63 61 63 68 65 20 6d 6f 64 65 20 28 63 6c 69 65 cache mode (clie
5b50: 6e 74 2c 20 73 65 72 76 65 72 2c 20 6f 72 20 62 nt, server, or b
5b60: 6f 74 68 29 5c 26 2e 0a 2e 52 45 0a 2e 54 50 0a oth)\&...RE..TP.
5b70: 5c 66 42 74 6c 73 3a 3a 63 69 70 68 65 72 73 5c \fBtls::ciphers\
5b80: 66 52 20 3f 5c 66 49 70 72 6f 74 6f 63 6f 6c 5c fR ?\fIprotocol\
5b90: 66 52 3f 20 3f 5c 66 49 76 65 72 62 6f 73 65 5c fR? ?\fIverbose\
5ba0: 66 52 3f 20 3f 5c 66 49 73 75 70 70 6f 72 74 65 fR? ?\fIsupporte
5bb0: 64 5c 66 52 3f 0a 57 69 74 68 6f 75 74 20 61 6e d\fR?.Without an
5bc0: 79 20 61 72 67 73 2c 20 72 65 74 75 72 6e 73 20 y args, returns
5bd0: 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 73 79 a list of all sy
5be0: 6d 6d 65 74 72 69 63 20 63 69 70 68 65 72 73 20 mmetric ciphers
5bf0: 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 for use with the
5c00: 0a 5c 66 49 2d 63 69 70 68 65 72 5c 66 52 20 6f .\fI-cipher\fR o
5c10: 70 74 69 6f 6e 5c 26 2e 20 57 69 74 68 20 5c 66 ption\&. With \f
5c20: 49 70 72 6f 74 6f 63 6f 6c 5c 66 52 2c 20 6f 6e Iprotocol\fR, on
5c30: 6c 79 20 74 68 65 20 63 69 70 68 65 72 73 20 73 ly the ciphers s
5c40: 75 70 70 6f 72 74 65 64 20 66 6f 72 20 74 68 61 upported for tha
5c50: 74 0a 70 72 6f 74 6f 63 6f 6c 20 61 72 65 20 72 t.protocol are r
5c60: 65 74 75 72 6e 65 64 5c 26 2e 20 53 65 65 20 74 eturned\&. See t
5c70: 68 65 20 5c 66 42 74 6c 73 3a 3a 70 72 6f 74 6f he \fBtls::proto
5c80: 63 6f 6c 73 5c 66 52 20 63 6f 6d 6d 61 6e 64 20 cols\fR command
5c90: 66 6f 72 20 74 68 65 20 73 75 70 70 6f 72 74 65 for the supporte
5ca0: 64 0a 70 72 6f 74 6f 63 6f 6c 73 5c 26 2e 20 49 d.protocols\&. I
5cb0: 66 20 5c 66 49 76 65 72 62 6f 73 65 5c 66 52 20 f \fIverbose\fR
5cc0: 69 73 20 73 70 65 63 69 66 69 65 64 20 61 73 20 is specified as
5cd0: 74 72 75 65 20 74 68 65 6e 20 61 20 76 65 72 62 true then a verb
5ce0: 6f 73 65 2c 20 68 75 6d 61 6e 20 72 65 61 64 61 ose, human reada
5cf0: 62 6c 65 0a 6c 69 73 74 20 69 73 20 72 65 74 75 ble.list is retu
5d00: 72 6e 65 64 20 77 69 74 68 20 61 64 64 69 74 69 rned with additi
5d10: 6f 6e 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e onal information
5d20: 20 6f 6e 20 74 68 65 20 63 69 70 68 65 72 5c 26 on the cipher\&
5d30: 2e 20 49 66 20 5c 66 49 73 75 70 70 6f 72 74 65 . If \fIsupporte
5d40: 64 5c 66 52 0a 69 73 20 73 70 65 63 69 66 69 65 d\fR.is specifie
5d50: 64 20 61 73 20 74 72 75 65 2c 20 74 68 65 6e 20 d as true, then
5d60: 6f 6e 6c 79 20 74 68 65 20 63 69 70 68 65 72 73 only the ciphers
5d70: 20 73 75 70 70 6f 72 74 65 64 20 66 6f 72 20 70 supported for p
5d80: 72 6f 74 6f 63 6f 6c 20 77 69 6c 6c 20 62 65 20 rotocol will be
5d90: 6c 69 73 74 65 64 5c 26 2e 0a 2e 54 50 0a 5c 66 listed\&...TP.\f
5da0: 42 74 6c 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 5c Btls::protocols\
5db0: 66 52 0a 52 65 74 75 72 6e 73 20 61 20 6c 69 73 fR.Returns a lis
5dc0: 74 20 6f 66 20 74 68 65 20 73 75 70 70 6f 72 74 t of the support
5dd0: 65 64 20 53 53 4c 2f 54 4c 53 20 70 72 6f 74 6f ed SSL/TLS proto
5de0: 63 6f 6c 73 5c 26 2e 20 56 61 6c 69 64 20 76 61 cols\&. Valid va
5df0: 6c 75 65 73 20 61 72 65 3a 0a 5c 66 42 73 73 6c lues are:.\fBssl
5e00: 32 5c 66 52 2c 20 5c 66 42 73 73 6c 33 5c 66 52 2\fR, \fBssl3\fR
5e10: 2c 20 5c 66 42 74 6c 73 31 5c 66 52 2c 20 5c 66 , \fBtls1\fR, \f
5e20: 42 74 6c 73 31 5c 26 2e 31 5c 66 52 2c 20 5c 66 Btls1\&.1\fR, \f
5e30: 42 74 6c 73 31 5c 26 2e 32 5c 66 52 2c 20 61 6e Btls1\&.2\fR, an
5e40: 64 0a 5c 66 42 74 6c 73 31 5c 26 2e 33 5c 66 52 d.\fBtls1\&.3\fR
5e50: 5c 26 2e 20 45 78 61 63 74 20 6c 69 73 74 20 64 \&. Exact list d
5e60: 65 70 65 6e 64 73 20 6f 6e 20 4f 70 65 6e 53 53 epends on OpenSS
5e70: 4c 20 76 65 72 73 69 6f 6e 20 61 6e 64 20 63 6f L version and co
5e80: 6d 70 69 6c 65 20 74 69 6d 65 20 66 6c 61 67 73 mpile time flags
5e90: 5c 26 2e 0a 2e 54 50 0a 5c 66 42 74 6c 73 3a 3a \&...TP.\fBtls::
5ea0: 76 65 72 73 69 6f 6e 5c 66 52 0a 52 65 74 75 72 version\fR.Retur
5eb0: 6e 73 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 76 ns the OpenSSL v
5ec0: 65 72 73 69 6f 6e 20 73 74 72 69 6e 67 5c 26 2e ersion string\&.
5ed0: 0a 2e 50 50 0a 2e 53 48 20 22 43 45 52 54 49 46 ..PP..SH "CERTIF
5ee0: 49 43 41 54 45 20 56 41 4c 49 44 41 54 49 4f 4e ICATE VALIDATION
5ef0: 22 0a 2e 53 53 20 22 53 55 4d 4d 41 52 59 20 4f "..SS "SUMMARY O
5f00: 46 20 43 4f 4d 4d 41 4e 44 20 4c 49 4e 45 20 4f F COMMAND LINE O
5f10: 50 54 49 4f 4e 53 22 0a 54 68 65 20 66 6f 6c 6c PTIONS".The foll
5f20: 6f 77 69 6e 67 20 6f 70 74 69 6f 6e 73 20 61 72 owing options ar
5f30: 65 20 75 73 65 64 20 66 6f 72 20 70 65 65 72 20 e used for peer
5f40: 43 65 72 74 69 66 69 63 61 74 65 20 56 61 6c 69 Certificate Vali
5f50: 64 61 74 69 6f 6e 3a 0a 2e 54 50 0a 5c 66 42 2d dation:..TP.\fB-
5f60: 63 61 64 69 72 5c 66 52 20 5c 66 49 64 69 72 65 cadir\fR \fIdire
5f70: 63 74 6f 72 79 5c 66 52 0a 53 70 65 63 69 66 69 ctory\fR.Specifi
5f80: 65 73 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 es the directory
5f90: 20 77 68 65 72 65 20 74 68 65 20 43 65 72 74 69 where the Certi
5fa0: 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 79 ficate Authority
5fb0: 20 28 43 41 29 20 63 65 72 74 69 66 69 63 61 74 (CA) certificat
5fc0: 65 73 20 61 72 65 0a 73 74 6f 72 65 64 5c 26 2e es are.stored\&.
5fd0: 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 The default is
5fe0: 70 6c 61 74 66 6f 72 6d 20 73 70 65 63 69 66 69 platform specifi
5ff0: 63 2c 20 62 75 74 20 69 73 20 75 73 75 61 6c 6c c, but is usuall
6000: 79 20 22 5c 66 49 2f 65 74 63 2f 73 73 6c 2f 63 y "\fI/etc/ssl/c
6010: 65 72 74 73 5c 66 52 22 20 6f 6e 0a 4c 69 6e 75 erts\fR" on.Linu
6020: 78 2f 55 6e 69 78 20 73 79 73 74 65 6d 73 5c 26 x/Unix systems\&
6030: 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 6c 6f . The default lo
6040: 63 61 74 69 6f 6e 20 63 61 6e 20 62 65 20 6f 76 cation can be ov
6050: 65 72 72 69 64 64 65 6e 20 62 79 20 74 68 65 0a erridden by the.
6060: 5c 66 42 53 53 4c 5f 43 45 52 54 5f 44 49 52 5c \fBSSL_CERT_DIR\
6070: 66 52 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 fR environment v
6080: 61 72 69 61 62 6c 65 5c 26 2e 0a 2e 54 50 0a 5c ariable\&...TP.\
6090: 66 42 2d 63 61 66 69 6c 65 5c 66 52 20 5c 66 49 fB-cafile\fR \fI
60a0: 66 69 6c 65 6e 61 6d 65 5c 66 52 0a 53 70 65 63 filename\fR.Spec
60b0: 69 66 69 65 73 20 74 68 65 20 66 69 6c 65 20 77 ifies the file w
60c0: 69 74 68 20 74 68 65 20 43 65 72 74 69 66 69 63 ith the Certific
60d0: 61 74 65 20 41 75 74 68 6f 72 69 74 79 20 28 43 ate Authority (C
60e0: 41 29 20 63 65 72 74 69 66 69 63 61 74 65 73 20 A) certificates
60f0: 74 6f 20 75 73 65 20 69 6e 0a 5c 66 42 50 45 4d to use in.\fBPEM
6100: 5c 66 52 20 66 69 6c 65 20 66 6f 72 6d 61 74 5c \fR file format\
6110: 26 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 &. The default i
6120: 73 20 22 5c 66 49 63 65 72 74 5c 26 2e 70 65 6d s "\fIcert\&.pem
6130: 5c 66 52 22 2c 20 69 6e 20 74 68 65 20 4f 70 65 \fR", in the Ope
6140: 6e 53 53 4c 20 64 69 72 65 63 74 6f 72 79 5c 26 nSSL directory\&
6150: 2e 20 4f 6e 0a 4c 69 6e 75 78 2f 55 6e 69 78 20 . On.Linux/Unix
6160: 73 79 73 74 65 6d 73 2c 20 74 68 69 73 20 69 73 systems, this is
6170: 20 75 73 75 61 6c 6c 79 20 22 5c 66 49 2f 65 74 usually "\fI/et
6180: 63 2f 73 73 6c 2f 63 61 2d 62 75 6e 64 6c 65 5c c/ssl/ca-bundle\
6190: 26 2e 70 65 6d 5c 66 52 22 5c 26 2e 20 54 68 65 &.pem\fR"\&. The
61a0: 20 64 65 66 61 75 6c 74 20 66 69 6c 65 0a 63 61 default file.ca
61b0: 6e 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 20 n be overridden
61c0: 62 79 20 74 68 65 20 5c 66 42 53 53 4c 5f 43 45 by the \fBSSL_CE
61d0: 52 54 5f 46 49 4c 45 5c 66 52 20 65 6e 76 69 72 RT_FILE\fR envir
61e0: 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 5c onment variable\
61f0: 26 2e 0a 2e 54 50 0a 5c 66 42 2d 63 61 73 74 6f &...TP.\fB-casto
6200: 72 65 5c 66 52 20 5c 66 49 55 52 49 5c 66 52 0a re\fR \fIURI\fR.
6210: 53 70 65 63 69 66 69 65 73 20 74 68 65 20 55 6e Specifies the Un
6220: 69 66 6f 72 6d 20 52 65 73 6f 75 72 63 65 20 49 iform Resource I
6230: 64 65 6e 74 69 66 69 65 72 20 28 55 52 49 29 20 dentifier (URI)
6240: 66 6f 72 20 74 68 65 20 43 65 72 74 69 66 69 63 for the Certific
6250: 61 74 65 20 41 75 74 68 6f 72 69 74 79 0a 28 43 ate Authority.(C
6260: 41 29 20 73 74 6f 72 65 2c 20 77 68 69 63 68 20 A) store, which
6270: 6d 61 79 20 62 65 20 61 20 73 69 6e 67 6c 65 20 may be a single
6280: 63 6f 6e 74 61 69 6e 65 72 20 6f 72 20 61 20 63 container or a c
6290: 61 74 61 6c 6f 67 20 6f 66 20 63 6f 6e 74 61 69 atalog of contai
62a0: 6e 65 72 73 5c 26 2e 0a 53 74 61 72 74 69 6e 67 ners\&..Starting
62b0: 20 77 69 74 68 20 4f 70 65 6e 53 53 4c 20 33 5c with OpenSSL 3\
62c0: 26 2e 32 20 6f 6e 20 57 69 6e 64 6f 77 73 2c 20 &.2 on Windows,
62d0: 73 65 74 20 74 6f 20 22 5c 66 42 6f 72 67 5c 26 set to "\fBorg\&
62e0: 2e 6f 70 65 6e 73 73 6c 5c 26 2e 77 69 6e 73 74 .openssl\&.winst
62f0: 6f 72 65 3a 2f 2f 5c 66 52 22 0a 74 6f 20 75 73 ore://\fR".to us
6300: 65 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 57 e the built-in W
6310: 69 6e 64 6f 77 73 20 43 65 72 74 69 66 69 63 61 indows Certifica
6320: 74 65 20 53 74 6f 72 65 5c 26 2e 20 54 68 69 73 te Store\&. This
6330: 20 73 74 6f 72 65 20 6f 6e 6c 79 20 73 75 70 70 store only supp
6340: 6f 72 74 73 20 72 6f 6f 74 0a 63 65 72 74 69 66 orts root.certif
6350: 69 63 61 74 65 20 73 74 6f 72 65 73 5c 26 2e 0a icate stores\&..
6360: 2e 54 50 0a 5c 66 42 2d 72 65 71 75 65 73 74 5c .TP.\fB-request\
6370: 66 52 20 5c 66 49 62 6f 6f 6c 5c 66 52 0a 52 65 fR \fIbool\fR.Re
6380: 71 75 65 73 74 20 61 20 63 65 72 74 69 66 69 63 quest a certific
6390: 61 74 65 20 66 72 6f 6d 20 70 65 65 72 20 64 75 ate from peer du
63a0: 72 69 6e 67 20 74 68 65 20 53 53 4c 20 68 61 6e ring the SSL han
63b0: 64 73 68 61 6b 65 5c 26 2e 20 54 68 69 73 20 69 dshake\&. This i
63c0: 73 20 6e 65 65 64 65 64 20 74 6f 20 64 6f 0a 43 s needed to do.C
63d0: 65 72 74 69 66 69 63 61 74 65 20 56 61 6c 69 64 ertificate Valid
63e0: 61 74 69 6f 6e 5c 26 2e 20 44 65 66 61 75 6c 74 ation\&. Default
63f0: 20 69 73 20 5c 66 42 74 72 75 65 5c 66 52 5c 26 is \fBtrue\fR\&
6400: 2e 20 49 6e 20 61 64 64 69 74 69 6f 6e 2c 20 74 . In addition, t
6410: 68 65 0a 63 6c 69 65 6e 74 20 63 61 6e 20 6d 61 he.client can ma
6420: 6e 75 61 6c 6c 79 20 69 6e 73 70 65 63 74 20 61 nually inspect a
6430: 6e 64 20 61 63 63 65 70 74 20 6f 72 20 72 65 6a nd accept or rej
6440: 65 63 74 20 65 61 63 68 20 63 65 72 74 69 66 69 ect each certifi
6450: 63 61 74 65 20 75 73 69 6e 67 20 74 68 65 0a 5c cate using the.\
6460: 66 49 2d 76 61 6c 69 64 61 74 65 63 6f 6d 6d 61 fI-validatecomma
6470: 6e 64 5c 66 52 20 6f 70 74 69 6f 6e 5c 26 2e 0a nd\fR option\&..
6480: 2e 54 50 0a 5c 66 42 2d 72 65 71 75 69 72 65 5c .TP.\fB-require\
6490: 66 52 20 5c 66 49 62 6f 6f 6c 5c 66 52 0a 52 65 fR \fIbool\fR.Re
64a0: 71 75 69 72 65 20 61 20 76 61 6c 69 64 20 63 65 quire a valid ce
64b0: 72 74 69 66 69 63 61 74 65 20 66 72 6f 6d 20 70 rtificate from p
64c0: 65 65 72 20 64 75 72 69 6e 67 20 74 68 65 20 53 eer during the S
64d0: 53 4c 20 68 61 6e 64 73 68 61 6b 65 5c 26 2e 20 SL handshake\&.
64e0: 49 66 20 74 68 69 73 20 69 73 20 73 65 74 0a 74 If this is set.t
64f0: 6f 20 5c 66 42 74 72 75 65 5c 66 52 2c 20 74 68 o \fBtrue\fR, th
6500: 65 6e 20 5c 66 49 2d 72 65 71 75 65 73 74 5c 66 en \fI-request\f
6510: 52 20 6d 75 73 74 20 61 6c 73 6f 20 62 65 20 73 R must also be s
6520: 65 74 20 74 6f 20 5c 66 42 74 72 75 65 5c 66 52 et to \fBtrue\fR
6530: 20 61 6e 64 20 65 69 74 68 65 72 0a 5c 66 49 2d and either.\fI-
6540: 63 61 64 69 72 5c 66 52 2c 20 5c 66 49 2d 63 61 cadir\fR, \fI-ca
6550: 66 69 6c 65 5c 66 52 2c 20 5c 66 49 2d 63 61 73 file\fR, \fI-cas
6560: 74 6f 72 65 5c 66 52 2c 20 6f 72 20 61 20 70 6c tore\fR, or a pl
6570: 61 74 66 6f 72 6d 20 64 65 66 61 75 6c 74 20 6d atform default m
6580: 75 73 74 20 62 65 0a 70 72 6f 76 69 64 65 64 20 ust be.provided
6590: 69 6e 20 6f 72 64 65 72 20 74 6f 20 76 61 6c 69 in order to vali
65a0: 64 61 74 65 20 61 67 61 69 6e 73 74 5c 26 2e 20 date against\&.
65b0: 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 5c The default is \
65c0: 66 42 66 61 6c 73 65 5c 66 52 20 73 69 6e 63 65 fBfalse\fR since
65d0: 20 6e 6f 74 0a 61 6c 6c 20 70 6c 61 74 66 6f 72 not.all platfor
65e0: 6d 73 20 68 61 76 65 20 63 65 72 74 69 66 69 63 ms have certific
65f0: 61 74 65 73 20 74 6f 20 76 61 6c 69 64 61 74 65 ates to validate
6600: 20 61 67 61 69 6e 73 74 20 69 6e 20 61 20 66 6f against in a fo
6610: 72 6d 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 rm compatible wi
6620: 74 68 0a 4f 70 65 6e 53 53 4c 5c 26 2e 20 53 65 th.OpenSSL\&. Se
6630: 65 20 5c 66 42 43 65 72 74 69 66 69 63 61 74 65 e \fBCertificate
6640: 20 56 61 6c 69 64 61 74 69 6f 6e 5c 66 52 20 66 Validation\fR f
6650: 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 5c or more details\
6660: 26 2e 0a 2e 50 50 0a 2e 53 53 20 22 57 48 45 4e &...PP..SS "WHEN
6670: 20 41 52 45 20 43 4f 4d 4d 41 4e 44 20 4c 49 4e ARE COMMAND LIN
6680: 45 20 4f 50 54 49 4f 4e 53 20 4e 45 45 44 45 44 E OPTIONS NEEDED
6690: 3f 22 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 61 ?".By default, a
66a0: 20 63 6c 69 65 6e 74 20 54 4c 53 20 63 6f 6e 6e client TLS conn
66b0: 65 63 74 69 6f 6e 20 64 6f 65 73 20 5c 66 49 4e ection does \fIN
66c0: 4f 54 5c 66 52 20 76 61 6c 69 64 61 74 65 20 74 OT\fR validate t
66d0: 68 65 20 73 65 72 76 65 72 20 63 65 72 74 69 66 he server certif
66e0: 69 63 61 74 65 0a 63 68 61 69 6e 5c 26 2e 20 54 icate.chain\&. T
66f0: 68 69 73 20 6c 69 6d 69 74 61 74 69 6f 6e 20 69 his limitation i
6700: 73 20 64 75 65 20 74 6f 20 74 68 65 20 6c 61 63 s due to the lac
6710: 6b 20 6f 66 20 61 20 63 6f 6d 6d 6f 6e 20 63 72 k of a common cr
6720: 6f 73 73 20 70 6c 61 74 66 6f 72 6d 0a 64 61 74 oss platform.dat
6730: 61 62 61 73 65 20 6f 66 20 43 65 72 74 69 66 69 abase of Certifi
6740: 63 61 74 65 20 41 75 74 68 6f 72 69 74 79 20 28 cate Authority (
6750: 43 41 29 20 70 72 6f 76 69 64 65 64 20 63 65 72 CA) provided cer
6760: 74 69 66 69 63 61 74 65 73 20 74 6f 20 76 61 6c tificates to val
6770: 69 64 61 74 65 0a 61 67 61 69 6e 73 74 5c 26 2e idate.against\&.
6780: 20 4d 61 6e 79 20 4c 69 6e 75 78 20 73 79 73 74 Many Linux syst
6790: 65 6d 73 20 6e 61 74 69 76 65 6c 79 20 73 75 70 ems natively sup
67a0: 70 6f 72 74 20 4f 70 65 6e 53 53 4c 20 61 6e 64 port OpenSSL and
67b0: 20 74 68 75 73 20 68 61 76 65 20 74 68 65 73 65 thus have these
67c0: 0a 63 65 72 74 69 66 69 63 61 74 65 73 20 69 6e .certificates in
67d0: 73 74 61 6c 6c 65 64 20 61 73 20 70 61 72 74 20 stalled as part
67e0: 6f 66 20 74 68 65 20 4f 53 2c 20 62 75 74 20 4d of the OS, but M
67f0: 61 63 4f 53 20 61 6e 64 20 57 69 6e 64 6f 77 73 acOS and Windows
6800: 20 64 6f 20 6e 6f 74 5c 26 2e 20 49 6e 0a 6f 72 do not\&. In.or
6810: 64 65 72 20 74 6f 20 75 73 65 20 74 68 65 20 5c der to use the \
6820: 66 42 2d 72 65 71 75 69 72 65 5c 66 52 20 6f 70 fB-require\fR op
6830: 74 69 6f 6e 2c 20 6f 6e 65 20 6f 66 20 74 68 65 tion, one of the
6840: 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d 75 73 74 20 following must
6850: 62 65 20 74 72 75 65 3a 0a 2e 49 50 20 5c 28 62 be true:..IP \(b
6860: 75 0a 4f 6e 20 4c 69 6e 75 78 20 61 6e 64 20 55 u.On Linux and U
6870: 6e 69 78 20 73 79 73 74 65 6d 73 20 77 69 74 68 nix systems with
6880: 20 4f 70 65 6e 53 53 4c 20 61 6c 72 65 61 64 79 OpenSSL already
6890: 20 69 6e 73 74 61 6c 6c 65 64 2c 20 69 66 20 74 installed, if t
68a0: 68 65 20 43 41 0a 63 65 72 74 69 66 69 63 61 74 he CA.certificat
68b0: 65 73 20 61 72 65 20 73 74 6f 72 65 64 20 69 6e es are stored in
68c0: 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 6c 6f the standard lo
68d0: 63 61 74 69 6f 6e 73 2c 20 6f 72 20 69 66 20 74 cations, or if t
68e0: 68 65 20 5c 66 42 53 53 4c 5f 43 45 52 54 5f 44 he \fBSSL_CERT_D
68f0: 49 52 5c 66 52 0a 6f 72 20 5c 66 42 53 53 4c 5f IR\fR.or \fBSSL_
6900: 43 45 52 54 5f 46 49 4c 45 5c 66 52 20 65 6e 76 CERT_FILE\fR env
6910: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c ironment variabl
6920: 65 73 20 61 72 65 20 73 65 74 2c 20 74 68 65 6e es are set, then
6930: 20 5c 66 42 2d 63 61 64 69 72 5c 66 52 2c 0a 5c \fB-cadir\fR,.\
6940: 66 42 2d 63 61 64 69 72 5c 66 52 2c 20 61 6e 64 fB-cadir\fR, and
6950: 20 5c 66 42 2d 63 61 73 74 6f 72 65 5c 66 52 20 \fB-castore\fR
6960: 61 72 65 6e 27 74 20 6e 65 65 64 65 64 5c 26 2e aren't needed\&.
6970: 0a 2e 49 50 20 5c 28 62 75 0a 49 66 20 4f 70 65 ..IP \(bu.If Ope
6980: 6e 53 53 4c 20 69 73 20 6e 6f 74 20 69 6e 73 74 nSSL is not inst
6990: 61 6c 6c 65 64 20 69 6e 20 74 68 65 20 64 65 66 alled in the def
69a0: 61 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 2c 20 6f ault location, o
69b0: 72 20 77 68 65 6e 20 75 73 69 6e 67 20 4d 61 63 r when using Mac
69c0: 20 4f 53 0a 6f 72 20 57 69 6e 64 6f 77 73 20 61 OS.or Windows a
69d0: 6e 64 20 4f 70 65 6e 53 53 4c 20 69 73 20 69 6e nd OpenSSL is in
69e0: 73 74 61 6c 6c 65 64 2c 20 74 68 65 20 5c 66 42 stalled, the \fB
69f0: 53 53 4c 5f 43 45 52 54 5f 44 49 52 5c 66 52 20 SSL_CERT_DIR\fR
6a00: 61 6e 64 2f 6f 72 0a 5c 66 42 53 53 4c 5f 43 45 and/or.\fBSSL_CE
6a10: 52 54 5f 46 49 4c 45 5c 66 52 20 65 6e 76 69 72 RT_FILE\fR envir
6a20: 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 73 onment variables
6a30: 20 6f 72 20 74 68 65 20 6f 6e 65 20 6f 66 20 74 or the one of t
6a40: 68 65 20 5c 66 42 2d 63 61 64 69 72 5c 66 52 2c he \fB-cadir\fR,
6a50: 0a 5c 66 42 2d 63 61 64 69 72 5c 66 52 2c 20 6f .\fB-cadir\fR, o
6a60: 72 20 5c 66 42 2d 63 61 73 74 6f 72 65 5c 66 52 r \fB-castore\fR
6a70: 20 6f 70 74 69 6f 6e 73 20 6d 75 73 74 20 62 65 options must be
6a80: 20 64 65 66 69 6e 65 64 5c 26 2e 0a 2e 49 50 20 defined\&...IP
6a90: 5c 28 62 75 0a 4f 6e 20 57 69 6e 64 6f 77 73 2c \(bu.On Windows,
6aa0: 20 73 74 61 72 74 69 6e 67 20 69 6e 20 4f 70 65 starting in Ope
6ab0: 6e 53 53 4c 20 33 5c 26 2e 32 2c 20 69 74 20 69 nSSL 3\&.2, it i
6ac0: 73 20 6e 6f 77 20 70 6f 73 73 69 62 6c 65 20 74 s now possible t
6ad0: 6f 20 61 63 63 65 73 73 20 74 68 65 0a 62 75 69 o access the.bui
6ae0: 6c 74 2d 69 6e 20 57 69 6e 64 6f 77 73 20 43 65 lt-in Windows Ce
6af0: 72 74 69 66 69 63 61 74 65 20 53 74 6f 72 65 20 rtificate Store
6b00: 66 72 6f 6d 20 4f 70 65 6e 53 53 4c 5c 26 2e 20 from OpenSSL\&.
6b10: 54 68 69 73 20 63 61 6e 20 62 65 20 61 63 68 69 This can be achi
6b20: 65 76 65 64 20 62 79 0a 73 65 74 74 69 6e 67 20 eved by.setting
6b30: 74 68 65 20 5c 66 42 2d 63 61 73 74 6f 72 65 5c the \fB-castore\
6b40: 66 52 20 6f 70 74 69 6f 6e 20 74 6f 20 22 5c 66 fR option to "\f
6b50: 42 6f 72 67 5c 26 2e 6f 70 65 6e 73 73 6c 5c 26 Borg\&.openssl\&
6b60: 2e 77 69 6e 73 74 6f 72 65 3a 2f 2f 5c 66 52 22 .winstore://\fR"
6b70: 5c 26 2e 0a 2e 49 50 20 5c 28 62 75 0a 49 66 20 \&...IP \(bu.If
6b80: 4f 70 65 6e 53 53 4c 20 69 73 20 6e 6f 74 20 69 OpenSSL is not i
6b90: 6e 73 74 61 6c 6c 65 64 2c 20 74 68 65 20 43 41 nstalled, the CA
6ba0: 20 63 65 72 74 69 66 69 63 61 74 65 73 20 6d 75 certificates mu
6bb0: 73 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 st be downloaded
6bc0: 20 61 6e 64 0a 69 6e 73 74 61 6c 6c 65 64 20 77 and.installed w
6bd0: 69 74 68 20 74 68 65 20 75 73 65 72 20 73 6f 66 ith the user sof
6be0: 74 77 61 72 65 5c 26 2e 20 54 68 65 20 43 55 52 tware\&. The CUR
6bf0: 4c 20 74 65 61 6d 20 6d 61 6b 65 73 20 74 68 65 L team makes the
6c00: 6d 20 61 76 61 69 6c 61 62 6c 65 20 61 74 0a 5c m available at.\
6c10: 66 49 43 41 20 63 65 72 74 69 66 69 63 61 74 65 fICA certificate
6c20: 73 20 65 78 74 72 61 63 74 65 64 0a 66 72 6f 6d s extracted.from
6c30: 20 4d 6f 7a 69 6c 6c 61 5c 66 52 20 5b 68 74 74 Mozilla\fR [htt
6c40: 70 73 3a 2f 2f 63 75 72 6c 5c 26 2e 73 65 2f 64 ps://curl\&.se/d
6c50: 6f 63 73 2f 63 61 65 78 74 72 61 63 74 5c 26 2e ocs/caextract\&.
6c60: 68 74 6d 6c 5d 20 69 6e 20 74 68 65 20 22 5c 66 html] in the "\f
6c70: 49 63 61 63 65 72 74 5c 26 2e 70 65 6d 5c 66 52 Icacert\&.pem\fR
6c80: 22 20 66 69 6c 65 5c 26 2e 20 59 6f 75 20 6d 75 " file\&. You mu
6c90: 73 74 20 74 68 65 6e 20 65 69 74 68 65 72 20 73 st then either s
6ca0: 65 74 20 74 68 65 0a 5c 66 42 53 53 4c 5f 43 45 et the.\fBSSL_CE
6cb0: 52 54 5f 44 49 52 5c 66 52 20 61 6e 64 2f 6f 72 RT_DIR\fR and/or
6cc0: 20 5c 66 42 53 53 4c 5f 43 45 52 54 5f 46 49 4c \fBSSL_CERT_FIL
6cd0: 45 5c 66 52 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 E\fR environment
6ce0: 20 76 61 72 69 61 62 6c 65 73 20 6f 72 20 74 68 variables or th
6cf0: 65 0a 5c 66 42 2d 63 61 64 69 72 5c 66 52 20 6f e.\fB-cadir\fR o
6d00: 72 20 5c 66 42 2d 63 61 66 69 6c 65 5c 66 52 20 r \fB-cafile\fR
6d10: 6f 70 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 43 options to the C
6d20: 41 20 63 65 72 74 20 66 69 6c 65 27 73 20 69 6e A cert file's in
6d30: 73 74 61 6c 6c 0a 6c 6f 63 61 74 69 6f 6e 5c 26 stall.location\&
6d40: 2e 20 49 74 20 69 73 20 79 6f 75 72 20 72 65 73 . It is your res
6d50: 70 6f 6e 73 69 62 69 6c 69 74 79 20 74 6f 20 6b ponsibility to k
6d60: 65 65 70 20 74 68 69 73 20 66 69 6c 65 20 75 70 eep this file up
6d70: 20 74 6f 20 64 61 74 65 5c 26 2e 0a 2e 50 50 0a to date\&...PP.
6d80: 2e 53 48 20 22 43 41 4c 4c 42 41 43 4b 20 4f 50 .SH "CALLBACK OP
6d90: 54 49 4f 4e 53 22 0a 41 73 20 70 72 65 76 69 6f TIONS".As previo
6da0: 75 73 6c 79 20 64 65 73 63 72 69 62 65 64 2c 20 usly described,
6db0: 65 61 63 68 20 63 68 61 6e 6e 65 6c 20 63 61 6e each channel can
6dc0: 20 62 65 20 67 69 76 65 6e 20 74 68 65 69 72 20 be given their
6dd0: 6f 77 6e 20 63 61 6c 6c 62 61 63 6b 73 0a 74 6f own callbacks.to
6de0: 20 68 61 6e 64 6c 65 20 69 6e 74 65 72 6d 65 64 handle intermed
6df0: 69 61 74 65 20 70 72 6f 63 65 73 73 69 6e 67 20 iate processing
6e00: 62 79 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 6c by the OpenSSL l
6e10: 69 62 72 61 72 79 2c 20 75 73 69 6e 67 20 74 68 ibrary, using th
6e20: 65 0a 5c 66 42 2d 63 6f 6d 6d 61 6e 64 5c 66 52 e.\fB-command\fR
6e30: 2c 20 5c 66 42 2d 70 61 73 73 77 6f 72 64 5c 66 , \fB-password\f
6e40: 52 2c 20 61 6e 64 20 5c 66 42 2d 76 61 6c 69 64 R, and \fB-valid
6e50: 61 74 65 5f 63 6f 6d 6d 61 6e 64 5c 66 52 20 6f ate_command\fR o
6e60: 70 74 69 6f 6e 73 0a 70 61 73 73 65 64 20 74 6f ptions.passed to
6e70: 20 65 69 74 68 65 72 20 6f 66 20 5c 66 42 74 6c either of \fBtl
6e80: 73 3a 3a 73 6f 63 6b 65 74 5c 66 52 20 6f 72 20 s::socket\fR or
6e90: 5c 66 42 74 6c 73 3a 3a 69 6d 70 6f 72 74 5c 66 \fBtls::import\f
6ea0: 52 5c 26 2e 0a 55 6e 6c 69 6b 65 20 70 72 65 76 R\&..Unlike prev
6eb0: 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 20 6f 66 ious versions of
6ec0: 20 54 63 6c 54 4c 53 2c 20 6f 6e 6c 79 20 69 66 TclTLS, only if
6ed0: 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 67 65 the callback ge
6ee0: 6e 65 72 61 74 65 73 20 61 6e 20 65 72 72 6f 72 nerates an error
6ef0: 2c 0a 77 69 6c 6c 20 74 68 65 20 5c 66 42 62 67 ,.will the \fBbg
6f00: 65 72 72 6f 72 5c 66 52 20 63 6f 6d 6d 61 6e 64 error\fR command
6f10: 20 62 65 20 69 6e 76 6f 6b 65 64 20 77 69 74 68 be invoked with
6f20: 20 74 68 65 20 65 72 72 6f 72 20 69 6e 66 6f 72 the error infor
6f30: 6d 61 74 69 6f 6e 5c 26 2e 0a 2e 53 53 20 22 56 mation\&...SS "V
6f40: 41 4c 55 45 53 20 46 4f 52 20 43 4f 4d 4d 41 4e ALUES FOR COMMAN
6f50: 44 20 43 41 4c 4c 42 41 43 4b 22 0a 54 68 65 20 D CALLBACK".The
6f60: 63 61 6c 6c 62 61 63 6b 20 66 6f 72 20 74 68 65 callback for the
6f70: 20 5c 66 42 2d 63 6f 6d 6d 61 6e 64 5c 66 52 20 \fB-command\fR
6f80: 6f 70 74 69 6f 6e 20 69 73 20 69 6e 76 6f 6b 65 option is invoke
6f90: 64 20 61 74 20 73 65 76 65 72 61 6c 20 70 6f 69 d at several poi
6fa0: 6e 74 73 20 64 75 72 69 6e 67 20 74 68 65 0a 4f nts during the.O
6fb0: 70 65 6e 53 53 4c 20 68 61 6e 64 73 68 61 6b 65 penSSL handshake
6fc0: 20 61 6e 64 20 64 75 72 69 6e 67 20 72 6f 75 74 and during rout
6fd0: 69 6e 65 20 6f 70 65 72 61 74 69 6f 6e 73 5c 26 ine operations\&
6fe0: 2e 20 53 65 65 20 62 65 6c 6f 77 20 66 6f 72 20 . See below for
6ff0: 74 68 65 20 70 6f 73 73 69 62 6c 65 0a 61 72 67 the possible.arg
7000: 75 6d 65 6e 74 73 20 70 61 73 73 65 64 20 74 6f uments passed to
7010: 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 73 63 the callback sc
7020: 72 69 70 74 5c 26 2e 20 56 61 6c 75 65 73 20 72 ript\&. Values r
7030: 65 74 75 72 6e 65 64 20 66 72 6f 6d 20 74 68 65 eturned from the
7040: 20 63 61 6c 6c 62 61 63 6b 20 61 72 65 0a 69 67 callback are.ig
7050: 6e 6f 72 65 64 5c 26 2e 0a 2e 54 50 0a 5c 66 42 nored\&...TP.\fB
7060: 65 72 72 6f 72 5c 66 52 20 5c 66 49 63 68 61 6e error\fR \fIchan
7070: 6e 65 6c 49 64 20 6d 65 73 73 61 67 65 5c 66 52 nelId message\fR
7080: 0a 54 68 69 73 20 66 6f 72 6d 20 6f 66 20 63 61 .This form of ca
7090: 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65 llback is invoke
70a0: 64 20 77 68 65 6e 65 76 65 72 20 61 6e 20 65 72 d whenever an er
70b0: 72 6f 72 20 6f 63 63 75 72 73 20 64 75 72 69 6e ror occurs durin
70c0: 67 20 74 68 65 20 69 6e 69 74 69 61 6c 0a 63 6f g the initial.co
70d0: 6e 6e 65 63 74 69 6f 6e 2c 20 68 61 6e 64 73 68 nnection, handsh
70e0: 61 6b 65 2c 20 6f 72 20 49 2f 4f 20 6f 70 65 72 ake, or I/O oper
70f0: 61 74 69 6f 6e 73 5c 26 2e 20 54 68 65 20 5c 66 ations\&. The \f
7100: 49 6d 65 73 73 61 67 65 5c 66 52 20 61 72 67 75 Imessage\fR argu
7110: 6d 65 6e 74 20 63 61 6e 20 62 65 0a 66 72 6f 6d ment can be.from
7120: 20 74 68 65 20 54 63 6c 5f 45 72 72 6e 6f 4d 73 the Tcl_ErrnoMs
7130: 67 2c 20 4f 70 65 6e 53 53 4c 20 66 75 6e 63 74 g, OpenSSL funct
7140: 69 6f 6e 20 5c 66 42 45 52 52 5f 72 65 61 73 6f ion \fBERR_reaso
7150: 6e 5f 65 72 72 6f 72 5f 73 74 72 69 6e 67 28 29 n_error_string()
7160: 5c 66 52 2c 0a 6f 72 20 61 20 63 75 73 74 6f 6d \fR,.or a custom
7170: 20 6d 65 73 73 61 67 65 5c 26 2e 20 54 68 69 73 message\&. This
7180: 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 6e 65 77 callback is new
7190: 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e for TclTLS 1\&.
71a0: 38 5c 26 2e 0a 2e 54 50 0a 5c 66 42 69 6e 66 6f 8\&...TP.\fBinfo
71b0: 5c 66 52 20 5c 66 49 63 68 61 6e 6e 65 6c 49 64 \fR \fIchannelId
71c0: 20 6d 61 6a 6f 72 20 6d 69 6e 6f 72 20 6d 65 73 major minor mes
71d0: 73 61 67 65 20 74 79 70 65 5c 66 52 0a 54 68 69 sage type\fR.Thi
71e0: 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c 62 61 s form of callba
71f0: 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20 62 79 ck is invoked by
7200: 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 66 75 6e the OpenSSL fun
7210: 63 74 69 6f 6e 0a 5c 66 42 53 53 4c 5f 73 65 74 ction.\fBSSL_set
7220: 5f 69 6e 66 6f 5f 63 61 6c 6c 62 61 63 6b 28 29 _info_callback()
7230: 5c 66 52 20 64 75 72 69 6e 67 20 74 68 65 20 69 \fR during the i
7240: 6e 69 74 69 61 6c 20 63 6f 6e 6e 65 63 74 69 6f nitial connectio
7250: 6e 20 61 6e 64 20 68 61 6e 64 73 68 61 6b 65 0a n and handshake.
7260: 6f 70 65 72 61 74 69 6f 6e 73 5c 26 2e 20 54 68 operations\&. Th
7270: 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 3a e arguments are:
7280: 0a 2e 52 53 0a 2e 54 50 0a 5c 66 49 6d 61 6a 6f ..RS..TP.\fImajo
7290: 72 5c 66 52 0a 4d 61 6a 6f 72 20 63 61 74 65 67 r\fR.Major categ
72a0: 6f 72 79 20 66 6f 72 20 65 72 72 6f 72 5c 26 2e ory for error\&.
72b0: 20 56 61 6c 69 64 20 65 6e 75 6d 73 20 61 72 65 Valid enums are
72c0: 3a 20 5c 66 42 68 61 6e 64 73 68 61 6b 65 5c 66 : \fBhandshake\f
72d0: 52 2c 20 5c 66 42 61 6c 65 72 74 5c 66 52 2c 0a R, \fBalert\fR,.
72e0: 5c 66 42 63 6f 6e 6e 65 63 74 5c 66 52 2c 20 5c \fBconnect\fR, \
72f0: 66 42 61 63 63 65 70 74 5c 66 52 5c 26 2e 0a 2e fBaccept\fR\&...
7300: 54 50 0a 5c 66 49 6d 69 6e 6f 72 5c 66 52 0a 4d TP.\fIminor\fR.M
7310: 69 6e 6f 72 20 63 61 74 65 67 6f 72 79 20 66 6f inor category fo
7320: 72 20 65 72 72 6f 72 5c 26 2e 20 56 61 6c 69 64 r error\&. Valid
7330: 20 65 6e 75 6d 73 20 61 72 65 3a 20 5c 66 42 73 enums are: \fBs
7340: 74 61 72 74 5c 66 52 2c 20 5c 66 42 64 6f 6e 65 tart\fR, \fBdone
7350: 5c 66 52 2c 20 5c 66 42 72 65 61 64 5c 66 52 2c \fR, \fBread\fR,
7360: 0a 5c 66 42 77 72 69 74 65 5c 66 52 2c 20 5c 66 .\fBwrite\fR, \f
7370: 42 6c 6f 6f 70 5c 66 52 2c 20 5c 66 42 65 78 69 Bloop\fR, \fBexi
7380: 74 5c 66 52 5c 26 2e 0a 2e 54 50 0a 5c 66 49 6d t\fR\&...TP.\fIm
7390: 65 73 73 61 67 65 5c 66 52 0a 44 65 73 63 72 69 essage\fR.Descri
73a0: 70 74 69 76 65 20 6d 65 73 73 61 67 65 20 73 74 ptive message st
73b0: 72 69 6e 67 20 77 68 69 63 68 20 6d 61 79 20 62 ring which may b
73c0: 65 20 67 65 6e 65 72 61 74 65 64 20 65 69 74 68 e generated eith
73d0: 65 72 20 62 79 0a 5c 66 42 53 53 4c 5f 73 74 61 er by.\fBSSL_sta
73e0: 74 65 5f 73 74 72 69 6e 67 5f 6c 6f 6e 67 28 29 te_string_long()
73f0: 5c 66 52 20 6f 72 20 5c 66 42 53 53 4c 5f 61 6c \fR or \fBSSL_al
7400: 65 72 74 5f 64 65 73 63 5f 73 74 72 69 6e 67 5f ert_desc_string_
7410: 6c 6f 6e 67 28 29 5c 66 52 2c 0a 64 65 70 65 6e long()\fR,.depen
7420: 64 69 6e 67 20 6f 6e 20 74 68 65 20 63 6f 6e 74 ding on the cont
7430: 65 78 74 5c 26 2e 0a 2e 54 50 0a 5c 66 49 74 79 ext\&...TP.\fIty
7440: 70 65 5c 66 52 0a 46 6f 72 20 61 6c 65 72 74 73 pe\fR.For alerts
7450: 2c 20 74 68 65 20 70 6f 73 73 69 62 6c 65 20 76 , the possible v
7460: 61 6c 75 65 73 20 61 72 65 3a 20 5c 66 42 77 61 alues are: \fBwa
7470: 72 6e 69 6e 67 5c 66 52 2c 0a 5c 66 42 66 61 74 rning\fR,.\fBfat
7480: 61 6c 5c 66 52 2c 20 61 6e 64 20 5c 66 42 75 6e al\fR, and \fBun
7490: 6b 6e 6f 77 6e 5c 66 52 5c 26 2e 20 46 6f 72 20 known\fR\&. For
74a0: 6f 74 68 65 72 73 2c 20 5c 66 42 69 6e 66 6f 5c others, \fBinfo\
74b0: 66 52 20 69 73 20 75 73 65 64 5c 26 2e 0a 54 68 fR is used\&..Th
74c0: 69 73 20 61 72 67 75 6d 65 6e 74 20 69 73 20 6e is argument is n
74d0: 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c ew for TclTLS 1\
74e0: 26 2e 38 5c 26 2e 0a 2e 52 45 0a 2e 54 50 0a 5c &.8\&...RE..TP.\
74f0: 66 42 6d 65 73 73 61 67 65 5c 66 52 20 5c 66 49 fBmessage\fR \fI
7500: 63 68 61 6e 6e 65 6c 49 64 20 64 69 72 65 63 74 channelId direct
7510: 69 6f 6e 20 76 65 72 73 69 6f 6e 20 63 6f 6e 74 ion version cont
7520: 65 6e 74 5f 74 79 70 65 20 6d 65 73 73 61 67 65 ent_type message
7530: 5c 66 52 0a 54 68 69 73 20 66 6f 72 6d 20 6f 66 \fR.This form of
7540: 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 callback is inv
7550: 6f 6b 65 64 20 62 79 20 74 68 65 20 4f 70 65 6e oked by the Open
7560: 53 53 4c 20 66 75 6e 63 74 69 6f 6e 0a 5c 66 42 SSL function.\fB
7570: 53 53 4c 5f 73 65 74 5f 6d 73 67 5f 63 61 6c 6c SSL_set_msg_call
7580: 62 61 63 6b 28 29 5c 66 52 20 77 68 65 6e 65 76 back()\fR whenev
7590: 65 72 20 61 20 6d 65 73 73 61 67 65 20 69 73 20 er a message is
75a0: 73 65 6e 74 20 6f 72 20 72 65 63 65 69 76 65 64 sent or received
75b0: 20 64 75 72 69 6e 67 20 74 68 65 0a 69 6e 69 74 during the.init
75c0: 69 61 6c 20 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 ial connection,
75d0: 68 61 6e 64 73 68 61 6b 65 2c 20 6f 72 20 49 2f handshake, or I/
75e0: 4f 20 6f 70 65 72 61 74 69 6f 6e 73 5c 26 2e 20 O operations\&.
75f0: 49 74 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 6c It is only avail
7600: 61 62 6c 65 20 77 68 65 6e 0a 4f 70 65 6e 53 53 able when.OpenSS
7610: 4c 20 69 73 20 63 6f 6d 70 6c 69 65 64 20 77 69 L is complied wi
7620: 74 68 20 74 68 65 20 5c 66 42 65 6e 61 62 6c 65 th the \fBenable
7630: 2d 73 73 6c 2d 74 72 61 63 65 5c 66 52 20 6f 70 -ssl-trace\fR op
7640: 74 69 6f 6e 5c 26 2e 20 54 68 69 73 20 63 61 6c tion\&. This cal
7650: 6c 62 61 63 6b 20 69 73 0a 6e 65 77 20 66 6f 72 lback is.new for
7660: 20 54 63 6c 54 4c 53 20 31 5c 26 2e 38 5c 26 2e TclTLS 1\&.8\&.
7670: 20 54 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 The arguments a
7680: 72 65 3a 0a 2e 52 53 0a 2e 54 50 0a 5c 66 49 64 re:..RS..TP.\fId
7690: 69 72 65 63 74 69 6f 6e 5c 66 52 0a 44 69 72 65 irection\fR.Dire
76a0: 63 74 69 6f 6e 20 69 73 20 65 69 74 68 65 72 20 ction is either
76b0: 5c 66 42 53 65 6e 74 5c 66 52 20 6f 72 20 5c 66 \fBSent\fR or \f
76c0: 42 52 65 63 65 69 76 65 64 5c 66 52 5c 26 2e 0a BReceived\fR\&..
76d0: 2e 54 50 0a 5c 66 49 76 65 72 73 69 6f 6e 5c 66 .TP.\fIversion\f
76e0: 52 0a 56 65 72 73 69 6f 6e 20 69 73 20 74 68 65 R.Version is the
76f0: 20 70 72 6f 74 6f 63 6f 6c 20 76 65 72 73 69 6f protocol versio
7700: 6e 5c 26 2e 0a 2e 54 50 0a 5c 66 49 63 6f 6e 74 n\&...TP.\fIcont
7710: 65 6e 74 5f 74 79 70 65 5c 66 52 0a 43 6f 6e 74 ent_type\fR.Cont
7720: 65 6e 74 20 74 79 70 65 20 69 73 20 74 68 65 20 ent type is the
7730: 6d 65 73 73 61 67 65 20 63 6f 6e 74 65 6e 74 20 message content
7740: 74 79 70 65 5c 26 2e 0a 2e 54 50 0a 5c 66 49 6d type\&...TP.\fIm
7750: 65 73 73 61 67 65 5c 66 52 0a 4d 65 73 73 61 67 essage\fR.Messag
7760: 65 20 69 73 20 6d 6f 72 65 20 69 6e 66 6f 20 66 e is more info f
7770: 72 6f 6d 20 74 68 65 20 5c 66 42 53 53 4c 5f 74 rom the \fBSSL_t
7780: 72 61 63 65 5c 66 52 20 41 50 49 5c 26 2e 0a 2e race\fR API\&...
7790: 52 45 0a 2e 54 50 0a 5c 66 42 73 65 73 73 69 6f RE..TP.\fBsessio
77a0: 6e 5c 66 52 20 5c 66 49 63 68 61 6e 6e 65 6c 49 n\fR \fIchannelI
77b0: 64 20 73 65 73 73 69 6f 6e 5f 69 64 20 73 65 73 d session_id ses
77c0: 73 69 6f 6e 5f 74 69 63 6b 65 74 20 6c 69 66 65 sion_ticket life
77d0: 74 69 6d 65 5c 66 52 0a 54 68 69 73 20 66 6f 72 time\fR.This for
77e0: 6d 20 6f 66 20 63 61 6c 6c 62 61 63 6b 20 69 73 m of callback is
77f0: 20 69 6e 76 6f 6b 65 64 20 62 79 20 74 68 65 20 invoked by the
7800: 4f 70 65 6e 53 53 4c 20 66 75 6e 63 74 69 6f 6e OpenSSL function
7810: 0a 5c 66 42 53 53 4c 5f 43 54 58 5f 73 65 73 73 .\fBSSL_CTX_sess
7820: 5f 73 65 74 5f 6e 65 77 5f 63 62 28 29 5c 66 52 _set_new_cb()\fR
7830: 20 77 68 65 6e 65 76 65 72 20 61 20 6e 65 77 20 whenever a new
7840: 73 65 73 73 69 6f 6e 20 69 64 20 69 73 20 73 65 session id is se
7850: 6e 74 20 62 79 20 74 68 65 0a 73 65 72 76 65 72 nt by the.server
7860: 20 64 75 72 69 6e 67 20 74 68 65 20 69 6e 69 74 during the init
7870: 69 61 6c 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 61 ial connection a
7880: 6e 64 20 68 61 6e 64 73 68 61 6b 65 20 61 6e 64 nd handshake and
7890: 20 61 6c 73 6f 20 64 75 72 69 6e 67 20 74 68 65 also during the
78a0: 20 73 65 73 73 69 6f 6e 0a 69 66 20 74 68 65 20 session.if the
78b0: 5c 66 42 2d 70 6f 73 74 5f 68 61 6e 64 73 68 61 \fB-post_handsha
78c0: 6b 65 5c 66 52 20 6f 70 74 69 6f 6e 20 69 73 20 ke\fR option is
78d0: 73 65 74 20 74 6f 20 74 72 75 65 5c 26 2e 20 54 set to true\&. T
78e0: 68 69 73 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 his callback is
78f0: 6e 65 77 20 66 6f 72 0a 54 63 6c 54 4c 53 20 31 new for.TclTLS 1
7900: 5c 26 2e 38 5c 26 2e 20 54 68 65 20 61 72 67 75 \&.8\&. The argu
7910: 6d 65 6e 74 73 20 61 72 65 3a 0a 2e 52 53 0a 2e ments are:..RS..
7920: 54 50 0a 5c 66 49 73 65 73 73 69 6f 6e 5f 69 64 TP.\fIsession_id
7930: 5c 66 52 0a 53 65 73 73 69 6f 6e 20 49 64 20 69 \fR.Session Id i
7940: 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 65 s the current se
7950: 73 73 69 6f 6e 20 69 64 65 6e 74 69 66 69 65 72 ssion identifier
7960: 0a 2e 54 50 0a 5c 66 49 73 65 73 73 69 6f 6e 5f ..TP.\fIsession_
7970: 74 69 63 6b 65 74 5c 66 52 0a 54 69 63 6b 65 74 ticket\fR.Ticket
7980: 20 69 73 20 74 68 65 20 73 65 73 73 69 6f 6e 20 is the session
7990: 74 69 63 6b 65 74 20 69 6e 66 6f 0a 2e 54 50 0a ticket info..TP.
79a0: 5c 66 49 6c 69 66 65 74 69 6d 65 5c 66 52 0a 4c \fIlifetime\fR.L
79b0: 69 66 65 74 69 6d 65 20 69 73 20 74 68 65 20 74 ifetime is the t
79c0: 69 63 6b 65 74 20 6c 69 66 65 74 69 6d 65 20 69 icket lifetime i
79d0: 6e 20 73 65 63 6f 6e 64 73 5c 26 2e 0a 2e 52 45 n seconds\&...RE
79e0: 0a 2e 54 50 0a 5c 66 42 76 65 72 69 66 79 5c 66 ..TP.\fBverify\f
79f0: 52 20 5c 66 49 63 68 61 6e 6e 65 6c 49 64 20 64 R \fIchannelId d
7a00: 65 70 74 68 20 63 65 72 74 20 73 74 61 74 75 73 epth cert status
7a10: 20 65 72 72 6f 72 5c 66 52 0a 54 68 69 73 20 63 error\fR.This c
7a20: 61 6c 6c 62 61 63 6b 20 77 61 73 20 6d 6f 76 65 allback was move
7a30: 64 20 74 6f 20 5c 66 42 2d 76 61 6c 69 64 61 74 d to \fB-validat
7a40: 65 63 6f 6d 6d 61 6e 64 5c 66 52 20 69 6e 20 54 ecommand\fR in T
7a50: 63 6c 54 4c 53 20 31 5c 26 2e 38 5c 26 2e 0a 2e clTLS 1\&.8\&...
7a60: 50 50 0a 2e 53 53 20 22 56 41 4c 55 45 53 20 46 PP..SS "VALUES F
7a70: 4f 52 20 50 41 53 53 57 4f 52 44 20 43 41 4c 4c OR PASSWORD CALL
7a80: 42 41 43 4b 22 0a 54 68 65 20 63 61 6c 6c 62 61 BACK".The callba
7a90: 63 6b 20 66 6f 72 20 74 68 65 20 5c 66 42 2d 70 ck for the \fB-p
7aa0: 61 73 73 77 6f 72 64 5c 66 52 20 6f 70 74 69 6f assword\fR optio
7ab0: 6e 20 69 73 20 69 6e 76 6f 6b 65 64 20 62 79 20 n is invoked by
7ac0: 54 63 6c 54 4c 53 20 77 68 65 6e 65 76 65 72 20 TclTLS whenever
7ad0: 4f 70 65 6e 53 53 4c 20 6e 65 65 64 73 0a 74 6f OpenSSL needs.to
7ae0: 20 6f 62 74 61 69 6e 20 61 20 70 61 73 73 77 6f obtain a passwo
7af0: 72 64 5c 26 2e 20 53 65 65 20 62 65 6c 6f 77 20 rd\&. See below
7b00: 66 6f 72 20 74 68 65 20 70 6f 73 73 69 62 6c 65 for the possible
7b10: 20 61 72 67 75 6d 65 6e 74 73 20 70 61 73 73 65 arguments passe
7b20: 64 20 74 6f 20 74 68 65 0a 63 61 6c 6c 62 61 63 d to the.callbac
7b30: 6b 20 73 63 72 69 70 74 5c 26 2e 20 54 68 65 20 k script\&. The
7b40: 75 73 65 72 20 70 72 6f 76 69 64 65 64 20 70 61 user provided pa
7b50: 73 73 77 6f 72 64 20 69 73 20 65 78 70 65 63 74 ssword is expect
7b60: 65 64 20 74 6f 20 62 65 20 72 65 74 75 72 6e 65 ed to be returne
7b70: 64 20 62 79 20 74 68 65 0a 63 61 6c 6c 62 61 63 d by the.callbac
7b80: 6b 5c 26 2e 0a 2e 54 50 0a 5c 66 42 70 61 73 73 k\&...TP.\fBpass
7b90: 77 6f 72 64 5c 66 52 20 5c 66 49 72 77 66 6c 61 word\fR \fIrwfla
7ba0: 67 20 73 69 7a 65 5c 66 52 0a 49 6e 76 6f 6b 65 g size\fR.Invoke
7bb0: 64 20 77 68 65 6e 20 6c 6f 61 64 69 6e 67 20 6f d when loading o
7bc0: 72 20 73 74 6f 72 69 6e 67 20 61 6e 20 65 6e 63 r storing an enc
7bd0: 72 79 70 74 65 64 20 50 45 4d 20 63 65 72 74 69 rypted PEM certi
7be0: 66 69 63 61 74 65 5c 26 2e 20 54 68 65 20 61 72 ficate\&. The ar
7bf0: 67 75 6d 65 6e 74 73 20 61 72 65 3a 0a 2e 52 53 guments are:..RS
7c00: 0a 2e 54 50 0a 5c 66 49 72 77 66 6c 61 67 5c 66 ..TP.\fIrwflag\f
7c10: 52 0a 54 68 65 20 72 65 61 64 2f 77 72 69 74 65 R.The read/write
7c20: 20 66 6c 61 67 20 69 73 20 30 20 66 6f 72 20 72 flag is 0 for r
7c30: 65 61 64 69 6e 67 2f 64 65 63 72 79 70 74 69 6f eading/decryptio
7c40: 6e 20 6f 72 20 31 20 66 6f 72 20 77 72 69 74 69 n or 1 for writi
7c50: 6e 67 2f 65 6e 63 72 79 70 74 69 6f 6e 5c 26 2e ng/encryption\&.
7c60: 0a 54 68 65 20 6c 61 74 74 65 72 20 63 61 6e 20 .The latter can
7c70: 62 65 20 75 73 65 64 20 74 6f 20 64 65 74 65 72 be used to deter
7c80: 6d 69 6e 65 20 77 68 65 6e 20 74 6f 20 70 72 6f mine when to pro
7c90: 6d 70 74 20 74 68 65 20 75 73 65 72 20 74 6f 20 mpt the user to
7ca0: 63 6f 6e 66 69 72 6d 5c 26 2e 0a 54 68 69 73 20 confirm\&..This
7cb0: 61 72 67 75 6d 65 6e 74 20 69 73 20 6e 65 77 20 argument is new
7cc0: 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e 38 for TclTLS 1\&.8
7cd0: 5c 26 2e 0a 2e 54 50 0a 5c 66 49 73 69 7a 65 5c \&...TP.\fIsize\
7ce0: 66 52 0a 54 68 65 20 73 69 7a 65 20 69 73 20 74 fR.The size is t
7cf0: 68 65 20 6d 61 78 69 6d 75 6d 20 6c 65 6e 67 74 he maximum lengt
7d00: 68 20 6f 66 20 74 68 65 20 70 61 73 73 77 6f 72 h of the passwor
7d10: 64 20 69 6e 20 62 79 74 65 73 5c 26 2e 0a 54 68 d in bytes\&..Th
7d20: 69 73 20 61 72 67 75 6d 65 6e 74 20 69 73 20 6e is argument is n
7d30: 65 77 20 66 6f 72 20 54 63 6c 54 4c 53 20 31 5c ew for TclTLS 1\
7d40: 26 2e 38 5c 26 2e 0a 2e 52 45 0a 2e 50 50 0a 2e &.8\&...RE..PP..
7d50: 53 53 20 22 56 41 4c 55 45 53 20 46 4f 52 20 56 SS "VALUES FOR V
7d60: 41 4c 49 44 41 54 45 20 43 4f 4d 4d 41 4e 44 20 ALIDATE COMMAND
7d70: 43 41 4c 4c 42 41 43 4b 22 0a 54 68 65 20 63 61 CALLBACK".The ca
7d80: 6c 6c 62 61 63 6b 20 66 6f 72 20 74 68 65 20 5c llback for the \
7d90: 66 42 2d 76 61 6c 69 64 61 74 65 63 6f 6d 6d 61 fB-validatecomma
7da0: 6e 64 5c 66 52 20 6f 70 74 69 6f 6e 20 69 73 20 nd\fR option is
7db0: 69 6e 76 6f 6b 65 64 20 64 75 72 69 6e 67 20 74 invoked during t
7dc0: 68 65 20 68 61 6e 64 73 68 61 6b 65 0a 70 72 6f he handshake.pro
7dd0: 63 65 73 73 20 69 6e 20 6f 72 64 65 72 20 66 6f cess in order fo
7de0: 72 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f r the applicatio
7df0: 6e 20 74 6f 20 76 61 6c 69 64 61 74 65 20 74 68 n to validate th
7e00: 65 20 70 72 6f 76 69 64 65 64 20 76 61 6c 75 65 e provided value
7e10: 28 73 29 5c 26 2e 20 53 65 65 0a 62 65 6c 6f 77 (s)\&. See.below
7e20: 20 66 6f 72 20 74 68 65 20 70 6f 73 73 69 62 6c for the possibl
7e30: 65 20 61 72 67 75 6d 65 6e 74 73 20 70 61 73 73 e arguments pass
7e40: 65 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 62 61 ed to the callba
7e50: 63 6b 20 73 63 72 69 70 74 5c 26 2e 20 49 66 20 ck script\&. If
7e60: 6e 6f 74 0a 73 70 65 63 69 66 69 65 64 2c 20 4f not.specified, O
7e70: 70 65 6e 53 53 4c 20 77 69 6c 6c 20 61 63 63 65 penSSL will acce
7e80: 70 74 20 61 6c 6c 20 76 61 6c 69 64 20 63 65 72 pt all valid cer
7e90: 74 69 66 69 63 61 74 65 73 20 61 6e 64 20 65 78 tificates and ex
7ea0: 74 65 6e 73 69 6f 6e 73 5c 26 2e 20 54 6f 20 72 tensions\&. To r
7eb0: 65 6a 65 63 74 0a 74 68 65 20 76 61 6c 75 65 20 eject.the value
7ec0: 61 6e 64 20 61 62 6f 72 74 20 74 68 65 20 63 6f and abort the co
7ed0: 6e 6e 65 63 74 69 6f 6e 2c 20 74 68 65 20 63 61 nnection, the ca
7ee0: 6c 6c 62 61 63 6b 20 73 68 6f 75 6c 64 20 72 65 llback should re
7ef0: 74 75 72 6e 20 30 5c 26 2e 20 54 6f 20 61 63 63 turn 0\&. To acc
7f00: 65 70 74 20 74 68 65 0a 76 61 6c 75 65 20 61 6e ept the.value an
7f10: 64 20 63 6f 6e 74 69 6e 75 65 20 74 68 65 20 63 d continue the c
7f20: 6f 6e 6e 65 63 74 69 6f 6e 2c 20 69 74 20 73 68 onnection, it sh
7f30: 6f 75 6c 64 20 72 65 74 75 72 6e 20 31 5c 26 2e ould return 1\&.
7f40: 20 54 6f 20 72 65 6a 65 63 74 20 74 68 65 20 76 To reject the v
7f50: 61 6c 75 65 2c 20 62 75 74 0a 63 6f 6e 74 69 6e alue, but.contin
7f60: 75 65 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f ue the connectio
7f70: 6e 2c 20 69 74 20 73 68 6f 75 6c 64 20 72 65 74 n, it should ret
7f80: 75 72 6e 20 32 5c 26 2e 20 54 68 69 73 20 63 61 urn 2\&. This ca
7f90: 6c 6c 62 61 63 6b 20 69 73 20 6e 65 77 20 66 6f llback is new fo
7fa0: 72 20 54 63 6c 54 4c 53 20 31 5c 26 2e 38 5c 26 r TclTLS 1\&.8\&
7fb0: 2e 0a 2e 54 50 0a 5c 66 42 61 6c 70 6e 5c 66 52 ...TP.\fBalpn\fR
7fc0: 20 5c 66 49 63 68 61 6e 6e 65 6c 49 64 20 70 72 \fIchannelId pr
7fd0: 6f 74 6f 63 6f 6c 20 6d 61 74 63 68 5c 66 52 0a otocol match\fR.
7fe0: 46 6f 72 20 73 65 72 76 65 72 73 2c 20 74 68 69 For servers, thi
7ff0: 73 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c 62 61 s form of callba
8000: 63 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 ck is invoked wh
8010: 65 6e 20 74 68 65 20 63 6c 69 65 6e 74 20 41 4c en the client AL
8020: 50 4e 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 0a PN extension is.
8030: 72 65 63 65 69 76 65 64 5c 26 2e 20 49 66 20 5c received\&. If \
8040: 66 49 6d 61 74 63 68 5c 66 52 20 69 73 20 74 72 fImatch\fR is tr
8050: 75 65 2c 20 74 68 65 6e 20 5c 66 49 70 72 6f 74 ue, then \fIprot
8060: 6f 63 6f 6c 5c 66 52 20 69 73 20 74 68 65 20 66 ocol\fR is the f
8070: 69 72 73 74 0a 5c 66 42 2d 61 6c 70 6e 5c 66 52 irst.\fB-alpn\fR
8080: 20 70 72 6f 74 6f 63 6f 6c 20 6f 70 74 69 6f 6e protocol option
8090: 20 69 6e 20 63 6f 6d 6d 6f 6e 20 74 6f 20 62 6f in common to bo
80a0: 74 68 20 74 68 65 20 63 6c 69 65 6e 74 20 61 6e th the client an
80b0: 64 20 73 65 72 76 65 72 5c 26 2e 0a 49 66 20 6e d server\&..If n
80c0: 6f 74 2c 20 74 68 65 20 66 69 72 73 74 20 63 6c ot, the first cl
80d0: 69 65 6e 74 20 73 70 65 63 69 66 69 65 64 20 70 ient specified p
80e0: 72 6f 74 6f 63 6f 6c 20 69 73 20 75 73 65 64 5c rotocol is used\
80f0: 26 2e 20 54 68 69 73 20 63 61 6c 6c 62 61 63 6b &. This callback
8100: 20 69 73 20 63 61 6c 6c 65 64 0a 61 66 74 65 72 is called.after
8110: 20 74 68 65 20 48 65 6c 6c 6f 20 61 6e 64 20 41 the Hello and A
8120: 4c 50 4e 20 63 61 6c 6c 62 61 63 6b 73 5c 26 2e LPN callbacks\&.
8130: 0a 2e 54 50 0a 5c 66 42 68 65 6c 6c 6f 5c 66 52 ..TP.\fBhello\fR
8140: 20 5c 66 49 63 68 61 6e 6e 65 6c 49 64 20 73 65 \fIchannelId se
8150: 72 76 65 72 6e 61 6d 65 5c 66 52 0a 46 6f 72 20 rvername\fR.For
8160: 73 65 72 76 65 72 73 2c 20 74 68 69 73 20 66 6f servers, this fo
8170: 72 6d 20 6f 66 20 63 61 6c 6c 62 61 63 6b 20 69 rm of callback i
8180: 73 20 69 6e 76 6f 6b 65 64 20 64 75 72 69 6e 67 s invoked during
8190: 20 63 6c 69 65 6e 74 20 68 65 6c 6c 6f 20 6d 65 client hello me
81a0: 73 73 61 67 65 0a 70 72 6f 63 65 73 73 69 6e 67 ssage.processing
81b0: 5c 26 2e 20 54 68 65 20 70 75 72 70 6f 73 65 20 \&. The purpose
81c0: 69 73 20 73 6f 20 74 68 65 20 73 65 72 76 65 72 is so the server
81d0: 20 63 61 6e 20 73 65 6c 65 63 74 20 74 68 65 20 can select the
81e0: 61 70 70 72 6f 70 72 69 61 74 65 20 63 65 72 74 appropriate cert
81f0: 69 66 69 63 61 74 65 0a 74 6f 20 70 72 65 73 65 ificate.to prese
8200: 6e 74 20 74 6f 20 74 68 65 20 63 6c 69 65 6e 74 nt to the client
8210: 2c 20 61 6e 64 20 74 6f 20 6d 61 6b 65 20 6f 74 , and to make ot
8220: 68 65 72 20 63 6f 6e 66 69 67 75 72 61 74 69 6f her configuratio
8230: 6e 20 61 64 6a 75 73 74 6d 65 6e 74 73 20 72 65 n adjustments re
8240: 6c 65 76 61 6e 74 0a 74 6f 20 74 68 61 74 20 73 levant.to that s
8250: 65 72 76 65 72 20 6e 61 6d 65 20 61 6e 64 20 69 erver name and i
8260: 74 73 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e ts configuration
8270: 5c 26 2e 20 49 74 20 69 73 20 63 61 6c 6c 65 64 \&. It is called
8280: 20 62 65 66 6f 72 65 20 74 68 65 20 53 4e 49 20 before the SNI
8290: 61 6e 64 20 41 4c 50 4e 0a 63 61 6c 6c 62 61 63 and ALPN.callbac
82a0: 6b 73 5c 26 2e 0a 2e 54 50 0a 5c 66 42 73 6e 69 ks\&...TP.\fBsni
82b0: 5c 66 52 20 5c 66 49 63 68 61 6e 6e 65 6c 49 64 \fR \fIchannelId
82c0: 20 73 65 72 76 65 72 6e 61 6d 65 5c 66 52 0a 46 servername\fR.F
82d0: 6f 72 20 73 65 72 76 65 72 73 2c 20 74 68 69 73 or servers, this
82e0: 20 66 6f 72 6d 20 6f 66 20 63 61 6c 6c 62 61 63 form of callbac
82f0: 6b 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 k is invoked whe
8300: 6e 20 74 68 65 20 53 65 72 76 65 72 20 4e 61 6d n the Server Nam
8310: 65 20 49 6e 64 69 63 61 74 69 6f 6e 0a 28 53 4e e Indication.(SN
8320: 49 29 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 I) extension is
8330: 72 65 63 65 69 76 65 64 5c 26 2e 20 54 68 65 20 received\&. The
8340: 5c 66 49 73 65 72 76 65 72 6e 61 6d 65 5c 66 52 \fIservername\fR
8350: 20 61 72 67 75 6d 65 6e 74 20 69 73 20 74 68 65 argument is the
8360: 20 63 6c 69 65 6e 74 0a 70 72 6f 76 69 64 65 64 client.provided
8370: 20 73 65 72 76 65 72 20 6e 61 6d 65 20 73 70 65 server name spe
8380: 63 69 66 69 65 64 20 69 6e 20 74 68 65 20 5c 66 cified in the \f
8390: 42 2d 73 65 72 76 65 72 6e 61 6d 65 3c 2f 62 3e B-servername</b>
83a0: 5c 66 52 20 6f 70 74 69 6f 6e 5c 26 2e 20 54 68 \fR option\&. Th
83b0: 65 0a 70 75 72 70 6f 73 65 20 69 73 20 73 6f 20 e.purpose is so
83c0: 77 68 65 6e 20 61 20 73 65 72 76 65 72 20 73 75 when a server su
83d0: 70 70 6f 72 74 73 20 6d 75 6c 74 69 70 6c 65 20 pports multiple
83e0: 6e 61 6d 65 73 2c 20 74 68 65 20 72 69 67 68 74 names, the right
83f0: 20 63 65 72 74 69 66 69 63 61 74 65 0a 63 61 6e certificate.can
8400: 20 62 65 20 75 73 65 64 5c 26 2e 20 49 74 20 69 be used\&. It i
8410: 73 20 63 61 6c 6c 65 64 20 61 66 74 65 72 20 74 s called after t
8420: 68 65 20 68 65 6c 6c 6f 20 63 61 6c 6c 62 61 63 he hello callbac
8430: 6b 20 62 75 74 20 62 65 66 6f 72 65 20 74 68 65 k but before the
8440: 20 41 4c 50 4e 0a 63 61 6c 6c 62 61 63 6b 5c 26 ALPN.callback\&
8450: 2e 0a 2e 54 50 0a 5c 66 42 76 65 72 69 66 79 5c ...TP.\fBverify\
8460: 66 52 20 5c 66 49 63 68 61 6e 6e 65 6c 49 64 20 fR \fIchannelId
8470: 64 65 70 74 68 20 63 65 72 74 20 73 74 61 74 75 depth cert statu
8480: 73 20 65 72 72 6f 72 5c 66 52 0a 54 68 69 73 20 s error\fR.This
8490: 66 6f 72 6d 20 6f 66 20 63 61 6c 6c 62 61 63 6b form of callback
84a0: 20 69 73 20 69 6e 76 6f 6b 65 64 20 62 79 20 4f is invoked by O
84b0: 70 65 6e 53 53 4c 20 77 68 65 6e 20 61 20 6e 65 penSSL when a ne
84c0: 77 20 63 65 72 74 69 66 69 63 61 74 65 20 69 73 w certificate is
84d0: 20 72 65 63 65 69 76 65 64 0a 66 72 6f 6d 20 74 received.from t
84e0: 68 65 20 70 65 65 72 5c 26 2e 20 49 74 20 61 6c he peer\&. It al
84f0: 6c 6f 77 73 20 74 68 65 20 63 6c 69 65 6e 74 20 lows the client
8500: 74 6f 20 63 68 65 63 6b 20 74 68 65 20 63 65 72 to check the cer
8510: 74 69 66 69 63 61 74 65 20 76 65 72 69 66 69 63 tificate verific
8520: 61 74 69 6f 6e 0a 72 65 73 75 6c 74 73 20 61 6e ation.results an
8530: 64 20 63 68 6f 6f 73 65 20 77 68 65 74 68 65 72 d choose whether
8540: 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 6f 72 20 to continue or
8550: 6e 6f 74 5c 26 2e 20 49 74 20 69 73 20 63 61 6c not\&. It is cal
8560: 6c 65 64 20 66 6f 72 20 65 61 63 68 0a 63 65 72 led for each.cer
8570: 74 69 66 69 63 61 74 65 20 69 6e 20 74 68 65 20 tificate in the
8580: 63 65 72 74 69 66 69 63 61 74 65 20 63 68 61 69 certificate chai
8590: 6e 5c 26 2e 20 54 68 69 73 20 63 61 6c 6c 62 61 n\&. This callba
85a0: 63 6b 20 77 61 73 20 6d 6f 76 65 64 20 66 72 6f ck was moved fro
85b0: 6d 0a 5c 66 42 2d 63 6f 6d 6d 61 6e 64 5c 66 52 m.\fB-command\fR
85c0: 20 69 6e 20 54 63 6c 54 4c 53 20 31 5c 26 2e 38 in TclTLS 1\&.8
85d0: 5c 26 2e 20 54 68 65 20 61 72 67 75 6d 65 6e 74 \&. The argument
85e0: 73 20 61 72 65 3a 0a 2e 52 53 0a 2e 54 50 0a 5c s are:..RS..TP.\
85f0: 66 49 64 65 70 74 68 5c 66 52 0a 54 68 65 20 64 fIdepth\fR.The d
8600: 65 70 74 68 20 69 73 20 74 68 65 20 69 6e 74 65 epth is the inte
8610: 67 65 72 20 64 65 70 74 68 20 6f 66 20 74 68 65 ger depth of the
8620: 20 63 65 72 74 69 66 69 63 61 74 65 20 69 6e 20 certificate in
8630: 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 20 the certificate
8640: 63 68 61 69 6e 2c 0a 77 68 65 72 65 20 30 20 69 chain,.where 0 i
8650: 73 20 74 68 65 20 70 65 65 72 20 63 65 72 74 69 s the peer certi
8660: 66 69 63 61 74 65 20 61 6e 64 20 68 69 67 68 65 ficate and highe
8670: 72 20 76 61 6c 75 65 73 20 67 6f 69 6e 67 20 75 r values going u
8680: 70 20 74 6f 20 74 68 65 20 43 65 72 74 69 66 69 p to the Certifi
8690: 63 61 74 65 0a 41 75 74 68 6f 72 69 74 79 20 28 cate.Authority (
86a0: 43 41 29 5c 26 2e 0a 2e 54 50 0a 5c 66 49 63 65 CA)\&...TP.\fIce
86b0: 72 74 5c 66 52 0a 54 68 65 20 63 65 72 74 20 61 rt\fR.The cert a
86c0: 72 67 75 6d 65 6e 74 20 69 73 20 61 20 6c 69 73 rgument is a lis
86d0: 74 20 6f 66 20 6b 65 79 2d 76 61 6c 75 65 20 70 t of key-value p
86e0: 61 69 72 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 airs similar to
86f0: 74 68 6f 73 65 20 72 65 74 75 72 6e 65 64 20 62 those returned b
8700: 79 0a 5c 66 42 74 6c 73 3a 3a 73 74 61 74 75 73 y.\fBtls::status
8710: 5c 66 52 5c 26 2e 0a 2e 54 50 0a 5c 66 49 73 74 \fR\&...TP.\fIst
8720: 61 74 75 73 5c 66 52 0a 54 68 65 20 73 74 61 74 atus\fR.The stat
8730: 75 73 20 61 72 67 75 6d 65 6e 74 20 69 73 20 74 us argument is t
8740: 68 65 20 62 6f 6f 6c 65 61 6e 20 76 61 6c 69 64 he boolean valid
8750: 69 74 79 20 6f 66 20 74 68 65 20 63 75 72 72 65 ity of the curre
8760: 6e 74 20 63 65 72 74 69 66 69 63 61 74 65 20 77 nt certificate w
8770: 68 65 72 65 20 30 0a 69 73 20 69 6e 76 61 6c 69 here 0.is invali
8780: 64 20 61 6e 64 20 31 20 69 73 20 76 61 6c 69 64 d and 1 is valid
8790: 5c 26 2e 0a 2e 54 50 0a 5c 66 49 65 72 72 6f 72 \&...TP.\fIerror
87a0: 5c 66 52 0a 54 68 65 20 65 72 72 6f 72 20 61 72 \fR.The error ar
87b0: 67 75 6d 65 6e 74 20 69 73 20 74 68 65 20 65 72 gument is the er
87c0: 72 6f 72 20 6d 65 73 73 61 67 65 2c 20 69 66 20 ror message, if
87d0: 61 6e 79 2c 20 67 65 6e 65 72 61 74 65 64 20 62 any, generated b
87e0: 79 0a 5c 66 42 58 35 30 39 5f 53 54 4f 52 45 5f y.\fBX509_STORE_
87f0: 43 54 58 5f 67 65 74 5f 65 72 72 6f 72 28 29 5c CTX_get_error()\
8800: 66 52 5c 26 2e 0a 2e 52 45 0a 2e 50 50 0a 52 65 fR\&...RE..PP.Re
8810: 66 65 72 65 6e 63 65 20 69 6d 70 6c 65 6d 65 6e ference implemen
8820: 74 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 73 65 tations of these
8830: 20 63 61 6c 6c 62 61 63 6b 73 20 61 72 65 20 70 callbacks are p
8840: 72 6f 76 69 64 65 64 20 69 6e 20 22 5c 66 49 74 rovided in "\fIt
8850: 6c 73 5c 26 2e 74 63 6c 5c 66 52 22 0a 61 73 20 ls\&.tcl\fR".as
8860: 5c 66 42 74 6c 73 3a 3a 63 61 6c 6c 62 61 63 6b \fBtls::callback
8870: 5c 66 52 2c 20 5c 66 42 74 6c 73 3a 3a 70 61 73 \fR, \fBtls::pas
8880: 73 77 6f 72 64 5c 66 52 2c 20 61 6e 64 20 5c 66 sword\fR, and \f
8890: 42 74 6c 73 3a 3a 76 61 6c 69 64 61 74 65 5f 63 Btls::validate_c
88a0: 6f 6d 6d 61 6e 64 5c 66 52 0a 72 65 73 70 65 63 ommand\fR.respec
88b0: 74 69 76 65 6c 79 5c 26 2e 20 4e 6f 74 65 20 74 tively\&. Note t
88c0: 68 61 74 20 74 68 65 73 65 20 61 72 65 20 6f 6e hat these are on
88d0: 6c 79 20 5c 66 49 73 61 6d 70 6c 65 5c 66 52 20 ly \fIsample\fR
88e0: 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 5c implementations\
88f0: 26 2e 20 49 6e 20 61 20 6d 6f 72 65 0a 72 65 61 &. In a more.rea
8900: 6c 69 73 74 69 63 20 64 65 70 6c 6f 79 6d 65 6e listic deploymen
8910: 74 20 79 6f 75 20 77 6f 75 6c 64 20 73 70 65 63 t you would spec
8920: 69 66 79 20 79 6f 75 72 20 6f 77 6e 20 63 61 6c ify your own cal
8930: 6c 62 61 63 6b 20 73 63 72 69 70 74 73 20 6f 6e lback scripts on
8940: 20 65 61 63 68 20 54 4c 53 0a 63 68 61 6e 6e 65 each TLS.channe
8950: 6c 20 75 73 69 6e 67 20 74 68 65 20 5c 66 42 2d l using the \fB-
8960: 63 6f 6d 6d 61 6e 64 5c 66 52 2c 20 5c 66 42 2d command\fR, \fB-
8970: 70 61 73 73 77 6f 72 64 5c 66 52 2c 20 61 6e 64 password\fR, and
8980: 0a 5c 66 42 2d 76 61 6c 69 64 61 74 65 5f 63 6f .\fB-validate_co
8990: 6d 6d 61 6e 64 5c 66 52 20 6f 70 74 69 6f 6e 73 mmand\fR options
89a0: 5c 26 2e 0a 2e 50 50 0a 54 68 65 20 64 65 66 61 \&...PP.The defa
89b0: 75 6c 74 20 62 65 68 61 76 69 6f 72 20 77 68 65 ult behavior whe
89c0: 6e 20 74 68 65 20 5c 66 42 2d 63 6f 6d 6d 61 6e n the \fB-comman
89d0: 64 5c 66 52 20 61 6e 64 20 5c 66 42 2d 76 61 6c d\fR and \fB-val
89e0: 69 64 61 74 65 5f 63 6f 6d 6d 61 6e 64 5c 66 52 idate_command\fR
89f0: 0a 6f 70 74 69 6f 6e 73 20 61 72 65 20 6e 6f 74 .options are not
8a00: 20 73 70 65 63 69 66 69 65 64 2c 20 69 73 20 66 specified, is f
8a10: 6f 72 20 54 63 6c 54 4c 53 20 74 6f 20 70 72 6f or TclTLS to pro
8a20: 63 65 73 73 20 74 68 65 20 61 73 73 6f 63 69 61 cess the associa
8a30: 74 65 64 20 6c 69 62 72 61 72 79 0a 63 61 6c 6c ted library.call
8a40: 62 61 63 6b 73 20 69 6e 74 65 72 6e 61 6c 6c 79 backs internally
8a50: 5c 26 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 \&. The default
8a60: 62 65 68 61 76 69 6f 72 20 77 68 65 6e 20 74 68 behavior when th
8a70: 65 20 5c 66 42 2d 70 61 73 73 77 6f 72 64 5c 66 e \fB-password\f
8a80: 52 20 6f 70 74 69 6f 6e 0a 69 73 20 6e 6f 74 20 R option.is not
8a90: 73 70 65 63 69 66 69 65 64 20 69 73 20 66 6f 72 specified is for
8aa0: 20 54 63 6c 54 4c 53 20 74 6f 20 70 72 6f 63 65 TclTLS to proce
8ab0: 73 73 20 74 68 65 20 61 73 73 6f 63 69 61 74 65 ss the associate
8ac0: 64 20 6c 69 62 72 61 72 79 20 63 61 6c 6c 62 61 d library callba
8ad0: 63 6b 73 20 62 79 0a 61 74 74 65 6d 70 74 69 6e cks by.attemptin
8ae0: 67 20 74 6f 20 63 61 6c 6c 20 5c 66 42 74 6c 73 g to call \fBtls
8af0: 3a 3a 70 61 73 73 77 6f 72 64 5c 66 52 5c 26 2e ::password\fR\&.
8b00: 20 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 The difference
8b10: 62 65 74 77 65 65 6e 20 74 68 65 73 65 20 74 77 between these tw
8b20: 6f 0a 62 65 68 61 76 69 6f 72 73 20 69 73 20 61 o.behaviors is a
8b30: 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f 66 20 consequence of
8b40: 6d 61 69 6e 74 61 69 6e 69 6e 67 20 63 6f 6d 70 maintaining comp
8b50: 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 65 atibility with e
8b60: 61 72 6c 69 65 72 0a 69 6d 70 6c 65 6d 65 6e 74 arlier.implement
8b70: 61 74 69 6f 6e 73 5c 26 2e 0a 2e 50 50 0a 5c 66 ations\&...PP.\f
8b80: 49 54 68 65 20 75 73 65 20 6f 66 20 74 68 65 20 IThe use of the
8b90: 72 65 66 65 72 65 6e 63 65 20 63 61 6c 6c 62 61 reference callba
8ba0: 63 6b 73 20 5c 66 42 74 6c 73 3a 3a 63 61 6c 6c cks \fBtls::call
8bb0: 62 61 63 6b 5c 66 52 2c 20 5c 66 42 74 6c 73 3a back\fR, \fBtls:
8bc0: 3a 70 61 73 73 77 6f 72 64 5c 66 52 2c 0a 61 6e :password\fR,.an
8bd0: 64 20 5c 66 42 74 6c 73 3a 3a 76 61 6c 69 64 61 d \fBtls::valida
8be0: 74 65 5f 63 6f 6d 6d 61 6e 64 5c 66 52 20 69 73 te_command\fR is
8bf0: 20 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64 65 64 not recommended
8c00: 5c 26 2e 20 54 68 65 79 20 6d 61 79 20 62 65 20 \&. They may be
8c10: 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 66 75 74 removed from fut
8c20: 75 72 65 20 72 65 6c 65 61 73 65 73 5c 26 2e 5c ure releases\&.\
8c30: 66 52 0a 2e 53 48 20 44 45 42 55 47 0a 46 6f 72 fR..SH DEBUG.For
8c40: 20 6d 6f 73 74 20 64 65 62 75 67 67 69 6e 67 20 most debugging
8c50: 6e 65 65 64 73 2c 20 74 68 65 20 5c 66 42 2d 63 needs, the \fB-c
8c60: 61 6c 6c 62 61 63 6b 5c 66 52 20 6f 70 74 69 6f allback\fR optio
8c70: 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f n can be used to
8c80: 20 70 72 6f 76 69 64 65 0a 73 75 66 66 69 63 69 provide.suffici
8c90: 65 6e 74 20 69 6e 73 69 67 68 74 20 61 6e 64 20 ent insight and
8ca0: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 74 information on t
8cb0: 68 65 20 54 4c 53 20 68 61 6e 64 73 68 61 6b 65 he TLS handshake
8cc0: 20 61 6e 64 20 70 72 6f 67 72 65 73 73 5c 26 2e and progress\&.
8cd0: 20 49 66 0a 66 75 72 74 68 65 72 20 74 72 6f 75 If.further trou
8ce0: 62 6c 65 73 68 6f 6f 74 69 6e 67 20 69 6e 73 69 bleshooting insi
8cf0: 67 68 74 20 69 73 20 6e 65 65 64 65 64 2c 20 74 ght is needed, t
8d00: 68 65 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 he compile time
8d10: 6f 70 74 69 6f 6e 0a 5c 66 42 2d 2d 65 6e 61 62 option.\fB--enab
8d20: 6c 65 2d 64 65 62 75 67 5c 66 52 20 63 61 6e 20 le-debug\fR can
8d30: 62 65 20 75 73 65 64 20 74 6f 20 67 65 74 20 64 be used to get d
8d40: 65 74 61 69 6c 65 64 20 65 78 65 63 75 74 69 6f etailed executio
8d50: 6e 20 66 6c 6f 77 20 73 74 61 74 75 73 5c 26 2e n flow status\&.
8d60: 0a 2e 50 50 0a 54 4c 53 20 6b 65 79 20 6c 6f 67 ..PP.TLS key log
8d70: 67 69 6e 67 20 63 61 6e 20 62 65 20 65 6e 61 62 ging can be enab
8d80: 6c 65 64 20 62 79 20 73 65 74 74 69 6e 67 20 74 led by setting t
8d90: 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 he environment v
8da0: 61 72 69 61 62 6c 65 0a 5c 66 42 53 53 4c 4b 45 ariable.\fBSSLKE
8db0: 59 4c 4f 47 46 49 4c 45 5c 66 52 20 74 6f 20 74 YLOGFILE\fR to t
8dc0: 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 he name of the f
8dd0: 69 6c 65 20 74 6f 20 6c 6f 67 20 74 6f 5c 26 2e ile to log to\&.
8de0: 20 54 68 65 6e 20 77 68 65 6e 65 76 65 72 20 54 Then whenever T
8df0: 4c 53 20 6b 65 79 0a 6d 61 74 65 72 69 61 6c 20 LS key.material
8e00: 69 73 20 67 65 6e 65 72 61 74 65 64 20 6f 72 20 is generated or
8e10: 72 65 63 65 69 76 65 64 20 69 74 20 77 69 6c 6c received it will
8e20: 20 62 65 20 6c 6f 67 67 65 64 20 74 6f 20 74 68 be logged to th
8e30: 65 20 66 69 6c 65 5c 26 2e 20 54 68 69 73 20 69 e file\&. This i
8e40: 73 20 75 73 65 66 75 6c 0a 66 6f 72 20 6c 6f 67 s useful.for log
8e50: 67 69 6e 67 20 6b 65 79 20 64 61 74 61 20 66 6f ging key data fo
8e60: 72 20 6e 65 74 77 6f 72 6b 20 6c 6f 67 67 69 6e r network loggin
8e70: 67 20 74 6f 6f 6c 73 20 74 6f 20 75 73 65 20 74 g tools to use t
8e80: 6f 20 64 65 63 72 79 70 74 20 74 68 65 20 64 61 o decrypt the da
8e90: 74 61 5c 26 2e 0a 2e 50 50 0a 54 68 65 20 5c 66 ta\&...PP.The \f
8ea0: 42 74 6c 73 3a 3a 64 65 62 75 67 5c 66 52 20 76 Btls::debug\fR v
8eb0: 61 72 69 61 62 6c 65 20 70 72 6f 76 69 64 65 73 ariable provides
8ec0: 20 73 6f 6d 65 20 61 64 64 69 74 69 6f 6e 61 6c some additional
8ed0: 20 63 6f 6e 74 72 6f 6c 20 6f 76 65 72 20 74 68 control over th
8ee0: 65 73 65 0a 72 65 66 65 72 65 6e 63 65 20 63 61 ese.reference ca
8ef0: 6c 6c 62 61 63 6b 73 5c 26 2e 20 49 74 73 20 76 llbacks\&. Its v
8f00: 61 6c 75 65 20 69 73 20 7a 65 72 6f 20 62 79 20 alue is zero by
8f10: 64 65 66 61 75 6c 74 5c 26 2e 20 48 69 67 68 65 default\&. Highe
8f20: 72 20 76 61 6c 75 65 73 20 70 72 6f 64 75 63 65 r values produce
8f30: 20 6d 6f 72 65 0a 64 69 61 67 6e 6f 73 74 69 63 more.diagnostic
8f40: 20 6f 75 74 70 75 74 2c 20 61 6e 64 20 77 69 6c output, and wil
8f50: 6c 20 61 6c 73 6f 20 66 6f 72 63 65 20 74 68 65 l also force the
8f60: 20 76 65 72 69 66 79 20 6d 65 74 68 6f 64 20 69 verify method i
8f70: 6e 20 5c 66 42 74 6c 73 3a 3a 63 61 6c 6c 62 61 n \fBtls::callba
8f80: 63 6b 5c 66 52 0a 74 6f 20 61 63 63 65 70 74 20 ck\fR.to accept
8f90: 74 68 65 20 63 65 72 74 69 66 69 63 61 74 65 2c the certificate,
8fa0: 20 65 76 65 6e 20 77 68 65 6e 20 69 74 20 69 73 even when it is
8fb0: 20 69 6e 76 61 6c 69 64 20 69 66 20 74 68 65 0a invalid if the.
8fc0: 5c 66 42 2d 76 61 6c 69 64 61 74 65 63 6f 6d 6d \fB-validatecomm
8fd0: 61 6e 64 5c 66 52 20 6f 70 74 69 6f 6e 20 69 73 and\fR option is
8fe0: 20 73 65 74 20 74 6f 20 5c 66 42 74 6c 73 3a 3a set to \fBtls::
8ff0: 76 61 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 6e 64 validate_command
9000: 5c 66 52 5c 26 2e 0a 2e 50 50 0a 5c 66 49 54 68 \fR\&...PP.\fITh
9010: 65 20 75 73 65 20 6f 66 20 74 68 65 20 76 61 72 e use of the var
9020: 69 61 62 6c 65 20 5c 66 42 74 6c 73 3a 3a 64 65 iable \fBtls::de
9030: 62 75 67 5c 66 52 20 69 73 20 6e 6f 74 20 72 65 bug\fR is not re
9040: 63 6f 6d 6d 65 6e 64 65 64 5c 26 2e 0a 49 74 20 commended\&..It
9050: 6d 61 79 20 62 65 20 72 65 6d 6f 76 65 64 20 66 may be removed f
9060: 72 6f 6d 20 66 75 74 75 72 65 20 72 65 6c 65 61 rom future relea
9070: 73 65 73 5c 26 2e 5c 66 52 0a 2e 53 48 20 22 44 ses\&.\fR..SH "D
9080: 45 42 55 47 20 45 58 41 4d 50 4c 45 53 22 0a 54 EBUG EXAMPLES".T
9090: 68 65 73 65 20 65 78 61 6d 70 6c 65 73 20 75 73 hese examples us
90a0: 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 55 6e e the default Un
90b0: 69 78 20 70 6c 61 74 66 6f 72 6d 20 53 53 4c 20 ix platform SSL
90c0: 63 65 72 74 69 66 69 63 61 74 65 73 5c 26 2e 20 certificates\&.
90d0: 46 6f 72 20 73 74 61 6e 64 61 72 64 0a 69 6e 73 For standard.ins
90e0: 74 61 6c 6c 61 74 69 6f 6e 73 2c 20 2d 63 61 64 tallations, -cad
90f0: 69 72 20 61 6e 64 20 2d 63 61 66 69 6c 65 20 73 ir and -cafile s
9100: 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6e 65 65 hould not be nee
9110: 64 65 64 5c 26 2e 20 49 66 20 79 6f 75 72 20 63 ded\&. If your c
9120: 65 72 74 69 66 69 63 61 74 65 73 0a 61 72 65 20 ertificates.are
9130: 69 6e 20 6e 6f 6e 2d 73 74 61 6e 64 61 72 64 20 in non-standard
9140: 6c 6f 63 61 74 69 6f 6e 73 2c 20 73 70 65 63 69 locations, speci
9150: 66 79 20 2d 63 61 64 69 72 20 6f 72 20 2d 63 61 fy -cadir or -ca
9160: 66 69 6c 65 20 61 73 20 6e 65 65 64 65 64 5c 26 file as needed\&
9170: 2e 0a 2e 50 50 0a 45 78 61 6d 70 6c 65 20 23 31 ...PP.Example #1
9180: 3a 20 55 73 65 20 48 54 54 50 20 70 61 63 6b 61 : Use HTTP packa
9190: 67 65 0a 2e 43 53 0a 0a 0a 0a 70 61 63 6b 61 67 ge..CS....packag
91a0: 65 20 72 65 71 75 69 72 65 20 68 74 74 70 0a 70 e require http.p
91b0: 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 74 ackage require t
91c0: 6c 73 0a 73 65 74 20 75 72 6c 20 22 68 74 74 70 ls.set url "http
91d0: 73 3a 2f 2f 77 77 77 5c 26 2e 74 63 6c 5c 26 2e s://www\&.tcl\&.
91e0: 74 6b 2f 22 0a 0a 68 74 74 70 3a 3a 72 65 67 69 tk/"..http::regi
91f0: 73 74 65 72 20 68 74 74 70 73 20 34 34 33 20 5b ster https 443 [
9200: 6c 69 73 74 20 3a 3a 74 6c 73 3a 3a 73 6f 63 6b list ::tls::sock
9210: 65 74 20 2d 61 75 74 6f 73 65 72 76 65 72 6e 61 et -autoserverna
9220: 6d 65 20 31 20 2d 72 65 71 75 69 72 65 20 31 20 me 1 -require 1
9230: 20 2d 63 6f 6d 6d 61 6e 64 20 3a 3a 74 6c 73 3a -command ::tls:
9240: 3a 63 61 6c 6c 62 61 63 6b 20 2d 70 61 73 73 77 :callback -passw
9250: 6f 72 64 20 3a 3a 74 6c 73 3a 3a 70 61 73 73 77 ord ::tls::passw
9260: 6f 72 64 20 20 2d 76 61 6c 69 64 61 74 65 63 6f ord -validateco
9270: 6d 6d 61 6e 64 20 3a 3a 74 6c 73 3a 3a 76 61 6c mmand ::tls::val
9280: 69 64 61 74 65 5f 63 6f 6d 6d 61 6e 64 5d 0a 0a idate_command]..
9290: 23 20 43 68 65 63 6b 20 66 6f 72 20 65 72 72 6f # Check for erro
92a0: 72 0a 73 65 74 20 74 6f 6b 65 6e 20 5b 68 74 74 r.set token [htt
92b0: 70 3a 3a 67 65 74 75 72 6c 20 24 75 72 6c 5d 0a p::geturl $url].
92c0: 69 66 20 7b 5b 68 74 74 70 3a 3a 73 74 61 74 75 if {[http::statu
92d0: 73 20 24 74 6f 6b 65 6e 5d 20 6e 65 20 22 6f 6b s $token] ne "ok
92e0: 22 7d 20 7b 0a 20 20 20 20 70 75 74 73 20 5b 66 "} {. puts [f
92f0: 6f 72 6d 61 74 20 22 45 72 72 6f 72 20 25 73 22 ormat "Error %s"
9300: 20 5b 68 74 74 70 3a 3a 73 74 61 74 75 73 20 24 [http::status $
9310: 74 6f 6b 65 6e 5d 5d 0a 7d 0a 0a 23 20 47 65 74 token]].}..# Get
9320: 20 77 65 62 20 70 61 67 65 0a 73 65 74 20 64 61 web page.set da
9330: 74 61 20 5b 68 74 74 70 3a 3a 64 61 74 61 20 24 ta [http::data $
9340: 74 6f 6b 65 6e 5d 0a 70 75 74 73 20 5b 73 74 72 token].puts [str
9350: 69 6e 67 20 6c 65 6e 67 74 68 20 24 64 61 74 61 ing length $data
9360: 5d 0a 0a 23 20 43 6c 65 61 6e 75 70 0a 3a 3a 68 ]..# Cleanup.::h
9370: 74 74 70 3a 3a 63 6c 65 61 6e 75 70 20 24 74 6f ttp::cleanup $to
9380: 6b 65 6e 0a 0a 2e 43 45 0a 45 78 61 6d 70 6c 65 ken...CE.Example
9390: 20 23 32 3a 20 55 73 65 20 72 61 77 20 73 6f 63 #2: Use raw soc
93a0: 6b 65 74 0a 2e 43 53 0a 0a 0a 0a 70 61 63 6b 61 ket..CS....packa
93b0: 67 65 20 72 65 71 75 69 72 65 20 74 6c 73 0a 0a ge require tls..
93c0: 73 65 74 20 75 72 6c 20 22 77 77 77 5c 26 2e 74 set url "www\&.t
93d0: 63 6c 2d 6c 61 6e 67 5c 26 2e 6f 72 67 22 0a 73 cl-lang\&.org".s
93e0: 65 74 20 70 6f 72 74 20 34 34 33 0a 0a 73 65 74 et port 443..set
93f0: 20 63 68 20 5b 74 6c 73 3a 3a 73 6f 63 6b 65 74 ch [tls::socket
9400: 20 2d 61 75 74 6f 73 65 72 76 65 72 6e 61 6d 65 -autoservername
9410: 20 31 20 2d 73 65 72 76 65 72 6e 61 6d 65 20 24 1 -servername $
9420: 75 72 6c 20 2d 72 65 71 75 69 72 65 20 31 20 20 url -require 1
9430: 2d 61 6c 70 6e 20 7b 68 74 74 70 2f 31 5c 26 2e -alpn {http/1\&.
9440: 31 7d 20 2d 63 6f 6d 6d 61 6e 64 20 3a 3a 74 6c 1} -command ::tl
9450: 73 3a 3a 63 61 6c 6c 62 61 63 6b 20 2d 70 61 73 s::callback -pas
9460: 73 77 6f 72 64 20 3a 3a 74 6c 73 3a 3a 70 61 73 sword ::tls::pas
9470: 73 77 6f 72 64 20 20 2d 76 61 6c 69 64 61 74 65 sword -validate
9480: 63 6f 6d 6d 61 6e 64 20 3a 3a 74 6c 73 3a 3a 76 command ::tls::v
9490: 61 6c 69 64 61 74 65 5f 63 6f 6d 6d 61 6e 64 20 alidate_command
94a0: 24 75 72 6c 20 24 70 6f 72 74 5d 0a 63 68 61 6e $url $port].chan
94b0: 20 63 6f 6e 66 69 67 75 72 65 20 24 63 68 20 2d configure $ch -
94c0: 62 75 66 66 65 72 73 69 7a 65 20 36 35 35 33 36 buffersize 65536
94d0: 0a 74 6c 73 3a 3a 68 61 6e 64 73 68 61 6b 65 20 .tls::handshake
94e0: 24 63 68 0a 0a 70 75 74 73 20 24 63 68 20 22 47 $ch..puts $ch "G
94f0: 45 54 20 2f 20 48 54 54 50 2f 31 5c 26 2e 31 22 ET / HTTP/1\&.1"
9500: 0a 66 6c 75 73 68 20 24 63 68 0a 61 66 74 65 72 .flush $ch.after
9510: 20 35 30 30 0a 73 65 74 20 64 61 74 61 20 5b 72 500.set data [r
9520: 65 61 64 20 24 63 68 5d 0a 0a 61 72 72 61 79 20 ead $ch]..array
9530: 73 65 74 20 73 74 61 74 75 73 20 5b 74 6c 73 3a set status [tls:
9540: 3a 73 74 61 74 75 73 20 24 63 68 5d 0a 61 72 72 :status $ch].arr
9550: 61 79 20 73 65 74 20 63 6f 6e 6e 20 5b 74 6c 73 ay set conn [tls
9560: 3a 3a 63 6f 6e 6e 65 63 74 69 6f 6e 20 24 63 68 ::connection $ch
9570: 5d 0a 61 72 72 61 79 20 73 65 74 20 63 68 61 6e ].array set chan
9580: 20 5b 63 68 61 6e 20 63 6f 6e 66 69 67 75 72 65 [chan configure
9590: 20 24 63 68 5d 0a 63 6c 6f 73 65 20 24 63 68 0a $ch].close $ch.
95a0: 70 61 72 72 61 79 20 73 74 61 74 75 73 0a 70 61 parray status.pa
95b0: 72 72 61 79 20 63 6f 6e 6e 0a 70 61 72 72 61 79 rray conn.parray
95c0: 20 63 68 61 6e 0a 0a 2e 43 45 0a 2e 53 48 20 22 chan...CE..SH "
95d0: 48 54 54 50 20 50 41 43 4b 41 47 45 20 45 58 41 HTTP PACKAGE EXA
95e0: 4d 50 4c 45 53 22 0a 54 68 65 73 65 20 65 78 61 MPLES".These exa
95f0: 6d 70 6c 65 73 20 75 73 65 20 74 68 65 20 64 65 mples use the de
9600: 66 61 75 6c 74 20 55 6e 69 78 20 70 6c 61 74 66 fault Unix platf
9610: 6f 72 6d 20 53 53 4c 20 63 65 72 74 69 66 69 63 orm SSL certific
9620: 61 74 65 73 5c 26 2e 20 46 6f 72 20 73 74 61 6e ates\&. For stan
9630: 64 61 72 64 0a 69 6e 73 74 61 6c 6c 61 74 69 6f dard.installatio
9640: 6e 73 2c 20 2d 63 61 64 69 72 20 61 6e 64 20 2d ns, -cadir and -
9650: 63 61 66 69 6c 65 20 73 68 6f 75 6c 64 20 6e 6f cafile should no
9660: 74 20 62 65 20 6e 65 65 64 65 64 5c 26 2e 20 49 t be needed\&. I
9670: 66 20 79 6f 75 72 20 63 65 72 74 69 66 69 63 61 f your certifica
9680: 74 65 73 0a 61 72 65 20 69 6e 20 6e 6f 6e 2d 73 tes.are in non-s
9690: 74 61 6e 64 61 72 64 20 6c 6f 63 61 74 69 6f 6e tandard location
96a0: 73 2c 20 73 65 74 20 2d 63 61 64 69 72 20 6f 72 s, set -cadir or
96b0: 20 75 73 65 20 2d 63 61 66 69 6c 65 20 61 73 20 use -cafile as
96c0: 6e 65 65 64 65 64 5c 26 2e 0a 2e 50 50 0a 45 78 needed\&...PP.Ex
96d0: 61 6d 70 6c 65 20 23 33 3a 20 47 65 74 20 77 65 ample #3: Get we
96e0: 62 20 70 61 67 65 0a 2e 43 53 0a 0a 0a 0a 70 61 b page..CS....pa
96f0: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 68 74 ckage require ht
9700: 74 70 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 tp.package requi
9710: 72 65 20 74 6c 73 0a 73 65 74 20 75 72 6c 20 22 re tls.set url "
9720: 68 74 74 70 73 3a 2f 2f 77 77 77 5c 26 2e 74 63 https://www\&.tc
9730: 6c 5c 26 2e 74 6b 2f 22 0a 0a 68 74 74 70 3a 3a l\&.tk/"..http::
9740: 72 65 67 69 73 74 65 72 20 68 74 74 70 73 20 34 register https 4
9750: 34 33 20 5b 6c 69 73 74 20 3a 3a 74 6c 73 3a 3a 43 [list ::tls::
9760: 73 6f 63 6b 65 74 20 2d 61 75 74 6f 73 65 72 76 socket -autoserv
9770: 65 72 6e 61 6d 65 20 31 20 2d 72 65 71 75 69 72 ername 1 -requir
9780: 65 20 31 5d 0a 0a 23 20 43 68 65 63 6b 20 66 6f e 1]..# Check fo
9790: 72 20 65 72 72 6f 72 0a 73 65 74 20 74 6f 6b 65 r error.set toke
97a0: 6e 20 5b 68 74 74 70 3a 3a 67 65 74 75 72 6c 20 n [http::geturl
97b0: 24 75 72 6c 5d 0a 69 66 20 7b 5b 68 74 74 70 3a $url].if {[http:
97c0: 3a 73 74 61 74 75 73 20 24 74 6f 6b 65 6e 5d 20 :status $token]
97d0: 6e 65 20 22 6f 6b 22 7d 20 7b 0a 20 20 20 20 70 ne "ok"} {. p
97e0: 75 74 73 20 5b 66 6f 72 6d 61 74 20 22 45 72 72 uts [format "Err
97f0: 6f 72 20 25 73 22 20 5b 68 74 74 70 3a 3a 73 74 or %s" [http::st
9800: 61 74 75 73 20 24 74 6f 6b 65 6e 5d 5d 0a 7d 0a atus $token]].}.
9810: 0a 23 20 47 65 74 20 77 65 62 20 70 61 67 65 0a .# Get web page.
9820: 73 65 74 20 64 61 74 61 20 5b 68 74 74 70 3a 3a set data [http::
9830: 64 61 74 61 20 24 74 6f 6b 65 6e 5d 0a 70 75 74 data $token].put
9840: 73 20 24 64 61 74 61 0a 0a 23 20 43 6c 65 61 6e s $data..# Clean
9850: 75 70 0a 3a 3a 68 74 74 70 3a 3a 63 6c 65 61 6e up.::http::clean
9860: 75 70 20 24 74 6f 6b 65 6e 0a 0a 2e 43 45 0a 45 up $token...CE.E
9870: 78 61 6d 70 6c 65 20 23 34 3a 20 44 6f 77 6e 6c xample #4: Downl
9880: 6f 61 64 20 66 69 6c 65 0a 2e 43 53 0a 0a 0a 0a oad file..CS....
9890: 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 package require
98a0: 68 74 74 70 0a 70 61 63 6b 61 67 65 20 72 65 71 http.package req
98b0: 75 69 72 65 20 74 6c 73 0a 0a 73 65 74 20 75 72 uire tls..set ur
98c0: 6c 20 22 68 74 74 70 73 3a 2f 2f 77 69 6b 69 5c l "https://wiki\
98d0: 26 2e 74 63 6c 2d 6c 61 6e 67 5c 26 2e 6f 72 67 &.tcl-lang\&.org
98e0: 2f 73 69 74 65 6d 61 70 5c 26 2e 78 6d 6c 22 0a /sitemap\&.xml".
98f0: 73 65 74 20 66 69 6c 65 6e 61 6d 65 20 5b 66 69 set filename [fi
9900: 6c 65 20 74 61 69 6c 20 24 75 72 6c 5d 0a 0a 68 le tail $url]..h
9910: 74 74 70 3a 3a 72 65 67 69 73 74 65 72 20 68 74 ttp::register ht
9920: 74 70 73 20 34 34 33 20 5b 6c 69 73 74 20 3a 3a tps 443 [list ::
9930: 74 6c 73 3a 3a 73 6f 63 6b 65 74 20 2d 61 75 74 tls::socket -aut
9940: 6f 73 65 72 76 65 72 6e 61 6d 65 20 31 20 2d 72 oservername 1 -r
9950: 65 71 75 69 72 65 20 31 5d 0a 0a 23 20 47 65 74 equire 1]..# Get
9960: 20 66 69 6c 65 0a 73 65 74 20 63 68 20 5b 6f 70 file.set ch [op
9970: 65 6e 20 24 66 69 6c 65 6e 61 6d 65 20 77 62 5d en $filename wb]
9980: 0a 73 65 74 20 74 6f 6b 65 6e 20 5b 3a 3a 68 74 .set token [::ht
9990: 74 70 3a 3a 67 65 74 75 72 6c 20 24 75 72 6c 20 tp::geturl $url
99a0: 2d 62 6c 6f 63 6b 73 69 7a 65 20 36 35 35 33 36 -blocksize 65536
99b0: 20 2d 63 68 61 6e 6e 65 6c 20 24 63 68 5d 0a 0a -channel $ch]..
99c0: 23 20 43 6c 65 61 6e 75 70 0a 63 6c 6f 73 65 20 # Cleanup.close
99d0: 24 63 68 0a 3a 3a 68 74 74 70 3a 3a 63 6c 65 61 $ch.::http::clea
99e0: 6e 75 70 20 24 74 6f 6b 65 6e 0a 0a 2e 43 45 0a nup $token...CE.
99f0: 2e 53 48 20 22 53 50 45 43 49 41 4c 20 43 4f 4e .SH "SPECIAL CON
9a00: 53 49 44 45 52 41 54 49 4f 4e 53 22 0a 54 68 65 SIDERATIONS".The
9a10: 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 6f 66 capabilities of
9a20: 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 63 61 this package ca
9a30: 6e 20 76 61 72 79 20 65 6e 6f 72 6d 6f 75 73 6c n vary enormousl
9a40: 79 20 62 61 73 65 64 20 75 70 6f 6e 20 68 6f 77 y based upon how
9a50: 20 74 68 65 0a 6c 69 6e 6b 65 64 20 74 6f 20 4f the.linked to O
9a60: 70 65 6e 53 53 4c 20 6c 69 62 72 61 72 79 20 77 penSSL library w
9a70: 61 73 20 63 6f 6e 66 69 67 75 72 65 64 20 61 6e as configured an
9a80: 64 20 62 75 69 6c 74 5c 26 2e 20 4e 65 77 20 76 d built\&. New v
9a90: 65 72 73 69 6f 6e 73 20 6d 61 79 20 6f 62 73 6f ersions may obso
9aa0: 6c 65 74 65 0a 6f 6c 64 65 72 20 70 72 6f 74 6f lete.older proto
9ab0: 63 6f 6c 20 76 65 72 73 69 6f 6e 73 2c 20 61 64 col versions, ad
9ac0: 64 20 6f 72 20 72 65 6d 6f 76 65 20 63 69 70 68 d or remove ciph
9ad0: 65 72 73 2c 20 63 68 61 6e 67 65 20 64 65 66 61 ers, change defa
9ae0: 75 6c 74 20 76 61 6c 75 65 73 2c 20 65 74 63 5c ult values, etc\
9af0: 26 2e 0a 55 73 65 20 74 68 65 20 5c 66 42 74 6c &..Use the \fBtl
9b00: 73 3a 3a 70 72 6f 74 6f 63 6f 6c 73 5c 66 52 20 s::protocols\fR
9b10: 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 6f 62 74 61 commands to obta
9b20: 69 6e 20 74 68 65 20 73 75 70 70 6f 72 74 65 64 in the supported
9b30: 0a 70 72 6f 74 6f 63 6f 6c 20 76 65 72 73 69 6f .protocol versio
9b40: 6e 73 5c 26 2e 0a 2e 53 48 20 22 53 45 45 20 41 ns\&...SH "SEE A
9b50: 4c 53 4f 22 0a 5c 66 49 4f 70 65 6e 53 53 4c 5c LSO".\fIOpenSSL\
9b60: 66 52 20 5b 68 74 74 70 73 3a 2f 2f 77 77 77 5c fR [https://www\
9b70: 26 2e 6f 70 65 6e 73 73 6c 5c 26 2e 6f 72 67 2f &.openssl\&.org/
9b80: 5d 2c 20 68 74 74 70 2c 20 73 6f 63 6b 65 74 0a ], http, socket.
9b90: 2e 53 48 20 4b 45 59 57 4f 52 44 53 0a 49 2f 4f .SH KEYWORDS.I/O
9ba0: 2c 20 49 50 20 41 64 64 72 65 73 73 2c 20 4f 70 , IP Address, Op
9bb0: 65 6e 53 53 4c 2c 20 53 53 4c 2c 20 54 43 50 2c enSSL, SSL, TCP,
9bc0: 20 54 4c 53 2c 20 54 63 6c 54 4c 53 2c 20 61 73 TLS, TclTLS, as
9bd0: 79 6e 63 68 72 6f 6e 6f 75 73 20 49 2f 4f 2c 20 ynchronous I/O,
9be0: 62 69 6e 64 2c 20 63 65 72 74 69 66 69 63 61 74 bind, certificat
9bf0: 65 2c 20 63 68 61 6e 6e 65 6c 2c 20 63 6f 6e 6e e, channel, conn
9c00: 65 63 74 69 6f 6e 2c 20 64 6f 6d 61 69 6e 20 6e ection, domain n
9c10: 61 6d 65 2c 20 68 6f 73 74 2c 20 68 74 74 70 73 ame, host, https
9c20: 2c 20 6e 65 74 77 6f 72 6b 2c 20 6e 65 74 77 6f , network, netwo
9c30: 72 6b 20 61 64 64 72 65 73 73 2c 20 73 6f 63 6b rk address, sock
9c40: 65 74 2c 20 74 6c 73 0a 2e 53 48 20 43 41 54 45 et, tls..SH CATE
9c50: 47 4f 52 59 0a 74 6c 73 0a 2e 53 48 20 43 4f 50 GORY.tls..SH COP
9c60: 59 52 49 47 48 54 0a 2e 6e 66 0a 43 6f 70 79 72 YRIGHT..nf.Copyr
9c70: 69 67 68 74 20 28 63 29 20 31 39 39 39 20 4d 61 ight (c) 1999 Ma
9c80: 74 74 20 4e 65 77 6d 61 6e 0a 43 6f 70 79 72 69 tt Newman.Copyri
9c90: 67 68 74 20 28 63 29 20 32 30 30 34 20 53 74 61 ght (c) 2004 Sta
9ca0: 72 66 69 73 68 20 53 79 73 74 65 6d 73 0a 43 6f rfish Systems.Co
9cb0: 70 79 72 69 67 68 74 20 28 63 29 20 32 30 32 34 pyright (c) 2024
9cc0: 20 42 72 69 61 6e 20 4f 27 48 61 67 61 6e 0a 0a Brian O'Hagan..
9cd0: 2e 66 69 0a .fi.