Re: SSH tunnel key exchange methods

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>
Cc: Akshay Joshi <akshay(dot)joshi(at)enterprisedb(dot)com>, Sven <svoop_6cedifwf9e(at)delirium(dot)ch>, pgAdmin Support <pgadmin-support(at)postgresql(dot)org>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: SSH tunnel key exchange methods
Date: 2015-12-02 13:04:09
Message-ID: CA+OCxoyLPx9TWDbYyE7hsjp5ESFNKVH2dUzuqq8p89sOg=+Jrw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers pgadmin-support

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

>
> On Wed, Dec 2, 2015 at 3:27 PM, Akshay Joshi <
> akshay(dot)joshi(at)enterprisedb(dot)com> wrote:
>
>>
>>
>> On Wed, Dec 2, 2015 at 3:20 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:
>>
>>> Hi
>>>
>>> On Wed, Dec 2, 2015 at 9:19 AM, Akshay Joshi <
>>> akshay(dot)joshi(at)enterprisedb(dot)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

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Ashesh Vashi 2015-12-02 13:05:59 Re: SSH tunnel key exchange methods
Previous Message Ashesh Vashi 2015-12-02 09:59:23 Re: SSH tunnel key exchange methods

Browse pgadmin-support by date

  From Date Subject
Next Message Ashesh Vashi 2015-12-02 13:05:59 Re: SSH tunnel key exchange methods
Previous Message Ashesh Vashi 2015-12-02 09:59:23 Re: SSH tunnel key exchange methods