diff --git a/3rdp/build/Dynamic-linked-static-lib.patch b/3rdp/build/Dynamic-linked-static-lib.patch index 31d1ab6fac2bba382bb868cbec28f8d9c22ee7ff..1b267f6c9b982bb3e281431aefa36a43baee5219 100644 --- a/3rdp/build/Dynamic-linked-static-lib.patch +++ b/3rdp/build/Dynamic-linked-static-lib.patch @@ -1,31 +1,14 @@ ---- tools/ccopts.sh.orig 2017-07-11 01:21:48.000000000 -0400 -+++ tools/ccopts.sh 2018-01-03 02:46:02.958592000 -0500 -@@ -159,6 +159,7 @@ - # checking if this is set. - - HASDYNLOAD=0 -+DISABLE_AUTODETECT=1 - case $OSNAME in - 'Darwin'|'Linux'|'FreeBSD') - HASDYNLOAD=1 ;; -@@ -204,7 +205,7 @@ - CCARGS="$CCARGS -DNCIPHER_PKCS11" ; - fi - fi --if [ -f /usr/include/zlib.h ] ; then -+if [ -f /usr/include/zlib.h -a 0 = 3 ] ; then - echo " (Enabling use of system zlib)." >&2 ; - CCARGS="$CCARGS -DHAS_ZLIB" ; - fi -@@ -302,7 +303,6 @@ +--- ../tmp2/tools/ccopts.sh 2019-03-04 16:32:32.000000000 -0500 ++++ tools/ccopts.sh 2019-06-03 16:56:55.005703000 -0400 +@@ -393,7 +393,6 @@ # of large-displacement jumps, so if you're tuning the code for size/speed # you can try -fpic to see if you get any improvement. --if [ $# -eq 2 ] ; then +-if [ $SHARED -gt 0 ] ; then case $OSNAME in 'Darwin') CCARGS="$CCARGS -fPIC -fno-common" ;; -@@ -329,7 +329,6 @@ +@@ -420,7 +419,6 @@ *) CCARGS="$CCARGS -fPIC" ;; esac ; @@ -33,15 +16,3 @@ # Conversely, if we're building a static lib and the system requires it, set # up static lib-specific options. -@@ -643,9 +642,9 @@ - # '--param=ssp-buffer-size=4' (the default size is 8), but this isn't - # necessary for cryptlib since it doesn't allocate any 4-byte buffers. - --if [ "$GCC_VER" -ge 49 ] ; then -+if [ "$GCC_VER" -ge 49 -a 1 = 3 ] ; then - CCARGS="$CCARGS -fstack-protector-strong -D_FORTIFY_SOURCE=2" ; --elif [ "$GCC_VER" -ge 42 ] ; then -+elif [ "$GCC_VER" -ge 42 -a 1 = 3 ] ; then - if [ "$($CC -fstack-protector -S -o /dev/null -xc /dev/null 2>&1 | grep -c "unrecog")" -eq 0 ] ; then - CCARGS="$CCARGS -fstack-protector" ; - fi ; diff --git a/3rdp/build/GNUmakefile b/3rdp/build/GNUmakefile index 383bfeb6e05483537f9dac3daa98054145919112..1d6e1e1fa6e03f6204ea3cff444c77cacf6346cd 100644 --- a/3rdp/build/GNUmakefile +++ b/3rdp/build/GNUmakefile @@ -67,30 +67,29 @@ $(CRYPT_SRC): | $(3RDPSRCDIR) $(CRYPT_IDIR): | $(3RDPODIR) $(QUIET)$(IFNOTEXIST) mkdir $(CRYPT_IDIR) -$(CRYPTLIB_BUILD): $(3RDP_ROOT)$(DIRSEP)dist/cryptlib.zip $(3RDP_ROOT)$(DIRSEP)build/SSL-fix.patch $(3RDP_ROOT)$(DIRSEP)build/Dynamic-linked-static-lib.patch $(3RDP_ROOT)$(DIRSEP)build/terminal-params.patch $(3RDP_ROOT)$(DIRSEP)build/cl-mingw32-static.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ranlib.patch $(3RDP_ROOT)$(DIRSEP)build/cl-PAM-noprompts.patch $(3RDP_ROOT)$(DIRSEP)build/cl-getseed64.patch $(3RDP_ROOT)$(DIRSEP)build/cl-endian.patch $(3RDP_ROOT)$(DIRSEP)build/cl-win32-compile.patch $(3RDP_ROOT)$(DIRSEP)build/cl-win32-compile2.patch $(3RDP_ROOT)$(DIRSEP)build/cl-win32-noasm.patch $(3RDP_ROOT)$(DIRSEP)build/cl-zz-country.patch $(3RDP_ROOT)$(DIRSEP)build/cl-algorithms.patch $(3RDP_ROOT)$(DIRSEP)build/cl-allow-duplicate-ext.patch $(3RDP_ROOT)$(DIRSEP)build/cl-select-fix.patch $(3RDP_ROOT)$(DIRSEP)build/cl-short-client-name.patch $(3RDP_ROOT)$(DIRSEP)build/cl-bn_div2.patch $(3RDP_ROOT)$(DIRSEP)build/cl-macosx-minver.patch | $(CRYPT_SRC) $(CRYPT_IDIR) +$(CRYPTLIB_BUILD): $(3RDP_ROOT)$(DIRSEP)dist/cryptlib.zip $(3RDP_ROOT)$(DIRSEP)build/terminal-params.patch $(3RDP_ROOT)$(DIRSEP)build/cl-mingw32-static.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ranlib.patch $(3RDP_ROOT)$(DIRSEP)build/cl-win32-noasm.patch $(3RDP_ROOT)$(DIRSEP)build/cl-zz-country.patch $(3RDP_ROOT)$(DIRSEP)build/cl-algorithms.patch $(3RDP_ROOT)$(DIRSEP)build/cl-allow-duplicate-ext.patch $(3RDP_ROOT)$(DIRSEP)build/cl-macosx-minver.patch $(3RDP_ROOT)$(DIRSEP)build/cl-endian.patch $(3RDP_ROOT)$(DIRSEP)build/cl-cryptodev.patch $(3RDP_ROOT)$(DIRSEP)build/cl-posix-me-gently.patch $(3RDP_ROOT)$(DIRSEP)build/cl-tpm-linux.patch $(3RDP_ROOT)$(DIRSEP)build/cl-PAM-noprompts.patch $(3RDP_ROOT)$(DIRSEP)build/cl-zlib.patch $(3RDP_ROOT)$(DIRSEP)build/Dynamic-linked-static-lib.patch $(3RDP_ROOT)$(DIRSEP)build/SSL-fix.patch $(3RDP_ROOT)$(DIRSEP)build/cl-bigger-maxattribute.patch $(3RDP_ROOT)$(DIRSEP)build/cl-vcxproj.patch | $(CRYPT_SRC) $(CRYPT_IDIR) @echo Creating $@ ... $(QUIET)-rm -rf $(CRYPT_SRC)/* $(QUIET)unzip -oa $(3RDPDISTDIR)$(DIRSEP)cryptlib.zip -d $(CRYPT_SRC) $(QUIET)perl -pi.bak -e 's/\r//' $(CRYPT_SRC)/crypt32.vcxproj - $(QUIET)patch -p0 -d $(CRYPT_SRC) < SSL-fix.patch - $(QUIET)patch -p0 -d $(CRYPT_SRC) < Dynamic-linked-static-lib.patch $(QUIET)patch -p0 -d $(CRYPT_SRC) < terminal-params.patch $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-mingw32-static.patch $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-ranlib.patch $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-vcxproj.patch - $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-PAM-noprompts.patch - $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-getseed64.patch $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-endian.patch - $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-win32-compile.patch - $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-win32-compile2.patch $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-win32-noasm.patch $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-zz-country.patch $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-algorithms.patch $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-allow-duplicate-ext.patch - $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-select-fix.patch - $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-short-client-name.patch - $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-bn_div2.patch $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-macosx-minver.patch + $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-cryptodev.patch + $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-posix-me-gently.patch + $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-tpm-linux.patch + $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-PAM-noprompts.patch + $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-zlib.patch + $(QUIET)patch -p0 -d $(CRYPT_SRC) < Dynamic-linked-static-lib.patch + $(QUIET)patch -p0 -d $(CRYPT_SRC) < SSL-fix.patch + $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-bigger-maxattribute.patch ifeq ($(CC),mingw32-gcc) $(QUIET)cd $(CRYPT_SRC) && env - PATH="$(PATH)" CC="$(CC)" AR="$(AR)" RANLIB="$(RANLIB)" make directories $(QUIET)cd $(CRYPT_SRC) && env - PATH="$(PATH)" CC="$(CC)" AR="$(AR)" RANLIB="$(RANLIB)" make toolscripts diff --git a/3rdp/build/SSL-fix.patch b/3rdp/build/SSL-fix.patch index 91583aa27b1bed0d8f3baee279825f827e4f5ba3..8c5e319f1f31b05e39fcd536b0d514273443470c 100644 --- a/3rdp/build/SSL-fix.patch +++ b/3rdp/build/SSL-fix.patch @@ -1,9 +1,9 @@ ---- session/sess_attr.c.orig 2017-07-27 17:58:38.000000000 -0400 -+++ session/sess_attr.c 2018-01-03 01:44:45.682545000 -0500 -@@ -103,11 +103,13 @@ - then we can't set a server name as well */ - if( sessionInfoPtr->transportSession != CRYPT_ERROR ) - return( exitErrorInited( sessionInfoPtr, CRYPT_SESSINFO_SESSION ) ); +--- ../tmp2/session/sess_attr.c 2019-02-05 18:18:28.000000000 -0500 ++++ session/sess_attr.c 2019-06-03 17:06:34.378151000 -0400 +@@ -102,11 +102,13 @@ + + /* If there's already a network socket specified then we can't set a + server name as well */ +/* if( sessionInfoPtr->networkSocket != CRYPT_ERROR ) { diff --git a/3rdp/build/cl-PAM-noprompts.patch b/3rdp/build/cl-PAM-noprompts.patch index 277e746c83c043ca165ce494ed207929b58f9245..e99ed54aec03255c2cc5563e2aabed9440ba32c2 100644 --- a/3rdp/build/cl-PAM-noprompts.patch +++ b/3rdp/build/cl-PAM-noprompts.patch @@ -1,6 +1,6 @@ ---- session/ssh2_authc.c.orig 2017-01-18 22:42:06.000000000 -0500 -+++ session/ssh2_authc.c 2018-01-03 01:24:48.768379000 -0500 -@@ -530,7 +530,7 @@ +--- ../tmp2/session/ssh2_authc.c 2018-12-14 17:31:34.000000000 -0500 ++++ session/ssh2_authc.c 2019-06-03 16:41:49.956986000 -0400 +@@ -868,7 +868,7 @@ if( !cryptStatusError( status ) ) { status = CRYPT_OK; /* readUint32() returns a count value */ @@ -9,7 +9,7 @@ { /* Requesting zero or more than a small number of prompts is suspicious */ -@@ -538,46 +538,49 @@ +@@ -876,49 +876,52 @@ } } } @@ -17,21 +17,27 @@ + if( noPrompts > 0 ) { - status = readString32( &stream, promptBuffer, -- CRYPT_MAX_TEXTSIZE, &promptLength ); -- if( cryptStatusOK( status ) && promptLength <= 0 ) + if( cryptStatusOK( status ) ) - { -- /* We must have at least some sort of prompt given that we -- require num_prompts to be nonzero */ -- status = CRYPT_ERROR_BADDATA; ++ { + status = readString32( &stream, promptBuffer, -+ CRYPT_MAX_TEXTSIZE, &promptLength ); + CRYPT_MAX_TEXTSIZE, &promptLength ); +- if( cryptStatusOK( status ) && promptLength <= 0 ) + if( cryptStatusOK( status ) && promptLength <= 0 ) + { + /* We must have at least some sort of prompt given that we + require num_prompts to be nonzero */ + status = CRYPT_ERROR_BADDATA; + } ++ } ++ sMemDisconnect( &stream ); ++ if( cryptStatusError( status ) ) + { +- /* We must have at least some sort of prompt given that we +- require num_prompts to be nonzero */ +- status = CRYPT_ERROR_BADDATA; ++ retExt( status, ++ ( status, SESSION_ERRINFO, ++ "Invalid PAM authentication request packet" ) ); } - } - sMemDisconnect( &stream ); @@ -41,13 +47,10 @@ - ( status, SESSION_ERRINFO, - "Invalid PAM authentication request packet" ) ); - } -+ sMemDisconnect( &stream ); -+ if( cryptStatusError( status ) ) -+ { -+ retExt( status, -+ ( status, SESSION_ERRINFO, -+ "Invalid PAM authentication request packet" ) ); -+ } +- REQUIRES( nameLength >= 0 && nameLength <= CRYPT_MAX_TEXTSIZE ); +- REQUIRES( promptLength >= 1 && promptLength <= CRYPT_MAX_TEXTSIZE ); ++ REQUIRES( nameLength >= 0 && nameLength <= CRYPT_MAX_TEXTSIZE ); ++ REQUIRES( promptLength >= 1 && promptLength <= CRYPT_MAX_TEXTSIZE ); - /* Make sure that we're being asked for some form of password - authentication. This assumes that the prompt string begins with the @@ -70,6 +73,7 @@ - nameLength ) : \ - sanitiseString( promptBuffer, CRYPT_MAX_TEXTSIZE, \ - promptLength ) ) ); +- } + /* Make sure that we're being asked for some form of password + authentication. This assumes that the prompt string begins with the + word "password" (which always seems to be the case), if it isn't then @@ -92,6 +96,7 @@ + sanitiseString( promptBuffer, CRYPT_MAX_TEXTSIZE, \ + promptLength ) ) ); + } - } ++ } REQUIRES( passwordPtr != NULL && \ + passwordPtr->valueLength > 0 && \ diff --git a/3rdp/build/cl-algorithms.patch b/3rdp/build/cl-algorithms.patch index 81cede2f057b67f418ba8459b86f37dd677a7cb6..95371ce30e69f9e546fa59f98793e4185b470ab3 100644 --- a/3rdp/build/cl-algorithms.patch +++ b/3rdp/build/cl-algorithms.patch @@ -1,11 +1,12 @@ --- misc/config.h.orig 2018-02-15 02:26:59.017103000 -0500 +++ misc/config.h 2018-02-15 02:27:50.400787000 -0500 -@@ -9,6 +9,8 @@ +@@ -9,6 +9,9 @@ #define _CONFIG_DEFINED +#define USE_PROBLEMATIC_ALGORITHMS +#define USE_SSH_EXTENDED ++#define USE_CERTLEVEL_STANDARD /**************************************************************************** * * * Custom Configuration Profiles * diff --git a/3rdp/build/cl-cryptodev.patch b/3rdp/build/cl-cryptodev.patch new file mode 100644 index 0000000000000000000000000000000000000000..ed489d04ee9bf952eadfeac3e9215fb6f0d87ead --- /dev/null +++ b/3rdp/build/cl-cryptodev.patch @@ -0,0 +1,23 @@ +--- ../tmp2/tools/ccopts.sh 2019-03-04 16:32:32.000000000 -0500 ++++ tools/ccopts.sh 2019-06-03 16:22:10.631518000 -0400 +@@ -250,13 +250,13 @@ + done + + # /dev/crypto support +- for includepath in $DEVCRYPTOPATHS ; do +- if [ -f $includepath ] ; then +- echo "/dev/crypto interface detected, enabling crypto hardware support." >&2 ; +- CCARGS="$CCARGS -DHAS_DEVCRYPTO -I"$(dirname $includepath)"" ; +- break ; +- fi +- done ++ #for includepath in $DEVCRYPTOPATHS ; do ++ # if [ -f $includepath ] ; then ++ # echo "/dev/crypto interface detected, enabling crypto hardware support." >&2 ; ++ # CCARGS="$CCARGS -DHAS_DEVCRYPTO -I"$(dirname $includepath)"" ; ++ # break ; ++ # fi ++ #done + + fi + if [ -f /usr/include/zlib.h ] ; then diff --git a/3rdp/build/cl-endian.patch b/3rdp/build/cl-endian.patch index d55f764dd869d4e5aa4b38386a7eba2f160a6777..e4c5a4fceb0dd41740a47127f391fdf5b504bbd0 100644 --- a/3rdp/build/cl-endian.patch +++ b/3rdp/build/cl-endian.patch @@ -1,26 +1,11 @@ ---- misc/os_spec.h.orig 2018-01-10 01:39:04.000000000 -0500 -+++ misc/os_spec.h 2018-01-29 18:20:02.023299000 -0500 -@@ -223,10 +223,11 @@ - preprocessors get confused if they aren't defined */ - #define VC_16BIT( version ) 0 - #define VC_LE_VC6( version ) 0 -- #define VC_GE_2002( version ) 0 -- #define VC_LT_2005( version ) 0 -+ #define VC_GE_2002( version ) 1 -+ #define VC_LT_2005( version ) 1 - #define VC_GE_2005( version ) 0 - #define VC_GE_2008( version ) 0 -+ #define VC_LT_2010( version ) 1 - #define VC_GE_2010( version ) 0 - #define VC_GE_2012( version ) 0 - #define VC_GE_2013( version ) 0 -@@ -947,6 +948,9 @@ +--- misc/os_detect.h.orig 2019-06-03 15:44:11.100399000 -0400 ++++ misc/os_detect.h 2019-06-03 15:44:27.559718000 -0400 +@@ -566,6 +566,8 @@ #include <machine/endian.h> #elif defined( __NetBSD__ ) #include <sys/endian.h> + #elif defined( __FreeBSD__ ) + #include <sys/endian.h> -+ #elif defined(__MINGW32__) #else #include <endian.h> #endif /* Apple vs. everyone else */ diff --git a/3rdp/build/cl-posix-me-gently.patch b/3rdp/build/cl-posix-me-gently.patch new file mode 100644 index 0000000000000000000000000000000000000000..3e9441f914555d9a7eed870acd6964c581ed889e --- /dev/null +++ b/3rdp/build/cl-posix-me-gently.patch @@ -0,0 +1,11 @@ +--- ../tmp2/crypt.h 2019-01-31 14:52:00.000000000 -0500 ++++ crypt.h 2019-06-03 16:26:35.672044000 -0400 +@@ -79,7 +79,7 @@ + #ifndef _POSIX_C_SOURCE + #if defined( __xlc__ ) || defined( __IBMC__ ) + #define _POSIX_C_SOURCE 200112L /* Posix 2001 */ +- #elif defined( __GNUC__ ) ++ #elif defined( __GNUC__ ) && defined( __linux__ ) + #define _POSIX_C_SOURCE 200809L /* Posix 2008 */ + #define _DEFAULT_SOURCE 1 /* See note above */ + #define _BSD_SOURCE 1 /* Undo breakage */ diff --git a/3rdp/build/cl-tpm-linux.patch b/3rdp/build/cl-tpm-linux.patch new file mode 100644 index 0000000000000000000000000000000000000000..e6f3d817b4b81469bf0b69bf84b67fe0df37e3b7 --- /dev/null +++ b/3rdp/build/cl-tpm-linux.patch @@ -0,0 +1,25 @@ +--- ../tmp2/tools/ccopts.sh 2019-03-04 16:32:32.000000000 -0500 ++++ tools/ccopts.sh 2019-06-03 16:30:45.060050000 -0400 +@@ -241,13 +241,15 @@ + done + + # TPM support +- for includepath in $TPMPATHS ; do +- if [ -f $includepath ] ; then +- echo "TPM interface detected, enabling TPM support." >&2 ; +- CCARGS="$CCARGS -DHAS_TPM -I"$(dirname $includepath)"" ; +- break ; +- fi +- done ++ if [ "$(uname -s)" = "Linux" ] ; then ++ for includepath in $TPMPATHS ; do ++ if [ -f $includepath ] ; then ++ echo "TPM interface detected, enabling TPM support." >&2 ; ++ CCARGS="$CCARGS -DHAS_TPM -I"$(dirname $includepath)"" ; ++ break ; ++ fi ++ done ++ fi + + # /dev/crypto support + for includepath in $DEVCRYPTOPATHS ; do diff --git a/3rdp/build/cl-zlib.patch b/3rdp/build/cl-zlib.patch new file mode 100644 index 0000000000000000000000000000000000000000..65cdc98f91a90faa00f6375eee3d3510894c5287 --- /dev/null +++ b/3rdp/build/cl-zlib.patch @@ -0,0 +1,17 @@ +--- ../tmp2/tools/ccopts.sh 2019-03-04 16:32:32.000000000 -0500 ++++ tools/ccopts.sh 2019-06-03 16:50:00.486529000 -0400 +@@ -259,10 +259,10 @@ + done + + fi +-if [ -f /usr/include/zlib.h ] ; then +- echo " (Enabling use of system zlib)." >&2 ; +- CCARGS="$CCARGS -DHAS_ZLIB" ; +-fi ++#if [ -f /usr/include/zlib.h ] ; then ++# echo " (Enabling use of system zlib)." >&2 ; ++# CCARGS="$CCARGS -DHAS_ZLIB" ; ++#fi + + # If we're building a development or analysis build, enable various unsafe + # options that are normally disabled by default diff --git a/3rdp/build/terminal-params.patch b/3rdp/build/terminal-params.patch index c6850d126d3341398dc5d0b8199625b634f7e4b4..7c43a0b6871c2c48c7d12fc9160059fdb77ac658 100644 --- a/3rdp/build/terminal-params.patch +++ b/3rdp/build/terminal-params.patch @@ -1,8 +1,8 @@ -diff -ur ../cl.patched/cryptlib.h ./cryptlib.h ---- ../cl.patched/cryptlib.h 2014-06-20 12:40:45.000000000 -0700 -+++ ./cryptlib.h 2014-06-20 12:47:00.000000000 -0700 -@@ -1237,6 +1237,11 @@ - CRYPT_SESSINFO_SSL_OPTIONS, /* SSL/TLS protocol options */ +diff -ur ../tmp2/cryptlib.h ./cryptlib.h +--- ../tmp2/cryptlib.h 2019-02-22 03:16:30.000000000 -0500 ++++ ./cryptlib.h 2019-06-03 15:26:26.741166000 -0400 +@@ -1222,6 +1222,11 @@ + CRYPT_SESSINFO_SSL_EAPKEY, /* SSL/TLS EAP key */ CRYPT_SESSINFO_TSP_MSGIMPRINT, /* TSP message imprint */ + /* Terminal attributes */ @@ -13,10 +13,10 @@ diff -ur ../cl.patched/cryptlib.h ./cryptlib.h /* Used internally */ CRYPT_SESSINFO_LAST, CRYPT_USERINFO_FIRST = 7000, -diff -ur ../cl.patched/kernel/attr_acl.c ./kernel/attr_acl.c ---- ../cl.patched/kernel/attr_acl.c 2014-06-20 12:40:39.000000000 -0700 -+++ ./kernel/attr_acl.c 2014-06-20 20:32:54.000000000 -0700 -@@ -3742,6 +3742,25 @@ +diff -ur ../tmp2/kernel/attr_acl.c ./kernel/attr_acl.c +--- ../tmp2/kernel/attr_acl.c 2019-02-05 18:16:32.000000000 -0500 ++++ ./kernel/attr_acl.c 2019-06-03 15:26:26.745123000 -0400 +@@ -3768,6 +3768,25 @@ MKPERM_TSP( xWD_xWD ), ROUTE( OBJECT_TYPE_SESSION ), &objectCtxHash ), @@ -41,28 +41,19 @@ diff -ur ../cl.patched/kernel/attr_acl.c ./kernel/attr_acl.c + MKACL_END(), MKACL_END() }; - -diff -ur ../cl.patched/session/sess_attr.c ./session/sess_attr.c ---- ../cl.patched/session/sess_attr.c 2014-06-20 12:40:41.000000000 -0700 -+++ ./session/sess_attr.c 2014-06-20 20:33:27.000000000 -0700 -@@ -323,6 +323,8 @@ - TRUE : FALSE; - return( CRYPT_OK ); - -+ case CRYPT_SESSINFO_SSH_WIDTH: -+ case CRYPT_SESSINFO_SSH_HEIGHT: - case CRYPT_SESSINFO_SERVER_PORT: - case CRYPT_SESSINFO_CLIENT_PORT: - { -@@ -392,6 +394,7 @@ + #endif /* USE_SESSIONS */ +diff -ur ../tmp2/session/sess_attr.c ./session/sess_attr.c +--- ../tmp2/session/sess_attr.c 2019-02-05 18:18:28.000000000 -0500 ++++ ./session/sess_attr.c 2019-06-03 15:26:26.746525000 -0400 +@@ -639,6 +639,7 @@ return( CRYPT_ERROR_NOTFOUND ); } + case CRYPT_SESSINFO_SSH_TERMINAL: case CRYPT_SESSINFO_USERNAME: case CRYPT_SESSINFO_PASSWORD: - case CRYPT_SESSINFO_SERVER_FINGERPRINT_SHA1: -@@ -532,6 +535,13 @@ + /* If the session was resumed from cached information then the +@@ -797,6 +798,13 @@ return( status ); } @@ -74,30 +65,30 @@ diff -ur ../cl.patched/session/sess_attr.c ./session/sess_attr.c + CRYPT_SESSINFO_SSH_HEIGHT, value ) ); + case CRYPT_SESSINFO_SERVER_PORT: - /* If there's already a transport session or network socket - specified then we can't set a port as well */ -@@ -883,6 +893,7 @@ - attribute, data, dataLength, flags ) ); - } + /* If there's already a network socket specified then we can't + set a port as well */ +@@ -954,6 +964,9 @@ + return( addCredential( sessionInfoPtr, data, dataLength, + attribute ) ); + case CRYPT_SESSINFO_SSH_TERMINAL: ++ case CRYPT_SESSINFO_SSH_WIDTH: ++ case CRYPT_SESSINFO_SSH_HEIGHT: case CRYPT_SESSINFO_SERVER_FINGERPRINT_SHA1: /* Remember the value */ - return( addSessionInfoS( sessionInfoPtr, -@@ -938,6 +949,9 @@ + return( addSessionInfoS( sessionInfoPtr, attribute, data, +@@ -1016,6 +1027,7 @@ sessionInfoPtr->writeTimeout = CRYPT_ERROR; return( CRYPT_OK ); + case CRYPT_SESSINFO_SSH_TERMINAL: -+ case CRYPT_SESSINFO_SSH_WIDTH: -+ case CRYPT_SESSINFO_SSH_HEIGHT: case CRYPT_SESSINFO_USERNAME: case CRYPT_SESSINFO_PASSWORD: case CRYPT_SESSINFO_SERVER_NAME: -diff -ur ../cl.patched/session/ssh2_msgc.c ./session/ssh2_msgc.c ---- ../cl.patched/session/ssh2_msgc.c 2014-06-20 12:40:41.000000000 -0700 -+++ ./session/ssh2_msgc.c 2014-06-20 20:36:36.000000000 -0700 -@@ -447,6 +447,12 @@ +diff -ur ../tmp2/session/ssh2_msgc.c ./session/ssh2_msgc.c +--- ../tmp2/session/ssh2_msgc.c 2018-12-21 03:52:10.000000000 -0500 ++++ ./session/ssh2_msgc.c 2019-06-03 15:26:26.747402000 -0400 +@@ -448,6 +448,12 @@ CHANNEL_WRITE ); int packetOffset, status; @@ -110,7 +101,7 @@ diff -ur ../cl.patched/session/ssh2_msgc.c ./session/ssh2_msgc.c assert( isWritePtr( sessionInfoPtr, sizeof( SESSION_INFO ) ) ); assert( isWritePtr( stream, sizeof( STREAM ) ) ); -@@ -545,9 +551,18 @@ +@@ -547,9 +553,18 @@ writeUint32( stream, channelNo ); writeString32( stream, "pty-req", 7 ); sputc( stream, 0 ); /* No reply */ diff --git a/3rdp/dist/cryptlib.zip b/3rdp/dist/cryptlib.zip index d3c5a94ef1fecbd39836ef49286e2b1b55a9a60f..e4e5b02a8c33694a1a0b96748aaed01c1049ec76 100644 Binary files a/3rdp/dist/cryptlib.zip and b/3rdp/dist/cryptlib.zip differ