diff --git a/mcwin32/ChangeLog.txt b/mcwin32/ChangeLog.txt index ec4cc9b7..47221c01 100644 --- a/mcwin32/ChangeLog.txt +++ b/mcwin32/ChangeLog.txt @@ -1,3 +1,18 @@ +Mon Nov 8 21:14:55 2021 adamy + + * exec non-shell tweaks + + * submodule updates + + o mbedtls - 2.27.0 + +Wed Oct 27 00:32:42 2021 adamy + + * submodule updates + + o libssh2 - 1.10,0 + o libappupdater + Fri Oct 22 00:20:44 2021 adamy * Build 220: 4.8.24 beta5. diff --git a/mcwin32/autoupdater/libappupdater b/mcwin32/autoupdater/libappupdater index 625c9975..bf1f5e56 160000 --- a/mcwin32/autoupdater/libappupdater +++ b/mcwin32/autoupdater/libappupdater @@ -1 +1 @@ -Subproject commit 625c9975684b35e0db40ed4eee1ac76d65ee0990 +Subproject commit bf1f5e56f9162544ebef0cf6129af76ecab17caa diff --git a/mcwin32/libmbedtls/.cvsignore b/mcwin32/libmbedtls/.cvsignore index c6a8b89c..8bd53d40 100644 --- a/mcwin32/libmbedtls/.cvsignore +++ b/mcwin32/libmbedtls/.cvsignore @@ -1,5 +1,6 @@ mbedtls-2.13.0 mbedtls-2.16.6 +mbedtls-2.27.0 .unpacked.* Makefile *.err diff --git a/mcwin32/libmbedtls/.gitignore b/mcwin32/libmbedtls/.gitignore index b172d743..13f8fe02 100644 --- a/mcwin32/libmbedtls/.gitignore +++ b/mcwin32/libmbedtls/.gitignore @@ -1,5 +1,6 @@ mbedtls-2.13.0/ -mbedtls-2.16.6/ +mbedtls-2.16.6*/ +mbedtls-2.27.0*/ .unpacked.* Makefile *.err diff --git a/mcwin32/libmbedtls/Makefile.in b/mcwin32/libmbedtls/Makefile.in index ad6c5895..bbeae21a 100644 --- a/mcwin32/libmbedtls/Makefile.in +++ b/mcwin32/libmbedtls/Makefile.in @@ -1,10 +1,9 @@ -# Generated by makelib.pl, Sun Oct 21 00:33:54 2018 # -*- mode: mak; indent-tabs-mode: t; tab-width: 8 -*- -# $Id: Makefile.in,v 1.4 2020/06/14 00:47:59 cvsuser Exp $ +# $Id: Makefile.in,v 1.6 2021/11/08 13:12:55 cvsuser Exp $ # libmbedtls makefile. # # -# Copyright (c) 2017 - 2020 Adam Young. +# Copyright (c) 2017 - 2021 Adam Young. # All rights reserved. # # This file is part of the Midnight Commander. @@ -68,7 +67,7 @@ D_OBJ= $(ROOT)/objects@TOOLCHAINEXT@/$(BUILD_TYPE)/libmbedtls # Common flags -XFLAGS= +XFLAGS= CFLAGS= @CFLAGS@ CWARN= @CWARN@ @@ -104,12 +103,12 @@ MBEDX509DLL= $(D_LIB)/$(LP)mbedx509.la MBEDTLSLIB= $(D_LIB)/$(LP)mbedtls_static$(A) MBEDTLSDLL= $(D_LIB)/$(LP)mbedtls.la -VERSION= 2.16.6 +VERSION= 2.27.0 VERSION_1 =$(word 1,$(subst ., ,$(VERSION))) VERSION_2 =$(word 2,$(subst ., ,$(VERSION))) VERSION_3 =$(word 3,$(subst ., ,$(VERSION))) VERSIONSPEC= $(subst .,:,$(VERSION)) -VERPACKED= mbedtls-$(VERSION)-apache.gr.tgz +VERPACKED= mbedtls-$(VERSION).gr.tgz MBEDBASE= ./mbedtls-$(VERSION) MBEDSRC= $(MBEDBASE)/library @@ -117,9 +116,11 @@ MBEDINCLUDE= $(MBEDBASE)/include CINCLUDE+= -I./win32 -I$(MBEDINCLUDE) CEXTRA+= -D_WIN32_WINNT=0x601 -DLIBMBED_WIN32 -DLIBMBED_HAVE_ZLIB +CEXTRA+= -DMBEDTLS_EXPORTS -DKRML_VERIFIED_UINT128 VPATH+= $(MBEDSRC) $(MBEDBASE)/programs/test ./win32 +#see: library/CMakelists.txt CRYPTO_SOURCES= aes.c aesni.c arc4.c \ aria.c asn1parse.c asn1write.c \ base64.c bignum.c blowfish.c \ @@ -132,7 +133,7 @@ CRYPTO_SOURCES= aes.c aesni.c arc4.c \ error.c gcm.c havege.c \ hkdf.c \ hmac_drbg.c md.c md2.c \ - md4.c md5.c md_wrap.c \ + md4.c md5.c \ memory_buffer_alloc.c nist_kw.c \ oid.c padlock.c pem.c \ pk.c pk_wrap.c pkcs12.c \ @@ -150,8 +151,9 @@ X509_SOURCES= certs.c pkcs11.c x509.c \ TLS_SOURCES= debug.c net_sockets.c \ ssl_cache.c ssl_ciphersuites.c \ ssl_cli.c ssl_cookie.c \ + ssl_msg.c \ ssl_srv.c ssl_ticket.c \ - ssl_tls.c + ssl_tls.c ssl_tls13_keys.c CRYPTO_LIBOBJS=\ $(addprefix $(D_OBJ)/,$(subst .c,$(O),$(CRYPTO_SOURCES))) @@ -187,7 +189,7 @@ endif LIBOBJS= $(CRYPTO_LIBOBJS) \ $(X509_LIBOBJS) \ - $(TLS_LIBOBJS) + $(TLS_LIBOBJS) DLLOBJS= $(CRYPTO_DLLOBJS) \ $(X509_DLLOBJS) \ @@ -264,7 +266,7 @@ $(MBEDTLSDLL): $(TLS_DLLOBJS) ####### $(D_BIN)/$(TARGET): MAPFILE=$(basename $@).map $(D_BIN)/$(TARGET): $(D_OBJ)/.created $(TARGETOBJS) - $(CC) $(LDFLAGS) -o $@ $(TARGETOBJS) $(LDFLAGS) -llibmbedtls -llibmbedcrypto -llibmbedx509 $(LDLIBS) @LDMAPFILE@ + $(CC) $(LDFLAGS) -o $@ $(TARGETOBJS) $(LDFLAGS) -llibmbedtls -llibmbedcrypto -llibmbedx509 $(LDLIBS) @LDMAPFILE@ ####### source: .unpacked.$(VERSION) @@ -293,6 +295,7 @@ clean: -@$(LIBTOOL) --mode=clean $(RM) $(DLLS) $(DLLOBJS) >/dev/null 2>&1 -@$(RM) $(RMFLAGS) $(BAK) $(TSKS) $(LIBS) $(CLEAN) $(XCLEAN) >/dev/null 2>&1 -@$(RM) $(LIBOBJS) >/dev/null 2>&1 + -@$(RM) ../include/mbedtls/* >/dev/null 2>&1 $(D_OBJ)/%$(O): %.c $(CC) $(CFLAGS) -o $@ -c $< diff --git a/mcwin32/libmbedtls/Makefile.in.2_13_0 b/mcwin32/libmbedtls/Makefile.in.2_13_0 index b6d55359..9e2a21dd 100644 --- a/mcwin32/libmbedtls/Makefile.in.2_13_0 +++ b/mcwin32/libmbedtls/Makefile.in.2_13_0 @@ -1,6 +1,5 @@ -# Generated by makelib.pl, Sun Oct 21 00:33:54 2018 # -*- mode: mak; indent-tabs-mode: t; tab-width: 8 -*- -# $Id: Makefile.in.2_13_0,v 1.1 2020/05/01 14:32:59 cvsuser Exp $ +# $Id: Makefile.in.2_13_0,v 1.2 2021/11/08 13:12:23 cvsuser Exp $ # libmbedtls makefile. # # diff --git a/mcwin32/libmbedtls/Makefile.in.2_16_0 b/mcwin32/libmbedtls/Makefile.in.2_16_0 new file mode 100644 index 00000000..f74b3f16 --- /dev/null +++ b/mcwin32/libmbedtls/Makefile.in.2_16_0 @@ -0,0 +1,308 @@ +# -*- mode: mak; indent-tabs-mode: t; tab-width: 8 -*- +# $Id: Makefile.in.2_16_0,v 1.1 2021/11/08 13:12:23 cvsuser Exp $ +# libmbedtls makefile. +# +# +# Copyright (c) 2017 - 2021 Adam Young. +# All rights reserved. +# +# This file is part of the Midnight Commander. +# +# The Midnight Commander is free software: you can redistribute it +# and/or modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 3 of the License, +# or (at your option) any later version. +# +# The Midnight Commander is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# ==end== +# + +@SET_MAKE@ +ROOT= @abs_top_builddir@ +top_builddir= @top_builddir@ + +# File extensions + +E= +O= .o +H= .h +A= .a +LP= lib + +CLEAN= *.bak *~ *.BAK *.swp *.tmp core *.core a.out +XCLEAN= + +# Compilers, programs + +CC= @CC@ +AR= @AR@ +RANLIB= @RANLIB@ +RM= @RM@ +PERL= @PERL@ +LIBTOOL= @LIBTOOL@ +RC= @RC@ + +# Configuration + +ifeq ("$(BUILD_TYPE)","") #default +BUILD_TYPE= debug +MAKEFLAGS+= BUILD_TYPE=debug +endif +ifneq ("$(BUILD_TYPE)","release") +RTSUFFIX=d +endif + +# Directories + +D_INC= $(ROOT)/include +D_BIN= $(ROOT)/bin@TOOLCHAINEXT@/$(BUILD_TYPE) +D_LIB= $(ROOT)/lib@TOOLCHAINEXT@/$(BUILD_TYPE) +D_OBJ= $(ROOT)/objects@TOOLCHAINEXT@/$(BUILD_TYPE)/libmbedtls + +# Common flags + +XFLAGS= + +CFLAGS= @CFLAGS@ +CWARN= @CWARN@ +CDEBUG= @CDEBUG@ +CRELEASE= @CRELEASE@ +LDDEBUG= @LDDEBUG@ +LDRELEASE= @LDRELEASE@ + +CINCLUDE= -I. -I$(D_INC) @CINCLUDE@ +CEXTRA= @DEFS@ +ifeq ("$(BUILD_TYPE)","release") +CFLAGS+= $(CRELEASE) $(CWARN) $(CINCLUDE) $(CEXTRA) $(XFLAGS) +LDFLAGS= $(LDRELEASE) @LDFLAGS@ +else +CFLAGS+= $(CDEBUG) $(CWARN) $(CINCLUDE) $(CEXTRA) $(XFLAGS) +LDFLAGS= $(LDDEBUG) @LDFLAGS@ +endif +LDLIBS= -L$(D_LIB) $(D_LIB)/$(LP)regex$(A) @LIBS@ @LIBM@ @EXTRALIBS@ + +ARFLAGS= rcv +RMFLAGS= -f + +############################################################ + +# Targets + +MBEDCRYPTOLIB= $(D_LIB)/$(LP)mbedcrypto_static$(A) +MBEDCRYPTODLL= $(D_LIB)/$(LP)mbedcrypto.la + +MBEDX509LIB= $(D_LIB)/$(LP)mbedx509_static$(A) +MBEDX509DLL= $(D_LIB)/$(LP)mbedx509.la + +MBEDTLSLIB= $(D_LIB)/$(LP)mbedtls_static$(A) +MBEDTLSDLL= $(D_LIB)/$(LP)mbedtls.la + +VERSION= 2.16.6 +VERSION_1 =$(word 1,$(subst ., ,$(VERSION))) +VERSION_2 =$(word 2,$(subst ., ,$(VERSION))) +VERSION_3 =$(word 3,$(subst ., ,$(VERSION))) +VERSIONSPEC= $(subst .,:,$(VERSION)) +VERPACKED= mbedtls-$(VERSION)-apache.gr.tgz + +MBEDBASE= ./mbedtls-$(VERSION) +MBEDSRC= $(MBEDBASE)/library +MBEDINCLUDE= $(MBEDBASE)/include + +CINCLUDE+= -I./win32 -I$(MBEDINCLUDE) +CEXTRA+= -D_WIN32_WINNT=0x601 -DLIBMBED_WIN32 -DLIBMBED_HAVE_ZLIB + +VPATH+= $(MBEDSRC) $(MBEDBASE)/programs/test ./win32 + +CRYPTO_SOURCES= aes.c aesni.c arc4.c \ + aria.c asn1parse.c asn1write.c \ + base64.c bignum.c blowfish.c \ + camellia.c ccm.c chacha20.c \ + chachapoly.c cipher.c cipher_wrap.c \ + cmac.c ctr_drbg.c des.c \ + dhm.c ecdh.c ecdsa.c \ + ecjpake.c ecp.c \ + ecp_curves.c entropy.c entropy_poll.c \ + error.c gcm.c havege.c \ + hkdf.c \ + hmac_drbg.c md.c md2.c \ + md4.c md5.c md_wrap.c \ + memory_buffer_alloc.c nist_kw.c \ + oid.c padlock.c pem.c \ + pk.c pk_wrap.c pkcs12.c \ + pkcs5.c pkparse.c pkwrite.c \ + platform.c platform_util.c poly1305.c \ + ripemd160.c rsa_internal.c rsa.c \ + sha1.c sha256.c sha512.c \ + threading.c timing.c version.c \ + version_features.c xtea.c + +X509_SOURCES= certs.c pkcs11.c x509.c \ + x509_create.c x509_crl.c x509_crt.c \ + x509_csr.c x509write_crt.c x509write_csr.c + +TLS_SOURCES= debug.c net_sockets.c \ + ssl_cache.c ssl_ciphersuites.c \ + ssl_cli.c ssl_cookie.c \ + ssl_srv.c ssl_ticket.c \ + ssl_tls.c + +CRYPTO_LIBOBJS=\ + $(addprefix $(D_OBJ)/,$(subst .c,$(O),$(CRYPTO_SOURCES))) +CRYPTO_DLLOBJS=\ + $(subst $(O),.lo,$(CRYPTO_LIBOBJS)) \ + $(D_OBJ)/crypto_globals.lo +ifeq ("mingw32","win32") +CRYPTO_DLLOBJS+=$(D_OBJ)/libmbedtls_res.o +else ifeq ("win32","win32") +CRYPTO_DLLOBJS+=$(D_OBJ)/libmbedtls.res +endif + +X509_LIBOBJS=\ + $(addprefix $(D_OBJ)/,$(subst .c,$(O),$(X509_SOURCES))) +X509_DLLOBJS=\ + $(subst $(O),.lo,$(X509_LIBOBJS)) \ + $(D_OBJ)/x509_globals.lo +ifeq ("mingw32","win32") +X509_DLLOBJS+= $(D_OBJ)/libmbedtls_res.o +else ifeq ("win32","win32") +X509_DLLOBJS+= $(D_OBJ)/libmbedtls.res +endif + +TLS_LIBOBJS=\ + $(addprefix $(D_OBJ)/,$(subst .c,$(O),$(TLS_SOURCES))) +TLS_DLLOBJS=\ + $(subst $(O),.lo,$(TLS_LIBOBJS)) +ifeq ("mingw32","win32") +TLS_DLLOBJS+= $(D_OBJ)/libmbedtls_res.o +else ifeq ("win32","win32") +TLS_DLLOBJS+= $(D_OBJ)/libmbedtls.res +endif + +LIBOBJS= $(CRYPTO_LIBOBJS) \ + $(X509_LIBOBJS) \ + $(TLS_LIBOBJS) + +DLLOBJS= $(CRYPTO_DLLOBJS) \ + $(X509_DLLOBJS) \ + $(TLS_DLLOBJS) + +LIBS= $(MBEDCRYPTOLIB) \ + $(MBEDX509LIB) \ + $(MBEDTLSLIB) + +DLLS= $(MBEDCRYPTODLL) \ + $(MBEDX509DLL) \ + $(MBEDTLSDLL) + +TARGET= mbedtls_selftest$(E) +TARGETOBJS= $(D_OBJ)/selftest.obj + +TSKS= $(D_BIN)/$(TARGET) + +# Rules + +.PHONY: build release debug +build: source unpacked +unpacked: object $(LIBS) $(DLLS) $(TSKS) installinc + +release: + $(MAKE) BUILD_TYPE=release $(filter-out release, $(MAKECMDGOALS)) +debug: + $(MAKE) BUILD_TYPE=debug $(filter-out debug, $(MAKECMDGOALS)) + +CEXTRA += -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D__STDC_WANT_LIB_EXT1__=1 + +####### +$(MBEDCRYPTOLIB): CEXTRA += -DLIBMBED_STATIC -DLIBMBEDCRYPTO_SOURCE +$(MBEDCRYPTOLIB): $(CRYPTO_LIBOBJS) + $(RM) $(RMFLAGS) $@ >/dev/null 2>&1 + $(AR) $(ARFLAGS) $@ $^ + $(RANLIB) $@ + +$(MBEDCRYPTODLL): LIBNAME=libmbedcrypto +$(MBEDCRYPTODLL): LIBDEF=-export-symbols win32/libmbedcrypto.def +$(MBEDCRYPTODLL): CEXTRA += -DLIBMBED_DYNAMIC -DLIBMBEDCRYPTO_SOURCE -D_WINDLL +$(MBEDCRYPTODLL): $(CRYPTO_DLLOBJS) + $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -version-number $(VERSIONSPEC) \ + -rpath $(D_LIB) -bindir $(D_BIN) $(LIBDEF) -o $@ $^ $(LDLIBS) + +####### +$(MBEDX509LIB): CEXTRA += -DLIBMBED_STATIC -DLIBMBEDX509_SOURCE -DLIBMBEDX509 +$(MBEDX509LIB): $(X509_LIBOBJS) + $(RM) $(RMFLAGS) $@ >/dev/null 2>&1 + $(AR) $(ARFLAGS) $@ $^ + $(RANLIB) $@ + +$(MBEDX509DLL): LIBNAME=libmbedx509 +$(MBEDX509DLL): LIBDEF=-export-symbols win32/libmbedx509.def +$(MBEDX509DLL): CEXTRA += -DLIBMBED_DYNAMIC -DLIBMBEDX509_SOURCE -D_WINDLL +$(MBEDX509DLL): $(X509_DLLOBJS) + $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -version-number $(VERSIONSPEC) \ + -rpath $(D_LIB) -bindir $(D_BIN) $(LIBDEF) -o $@ $^ -llibmbedcrypto $(LDLIBS) + +####### +$(MBEDTLSLIB): CEXTRA += -DLIBMBED_STATIC -DLIBMBEDTLS_SOURCE +$(MBEDTLSLIB): $(TLS_LIBOBJS) + $(RM) $(RMFLAGS) $@ >/dev/null 2>&1 + $(AR) $(ARFLAGS) $@ $^ + $(RANLIB) $@ + +$(MBEDTLSDLL): LIBNAME=libmbedtls +$(MBEDTLSDLL): LIBDEF=-export-symbols win32/libmbedtls.def +$(MBEDTLSDLL): CEXTRA += -DLIBMBED_DYNAMIC -DLIBMBEDTLS_SOURCE -DLIBMBEDTLS -D_WINDLL +$(MBEDTLSDLL): $(TLS_DLLOBJS) + $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -version-number $(VERSIONSPEC) \ + -rpath $(D_LIB) -bindir $(D_BIN) $(LIBDEF) -o $@ $^ -llibmbedcrypto -llibmbedx509 $(LDLIBS) + +####### +$(D_BIN)/$(TARGET): MAPFILE=$(basename $@).map +$(D_BIN)/$(TARGET): $(D_OBJ)/.created $(TARGETOBJS) + $(CC) $(LDFLAGS) -o $@ $(TARGETOBJS) $(LDFLAGS) -llibmbedtls -llibmbedcrypto -llibmbedx509 $(LDLIBS) @LDMAPFILE@ + +####### +source: .unpacked.$(VERSION) + $(MAKE) unpacked + +.unpacked.$(VERSION): $(VERPACKED) + @echo "do not delete, managed file" > $@ + @echo "unpacking source $VERPACKED" + @gzip -c -d $(VERPACKED) | tar -xvf - + +.PHONY: object +object: $(D_OBJ)/.created + +.PHONY: installinc +installinc: ../include/.created ../include/mbedtls/.created + @echo publishing headers ... + -cp $(MBEDINCLUDE)/mbedtls/*.h ../include/mbedtls + -cp ./win32/*.h ../include/mbedtls + +%/.created: + -@mkdir $(@D) + @echo "do not delete, managed directory" > $@ + +clean: + @echo $(BUILD_TYPE) clean + -@$(LIBTOOL) --mode=clean $(RM) $(DLLS) $(DLLOBJS) >/dev/null 2>&1 + -@$(RM) $(RMFLAGS) $(BAK) $(TSKS) $(LIBS) $(CLEAN) $(XCLEAN) >/dev/null 2>&1 + -@$(RM) $(LIBOBJS) >/dev/null 2>&1 + +$(D_OBJ)/%$(O): %.c + $(CC) $(CFLAGS) -o $@ -c $< + +$(D_OBJ)/%.lo: %.c + $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -o $@ -c $< + +$(D_OBJ)/%.res: %.rc + $(RC) -DLIBNAME=$(LIBNAME) -DVERSION=$(VERSION) -DVERSION_1=$(VERSION_1) -DVERSION_2=$(VERSION_2) -DVERSION_3=$(VERSION_3) -fo $@ $< + +$(D_OBJ)/%_res.o: %.rc + $(RC) -DLIBNAME=$(LIBNAME) -DVERSION=$(VERSION) -DVERSION_1=$(VERSION_1) -DVERSION_2=$(VERSION_2) -DVERSION_3=$(VERSION_3) -o $@ $< + +#end diff --git a/mcwin32/libmbedtls/mbedtls-2.27.0.gr.tgz b/mcwin32/libmbedtls/mbedtls-2.27.0.gr.tgz new file mode 100644 index 00000000..57577d4c Binary files /dev/null and b/mcwin32/libmbedtls/mbedtls-2.27.0.gr.tgz differ diff --git a/mcwin32/libmbedtls/readme_2_16_6.txt b/mcwin32/libmbedtls/readme_2_16_6.txt index eecbfc38..b8d33f23 100644 --- a/mcwin32/libmbedtls/readme_2_16_6.txt +++ b/mcwin32/libmbedtls/readme_2_16_6.txt @@ -2,10 +2,10 @@ Source: mbed TLS 2.16.6 (Apache) include\mbedtls\platform.h - + #if defined(_WIN32) && !defined(LIBMBEDCRYPTO_SOURCE) //stdlib, linkage + #include "crypto_globals.h" - + #define mbedtls_fprintf get_mbedtls_fprintf() + + #define mbedtls_fprintf get_mbedtls_fprintf() + #else extern int (*mbedtls_fprintf)( FILE *stream, const char *format, ... ); + #endif @@ -119,6 +119,5 @@ + mbedtls_x509_crt_verify_restartable - --end-- diff --git a/mcwin32/libmbedtls/readme_2_27_0.txt b/mcwin32/libmbedtls/readme_2_27_0.txt new file mode 100644 index 00000000..eeee4f04 --- /dev/null +++ b/mcwin32/libmbedtls/readme_2_27_0.txt @@ -0,0 +1,129 @@ + Source: mbed TLS 2.27.0 + + Makefile.in: + + TLS_SOURCES= + + ssl_msg.c + + ssl_tls13_keys.c + + include\mbedtls\platform.h: + + - #if defined(__MINGW32__) || (defined(_MSC_VER) && _MSC_VER <= 1900) + + #if defined(__MINGW32__) || (defined(_MSC_VER) && _MSC_VER <= 1900) || defined(__WATCOMC__) + #define MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF + #define MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF + + ------- + + #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) + /* We need FILE * */ + #include + + #if defined(LIBMBED_WIN32) && !defined(LIBMBEDCRYPTO_SOURCE) //stdlib, linkage + + #include "crypto_globals.h" + + #define mbedtls_fprintf get_mbedtls_fprintf() + + #else + extern int (*mbedtls_fprintf)( FILE *stream, const char *format, ... ); + + #endif + + ------- + + #if defined(MBEDTLS_PLATFORM_PRINTF_ALT) + + #if defined(LIBMBED_WIN32) && !defined(LIBMBEDCRYPTO_SOURCE) //stdlib, linkage + + #include "crypto_globals.h" + + #define mbedtls_printf get_mbedtls_printf() + + #else + extern int (*mbedtls_printf)( const char * format, ... ); + + #endif + + ------- + + #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) + + #if defined(LIBMBED_WIN32) && !defined(LIBMBEDCRYPTO_SOURCE) //stdlib, linkage + + #include "crypto_globals.h" + + #define mbedtls_snprintf get_mbedtls_snprintf() + + #else + extern int (*mbedtls_snprintf)( char * s, size_t n, const char * format, ... ); + + #endif + + ------- + + #if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) + #include + + #if defined(LIBMBED_WIN32) && !defined(LIBMBEDCRYPTO_SOURCE) //stdlib, linkage + + #include "crypto_globals.h" + + #define mbedtls_vsnprintf get_mbedtls_vsnprintf() + + #else + extern int (*mbedtls_vsnprintf)( char * s, size_t n, const char * format, va_list arg ); + + #endif + + include\mbedtls\platform_util.h + + + #if defined(LIBMBED_WIN32) && defined(LIBMBEDCRYPTO_SOURCE) //stdlib, linkage + + #include "crypto_globals.h" + + CRYPTO_MBEDAPI struct tm *mbedtls_platform_gmtime_r( const mbedtls_time_t *tt, + + struct tm *tm_buf ); + + #else + struct tm *mbedtls_platform_gmtime_r( const mbedtls_time_t *tt, + struct tm *tm_buf ); + + #endif + + library\platform_util.c: + + + #if defined(_MSC_VER) || defined(__WATCOMC__) //stdlib, linkage + + static void * stdlib_memset( void *buf, int value, size_t len) + + { + + return memset( buf, value, len); + + } + + + + static void * (* const volatile memset_func)( void *, int, size_t ) = stdlib_memset; + + #else + static void * (* const volatile memset_func)( void *, int, size_t ) = memset; + + #endif + + ----- + + #if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) + + #if defined(__WATCOMC__) + + return gmtime_s( tt, tm_buf ); + + #else + + return( ( gmtime_s( tm_buf, tt ) == 0 ) ? tm_buf : NULL ); + + #endif + + library\ssl_tls.c: + + #if defined(MBEDTLS_SSL_TLS_C) + + #if defined(_WINDLL) && defined(LIBMBED_DYNAMIC) //stdlib, linkage + + #include "x509_globals.h" + + #endif + + ----- + + + #if defined(_WINDLL) && defined(LIBMBED_DYNAMIC) //stdlib, linkage + + conf->cert_profile = get_mbedtls_x509_crt_profile_suiteb(); + + #else + conf->cert_profile = &mbedtls_x509_crt_profile_suiteb; + + #endf + + ----- + + + #if defined(_WINDLL) && defined(LIBMBED_DYNAMIC) //stdlib, linkage + + conf->cert_profile = get_mbedtls_x509_crt_profile_default(); + + #else + conf->cert_profile = &mbedtls_x509_crt_profile_default; + + #endif + + win32\libmbedcrypto.def: + + ; library\cipher.c + + mbedtls_cipher_auth_encrypt_ext + + mbedtls_cipher_auth_decrypt_ext + + ; library\ans1write.c + + mbedtls_asn1_write_named_bitstring + + ; library\oid.c + + mbedtls_oid_get_certificate_policies + + win32\libmbedx509.def: + +--end-- diff --git a/mcwin32/libmbedtls/win32/crypto_globals.c b/mcwin32/libmbedtls/win32/crypto_globals.c index 5580425d..fb9cd3c0 100644 --- a/mcwin32/libmbedtls/win32/crypto_globals.c +++ b/mcwin32/libmbedtls/win32/crypto_globals.c @@ -1,4 +1,4 @@ -//$Id: crypto_globals.c,v 1.3 2020/05/01 14:33:00 cvsuser Exp $ +//$Id: crypto_globals.c,v 1.5 2021/11/08 14:40:45 cvsuser Exp $ // // libmbedcrypto support - // retrieve the dynamic fprintf/snprintf/printf implementations (if required) @@ -7,7 +7,7 @@ #include "crypto_globals.h" #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) -mbedtls_fprintf_t +CRYPTO_MBEDAPI mbedtls_fprintf_t get_mbedtls_fprintf(void) { #undef mbedtls_fprintf return mbedtls_fprintf; @@ -15,22 +15,82 @@ get_mbedtls_fprintf(void) { #endif +#if defined(MBEDTLS_PLATFORM_PRINTF_ALT) +CRYPTO_MBEDAPI mbedtls_printf_t +get_mbedtls_printf(void) { +#undef mbedtls_printf + return mbedtls_printf; +} +#endif + #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) -mbedtls_snprintf_t +CRYPTO_MBEDAPI mbedtls_snprintf_t get_mbedtls_snprintf(void) { -#undef mbedtls_snprintf +#undef mbedtls_snprintf return mbedtls_snprintf; } #endif -#if defined(MBEDTLS_PLATFORM_PRINTF_ALT) -mbedtls_printf_t -get_mbedtls_printf(void) { -#undef mbedtls_printf - return mbedtls_printf; +#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) +CRYPTO_MBEDAPI mbedtls_vsnprintf_t +get_mbedtls_vsnprintf(void) { +#undef mbedtls_vsnprintf + return mbedtls_vsnprintf; +} +#endif + + +/* + * Optional toolchain components, supply allowing common def's + * + * see: platform.h/.c + */ + +#if defined(__MINGW32__) || (defined(_MSC_VER) && _MSC_VER <= 1900) || defined(__WATCOMC__) +#define HAVE_MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF +#define HAVE_MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF +#endif + + +#if !defined(HAVE_MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF) +int mbedtls_platform_win32_snprintf( char *s, size_t n, const char *fmt, ... ) +{ + int ret = -1; + va_list argp; + + va_start( argp, fmt ); + ret = mbedtls_vsnprintf( s, n, fmt, argp ); + va_end( argp ); + + return( ret ); } +#endif //HAVE_MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF + + +#if !defined(HAVE_MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF) +int mbedtls_platform_win32_vsnprintf( char *s, size_t n, const char *fmt, va_list arg ) +{ + int ret = -1; + + /* Avoid calling the invalid parameter handler by checking ourselves */ + if( s == NULL || n == 0 || fmt == NULL ) + return( -1 ); + +#if defined(_TRUNCATE) + ret = vsnprintf_s( s, n, _TRUNCATE, fmt, arg ); +#else + ret = vsnprintf( s, n, fmt, arg ); + if( ret < 0 || (size_t) ret == n ) + { + s[n-1] = '\0'; + ret = -1; + } #endif + return( ret ); +} +#endif //HAVE_MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF + //end diff --git a/mcwin32/libmbedtls/win32/crypto_globals.h b/mcwin32/libmbedtls/win32/crypto_globals.h index 6753a205..e40e51ce 100644 --- a/mcwin32/libmbedtls/win32/crypto_globals.h +++ b/mcwin32/libmbedtls/win32/crypto_globals.h @@ -1,7 +1,7 @@ #ifndef CRYPTO_GLOBALS_H_INCLUDED #define CRYPTO_GLOBALS_H_INCLUDED #pragma once -//$Id: crypto_globals.h,v 1.2 2020/05/01 14:33:00 cvsuser Exp $ +//$Id: crypto_globals.h,v 1.3 2021/11/08 13:13:02 cvsuser Exp $ // // libmbedcrypto support // @@ -27,19 +27,24 @@ #endif #include "mbedtls/platform.h" +#include typedef int (*mbedtls_fprintf_t)(FILE *stream, const char *format, ...); -typedef int (*mbedtls_snprintf_t)(char * s, size_t n, const char * format, ...); typedef int (*mbedtls_printf_t)(const char *format, ...); +typedef int (*mbedtls_snprintf_t)(char * s, size_t n, const char * format, ...); +typedef int (*mbedtls_vsnprintf_t)(char * s, size_t n, const char * format, va_list arg); #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) CRYPTO_MBEDAPI mbedtls_fprintf_t get_mbedtls_fprintf(void); #endif +#if defined(MBEDTLS_PLATFORM_PRINTF_ALT) +CRYPTO_MBEDAPI mbedtls_printf_t get_mbedtls_printf(void); +#endif #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) CRYPTO_MBEDAPI mbedtls_snprintf_t get_mbedtls_snprintf(void); #endif -#if defined(MBEDTLS_PLATFORM_PRINTF_ALT) -CRYPTO_MBEDAPI mbedtls_printf_t get_mbedtls_printf(void); +#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) +CRYPTO_MBEDAPI mbedtls_vsnprintf_t get_mbedtls_vsnprintf(void); #endif #endif //CRYPTO_GLOBALS_H_INCLUDED diff --git a/mcwin32/libmbedtls/win32/libmbedcrypto.def b/mcwin32/libmbedtls/win32/libmbedcrypto.def index 7c83d219..34a4ad1c 100644 --- a/mcwin32/libmbedtls/win32/libmbedcrypto.def +++ b/mcwin32/libmbedtls/win32/libmbedcrypto.def @@ -1,4 +1,4 @@ -;$Id: libmbedcrypto.def,v 1.2 2020/05/01 14:33:00 cvsuser Exp $ +;$Id: libmbedcrypto.def,v 1.3 2021/11/08 13:13:02 cvsuser Exp $ ; ; libmbedcrypto library definition (4.16.6) ; @@ -65,6 +65,7 @@ EXPORTS mbedtls_asn1_write_raw_buffer mbedtls_asn1_write_tag mbedtls_asn1_write_tagged_string + mbedtls_asn1_write_named_bitstring ; library\base64.c mbedtls_base64_decode @@ -171,6 +172,8 @@ EXPORTS ; library\cipher.c mbedtls_cipher_auth_decrypt mbedtls_cipher_auth_encrypt + mbedtls_cipher_auth_encrypt_ext + mbedtls_cipher_auth_decrypt_ext mbedtls_cipher_check_tag mbedtls_cipher_crypt mbedtls_cipher_finish @@ -198,7 +201,7 @@ EXPORTS mbedtls_ctr_drbg_random_with_add mbedtls_ctr_drbg_reseed mbedtls_ctr_drbg_seed - mbedtls_ctr_drbg_seed_entropy_len + ;;mbedtls_ctr_drbg_seed_entropy_len mbedtls_ctr_drbg_self_test mbedtls_ctr_drbg_set_entropy_len mbedtls_ctr_drbg_set_prediction_resistance @@ -412,7 +415,8 @@ EXPORTS mbedtls_oid_get_sig_alg mbedtls_oid_get_sig_alg_desc mbedtls_oid_get_x509_ext_type - + mbedtls_oid_get_certificate_policies + ; library\pem.c mbedtls_pem_free mbedtls_pem_init diff --git a/mcwin32/libssh2/.cvsignore b/mcwin32/libssh2/.cvsignore index 594b1a28..ed193da4 100644 --- a/mcwin32/libssh2/.cvsignore +++ b/mcwin32/libssh2/.cvsignore @@ -1,5 +1,6 @@ libssh2-1.8.0 libssh2-1.9.0 +libssh2-1.10.0 .unpacked.* Makefile *.err diff --git a/mcwin32/libssh2/.gitignore b/mcwin32/libssh2/.gitignore index 19a756fe..e6a790fe 100644 --- a/mcwin32/libssh2/.gitignore +++ b/mcwin32/libssh2/.gitignore @@ -1,5 +1,6 @@ libssh2-1.8.0/ libssh2-1.9.0/ +libssh2-1.10.0/ .unpacked.* Makefile *.err diff --git a/mcwin32/libssh2/Makefile.in b/mcwin32/libssh2/Makefile.in index 9fd4aee2..6712ee12 100644 --- a/mcwin32/libssh2/Makefile.in +++ b/mcwin32/libssh2/Makefile.in @@ -1,9 +1,9 @@ # -*- mode: mak; indent-tabs-mode: t; tab-width: 8 -*- -# $Id: Makefile.in,v 1.12 2021/04/13 16:00:16 cvsuser Exp $ +# $Id: Makefile.in,v 1.14 2021/11/08 13:14:15 cvsuser Exp $ # libssh2 makefile. # # -# Copyright (c) 2015 - 2020, Adam Young. +# Copyright (c) 2015 - 2021, Adam Young. # All rights reserved. # # @@ -99,7 +99,7 @@ RMFLAGS= -f SSH2LIB= $(D_LIB)/$(LP)ssh2_static$(A) SSH2DLL= $(D_LIB)/$(LP)ssh2.la -VERSION= 1.9.0 +VERSION= 1.10.0 VERSIONSPEC= $(subst .,:,$(VERSION)) VERPACKED= libssh2-$(VERSION).gr.tgz @@ -139,6 +139,10 @@ CSOURCES=\ CSOURCES+=\ blowfish.c bcrypt_pbkdf.c +#+1.10.0 +CSOURCES+=\ + agent_win.c + LIBOBJS=\ $(addprefix $(D_OBJ)/,$(subst .c,$(O),$(CSOURCES))) @@ -208,7 +212,7 @@ clean: -@$(LIBTOOL) --mode=clean $(RM) $(DLLS) $(DLLOBJS) >/dev/null 2>&1 -@$(RM) $(RMFLAGS) $(BAK) $(TSKS) $(LIBS) $(CLEAN) $(XCLEAN) >/dev/null 2>&1 -@$(RM) $(LIBOBJS) >/dev/null 2>&1 - -@$(RM) ../include/libssh2*.h >/dev/null 2>&1 + -@$(RM) ../include/libssh2/*.h >/dev/null 2>&1 $(D_OBJ)/%$(O): %.c $(CC) $(CFLAGS) -o $@ -c $< diff --git a/mcwin32/libssh2/libssh2-1.10.0.gr.tgz b/mcwin32/libssh2/libssh2-1.10.0.gr.tgz new file mode 100644 index 00000000..8dece8c3 Binary files /dev/null and b/mcwin32/libssh2/libssh2-1.10.0.gr.tgz differ diff --git a/mcwin32/libssh2/readme_1_10_0.txt b/mcwin32/libssh2/readme_1_10_0.txt new file mode 100644 index 00000000..859af3cc --- /dev/null +++ b/mcwin32/libssh2/readme_1_10_0.txt @@ -0,0 +1,32 @@ + + Source: libssh2 1.10.0, code changes + + Makefile.in: + + + agent_win$(O) + + + src\libssh2_priv.h: + + #include + + #include //UINT_MAX + + + src\misc.c: + + #ifdef WIN32 + + #if defined(__WATCOMC__) + + static void *safememset(void *a, int b, size_t c) { + + return memset(a, b, c); + + } + + static void * (__watcall * const volatile memset_libssh)(void *, int, size_t) = + + safememset; + + #else + static void * (__cdecl * const volatile memset_libssh)(void *, int, size_t) = + memset; + + #endif + #else + static void * (* const volatile memset_libssh)(void *, int, size_t) = memset; + #endif + + --------- diff --git a/mcwin32/libssh2/readme_1_9_0.txt b/mcwin32/libssh2/readme_1_9_0.txt index d01266b4..43f2f9bd 100644 --- a/mcwin32/libssh2/readme_1_9_0.txt +++ b/mcwin32/libssh2/readme_1_9_0.txt @@ -1,13 +1,13 @@ Source: libssh2 1.9.0, code changes - src\libssh2_priv.h + src\libssh2_priv.h #include - + #include //UINT_MAX + + #include //UINT_MAX - src\misc.c + src\misc.c #ifdef WIN32 + #if defined(__WATCOMC__) @@ -18,7 +18,7 @@ + safememset; + #else static void * (__cdecl * const volatile memset_libssh)(void *, int, size_t) = - memset; + memset; + #endif #else static void * (* const volatile memset_libssh)(void *, int, size_t) = memset; diff --git a/mcwin32/libw32/w32_child.c b/mcwin32/libw32/w32_child.c index 476f8ac0..3015a5db 100644 --- a/mcwin32/libw32/w32_child.c +++ b/mcwin32/libw32/w32_child.c @@ -1,5 +1,5 @@ #include -__CIDENT_RCSID(gr_w32_child_c,"$Id: w32_child.c,v 1.11 2020/05/06 19:45:42 cvsuser Exp $") +__CIDENT_RCSID(gr_w32_child_c,"$Id: w32_child.c,v 1.12 2021/11/08 13:20:58 cvsuser Exp $") /* -*- mode: c; indent-width: 4; -*- */ /* @@ -570,7 +570,7 @@ w32_child_exec( */ (void) memset(&si, 0, sizeof(STARTUPINFO)); si.cb = sizeof(STARTUPINFO); - si.wShowWindow = SW_HIDE; //SW_NORMAL, SW_SHOWMINIMIZED + si.wShowWindow = ((args->flags & W32_SWHIDE) ? SW_HIDE : SW_SHOW); si.hStdInput = hStdIn; si.hStdOutput = hStdOut; si.hStdError = hStdErr; @@ -715,7 +715,7 @@ WASNOT_ENOENT(void) LIBW32_API BOOL w32_child_wait(HANDLE hProc, int *status, int nowait) { - DWORD dwStatus, rc; + DWORD dwStatus = 0, rc; BOOL ret = FALSE; /* @@ -728,7 +728,13 @@ w32_child_wait(HANDLE hProc, int *status, int nowait) errno = ECHILD; /* - * Wait for child process, then fetch its exit code + * Verify handle. + */ + } else if (0 == GetExitCodeProcess(hProc, (LPDWORD)&dwStatus)) { + errno = ECHILD; + + /* + * Wait for child process, then fetch its exit code. */ } else if ((rc = WaitForSingleObject(hProc, (nowait ? 0 : INFINITE))) == WAIT_OBJECT_0 && GetExitCodeProcess(hProc, (LPDWORD)&dwStatus)) { diff --git a/mcwin32/libw32/w32_shell.c b/mcwin32/libw32/w32_shell.c index f74b638e..a7bf4b29 100644 --- a/mcwin32/libw32/w32_shell.c +++ b/mcwin32/libw32/w32_shell.c @@ -1,5 +1,5 @@ #include -__CIDENT_RCSID(gr_w32_shell_c,"$Id: w32_shell.c,v 1.8 2020/04/28 22:59:44 cvsuser Exp $") +__CIDENT_RCSID(gr_w32_shell_c,"$Id: w32_shell.c,v 1.9 2021/11/08 13:20:58 cvsuser Exp $") /* -*- mode: c; indent-width: 4; -*- */ /* @@ -86,6 +86,7 @@ w32_shell(const char *shell, const char *cmd, "/C", // command "/k" // interactive }; + const int interactive = ((NULL == cmd || !*cmd) ? 1 : 0); char *slash, *shname = WIN32_STRDUP(shell ? shell : w32_getshell()); int xstdout = FALSE, xstderr = FALSE; // mode (TRUE == append) SECURITY_ATTRIBUTES sa; @@ -94,7 +95,6 @@ w32_shell(const char *shell, const char *cmd, win32_spawn_t args = {0}; const char *argv[4] = {0}; HANDLE hProc = 0; - int interactive = 0; int status = 0; // sync or async @@ -176,23 +176,26 @@ w32_shell(const char *shell, const char *cmd, } // command or interactive + (void)memset(&args, 0, sizeof(args)); + if (w32_iscommand(shname)) { slash = shname - 1; while ((slash = strchr(slash + 1, XSLASHCHAR)) != NULL) { *slash = SLASHCHAR; // convert slashes } - } - if (NULL == cmd || !*cmd) { - ++interactive; // interactive if no cmd + argv[0] = shname; + argv[1] = sharg[ interactive ]; // /C or /K + argv[2] = cmd; + argv[3] = NULL; + + } else { + argv[0] = shname; + argv[1] = cmd; + argv[2] = NULL; } // create child process - (void)memset(&args, 0, sizeof(args)); - argv[0] = shname; - argv[1] = sharg[ interactive ]; - argv[2] = cmd; - argv[3] = NULL; args.argv = argv; args._dwFlags = 0; diff --git a/mcwin32/libw32/win32_child.h b/mcwin32/libw32/win32_child.h index d92865be..6f8832e9 100644 --- a/mcwin32/libw32/win32_child.h +++ b/mcwin32/libw32/win32_child.h @@ -1,7 +1,7 @@ #ifndef LIBW32_WIN32_CHILD_H_INCLUDED #define LIBW32_WIN32_CHILD_H_INCLUDED #include -__CIDENT_RCSID(gr_libw32_win32_child_h,"$Id: win32_child.h,v 1.8 2021/04/13 15:49:35 cvsuser Exp $") +__CIDENT_RCSID(gr_libw32_win32_child_h,"$Id: win32_child.h,v 1.9 2021/11/08 13:20:58 cvsuser Exp $") __CPRAGMA_ONCE /* -*- mode: c; indent-width: 4; -*- */ @@ -44,6 +44,7 @@ typedef struct win32_spawn { const char ** envp; const char * dir; #define W32_SPAWNDETACHED 0x01 +#define W32_SWHIDE 0x02 /* hide otherwise show child window */ int flags; unsigned long _dwFlags; /* reserved */ unsigned long _dwProcessId; /* reserved */