Re: [pgadmin-support] SSH tunnel key exchange methods - Mailing list pgadmin-hackers

From Ashesh Vashi
Subject Re: [pgadmin-support] SSH tunnel key exchange methods
Date
Msg-id CAG7mmoyW3_2GavZKmw8ako8JhHTPndeuLNJJV8r5vnvd-dyCBA@mail.gmail.com
Whole thread Raw
In response to Re: [pgadmin-support] SSH tunnel key exchange methods  (Dave Page <dpage@pgadmin.org>)
List pgadmin-hackers
On Tue, Dec 8, 2015 at 6:36 PM, Dave Page <dpage@pgadmin.org> wrote:
Yes, I think so.
Thanks.
I have committed the code in the master branch, from which we will create a new branch 'REL-1_22_0_PATCHES' for 1.22.x releases.

--
Thanks & Regards,

Ashesh Vashi

On Tue, Dec 8, 2015 at 1:05 PM, Ashesh Vashi <ashesh.vashi@enterprisedb.com> wrote:
Dave,

Patch looks good to me.
But - Should we consider this as a bug fix, and commit it for 1.22.0 release?

--

Thanks & Regards,

Ashesh Vashi
EnterpriseDB INDIA: Enterprise PostgreSQL Company


http://www.linkedin.com/in/asheshvashi


On Wed, Dec 2, 2015 at 6:34 PM, Dave Page <dpage@pgadmin.org> wrote:


On Wed, Dec 2, 2015 at 9:59 AM, Ashesh Vashi <ashesh.vashi@enterprisedb.com> wrote:

On Wed, Dec 2, 2015 at 3:27 PM, Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:


On Wed, Dec 2, 2015 at 3:20 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Wed, Dec 2, 2015 at 9:19 AM, Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Dave 

I have updated the libssh2 library with the latest available code on their git repository. The new code used "diffie-hellman-group-exchange-sha256" algorithm for key exchange and they also fixed some memory leak. I have verified it by putting the breakpoint in the libssh2 code, so when we called "libssh2_session_init()" it will automatically call "static int diffie_hellman_sha256(...)" function, but I don't know exactly how to identify the key exchange method (sha1 or sha256) used by the latest libssh2 library.

I have tested the pgadmin3 after updating the libssh2 library on CentOS 6.5 (64 bit) and it works fine. I have also modified the code to add human readable error message returned by the library. Attached is the patch file. Can you please review it and if it looks good can you please commit the code.

I'm seeing the following build error on OS X 10.7:

depbase=`echo libssh2/agent.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
ccache gcc -Qunused-arguments -DHAVE_CONFIG_H -I. -I.. -I../pgadmin/include/libssh2  -I../pgadmin/include -I../pgadmin/include/libssh2   -I/usr/local/pgsql-9.5/include -I/usr/local/pgsql-9.5/include/server -I/usr/local/pgsql-9.5/include -DPG_SSL -DHAVE_CONNINFO_PARSE -I/usr/local/lib/wx/include/mac-unicode-release-static-2.8 -I/usr/local/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXMAC__ -DEMBED_XRC -arch i386 -I/usr/include/libxml2 -I/opt/local/include/libxml2 -DHAVE_OPENSSL_CRYPTO  -O2 -MT libssh2/agent.o -MD -MP -MF $depbase.Tpo -c -o libssh2/agent.o libssh2/agent.c &&\
mv -f $depbase.Tpo $depbase.Po
In file included from ../pgadmin/include/libssh2/libssh2_priv.h:136,
                 from libssh2/agent.c:41:
../pgadmin/include/libssh2/crypto.h:53: error: expected ‘)’ before ‘*’ token
../pgadmin/include/libssh2/crypto.h:69: error: expected ‘)’ before ‘*’ token
../pgadmin/include/libssh2/crypto.h:73: error: expected ‘)’ before ‘*’ token
../pgadmin/include/libssh2/crypto.h:78: error: expected declaration specifiers or ‘...’ before ‘libssh2_rsa_ctx’
../pgadmin/include/libssh2/crypto.h:83: error: expected ‘)’ before ‘*’ token
../pgadmin/include/libssh2/crypto.h:115: error: expected ‘)’ before ‘*’ token
../pgadmin/include/libssh2/crypto.h:120: error: expected ‘)’ before ‘*’ token
In file included from libssh2/agent.c:41:
../pgadmin/include/libssh2/libssh2_priv.h:240: error: ‘SHA256_DIGEST_LENGTH’ undeclared here (not in a function)
../pgadmin/include/libssh2/libssh2_priv.h:245: error: expected specifier-qualifier-list before ‘_libssh2_bn_ctx’
../pgadmin/include/libssh2/libssh2_priv.h:267: error: expected specifier-qualifier-list before ‘_libssh2_bn’
../pgadmin/include/libssh2/libssh2_priv.h:604: error: ‘SHA_DIGEST_LENGTH’ undeclared here (not in a function)
../pgadmin/include/libssh2/libssh2_priv.h:899: error: expected specifier-qualifier-list before ‘_libssh2_cipher_type’
libssh2/agent.c: In function ‘agent_connect_unix’:
libssh2/agent.c:150: warning: assignment makes pointer from integer without a cast
make[3]: *** [libssh2/agent.o] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

    I have modified the configure.ac.in and added "-DLIBSSH2_OPENSSL" to solve the above. You need to run the configure command again. 
You also needs to rerun the bootstrap script.

OK, it works for me on Windows and OSX. Ashesh, can you give it a review/commit please?

Thanks. 

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company




--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

pgadmin-hackers by date:

Previous
From: Ashesh Vashi
Date:
Subject: pgAdmin III commit: Merging the libssh2 to the latest developement vers
Next
From: Andrej Antonov
Date:
Subject: Re: patch: fix to use ``pg_get_functiondef()``