1
0
mirror of https://github.com/winscp/winscp.git synced 2026-10-24 02:28:55 +03:00

193 Commits

Author SHA1 Message Date
Martin Prikryl
ea94f08215 Update to OpenSSL 3.5.9
Source commit: 4828d4a32aea4cb4489052ba450a1c868321f5e9
2026-10-02 17:55:17 +02:00
Martin Prikryl
53e9fa9cba Merge branch 'thirdparty'
# Conflicts:

#	libs/openssl/crypto/init.c

Source commit: 4564413da7872ac62838988bc1fff4e10082b5a4
2026-10-01 00:39:32 +02:00
Martin Prikryl
76ef84ee9f OpenSSL 3.5.9
Source commit: 576ad7c53795c8bad0ac3c54f37ffd83319c0077
2026-10-01 00:38:31 +02:00
Martin Prikryl
82fe067bda Update to OpenSSL 3.5.8
Source commit: 43037597e93625bae8773c60ce0feae26a106060
2026-08-27 00:37:06 +02:00
Martin Prikryl
e3497c4411 Merge branch 'thirdparty'
# Conflicts:

#	libs/openssl/include/openssl/ssl.h

Source commit: 9979bc91fbab012071e38fdab32966af9e79afc6
2026-08-27 00:36:12 +02:00
Martin Prikryl
a168770743 OpenSSL 3.5.8
Source commit: ba6936b76d9bf4f428bfbc29abbe02df58a16e65
2026-08-27 00:35:11 +02:00
Martin Prikryl
a2baba0f5b Removing unwanted OpenSSL doc and test files (from 28af0833)
Source commit: 980a90fd97d34855433d547e3c1b3c512d2a72bf
2026-06-17 15:50:47 +02:00
Martin Prikryl
dd1665bccb Update to OpenSSL 3.5.7
Source commit: 936bca5fc8eaae2a1dfec090ef63df64ba622115
2026-06-11 01:04:29 +02:00
Martin Prikryl
ae879128e8 Merge branch 'thirdparty_dev' into dev
# Conflicts:

#	libs/openssl/include/openssl/ssl.h

Source commit: dd87f85cf0fc77acc5a675b1ae2cc0ecdcd7019c
2026-06-11 01:01:07 +02:00
Martin Prikryl
86d1ef99b1 OpenSSL 3.5.7
Source commit: 1c948c123bc7fe5c5dd0d6fd7a725eba2fc8af3d
2026-06-11 00:57:07 +02:00
Martin Prikryl
d725f98ec4 Issue 618 – Experimental 64-bit version of WinSCP
https://winscp.net/tracker/618

Source commit: 329fb51d696db6c1d37d5c5240ff253af0df941b
2026-05-11 18:39:51 +02:00
Martin Prikryl
91a3ddc224 Tagging some changes from a2119a7e
Source commit: 489a67936704ca871ee14d099db554e14fce19c7
2026-05-08 00:53:25 +02:00
Martin Prikryl
9a6f85da4e OpenSSL 3.6.5 version of aes_core and aes_cbc
Source commit: f952ddf76a911cff80f23a63bdde23549058d80e
2026-05-08 00:50:39 +02:00
Martin Prikryl
4e0a766b85 Getting ready for object file extension being different for 64-bit
(OBJ_EXT was by mistake included [and not used] by ee950ff4, now shortened to O)

Source commit: 11c56961c6833cac923617d2cb1649d752a66aa3
2026-05-07 01:06:00 +02:00
Martin Prikryl
a58995e61e aes_core and aes_cbc are 32-bit specific
Source commit: 4aadabac7c0d7081c21bf1772a299f3100f1e53e
2026-05-07 01:03:55 +02:00
Martin Prikryl
b01b169704 Restored faster C TLS/SSL AES implementation
Reverts 5851fe38

Source commit: f41be0ca0b016b0d555532b593982f3c83add32b
2026-04-29 01:03:34 +02:00
Martin Prikryl
f2dff5f7cc Removing some unused OpenSSL AES code
Source commit: 8c4bd9d870ced6b9283a5a0fdfbfe286ab8a20b5
2026-04-22 01:37:58 +02:00
Martin Prikryl
d35e49d5d0 Update to OpenSSL 3.5.6
Source commit: c97a56b706bc704b5472a71b657bbd398ad96a46
2026-04-09 01:12:15 +02:00
Martin Prikryl
28af0833ef Merge branch 'thirdparty_dev' into dev
# Conflicts:

#	libs/openssl/include/openssl/cmp.h

Source commit: d607feabaff43b24df8f714ab126558d615bd6f9
2026-04-08 17:12:05 +02:00
Martin Prikryl
a1e18b6312 OpenSSL 3.5.6
Source commit: 8fbe63cb73d53c5cf2262c44d963a7ed0aa4c241
2026-04-08 17:09:23 +02:00
Martin Prikryl
8b6c876864 Update to OpenSSL 3.5.5
Source commit: 3235ece45e6e47a9d1b2d13db4e33072064529a0
2026-01-29 01:41:20 +01:00
Martin Prikryl
05d51db835 Merge branch 'thirdparty_dev' into dev
# Conflicts:

#	libs/openssl/crypto/conf/conf_mod.c

#	libs/openssl/crypto/init.c

#	libs/openssl/crypto/threads_win.c

#	libs/openssl/include/crypto/bn_conf_32.h

#	libs/openssl/include/openssl/asn1.h
#	libs/openssl/include/openssl/asn1t.h
#	libs/openssl/include/openssl/bio.h
#	libs/openssl/include/openssl/cmp.h
#	libs/openssl/include/openssl/cms.h

#	libs/openssl/include/openssl/conf.h

#	libs/openssl/include/openssl/crypto.h
#	libs/openssl/include/openssl/ct.h
#	libs/openssl/include/openssl/err.h

#	libs/openssl/include/openssl/fipskey.h
#	libs/openssl/include/openssl/lhash.h
#	libs/openssl/include/openssl/ocsp.h
#	libs/openssl/include/openssl/opensslv.h
#	libs/openssl/include/openssl/pkcs12.h
#	libs/openssl/include/openssl/pkcs7.h

#	libs/openssl/include/openssl/ssl.h
#	libs/openssl/include/openssl/ui.h
#	libs/openssl/include/openssl/x509.h

#	libs/openssl/include/openssl/x509_vfy.h

#	libs/openssl/providers/common/include/prov/der_sm2.h

#	libs/openssl/ssl/ssl_lib.c

Source commit: 4ea901160dd4b84bbd284ee42dc159d2af67d738
2026-01-29 01:38:37 +01:00
Martin Prikryl
a3d1ddb18f OpenSSL 3.5.5
Source commit: 6e1d3a2b8ad5e23bd17bd3f028e864dbd8533dc2
2026-01-29 01:29:09 +01:00
Martin Prikryl
04c1169332 VC-WIN32 OpenSSL target generates exactly the configuration.h file we want
Source commit: ba4d0524b3fdf7911b5f9aa18ba301aa3eeee406
2026-01-23 01:17:49 +01:00
Martin Prikryl
67408f3319 Isolating 32-bit-specific OpenSSL directives, parameters and files
Source commit: c96d8dc2fb56e811f6a02687973291468df2e14f
2026-01-23 01:10:50 +01:00
Martin Prikryl
a2119a7eac Types and casts safe in respect to pointer size for forward 64-bit compatibility
Also GetWindowLongPtr and GWLP_USERDATA

https://winscp.net/tracker/618

Source commit: c85fdf15e50ce8a6f35b1c4d2a0125a0b9c4f1f0
2026-01-22 14:51:13 +01:00
Martin Prikryl
adb8e0da92 Restoring dashes in OpenSSL filenames
tlib is ok with them as long as the filename is quoted

Source commit: ed25f0510cfc7084874182051486fee4eb20c2bc
2026-01-21 01:09:26 +01:00
Martin Prikryl
ed20680be0 Unneeded OpenSSL sources
Source commit: 50dccbb3a762a78d83830fbf99f84b0656e96e47
2026-01-20 01:11:28 +01:00
Martin Prikryl
8f32c28aca Updating (and resetting) OpenSSL configuration.h to official one for BC-32 target
Configuration file stored in target-specific name, first to allow some overrides in the wrapper include, second to allow upcoming parallel 64-bit build.

That makes some defines in Makefile redundant

Source commit: f5e38dc1d7c489699a4e9dfd69139413129c117f
2026-01-10 01:17:40 +01:00
Martin Prikryl
b35be32428 L_ENDIAN and COMPILED_FROM_DSP are not part of public API
And COMPILED_FROM_DSP has been obsoleted in  Expat 2.2.0

Source commit: 751df3cab5d167d488b559c612e65ceaced98ff2
2026-01-09 01:20:14 +01:00
Martin Prikryl
f1c364a5e8 Removing unused OpenSSL Datagram code
Source commit: 668d18221961089abec8dd7bd462dc3591770377
2026-01-09 01:18:03 +01:00
Martin Prikryl
5d42a6dcab Limiting OpenSSL API to 1.1
Hides some OpenSSL code that produces warnings when compiling with bcc64 (e.g. assigning SOCKET to int in bio_sock.c)

Source commit: 03f63be5c4500d9ba73f740ec3b696bc987239a0
2026-01-09 01:15:44 +01:00
Martin Prikryl
3e4285c8a7 Update to OpenSSL 3.5.4
Source commit: 8c0a0ffb020ae2169f173a6cfa96d7fbf524bc03
2025-11-20 13:39:35 +01:00
Martin Prikryl
c8730275a1 Merge branch 'thirdparty_dev' into dev
# Conflicts:

nf

#	libs/openssl/crypto/conf/conf_mod.c

#	libs/openssl/crypto/init.c

#	libs/openssl/include/openssl/asn1.h
#	libs/openssl/include/openssl/bio.h
#	libs/openssl/include/openssl/cmp.h
#	libs/openssl/include/openssl/cms.h

#	libs/openssl/include/openssl/crmf.h
#	libs/openssl/include/openssl/crypto.h
#	libs/openssl/include/openssl/fipskey.h
#	libs/openssl/include/openssl/pkcs12.h
#	libs/openssl/include/openssl/ssl.h
#	libs/openssl/include/openssl/x509.h
#	libs/openssl/include/openssl/x509_vfy.h

#	libs/openssl/ssl/quic/quic_tls.c

#	libs/openssl/ssl/ssl_init.c
#	libs/openssl/ssl/ssl_lib.c

.in

.in

.in

.in

.in

.in

Source commit: 72e033c3ae49e8fe8d7e236dc7c4566ea71c43ef
2025-11-20 12:39:39 +01:00
Martin Prikryl
c1b9277a66 OpenSSL 3.5.4
Source commit: 3e9d97cebbb2e97f8f7c4bc406ebfe7062715032
2025-11-20 12:35:43 +01:00
Martin Prikryl
88668a60bf Resetting differences to official OpenSSL that are no longer needed
Most, if not all, were for compatibility with the classic C++Builder compiler

Source commit: 7519168f3b93b2a375a9197d1fb5dc35ba196204
2025-11-14 15:58:48 +01:00
Martin Prikryl
a89ac7d054 For consistency defining DES_ASM
Though it has any effect on Sparc platform only

Source commit: 465d2cc6302a4593cfdd33d3a16800271ac2c7cf
2025-11-14 15:50:31 +01:00
Martin Prikryl
8945ecf3ba Explaining where do the OpenSSL compile defines come from
Source commit: f0e2c24edbf37c38c25561b446eed4e1a386cf03
2025-11-14 15:36:33 +01:00
Martin Prikryl
5851fe38e0 OpenSSL AES assembler implementation
Source commit: d3382232a8ce6513573a7651023e35783278b018
2025-11-14 01:14:46 +01:00
Martin Prikryl
1c985fa632 Can use RCU with Clang
Source commit: 2530aa395ae84aec20c0eccd833b253d029bb227
2025-11-13 01:15:25 +01:00
Martin Prikryl
ddcf984159 Merge branch 'master' into dev
Source commit: eaa3be05065a963aae4c9a2db1e1bcb388424013
2025-10-03 12:02:37 +02:00
Martin Prikryl
344369c104 Update to OpenSSL 3.3.5
Source commit: f9ced8907984095c0a74b69942bd7a2367e5a278
2025-10-03 12:00:01 +02:00
Martin Prikryl
4a1bf134be Merge branch 'thirdparty'
# Conflicts:

#	libs/openssl/include/openssl/crypto.h
#	libs/openssl/include/openssl/opensslv.h

Source commit: 3ca4d08965cd1e439a1b00aeddeb0059533e19bb
2025-10-03 11:57:45 +02:00
Martin Prikryl
6ec29a5a18 OpenSSL 3.3.5
Source commit: bfee7abaf16e16767a604e5907bf644c16be36da
2025-10-03 11:55:13 +02:00
Martin Prikryl
4ba8c00e0c Using Clang parallel compilation
Note regarding OpenSSL: With sources in different folder and lack of advanced rule in Borland makefile, it is not possible to use batch compilation with rule-based make file. Instead sources are explicitly (re)compiled in the library rule

Using 8 processes (higher number does not bring significant improvement)
Btw, so it was not true that Clang needs separate commandline for each file (see 17c5d4fa)

------
Timing statistics (times are the lowest out of few runs)

IDE WinSCP.cbproj recompile (i.e without thirdparty and components)
Classic     0:55
+PCH        0:39
Clang       2:53
+Batch      2:53
+OOP        2:56
+Batch+OOP  2:57
+B+OOP=2    1:51
+B+OOP=4    1:19
+B+OOP=8    1:05
+B+OOP=12   0:59
+B+OOP=16   1:00

thirdparty:
classic  2:35
clang    2:24
+8       0:49

build.bat:
classic 11:06
clang+8  8:38

Source commit: 1e073fb3df6a6f2c7f24de82d39fae6b1fc47367
2025-09-05 13:59:20 +02:00
Martin Prikryl
1d9fe8c955 Changing compiler to Clang/bcc32c
- regarding the ILINK_LibraryPath for Cfg_1_Win32 (Debug):
Win32\Debug (not only Win32c\Debug) needs to be before Win32c\Release, as win32c does not include debug builds of Pascal code - so without that VCL debugging won't work
- IDE insist on adding CC_Suffix to all projects once switched to Clang, although it is only used in WinSCP.cbproj
- UNICODE define: Not needed for build (it's implicit), but CodeInsight does not know it it somehow

Source commit: da06d73eb86caff5ca9cac0185bed54da0da8f07
2025-09-04 07:53:01 +02:00
Martin Prikryl
cea3db7f78 Clang imposed changes in thirdparty that should be noop and have no effect on classic compiler (3rd after 74fdf539)
Source commit: adaaa520f1fcbdfcfd84d92013249a049d1ee303
2025-07-30 01:09:38 +02:00
Martin Prikryl
17c5d4faea For forward compatibility with bcc32c, compiling files one-by-one and putting flags first
bcc32c does not seem to support -n parameter and needs some flags like -cc1 first

Source commit: d73c9226e60be3eb222e826195804c00315e8384
2025-07-27 01:12:44 +02:00
Martin Prikryl
0712b574e1 Streamlining thirdparty libs makefiles to ease transition to Clang
Same compiler and linker flags for all libs
- O2 optimization enabled for libs3 and mfc
- otherwise the change should not be big

Preferring passing parameter on commandline instead of response files whenever possible, so they get logged

Passing includes and defined using separate parameter (as Clang does not seem to support semicolon separated lists)

Using extension rules for neon instead of separate rules for each file
Keeping separate rules for openssl as it is generated anyway

Source commit: 0a69ef054ed274abbe0ae1f8dc644c884670922f
2025-07-21 16:03:42 +02:00
Martin Prikryl
905f58426d Preprocessing OpenSSL asm files with Clang
There's whitespace change in the generated files. But it should be noop.

Source commit: ba01932f1d2ba820fba57d76976849d18bf2e1d0
2025-07-19 01:05:48 +02:00