Changes In Branch nijtmans
Through [b921cb3e6e]
Excluding Merge-Ins
This is equivalent to a diff from
b5c41cdeb6
to b921cb3e6e
Added .fossil-settings/manifest version [1e2c3d8462].
Modified ChangeLog
from [7400a29b58]
to [dc44957559].
1
2
3
4
5
6
7
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
+
+
+
+
+
+
+
|
TclTLS 1.7.22
==========
Release Date: Mon Oct 12 15:40:16 CDT 2020
https://tcltls.rkeene.org/
2015-05-01 Andreas Kupries <[email protected]>
* configure.in: Bump to version 1.6.5.
* win/makefile.vc:
* configure: regen with ac-2.59
* tls.c: Accepted SF TLS [bug/patch #57](https://sourceforge.net/p/tls/bugs/57/).
* tlsIO.c: Accepted core Tcl patch in [ticket](http://core.tcl.tk/tcl/tktview/0f94f855cafed92d0e174b7d835453a02831b4dd).
|
︙ | | |
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
-
+
-
+
|
* configure.in: Bump to version 1.6.3.
* win/makefile.vc:
* configure: regen with ac-2.59
* tls.c (MiscObjCmd): Fixed non-static string array used in call
of Tcl_GetIndexFromObj(). Memory smash waiting to happen. Thanks
to Brian Griffin for alerting us all to the problem.
to Brian Griffin for alerting us all to the problem.
2012-06-01 Andreas Kupries <[email protected]>
* tls.c: Applied Jeff's patch from
http://www.mail-archive.com/[email protected]/msg12356.html
* configure.in: Bump to version 1.6.2.
* win/makefile.vc:
* configure: regen with ac-2.59
2010-08-11 Jeff Hobbs <[email protected]>
*** TLS 1.6.1 TAGGED ***
* configure: regen with ac-2.59
* win/makefile.vc, configure.in: bump version to 1.6.1
* tclconfig/tcl.m4: updated to TEA 3.8
|
︙ | | |
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
-
+
-
+
|
* tls.c: Silence 64 bit integer conversion warnings
* win/nmakehlp.c: Update build system to support AMD64 target
* win/makefile.vc: with MSVC8
* win/rules.vc:
2007-06-22 Jeff Hobbs <[email protected]>
* tlsIO.c (TlsInputProc, TlsOutputProc, TlsWatchProc):
* tlsIO.c (TlsInputProc, TlsOutputProc, TlsWatchProc):
* tls.c (VerifyCallback): add an state flag in the verify callback
that prevents possibly recursion (on 'update'). [Bug 1652380]
* tests/ciphers.test: reworked to make test output cleaner to
understand missing ciphers (if any)
* Makefile.in, tclconfig/tcl.m4: update to TEA 3.6
* configure, configure.in: using autoconf-2.59
2007-02-28 Pat Thoyts <[email protected]>
* win/makefile.vc: Rebase the DLL sensibly. Additional libs for
* win/makefile.vc: Rebase the DLL sensibly. Additional libs for
static link of openssl.
* tls.tcl: bug #1579837 - TIP 278 bug (possibly) - fixed.
2006-03-30 Pat Thoyts <[email protected]>
* tclconfig/*: Updated to TEA 3.5 in response to bug 1460491
* configure*: Regenerated configure.
|
︙ | | |
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
-
+
-
+
|
* Makefile.in: Removed spurious copying of tls.tcl into the
build directory.
2004-12-22 Pat Thoyts <[email protected]>
* configure.in: Incremented minor version to 1.5.1
* configure:
* configure:
2004-12-17 Pat Thoyts <[email protected]>
* win/makefile.vc: Added the MSVC build system (from the Tcl
* win/rules.vc: sampleextension).
* win/nmakehlp.c:
* win/tls.rc Added Windows resource file.
* tls.tcl: From patch #948155, added support for
alternate socket commands.
* tls.c: Quieten some MSVC warnings. Prefer ckalloc
over Tcl_Alloc. (David Graveraux).
2004-06-29 Pat Thoyts <[email protected]>
|
︙ | | |
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
|
-
+
|
* pkgIndex.tcl.in, strncasecmp.c (removed):
* Makefile.in, aclocal.m4, configure, configure.in:
* tclconfig/README.txt, tclconfig/install-sh, tclconfig/tcl.m4:
2004-03-17 Dan Razzell <[email protected]>
* tlsX509.c: Add support for long serial numbers per RFC 3280.
Format is now hexadecimal.
Format is now hexadecimal.
[Request #915313]
Correctly convert certificate Distinguished Names
to Tcl string representation. Eliminates use of
deprecated OpenSSL function. Format is now compliant
with RFC 2253. [Request #915315]
2004-02-17 Dan Razzell <[email protected]>
|
︙ | | |
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
|
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
-
+
|
2003-07-07 Jeff Hobbs <[email protected]>
* tls.c (Tls_Init): added tls::misc command provided by
* tlsX509.c: Wojciech Kocjan (wojciech kocjan.org)
* tests/keytest1.tcl: to expose more low-level SSL commands
* tests/keytest2.tcl:
2003-05-15 Dan Razzell <[email protected]>
2003-05-15 Dan Razzell <[email protected]>
* tls.tcl:
* tlsInt.h:
* tls.c: add support for binding a password callback to the socket.
Now each socket can have its own command and password callbacks instead
of being forced to have all password management pass through a common
procedure. The common password procedure is retained for compatibility
|
︙ | | |
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
|
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
|
-
+
|
compiling with 8.2. Now compiles with 8.2+ and tested to work
with 8.2+ and dynamically adjust to the version of Tcl it was
loaded into. TLS will fail the test suite with Tcl 8.2-8.3.1.
* tests/all.tcl: added catch around ::tcltest::normalizePath
because it doesn't exist in pre-8.3 tcltest.
* tests/simpleClient.tcl:
* tests/simpleClient.tcl:
* tests/simpleServer.tcl: added simple client/server test scripts
that use test certs and can do simple stress tests.
2000-08-14 Jeff Hobbs <[email protected]>
* tlsInt.h:
* tlsIO.c:
|
︙ | | |
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
|
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
|
-
+
|
* tlsIO.c: added support for "corrected" stacked channels. All
the above channels are in TCL_CHANNEL_VERSION_2 #ifdefs.
2000-06-05 Scott Stanton <[email protected]>
* Makefile.in: Fixed broken test target.
* tlsInt.h:
* tlsInt.h:
* tls.c: Cleaned up declarations of Tls_Clean to avoid errors on
Windows (lint).
2000-06-05 Brent Welch <[email protected]>
* tls.c, tlsIO.c: Split Tls_Free into Tls_Clean, which does
the SSL cleanup, and the Tcl_Free call. It is important to shutdown
|
︙ | | |
| | | | | | |
Modified Makefile.in
from [500d902713]
to [5bdcefa2e5].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
+
|
CC = @CC@
AR = @AR@
RANLIB = @RANLIB@
CFLAGS = @CFLAGS@ @SHOBJFLAGS@
CPPFLAGS = @CPPFLAGS@ -I@srcdir@ -I. @DEFS@ @TCL_DEFS@
LDFLAGS = @LDFLAGS@ @SHOBJLDFLAGS@
LIBS = @LIBS@
PACKAGE_VERSION = @PACKAGE_VERSION@
prefix = @prefix@
exec_prefix = @exec_prefix@
libdir = @libdir@
genericdir = @srcdir@/generic
TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@
PACKAGE_INSTALL_DIR = $(TCL_PACKAGE_PATH)/tcltls$(PACKAGE_VERSION)
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
VPATH = @srcdir@
|
︙ | | |
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
# The static target
static-@EXTENSION_TARGET@: tls.o tlsBIO.o tlsIO.o tlsX509.o Makefile
$(AR) rcu static-@EXTENSION_TARGET@ tls.o tlsBIO.o tlsIO.o tlsX509.o
-$(RANLIB) static-@EXTENSION_TARGET@
# Dependencies for all our targets
tls.o: @srcdir@/tls.c @srcdir@/tlsInt.h @srcdir@/tclOpts.h tls.tcl.h dh_params.h Makefile
$(CC) $(CPPFLAGS) $(CFLAGS) -o tls.o -c @srcdir@/tls.c
tls.o: $(genericdir)/tls.c $(genericdir)/tlsInt.h $(genericdir)/tclOpts.h tls.tcl.h dh_params.h Makefile
$(CC) $(CPPFLAGS) $(CFLAGS) -o tls.o -c $(genericdir)/tls.c
tlsBIO.o: @srcdir@/tlsBIO.c @srcdir@/tlsInt.h Makefile
$(CC) $(CPPFLAGS) $(CFLAGS) -o tlsBIO.o -c @srcdir@/tlsBIO.c
tlsBIO.o: $(genericdir)/tlsBIO.c $(genericdir)/tlsInt.h Makefile
$(CC) $(CPPFLAGS) $(CFLAGS) -o tlsBIO.o -c $(genericdir)/tlsBIO.c
tlsIO.o: @srcdir@/tlsIO.c @srcdir@/tlsInt.h Makefile
$(CC) $(CPPFLAGS) $(CFLAGS) -o tlsIO.o -c @srcdir@/tlsIO.c
tlsIO.o: $(genericdir)/tlsIO.c $(genericdir)/tlsInt.h Makefile
$(CC) $(CPPFLAGS) $(CFLAGS) -o tlsIO.o -c $(genericdir)/tlsIO.c
tlsX509.o: @srcdir@/tlsX509.c @srcdir@/tlsInt.h Makefile
$(CC) $(CPPFLAGS) $(CFLAGS) -o tlsX509.o -c @srcdir@/tlsX509.c
tlsX509.o: $(genericdir)/tlsX509.c $(genericdir)/tlsInt.h Makefile
$(CC) $(CPPFLAGS) $(CFLAGS) -o tlsX509.o -c $(genericdir)/tlsX509.c
# Create a C-source-ified version of the script resources
# for TclTLS so that we only need a single file to enable
# this extension
tls.tcl.h: @srcdir@/tls.tcl Makefile
od -A n -v -t xC < '@srcdir@/tls.tcl' > tls.tcl.h.new.1
sed 's@[^0-9A-Fa-f]@@g;s@..@0x&, @g' < tls.tcl.h.new.1 > tls.tcl.h.new.2
|
︙ | | |
Modified README.txt
from [4d858d5c33]
to [3dc72eec51].
1
2
3
4
5
6
7
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
+
+
+
+
+
+
+
|
TclTLS 1.7.22
==========
Release Date: Mon Oct 12 15:40:16 CDT 2020
https://tcltls.rkeene.org/
Original TLS Copyright (C) 1997-2000 Matt Newman <[email protected]>
TLS 1.4.1 Copyright (C) 2000 Ajuba Solutions
TLS 1.6 Copyright (C) 2008 ActiveState Software Inc.
TLS 1.7 Copyright (C) 2016 Matt Newman, Ajuba Solutions, ActiveState
Software Inc, Roy Keene <[email protected]>
TLS (aka SSL) Channel - can be layered on any bi-directional Tcl_Channel.
|
︙ | | |
| | | | | | |
Modified aclocal/shobj.m4
from [2123b62392]
to [d0689d27c7].
︙ | | |
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
|
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
|
-
+
|
dnl $4 = Action to run if found
dnl $5 = Action to run if not found
AC_DEFUN([SHOBJ_DO_STATIC_LINK_LIB], [
ifelse($3, [], [
define([VAR_TO_UPDATE], [LIBS])
], [
define([VAR_TO_UPDATE], [$3])
])
])
AC_MSG_CHECKING([for how to statically link to $1])
trylink_ADD_LDFLAGS=''
for arg in $VAR_TO_UPDATE; do
case "${arg}" in
|
︙ | | |
Modified build/makearch.info
from [f2c0aaf165]
to [b62f6e2f07].
1
2
3
4
5
6
7
8
9
10
11
|
1
2
3
4
5
6
7
8
9
10
11
|
-
+
|
# This is the name of the utility, it will be prefixed to the tarball name
UTIL="tcltls"
# This is the name of output files that should exist after configure
# This is the name of output files that should exist after configure
# procedures.
BINS="tcltls.so"
# This lists the name of files that are required to exist
REQS=""
# Version of utility, if empty it will be guessed.
|
︙ | | |
Modified configure.ac
from [6234df6904]
to [d96d4dad71].
1
2
3
4
5
6
7
8
9
|
1
2
3
4
5
6
7
8
9
|
-
+
|
dnl Define ourselves
AC_INIT(tcltls, 1.8.0)
AC_INIT([tcltls],[1.8.0])
dnl Checks for programs.
AC_PROG_CC
AC_PROG_MAKE_SET
AC_PROG_INSTALL
AC_GNU_SOURCE
|
︙ | | |
249
250
251
252
253
254
255
256
|
249
250
251
252
253
254
255
256
257
|
-
+
+
|
DC_SETUP_STABLE_API([${srcdir}/tcltls.vers], tcltls.syms)
if test "$tcltls_debug" = 'true'; then
WEAKENSYMS=':'
REMOVESYMS=':'
fi
dnl Produce output
AC_OUTPUT(Makefile pkgIndex.tcl tcltls.syms)
AC_CONFIG_FILES([Makefile pkgIndex.tcl tcltls.syms])
AC_OUTPUT
|
Added generic/tclOpts.h version [f9620d33de].
Added generic/tls.c version [90806f56c7].
Added generic/tls.h version [625cff2305].
Added generic/tlsBIO.c version [fc3b42ebe3].
Added generic/tlsIO.c version [15faee591f].
Added generic/tlsInt.h version [16703359db].
Added generic/tlsX509.c version [6adf085ff1].
Modified license.terms
from [767ca58173]
to [10293d3448].
︙ | | |
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
-
+
-
+
|
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
MODIFICATIONS.
GOVERNMENT USE: If you are acquiring this software on behalf of the
U.S. government, the Government shall have only "Restricted Rights"
in the software and related documentation as defined in the Federal
in the software and related documentation as defined in the Federal
Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the
Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
terms specified in this license.
terms specified in this license.
|
Modified pkgIndex.tcl.in
from [6c4c62dd82]
to [d123f3052b].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-
+
-
-
|
if {[package vsatisfies [package present Tcl] 8.5]} {
if {[package vsatisfies [package present Tcl] 8.6-]} {
package ifneeded tls @PACKAGE_VERSION@ [list apply {{dir} {
if {{@TCLEXT_BUILD@} eq "static"} {
load {} Tls
} else {
load [file join $dir @EXTENSION_TARGET@] Tls
}
set tlsTclInitScript [file join $dir tls.tcl]
if {[file exists $tlsTclInitScript]} {
source $tlsTclInitScript
}
}} $dir]
} elseif {[package vsatisfies [package present Tcl] 8.4]} {
package ifneeded tls @PACKAGE_VERSION@ [list load [file join $dir @EXTENSION_TARGET@] Tls]
}
|
Deleted tclOpts.h version [1a6cf1121d].
Modified tests/all.tcl
from [d55b3d9c74]
to [b44ef18ced].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
-
+
|
# all.tcl --
#
# This file contains a top-level script to run all of the Tcl
# tests. Execute it by invoking "source all.test" when running tcltest
# in this directory.
#
# Copyright (c) 1998-2000 by Ajuba Solutions.
# All rights reserved.
#
#
# RCS: @(#) $Id: all.tcl,v 1.5 2000/08/15 18:45:01 hobbs Exp $
#set auto_path [linsert $auto_path 0 [file normalize [file join [file dirname [info script]] ..]]]
set auto_path [linsert $auto_path 0 [file normalize [pwd]]]
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest
|
︙ | | |
Modified tests/oldTests/server.pem
from [91b4eb6112]
to [c1f4fc93d5].
︙ | | |
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
|
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
|
-
+
|
cnlwdFNvZnQgRGV2IENBMB4XDTk3MDMyMjEzMzQwNFoXDTk4MDMyMjEzMzQwNFow
gYIxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhC
cmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxFDASBgNVBAsTC2Rl
dmVsb3BtZW50MRkwFwYDVQQDExBDcnlwdFNvZnQgRGV2IENBMFwwDQYJKoZIhvcN
AQEBBQADSwAwSAJBAOAOAqogG5QwAmLhzyO4CoRnx/wVy4NZP4dxJy83O1EnL0rw
OdsamJKvPOLHgSXo3gDu9uVyvCf/QJmZAmC5ml8CAwEAATANBgkqhkiG9w0BAQQF
AANBADRRS/GVdd7rAqRW6SdmgLJduOU2yq3avBu99kRqbp9A/dLu6r6jU+eP4oOA
TfdbFZtAAD2Hx9jUtY3tfdrJOb8=
TfdbFZtAAD2Hx9jUtY3tfdrJOb8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICVjCCAgACAQAwDQYJKoZIhvcNAQEEBQAwgbUxCzAJBgNVBAYTAkFVMRMwEQYD
VQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5
cHRTb2Z0IFB0eSBMdGQxLDAqBgNVBAsTI1dPUlRITEVTUyBDRVJUSUZJQ0FUSU9O
IEFVVEhPUklUSUVTMTQwMgYDVQQDEytaRVJPIFZBTFVFIENBIC0gREVNT05TVFJB
|
︙ | | |
Modified tests/oldTests/tlsHttp.tcl
from [a53b6ea2fa]
to [9ac8651bfa].
︙ | | |
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
-
+
|
source tls.tcl
package require http
#
# Initialize context
#
#tls::init -certfile client.pem -cafile server.pem -ssl2 1 -ssl3 1 -tls1 0 ;#-cipher RC4-MD5
tls::init -cafile server.pem
tls::init -cafile server.pem
#
# Register with http module
#
http::register https 443 [list ::tls::socket -require 1]
set user novadigm\\matt
set pass sensus
|
︙ | | |
Modified tests/oldTests/tlsSrv.tcl
from [03126ed641]
to [cb7a0f8fc4].
︙ | | |
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
-
+
|
proc reflectCB {chan {verbose 0}} {
set x hello
if {[catch {read $chan 1024} data]} {
puts stderr "EOF ($data)"
catch {close $chan}
return
}
if {$verbose && $data != ""} {
puts -nonewline stderr $data
}
if {[eof $chan]} { ;# client gone or finished
puts stderr "EOF"
close $chan ;# release the servers client channel
return
|
︙ | | |
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
-
+
-
+
|
return
}
puts [tls::status $chan]
fconfigure $chan -buffering none -blocking 0
fileevent $chan readable [list reflectCB $chan 1]
}
#tls::init -cafile server.pem -certfile server.pem
#tls::init -cafile server.pem -certfile server.pem
tls::init -cafile server.pem
#tls::init
#tls::init
set chan [tls::socket -server acceptCB \
-request 1 -require 0 1234]
# -require 1 -command tls::callback 1234]
puts "Server waiting connection on $chan (1234)"
puts [fconfigure $chan]
# Go into the eventloop
vwait /Exit
|
Modified tests/oldTests/tlsSrv2.tcl
from [26eb405e56]
to [94b6f94d30].
︙ | | |
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
-
+
|
#
proc reflectCB {chan {verbose 0}} {
if {[catch {read $chan 1024} data]} {
puts stderr "EOF ($data)"
catch {close $chan}
return
}
if {$verbose && $data != ""} {
puts -nonewline stderr $data
}
if {[eof $chan]} { ;# client gone or finished
puts stderr "EOF"
close $chan ;# release the servers client channel
return
|
︙ | | |
Modified tests/tlsIO.test
from [1df3d39a1f]
to [2200edd1d1].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
|
# Commands tested in this file: socket. -*- tcl -*-
#
# This file contains a collection of tests for one or more of the Tcl
# built-in commands. Sourcing this file into Tcl runs the tests and
# generates output for errors. No output means no errors were found.
#
# Copyright (c) 1994-1996 Sun Microsystems, Inc.
# Copyright (c) 1998-2000 Ajuba Solutions.
# Copyright (c) 1998-2000 Ajuba Solutions.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# RCS: @(#) $Id: tlsIO.test,v 1.24 2015/06/06 09:07:08 apnadkarni Exp $
# Running socket tests with a remote server:
# ------------------------------------------
#
#
# Some tests in socket.test depend on the existence of a remote server to
# which they connect. The remote server must be an instance of tcltest and it
# must run the script found in the file "remote.tcl" in this directory. You
# can start the remote server on any machine reachable from the machine on
# which you want to run the socket tests, by issuing:
#
#
# tcltest remote.tcl -port 8048 # Or choose another port number.
#
#
# If the machine you are running the remote server on has several IP
# interfaces, you can choose which interface the server listens on for
# connections by specifying the -address command line flag, so:
#
#
# tcltest remote.tcl -address your.machine.com
#
#
# These options can also be set by environment variables. On Unix, you can
# type these commands to the shell from which the remote server is started:
#
#
# shell% setenv serverPort 8048
# shell% setenv serverAddress your.machine.com
#
#
# and subsequently you can start the remote server with:
#
#
# tcltest remote.tcl
#
#
# to have it listen on port 8048 on the interface your.machine.com.
#
#
# When the server starts, it prints out a detailed message containing its
# configuration information, and it will block until killed with a Ctrl-C.
# Once the remote server exists, you can run the tests in socket.test with
# the server by setting two Tcl variables:
#
#
# % set remoteServerIP <name or address of machine on which server runs>
# % set remoteServerPort 8048
#
#
# These variables are also settable from the environment. On Unix, you can:
#
#
# shell% setenv remoteServerIP machine.where.server.runs
# shell% setenv remoteServerPort 8048
#
#
# The preamble of the socket.test file checks to see if the variables are set
# either in Tcl or in the environment; if they are, it attempts to connect to
# the server. If the connection is successful, the tests using the remote
# server will be performed; otherwise, it will attempt to start the remote
# server (via exec) on platforms that support this, on the local host,
# listening at port 8048. If all fails, a message is printed and the tests
# using the remote server are not performed.
|
︙ | | |
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
|
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
|
-
+
|
proc echo {s} {
global i
set l [gets $s]
if {[eof $s]} {
global x
close $s
set x done
} else {
} else {
incr i
puts $s $l
}
}
set i 0
puts ready
set timer [after 20000 "set x done"]
|
︙ | | |
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
|
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
|
-
+
|
}
}
proc timerproc {} {
global done count c
set done true
set count {timer went off, eof is not sticky}
close $c
}
}
set count 0
set done false
proc write_then_close {s} {
puts $s bye
close $s
}
proc accept {s a p} {
|
︙ | | |
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
|
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
|
-
+
|
gets $s3
}
close $s1
close $s2
close $s3
sendCommand {close $socket10_9_test_server}
set i
} 100
} 100
test tlsIO-11.8 {client with several servers} {socket doTestsWithRemoteServer} {
sendCertValues
sendCommand {
tls::init -certfile $serverCert -cafile $caCert -keyfile $serverKey
set s1 [tls::socket -server "accept 4003" 4003]
set s2 [tls::socket -server "accept 4004" 4004]
|
︙ | | |
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
|
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
|
-
+
-
+
-
+
-
+
|
proc echo {s} {
global i
set l [gets $s]
if {[eof $s]} {
global x
close $s
set x done
} else {
} else {
incr i
puts $s $l
}
}
set i 0
vwait x
close $f
# thread cleans itself up.
testthread exit
} script
# create a thread
set serverthread [testthread create { source script } ]
update
after 1000
set s [tls::socket 127.0.0.1 8828]
fconfigure $s -buffering line
catch {
puts $s "hello"
gets $s result
}
close $s
update
after 2000
lappend result [threadReap]
set result
} {hello 1}
test tlsIO-14.1 {test tls::unimport} {socket} {
list [catch {tls::unimport} msg] $msg
} {1 {wrong # args: should be "tls::unimport channel"}}
|
︙ | | |
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
|
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
|
-
+
-
+
|
test tls-bug58-1.0 {test protocol negotiation failure} {socket} {
# Following code is based on what was reported in bug #58. Prior
# to fix the program would crash with a segfault.
proc Accept {sock args} {
fconfigure $sock -blocking 0;
fileevent $sock readable [list Handshake $sock]
}
}
proc Handshake {sock} {
set ::done HAND
catch {tls::handshake $sock} msg
set ::done $msg
}
}
# NOTE: when doing an in-process client/server test, both sides need
# to be non-blocking for the TLS handshake
# Server - Only accept TLS 1.2
set s [tls::socket \
-certfile $serverCert -cafile $caCert -keyfile $serverKey \
-request 0 -require 0 -ssl2 0 -ssl3 0 -tls1 0 -tls1.1 0 -tls1.2 1 \
|
︙ | | |
Deleted tls.c version [b7a88587d1].
Deleted tls.h version [625cff2305].
Modified tls.htm
from [54230bffc5]
to [96f50e582d].
1
2
3
4
5
6
7
8
|
1
2
3
4
5
6
7
8
|
-
+
|
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="Copyright" content="1999 Matt Newman / 2004 Starfish Systems">
|
︙ | | |
Modified tls.tcl
from [ae8c7a0664]
to [ebe93438e0].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-
+
-
+
|
#
# Copyright (C) 1997-2000 Matt Newman <[email protected]>
# Copyright (C) 1997-2000 Matt Newman <[email protected]>
#
namespace eval tls {
variable logcmd tclLog
variable debug 0
# Default flags passed to tls::import
variable defaults {}
# Maps UID to Server Socket
variable srvmap
variable srvuid 0
|
︙ | | |
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
-
+
|
}
switch -- $ruleVarArgsToConsume {
0 {
set argToExecute {
lappend @VAR@ $arg
set argsArray($arg) true
}
}
}
1 {
set argToExecute {
incr idx
if {$idx >= [llength $args]} {
return -code error "\"$arg\" option must be followed by value"
}
|
︙ | | |
Deleted tlsBIO.c version [7f6303ee40].
Deleted tlsIO.c version [a0890258d8].
Deleted tlsInt.h version [b78d815874].
Deleted tlsX509.c version [ecfb13f8ce].
Modified win/README.txt
from [c9eebede2e]
to [7ed97d2dfa].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
+
-
-
+
+
-
-
+
-
-
-
+
-
-
-
-
+
-
-
-
-
-
-
-
+
-
-
+
-
-
+
-
-
-
-
-
+
-
-
-
+
+
-
+
-
+
+
-
+
+
-
+
+
-
+
-
-
-
+
+
+
|
Windows DLL Build instructions using nmake build system
2020-10-15 [email protected]
2023-08-22 Kevin Walzer ([email protected])
Properties:
- 32 bit DLL
- VisualStudio 2015
- 64 bit DLL
- VisualStudio 2019
Note: Vuisual C++ 6 does not build OpenSSL (long long syntax error)
- Cygwin32 (temporary helper, please help to replace by tclsh)
- WSL
- OpenSSL statically linked to TCLTLS DLL.
Note: Dynamic linking also works but results in a DLL dependeny on OPENSSL DLL's
- OpenSSL dynamically linked to TCLTLS DLL. We used a freely redistributable build of OpenSSL from https://www.firedaemon.com/firedaemon-openssl. Unzip and install OpenSSL in an accessible place (we used the lib subdirectory of our Tcl installation).
1) Build OpenSSL static libraries:
OpenSSL source distribtution unpacked in:
c:\test\tcltls\Openssl_1_1_1h
1. Visual Studio x86 native prompt. Update environmental variables for building Tcltls. Customize the below entries for your setup.
- Install Perl from http://strawberryperl.com/download/5.32.0.1/strawberry-perl-5.32.0.1-32bit.msi
to C:\perl
(ActivePerl failed due to missing 32 bit console module)
- Install NASM Assembler:
https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win32/nasm-2.15.05-installer-x86.exe
to C:\Program Files (x86)\NASM
set PATH=%PATH%;C:\tcl-trunk\lib\openssl-3\x64\bin
-> Visual Studio x86 native prompt.
set INCLUDE=%INCLUDE%;C:\tcl-trunk\tcl\lib\openssl-3\x64\include\openssl
set Path=%PATH%;C:\Program Files (x86)\NASM;C:\Perl\perl\bin
set LIB=%LIB%;C:\tcl-trunk\tcl\lib\openssl-3\x64\bin
perl Configure VC-WIN32 --prefix=c:\test\tcltls\openssl --openssldir=c:\test\tcltls\openssldir no-shared no-filenames threads
nmake
nmake test
namke install
2) Build TCLTLS
Unzip distribution in:
-> Unzip distribution on your system.
c:\test\tcltls\tcltls-1.7.22
-> start cygwin bash prompt
-> Start WSL.
-> cd /mnt/c/path/to/tcltls
cd /cygdrive/c/test/tcltls/tcltls-1.7.22
./gen_dh_params > dh_params.h
od -A n -v -t xC < 'tls.tcl' > tls.tcl.h.new.1
sed 's@[^0-9A-Fa-f]@@g;s@..@0x&, @g' < tls.tcl.h.new.1 > tls.tcl.h
rm -f tls.tcl.h.new.1
-> Visual Studio x86 native prompt.
cd C:path\to\tcltls\win
cd C:\test\tcltls\tcltls-1.7.22\win
Run the following commands (modify the flags to your specific installations).
nmake -f makefile.vc TCLDIR=c:\test\tcl8610 SSL_INSTALL_FOLDER=C:\test\tcltls\openssl
nmake -f makefile.vc TCLDIR=c:\users\wordt\tcl INSTALLDIR=c:\tcl-trunk\tcl\lib SSL_INSTALL_FOLDER=C:\tcl-trunk\tcl\lib\openssl-3\x64
nmake -f makefile.vc TCLDIR=c:\users\wordt\tcl INSTALLDIR=c:\tcl-trunk\tcl\lib SSL_INSTALL_FOLDER=C:\tcl-trunk\tcl\lib\openssl-3\x64 install
nmake -f makefile.vc install TCLDIR=c:\test\tcl8610 INSTALLDIR=c:\test\tcltls SSL_INSTALL_FOLDER=C:\test\tcltls\openssl
The resulting installation will include both the tcltls package and also have libcrypto.dll and libssl.dll copied into the same directory.
3) Test
Start tclsh or wish
Start tclsh
lappend auto_path {C:\test\tcltls\tls1.7.22}
package require tls
A small "1.7.22" showing up is hopefully the end of this long way...
package require http
http::register https 443 [list ::tls::socket -autoservername true]
set tok [http::data [http::geturl https://www.tcl-lang.org]]
|
Added win/gitmanifest.in version [efa71fcbca].
Modified win/makefile.vc
from [88282c8491]
to [7c6e12a671].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
|
#------------------------------------------------------------- -*- makefile -*-
#
# Makefile for TclTLS extensions.
#
# Basic build, test and install
# call nmake with additional parameter SSL_INSTALL_FOLDER= with the
# OpenSSL instalation folder following.
# nmake /f makefile.vc INSTALLDIR=c:\path\to\tcl
# nmake /f makefile.vc INSTALLDIR=c:\path\to\tcl test
# nmake /f makefile.vc INSTALLDIR=c:\path\to\tcl install
#
# For other build options (debug, static etc.),
# See TIP 477 (https://core.tcl-lang.org/tips/doc/main/tip/477.md) for
# detailed documentation.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
#------------------------------------------------------------------------------
# The name of the package
PROJECT=tls
DOTVERSION = 1.7.22
!include "rules-ext.vc"
# Define the object files and resource file that make up the extension.
# Note the resource file does not makes sense if doing a static library build
# hence it is under that condition. TMP_DIR is the output directory
# defined by rules for object files.
PRJ_OBJS = $(TMP_DIR)\tls.obj \
$(TMP_DIR)\tlsBIO.obj \
$(TMP_DIR)\tlsIO.obj \
$(TMP_DIR)\tlsX509.obj
# Define any additional project include flags
# SSL_INSTALL_FOLDER = with the OpenSSL installation folder following.
PRJ_INCLUDES = -I"$(SSL_INSTALL_FOLDER)\include"
PRJ_DEFINES = -D NO_SSL2 -D NO_SSL3 -D _CRT_SECURE_NO_WARNINGS
PRJ_INCLUDES = -I"$(SSL_INSTALL_FOLDER)\include" -I"$(OPENSSL_INSTALL_DIR)\include"
# Define any additional compiler flags that might be required for the project
PRJ_DEFINES = -D NO_SSL2 -D NO_SSL3 -D _CRT_SECURE_NO_WARNINGS
# SSL Libs:
# 1. ${LIBCRYPTO}.dll
# 2. ${LIBSSL}.dll
# Where LIBCRYPTO (#1.) and LIBSSL (#2.) are defined as follows:
# v1.1: libcrypto-1.1-x64.dll and libssl-1.1-x64.dll
# v3: libcrypto-3-x64.dll and libssl-3-x64.dll
# On *nix libcrypto.so.* and libssl.so.* (where suffix is a version indicator).
#
PRJ_LIBS = \
"$(SSL_INSTALL_FOLDER)\lib\libssl.lib" \
"$(SSL_INSTALL_FOLDER)\lib\libcrypto.lib" \
WS2_32.LIB GDI32.LIB ADVAPI32.LIB CRYPT32.LIB USER32.LIB
PRJ_OBJS = $(TMP_DIR)\tls.obj \
$(TMP_DIR)\tlsBIO.obj \
# Define the standard targets
!include "targets.vc"
$(TMP_DIR)\tlsIO.obj \
$(TMP_DIR)\tlsX509.obj
!include "rules-ext.vc"
!include "targets.vc"
# Project specific targets
# We must define a pkgindex target that will create a pkgIndex.tcl
# file in the $(OUT_DIR) directory. We can just redirect to the
# default-pkgindex target for our sample extension.
pkgindex: default-pkgindex
# The default install target only installs binaries and scripts so add
# an additional target for our documentation. Note this *adds* a target
# since no commands are listed after it. The original targets for
# install (from targets.vc) will remain.
install: default-pkgindex-tea default-install default-install-docs-html
# Test package
test: default-test
|
| | | | |
Added win/rules-ext.vc version [50db9d785c].
Added win/rules.vc version [5be8f10e0e].
Added win/svnmanifest.in version [ea528c30fc].
Modified win/targets.vc
from [77a0a274fa]
to [3627f33607].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-
+
|
#------------------------------------------------------------- -*- makefile -*-
# targets.vc --
#
# Part of the nmake based build system for Tcl and its extensions.
# This file defines some standard targets for the convenience of extensions
# and can be optionally included by the extension makefile.
# See TIP 477 (https://core.tcl-lang.org/tips/doc/trunk/tip/477.md) for docs.
# See TIP 477 (https://core.tcl-lang.org/tips/doc/main/tip/477.md) for docs.
$(PROJECT): setup pkgindex $(PRJLIB)
!ifdef PRJ_STUBOBJS
$(PROJECT): $(PRJSTUBLIB)
$(PRJSTUBLIB): $(PRJ_STUBOBJS)
$(LIBCMD) $**
|
︙ | | |
Added win/x86_64-w64-mingw32-nmakehlp.exe version [078ee83504].