From libssh2-devel-bounces@cool.haxx.se Tue Apr 1 00:22:24 2014
Return-Path:
Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s2VMMESv026768;
Tue, 1 Apr 2014 00:22:23 +0200
Received: from nm24-vm0.bullet.mail.bf1.yahoo.com
(nm24-vm0.bullet.mail.bf1.yahoo.com [98.139.213.161])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s2VMMCg9026613
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
for ; Tue, 1 Apr 2014 00:22:13 +0200
Received: from [98.139.212.149] by nm24.bullet.mail.bf1.yahoo.com with NNFMP;
31 Mar 2014 22:22:08 -0000
Received: from [98.139.211.195] by tm6.bullet.mail.bf1.yahoo.com with NNFMP;
31 Mar 2014 22:22:08 -0000
Received: from [127.0.0.1] by smtp204.mail.bf1.yahoo.com with NNFMP;
31 Mar 2014 22:22:07 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024;
t=1396304527; bh=K8MJnvmHIw0w9AoliSRlDS0mAUTjb4Xl+zUxTjaC0aU=;
h=X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:X-Rocket-Received:Message-ID:Date:From:User-Agent:MIME-Version:To:Subject:References:In-Reply-To:Content-Type:Content-Transfer-Encoding;
b=X4Gd24/VJ9uF3ym6vG0h45cZV5WLUlFACSVfQzjsdY0bN7ttimGjoy9sIUJCBzJau2w7jPdNkiBxMywbvhcKHaVvu9ZIoZJuwn4wv7NZMWLL3a2P72B7FKGGC5FSkPOAwXUF+2mD7uvQCjN6QXQSTebH+n0p3f8awSQWJwyHMoc=
X-Yahoo-Newman-Id: 983194.55571.bm@smtp204.mail.bf1.yahoo.com
X-Yahoo-Newman-Property: ymail-3
X-YMail-OSG: GUWgz1MVM1nxmMkVjusvO3F.qlOV.._InSPuWGRoHv9ZB5S
GQOEJM.vXIZjuBPj_5WC.Qt1t_IGo_lE5.R05o.aahCoy2tEZUsVamsUYvaT
Y8qk80bEbMlgiICwn8gDItj8DZdKHNMdGSpPLkAMsF9Ez5A5J1ItNWX1vD8N
RcAULziBMM9MGyVe9JnirkP2CA7hH7i_WKvTyi39oUbenVtAiGWjVV_fCbbz
lEY8qgcxP2QsSJiABdO0Yu71b7nz2w9e4kIWAHRmK8LjbIPjVDE02usF63CH
f6KFUuxGfa3yhC8hIwvXncmJoNPXgEwyJ0qvfTi0rhThpaLAIx0rP6J9YPaM
qNcN.5phq3jc9ciJaCkukGXLIOEhxtMF6sDv05kBZIo5kceRN0cEC.HDHjK.
Y4nmB0XhjIURyevcYeSW5tW_PCuD0AsquWKI1PzxJXFab8Q1EW1DlYc2EWlT
hxa1EOftwEY1gau7u.A11yvspC5THebwyhuE93hIAxwl4DyjsED84iJP3Vrh
uPoXNJs86c1h9vg1BW.NFd0p.tJAw8Owx2yRw9r7SEZ04hY.DkQbSvZjgtf_
_5iLyJOFBQmzKEM7M4ukzwUPVjblLTxHOWGd.76yia.j1hohT0lpcOwxEEkQ
PbZtVHVUNx75DJAWJNwxU
X-Yahoo-SMTP: 9Tlp3zGswBAMIZY7LhANokCU9rJ2SQ--
X-Rocket-Received: from [192.168.1.80] (raysatiro@24.44.245.87 with plain
[63.250.193.228])
by smtp204.mail.bf1.yahoo.com with SMTP; 31 Mar 2014 15:22:07 -0700 PDT
Message-ID: <5339EA8E.3020708@yahoo.com>
Date: Mon, 31 Mar 2014 18:22:06 -0400
From: Ray Satiro
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
rv:24.0) Gecko/20100101 Thunderbird/24.4.0
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Re: verify libssh2 download
References: <1396299788.7113.1.camel@murphy>
In-Reply-To: <1396299788.7113.1.camel@murphy>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.16
Precedence: list
Reply-To: libssh2 development
List-Id: libssh2 development
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel"
On 3/31/2014 5:03 PM, Eben Shapiro wrote:
> How do I verify the libssh2 download? I see there's a gpg signature next
> to the link to download, but I can't find the public key to go along
> with it.
http://pgp.mit.edu:11371/pks/lookup?search=daniel%40haxx.se&op=index
gpg --recv-keys 279D5C91
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
From libssh2-devel-bounces@cool.haxx.se Tue Apr 1 00:27:27 2014
Return-Path:
Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s2VMRORm030861;
Tue, 1 Apr 2014 00:27:27 +0200
Received: from sender1.zohomail.com (sender1.zohomail.com [72.5.230.100])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s2VMRMFV030785
for ; Tue, 1 Apr 2014 00:27:23 +0200
Received: from [192.168.1.4] (pool-72-89-245-160.nycmny.fios.verizon.net
[72.89.245.160]) by mx.zohomail.com
with SMTPS id 1396304838176110.90498316577941;
Mon, 31 Mar 2014 15:27:18 -0700 (PDT)
Subject: Re: verify libssh2 download
From: Eben Shapiro
To: libssh2 development
In-Reply-To: <5339EA8E.3020708@yahoo.com>
References: <1396299788.7113.1.camel@murphy> <5339EA8E.3020708@yahoo.com>
Date: Mon, 31 Mar 2014 18:27:17 -0400
Message-ID: <1396304837.8136.0.camel@murphy>
Mime-Version: 1.0
X-Mailer: Evolution 2.28.3
X-ZohoMailClient: External
X-Zoho-Virus-Status: 2
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.16
Precedence: list
Reply-To: libssh2 development
List-Id: libssh2 development
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel"
Hi Ray,
Thank you so much!
Eben
On Mon, 2014-03-31 at 18:22 -0400, Ray Satiro wrote:
> On 3/31/2014 5:03 PM, Eben Shapiro wrote:
> > How do I verify the libssh2 download? I see there's a gpg signature next
> > to the link to download, but I can't find the public key to go along
> > with it.
>
> http://pgp.mit.edu:11371/pks/lookup?search=daniel%40haxx.se&op=index
> gpg --recv-keys 279D5C91
>
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
From libssh2-devel-bounces@cool.haxx.se Wed Apr 2 21:07:14 2014
Return-Path:
Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s32J6o7l009611;
Wed, 2 Apr 2014 21:07:09 +0200
Received: from mail-we0-x22e.google.com (mail-we0-x22e.google.com
[IPv6:2a00:1450:400c:c03::22e])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s32J6mwL009560
(version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
for ; Wed, 2 Apr 2014 21:06:49 +0200
Received: by mail-we0-f174.google.com with SMTP id t60so702749wes.5
for ; Wed, 02 Apr 2014 12:06:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
h=message-id:date:from:user-agent:mime-version:to:subject
:content-type:content-transfer-encoding;
bh=tkrS1RJfajEF/h2UscQnepyuO/NygzWwBYXc1UstRCY=;
b=c6+Dx5zPCRji/ZV7uTogcdwKZqptExvbFa0v0G/QSEaiZwRd++dOFGlzYUBZsdXUjO
prH0NbWkIofRo4rYqRUeGBFri/v6YkN4y3GAFVoQIyeJsbk/PzziUSsRC8kiRluPjFX1
IO00W15d5bTAhOKMRuxM1HKhLpL9nEb2YV7RyV2O3SyjyB5twcqQNIcfuIdeyITdofqD
sYeWhnmWzbMCpVv0ZSsAURou2UdlKXF97pxiLYZSjS+IAqsMXKPND74saGEttb10XjKF
kglMWO0l0jkaGtLAgpxFhkmyzJoPpkrlIN/k8WzVQC48ep/jqovfGlEbDtNHJO/HveC/
5+cQ==
X-Received: by 10.194.90.39 with SMTP id bt7mr2990343wjb.93.1396465604792;
Wed, 02 Apr 2014 12:06:44 -0700 (PDT)
Received: from [192.168.1.14] (chello212186003062.tirol.surfer.at.
[212.186.3.62])
by mx.google.com with ESMTPSA id q41sm6499891eez.7.2014.04.02.12.06.43
for
(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
Wed, 02 Apr 2014 12:06:43 -0700 (PDT)
Message-ID: <533C5FC2.3010205@gmail.com>
Date: Wed, 02 Apr 2014 21:06:42 +0200
From: Clemens Gruber
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
rv:24.0) Gecko/20100101 Thunderbird/24.4.0
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: ed25519 and curve25519 for key exchange
X-Enigmail-Version: 1.6
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.16
Precedence: list
Reply-To: libssh2 development
List-Id: libssh2 development
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel"
Hi,
I am currently playing around with Daniel J. Bernstein's public-key
signature system. It looks great in comparison to ECDSA and it is very
fast, which would be a benefit on all embedded systems. Besides that
is's also not using the NIST curves..
OpenSSH introduced support for ed25519 public keys with version 6.5:
http://www.openssh.com/txt/release-6.5
libssh supports using curve25519 for key exchange, see:
http://git.libssh.org/projects/libssh.git/tree/doc/curve25519-sha256@libssh.org.txt
More info about Ed25519: http://ed25519.cr.yp.to
There is also a paper: http://ed25519.cr.yp.to/ed25519-20110926.pdf
So my question is: Did anyone already think about implementing support
for ed25519 keys and curve25519 key exchange in libssh2 to be compatible
with OpenSSH >= 6.5 ?
In the process of that, implementing Salsa-20 / ChaCha (djbs stream
cipher) and Poly1305-AES (a MAC) could also be useful.
Please share your opinion about adding those to libssh2. As far as I
know, neither OpenSSL nor libgcrypt support them (yet), but using djb's
NaCl library for that purpose might be an option:
http://nacl.cace-project.eu
Happy Hacking!
Clemens
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
From libssh2-devel-bounces@cool.haxx.se Thu Apr 3 13:46:39 2014
Return-Path:
Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s33BkDTj028979;
Thu, 3 Apr 2014 13:46:35 +0200
Received: from giant.haxx.se (dast@localhost.localdomain [127.0.0.1])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s33BkCWd028957
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
for ; Thu, 3 Apr 2014 13:46:12 +0200
Received: from localhost (dast@localhost)
by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id s33BkBD6028952
for ; Thu, 3 Apr 2014 13:46:11 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Thu, 3 Apr 2014 13:46:11 +0200 (CEST)
From: Daniel Stenberg
X-X-Sender: dast@giant.haxx.se
To: libssh2 development
Subject: Re: ed25519 and curve25519 for key exchange
In-Reply-To: <533C5FC2.3010205@gmail.com>
Message-ID:
References: <533C5FC2.3010205@gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.16
Precedence: list
Reply-To: libssh2 development
List-Id: libssh2 development
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel"
On Wed, 2 Apr 2014, Clemens Gruber wrote:
> Please share your opinion about adding those to libssh2. As far as I know,
> neither OpenSSL nor libgcrypt support them (yet), but using djb's NaCl
> library for that purpose might be an option: http://nacl.cace-project.eu
Seems like features we want! I'm in favor of adding them. But I'm not likely
to work on it personally within the near future.
--
/ daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
From libssh2-devel-bounces@cool.haxx.se Thu Apr 3 19:47:43 2014
Return-Path:
Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s33HlFcE012934;
Thu, 3 Apr 2014 19:47:38 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s33HlDT8012928
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
for ; Thu, 3 Apr 2014 19:47:13 +0200
Received: (qmail 17586 invoked by uid 501); 3 Apr 2014 17:47:14 -0000
Message-ID: <20140403174714.17585.qmail@stuge.se>
Date: Thu, 3 Apr 2014 19:47:14 +0200
From: Peter Stuge
To: libssh2-devel@cool.haxx.se
Subject: Re: ed25519 and curve25519 for key exchange
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <533C5FC2.3010205@gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <533C5FC2.3010205@gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.16
Precedence: list
Reply-To: libssh2 development
List-Id: libssh2 development
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel"
Clemens Gruber wrote:
> So my question is: Did anyone already think about implementing support
> for ed25519 keys and curve25519 key exchange in libssh2 to be compatible
> with OpenSSH >= 6.5 ?
I agree that it would be nice to support these in libssh2.
> using djb's NaCl library for that purpose might be an option:
> http://nacl.cace-project.eu
It is, and there are also one or two other implementations.
IIRC OpenSSH doesn't use NaCl but something else.
//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
From libssh2-devel-bounces@cool.haxx.se Tue Apr 8 23:37:23 2014
Return-Path:
Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s38Las2u019432;
Tue, 8 Apr 2014 23:37:18 +0200
Received: from bay0-omc4-s12.bay0.hotmail.com (bay0-omc4-s12.bay0.hotmail.com
[65.54.190.214])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s38LaqpC019411
for ; Tue, 8 Apr 2014 23:36:52 +0200
Received: from BAY407-EAS6 ([65.54.190.201]) by bay0-omc4-s12.bay0.hotmail.com
with Microsoft SMTPSVC(6.0.3790.4675);
Tue, 8 Apr 2014 14:36:44 -0700
X-TMN: [Qxg3bxWxZbUydlRDnVYUrwMSc5doKfP4]
X-Originating-Email: [bob_2824@hotmail.com]
Message-ID:
From: Bob Kast
To: "'libssh2 development'"
Subject: Patches for Windows, Wincng, Visual Studio
Date: Tue, 8 Apr 2014 17:36:42 -0400
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_0029_01CF5351.1B0AE930"
X-Mailer: Microsoft Outlook 15.0
Thread-Index: Ac9TcgUUJxbp7wsHSAiuOrLg0D7VJA==
Content-Language: en-us
X-OriginalArrivalTime: 08 Apr 2014 21:36:44.0556 (UTC)
FILETIME=[A32594C0:01CF5372]
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.16
Precedence: list
Reply-To: libssh2 development
List-Id: libssh2 development
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel"
------=_NextPart_000_0029_01CF5351.1B0AE930
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Attached are all of the mods I've made to libssh2 for use in Windows and
Visual Studio.
I hope most of them should be pretty clear, but I have a couple of notes:
0001-Add-Visual-Studio-2013-solution-project-files.patch:
I understand that you are working on a cmake system that will create Visual
Studio project files. Until that time, I have a patch that includes project
files for VS2013. It can be something temporary or it can be something used
as a model for creating the cmake files.
0001-Use-secure-versions-of-CRT-library.patch:
Libssh2 uses deprecated versions of the run-time library. This patch updates
that so they use the secure versions. For my changes to correctly compile on
non-Windows systems, you need to add the following defines. I was not sure
where these should be added:
#define SNPRINTF snprintf
#define VSNPRINTF vsnprintf
Thanks for all your help,
Bob
------=_NextPart_000_0029_01CF5351.1B0AE930
Content-Type: application/octet-stream;
name="0001-Add-Visual-Studio-2013-solution-project-files.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="0001-Add-Visual-Studio-2013-solution-project-files.patch"
From bf5262d7ddf309043ecd701a3dcc233163f8ddeb Mon Sep 17 00:00:00 2001=0A=
From: Bob Kast =0A=
Date: Tue, 8 Apr 2014 17:12:26 -0400=0A=
Subject: [PATCH] Add Visual Studio 2013 solution/project files=0A=
=0A=
---=0A=
win32/.gitignore | 11 +-=0A=
win32/libssh2.sln | 53 +++++=0A=
win32/libssh2.vcxproj | 502 =
++++++++++++++++++++++++++++++++++++++++++=0A=
win32/libssh2.vcxproj.filters | 131 +++++++++++=0A=
win32/tests.vcxproj | 149 +++++++++++++=0A=
win32/tests.vcxproj.filters | 25 +++=0A=
6 files changed, 869 insertions(+), 2 deletions(-)=0A=
create mode 100644 win32/libssh2.sln=0A=
create mode 100644 win32/libssh2.vcxproj=0A=
create mode 100644 win32/libssh2.vcxproj.filters=0A=
create mode 100644 win32/tests.vcxproj=0A=
create mode 100644 win32/tests.vcxproj.filters=0A=
=0A=
diff --git a/win32/.gitignore b/win32/.gitignore=0A=
index 0afd7fd..877d025 100644=0A=
--- a/win32/.gitignore=0A=
+++ b/win32/.gitignore=0A=
@@ -4,11 +4,18 @@=0A=
*.exe=0A=
*.obj=0A=
.*.swp=0A=
-Debug=0A=
-Release=0A=
*.exp=0A=
*.ncb=0A=
*.opt=0A=
*.plg=0A=
libssh2.dsp=0A=
objects.mk=0A=
+obj/=0A=
+*.opensdf=0A=
+*.sdf=0A=
+*.suo=0A=
+*.user=0A=
+/DLL Release=0A=
+/LIB Debug=0A=
+/LIB Release=0A=
+/DLL Debug=0A=
diff --git a/win32/libssh2.sln b/win32/libssh2.sln=0A=
new file mode 100644=0A=
index 0000000..6da1d69=0A=
--- /dev/null=0A=
+++ b/win32/libssh2.sln=0A=
@@ -0,0 +1,53 @@=0A=
+Microsoft Visual Studio Solution File, Format Version 12.00=0A=
+# Visual Studio 2013=0A=
+VisualStudioVersion =3D 12.0.30110.0=0A=
+MinimumVisualStudioVersion =3D 10.0.40219.1=0A=
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") =3D "libssh2", =
"libssh2.vcxproj", "{790C5988-391E-47D7-8EFB-BA1C99F72EA5}"=0A=
+EndProject=0A=
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") =3D "tests", =
"tests.vcxproj", "{237AF8DB-FAF9-484B-9F8B-21A912CD4E73}"=0A=
+EndProject=0A=
+Global=0A=
+ GlobalSection(SolutionConfigurationPlatforms) =3D preSolution=0A=
+ DLL Debug|Win32 =3D DLL Debug|Win32=0A=
+ DLL Debug|x64 =3D DLL Debug|x64=0A=
+ DLL Release|Win32 =3D DLL Release|Win32=0A=
+ DLL Release|x64 =3D DLL Release|x64=0A=
+ LIB Debug|Win32 =3D LIB Debug|Win32=0A=
+ LIB Debug|x64 =3D LIB Debug|x64=0A=
+ LIB Release|Win32 =3D LIB Release|Win32=0A=
+ LIB Release|x64 =3D LIB Release|x64=0A=
+ EndGlobalSection=0A=
+ GlobalSection(ProjectConfigurationPlatforms) =3D postSolution=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Debug|Win32.ActiveCfg =3D =
DLL Debug|Win32=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Debug|Win32.Build.0 =3D =
DLL Debug|Win32=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Debug|x64.ActiveCfg =3D =
DLL Debug|x64=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Debug|x64.Build.0 =3D DLL =
Debug|x64=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Release|Win32.ActiveCfg =
=3D DLL Release|Win32=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Release|Win32.Build.0 =3D =
DLL Release|Win32=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Release|x64.ActiveCfg =3D =
DLL Release|x64=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Release|x64.Build.0 =3D =
DLL Release|x64=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Debug|Win32.ActiveCfg =3D =
LIB Debug|Win32=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Debug|Win32.Build.0 =3D =
LIB Debug|Win32=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Debug|x64.ActiveCfg =3D =
LIB Debug|x64=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Debug|x64.Build.0 =3D LIB =
Debug|x64=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Release|Win32.ActiveCfg =
=3D LIB Release|Win32=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Release|Win32.Build.0 =3D =
LIB Release|Win32=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Release|x64.ActiveCfg =3D =
LIB Release|x64=0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Release|x64.Build.0 =3D =
LIB Release|x64=0A=
+ {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.DLL Debug|Win32.ActiveCfg =3D =
Debug|Win32=0A=
+ {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.DLL Debug|Win32.Build.0 =3D =
Debug|Win32=0A=
+ {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.DLL Debug|x64.ActiveCfg =3D =
Debug|Win32=0A=
+ {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.DLL Release|Win32.ActiveCfg =
=3D Release|Win32=0A=
+ {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.DLL Release|Win32.Build.0 =3D =
Release|Win32=0A=
+ {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.DLL Release|x64.ActiveCfg =3D =
Release|Win32=0A=
+ {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.LIB Debug|Win32.ActiveCfg =3D =
Debug|Win32=0A=
+ {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.LIB Debug|Win32.Build.0 =3D =
Debug|Win32=0A=
+ {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.LIB Debug|x64.ActiveCfg =3D =
Debug|Win32=0A=
+ {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.LIB Release|Win32.ActiveCfg =
=3D Release|Win32=0A=
+ {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.LIB Release|Win32.Build.0 =3D =
Release|Win32=0A=
+ {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.LIB Release|x64.ActiveCfg =3D =
Release|Win32=0A=
+ EndGlobalSection=0A=
+ GlobalSection(SolutionProperties) =3D preSolution=0A=
+ HideSolutionNode =3D FALSE=0A=
+ EndGlobalSection=0A=
+EndGlobal=0A=
diff --git a/win32/libssh2.vcxproj b/win32/libssh2.vcxproj=0A=
new file mode 100644=0A=
index 0000000..2878537=0A=
--- /dev/null=0A=
+++ b/win32/libssh2.vcxproj=0A=
@@ -0,0 +1,502 @@=0A=
+=EF=BB=BF=0A=
+=0A=
+ =0A=
+ =0A=
+ DLL Debug=0A=
+ Win32=0A=
+ =0A=
+ =0A=
+ DLL Debug=0A=
+ x64=0A=
+ =0A=
+ =0A=
+ DLL Release=0A=
+ Win32=0A=
+ =0A=
+ =0A=
+ DLL Release=0A=
+ x64=0A=
+ =0A=
+ =0A=
+ LIB Debug=0A=
+ Win32=0A=
+ =0A=
+ =0A=
+ LIB Debug=0A=
+ x64=0A=
+ =0A=
+ =0A=
+ LIB Release=0A=
+ Win32=0A=
+ =0A=
+ =0A=
+ LIB Release=0A=
+ x64=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ {790C5988-391E-47D7-8EFB-BA1C99F72EA5}=0A=
+ =0A=
+ =0A=
+ =0A=
+ StaticLibrary=0A=
+ v120=0A=
+ false=0A=
+ MultiByte=0A=
+ =0A=
+ =0A=
+ StaticLibrary=0A=
+ v120=0A=
+ false=0A=
+ MultiByte=0A=
+ =0A=
+ =0A=
+ StaticLibrary=0A=
+ v120=0A=
+ false=0A=
+ MultiByte=0A=
+ =0A=
+ =0A=
+ StaticLibrary=0A=
+ v120=0A=
+ false=0A=
+ MultiByte=0A=
+ =0A=
+ =0A=
+ DynamicLibrary=0A=
+ v120=0A=
+ false=0A=
+ MultiByte=0A=
+ =0A=
+ =0A=
+ DynamicLibrary=0A=
+ v120=0A=
+ false=0A=
+ MultiByte=0A=
+ =0A=
+ =0A=
+ DynamicLibrary=0A=
+ v120=0A=
+ false=0A=
+ MultiByte=0A=
+ =0A=
+ =0A=
+ DynamicLibrary=0A=
+ v120=0A=
+ false=0A=
+ MultiByte=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ $(SolutionDir)$(Configuration)\$(Platform)\=0A=
+ =
$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A=
+ false=0A=
+ =0A=
+ =0A=
+ false=0A=
+ =
$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A=
+ $(SolutionDir)$(Configuration)\$(Platform)\=0A=
+ =0A=
+ =0A=
+ $(SolutionDir)$(Configuration)\$(Platform)\=0A=
+ =
$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A=
+ false=0A=
+ =0A=
+ =0A=
+ false=0A=
+ =
$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A=
+ $(SolutionDir)$(Configuration)\$(Platform)\=0A=
+ =0A=
+ =0A=
+ $(SolutionDir)$(Configuration)\$(Platform)\=0A=
+ =
$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A=
+ true=0A=
+ =0A=
+ =0A=
+ true=0A=
+ =
$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A=
+ $(SolutionDir)$(Configuration)\$(Platform)\=0A=
+ =0A=
+ =0A=
+ $(SolutionDir)$(Configuration)\$(Platform)\=0A=
+ =
$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A=
+ false=0A=
+ =0A=
+ =0A=
+ false=0A=
+ =
$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A=
+ $(SolutionDir)$(Configuration)\$(Platform)\=0A=
+ =0A=
+ =0A=
+ =0A=
+ MultiThreadedDebugDLL=0A=
+ Default=0A=
+ false=0A=
+ Disabled=0A=
+ true=0A=
+ Level3=0A=
+ false=0A=
+ true=0A=
+ ProgramDatabase=0A=
+ =
..\win32;..\include;%(AdditionalIncludeDire=
ctories)=0A=
+ =
HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_DEBUG;LIBSSH2DEBUG;%(PreprocessorDefinit=
ions)=0A=
+ $(IntDir)=0A=
+ =
$(IntDir)$(ProjectName).pch=0A=
+ $(IntDir)=0A=
+ =
$(IntDir)$(TargetName).pdb=0A=
+ EnableFastChecks=0A=
+ true=0A=
+ =0A=
+ =0A=
+ 0x0409=0A=
+ =
_DEBUG;%(PreprocessorDefinitions)=0A=
+ =0A=
+ =0A=
+ true=0A=
+ $(OutDir)$(TargetName).bsc=0A=
+ =0A=
+ =0A=
+ true=0A=
+ true=0A=
+ true=0A=
+ Console=0A=
+ false=0A=
+ $(TargetPath)=0A=
+ $(TargetDir)$(TargetName).lib=0A=
+ =
ws2_32.lib;%(AdditionalDependencies)=0A=
+ =0A=
+ =0A=
+ =
$(TargetDir)$(TargetName).pdb=0A=
+ =
$(TargetDir)$(TargetName).pgd=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ MultiThreadedDebugDLL=0A=
+ Default=0A=
+ false=0A=
+ Disabled=0A=
+ true=0A=
+ Level3=0A=
+ false=0A=
+ ProgramDatabase=0A=
+ =
..\win32;..\include;%(AdditionalIncludeDire=
ctories)=0A=
+ =
HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_DEBUG;LIBSSH2DEBUG;%(PreprocessorDefinit=
ions)=0A=
+ $(IntDir)=0A=
+ =
$(IntDir)$(ProjectName).pch=0A=
+ $(IntDir)=0A=
+ =
$(IntDir)$(TargetName).pdb=0A=
+ EnableFastChecks=0A=
+ true=0A=
+ true=0A=
+ =0A=
+ =0A=
+ 0x0409=0A=
+ =
_DEBUG;%(PreprocessorDefinitions)=0A=
+ =0A=
+ =0A=
+ true=0A=
+ $(OutDir)$(TargetName).bsc=0A=
+ =0A=
+ =0A=
+ true=0A=
+ true=0A=
+ true=0A=
+ Console=0A=
+ false=0A=
+ $(TargetPath)=0A=
+ $(TargetDir)$(TargetName).lib=0A=
+ =
ws2_32.lib;%(AdditionalDependencies)=0A=
+ =0A=
+ =0A=
+ =
$(TargetDir)$(TargetName).pdb=0A=
+ =
$(TargetDir)$(TargetName).pgd=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ MultiThreadedDLL=0A=
+ Default=0A=
+ true=0A=
+ true=0A=
+ MaxSpeed=0A=
+ true=0A=
+ Level3=0A=
+ =
..\win32;..\include;%(AdditionalIncludeDire=
ctories)=0A=
+ =
HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;NDEBUG;%(PreprocessorDefinitions)=0A=
+ $(IntDir)=0A=
+ =
$(IntDir)$(ProjectName).pch=0A=
+ $(IntDir)=0A=
+ =
$(IntDir)$(TargetName).pdb=0A=
+ true=0A=
+ =0A=
+ =0A=
+ 0x0409=0A=
+ =
NDEBUG;%(PreprocessorDefinitions)=0A=
+ =0A=
+ =0A=
+ true=0A=
+ $(OutDir)$(TargetName).bsc=0A=
+ =0A=
+ =0A=
+ true=0A=
+ true=0A=
+ true=0A=
+ Console=0A=
+ $(TargetPath)=0A=
+ $(TargetDir)$(TargetName).lib=0A=
+ =
ws2_32.lib;%(AdditionalDependencies)=0A=
+ =0A=
+ =0A=
+ =
$(TargetDir)$(TargetName).pdb=0A=
+ =
$(TargetDir)$(TargetName).pgd=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ MultiThreadedDLL=0A=
+ Default=0A=
+ true=0A=
+ true=0A=
+ MaxSpeed=0A=
+ true=0A=
+ Level3=0A=
+ =
..\win32;..\include;%(AdditionalIncludeDire=
ctories)=0A=
+ =
HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;NDEBUG;%(PreprocessorDefinitions)=0A=
+ $(IntDir)=0A=
+ =
$(IntDir)$(ProjectName).pch=0A=
+ $(IntDir)=0A=
+ =
$(IntDir)$(TargetName).pdb=0A=
+ true=0A=
+ false=0A=
+ =0A=
+ =0A=
+ 0x0409=0A=
+ =
NDEBUG;%(PreprocessorDefinitions)=0A=
+ =0A=
+ =0A=
+ true=0A=
+ $(OutDir)$(TargetName).bsc=0A=
+ =0A=
+ =0A=
+ true=0A=
+ true=0A=
+ true=0A=
+ Console=0A=
+ $(TargetPath)=0A=
+ $(TargetDir)$(TargetName).lib=0A=
+ =
ws2_32.lib;%(AdditionalDependencies)=0A=
+ =0A=
+ =0A=
+ =
$(TargetDir)$(TargetName).pdb=0A=
+ =
$(TargetDir)$(TargetName).pgd=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ MultiThreadedDebugDLL=0A=
+ Default=0A=
+ false=0A=
+ Disabled=0A=
+ true=0A=
+ Level3=0A=
+ true=0A=
+ EditAndContinue=0A=
+ =
..\win32;..\include;%(AdditionalIncludeDire=
ctories)=0A=
+ =
HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_LIB;_DEBUG;LIBSSH2DEBUG;%(PreprocessorDe=
finitions)=0A=
+ $(IntDir)=0A=
+ =
$(IntDir)$(ProjectName).pch=0A=
+ $(IntDir)=0A=
+ =
$(OutDir)$(TargetName).pdb=0A=
+ EnableFastChecks=0A=
+ true=0A=
+ =0A=
+ =0A=
+ 0x0409=0A=
+ =
_DEBUG;%(PreprocessorDefinitions)=0A=
+ =0A=
+ =0A=
+ true=0A=
+ $(OutDir)$(TargetName).bsc=0A=
+ =0A=
+ =0A=
+ true=0A=
+ $(TargetPath)=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ MultiThreadedDebugDLL=0A=
+ Default=0A=
+ false=0A=
+ Disabled=0A=
+ true=0A=
+ Level3=0A=
+ ProgramDatabase=0A=
+ =
..\win32;..\include;%(AdditionalIncludeDire=
ctories)=0A=
+ =
HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_LIB;_DEBUG;LIBSSH2DEBUG;%(PreprocessorDe=
finitions)=0A=
+ $(IntDir)=0A=
+ =
$(IntDir)$(ProjectName).pch=0A=
+ $(IntDir)=0A=
+ =
$(OutDir)$(TargetName).pdb=0A=
+ EnableFastChecks=0A=
+ true=0A=
+ true=0A=
+ =0A=
+ =0A=
+ 0x0409=0A=
+ =
_DEBUG;%(PreprocessorDefinitions)=0A=
+ =0A=
+ =0A=
+ true=0A=
+ $(OutDir)$(TargetName).bsc=0A=
+ =0A=
+ =0A=
+ true=0A=
+ $(TargetPath)=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ MultiThreadedDLL=0A=
+ Default=0A=
+ true=0A=
+ true=0A=
+ MaxSpeed=0A=
+ true=0A=
+ Level3=0A=
+ =
..\win32;..\include;%(AdditionalIncludeDire=
ctories)=0A=
+ =
HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_LIB;NDEBUG;%(PreprocessorDefinitions)
=0A=
+ $(IntDir)=0A=
+ =
$(IntDir)$(ProjectName).pch=0A=
+ $(IntDir)=0A=
+ =
$(OutDir)$(TargetName).pdb=0A=
+ true=0A=
+ =0A=
+ =0A=
+ 0x0409=0A=
+ =
NDEBUG;%(PreprocessorDefinitions)=0A=
+ =0A=
+ =0A=
+ true=0A=
+ $(OutDir)$(TargetName).bsc=0A=
+ =0A=
+ =0A=
+ true=0A=
+ $(TargetPath)=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ MultiThreadedDLL=0A=
+ Default=0A=
+ true=0A=
+ true=0A=
+ MaxSpeed=0A=
+ true=0A=
+ Level3=0A=
+ =
..\win32;..\include;%(AdditionalIncludeDire=
ctories)=0A=
+ =
HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_LIB;NDEBUG;%(PreprocessorDefinitions)=0A=
+ $(IntDir)=0A=
+ =
$(IntDir)$(ProjectName).pch=0A=
+ $(IntDir)=0A=
+ =
$(OutDir)$(TargetName).pdb=0A=
+ true=0A=
+ false=0A=
+ =0A=
+ =0A=
+ 0x0409=0A=
+ =
NDEBUG;%(PreprocessorDefinitions)=0A=
+ =0A=
+ =0A=
+ true=0A=
+ $(OutDir)$(TargetName).bsc=0A=
+ =0A=
+ =0A=
+ true=0A=
+ $(TargetPath)=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+=0A=
\ No newline at end of file=0A=
diff --git a/win32/libssh2.vcxproj.filters =
b/win32/libssh2.vcxproj.filters=0A=
new file mode 100644=0A=
index 0000000..a40951e=0A=
--- /dev/null=0A=
+++ b/win32/libssh2.vcxproj.filters=0A=
@@ -0,0 +1,131 @@=0A=
+=EF=BB=BF=0A=
+=0A=
+ =0A=
+ =0A=
+ =
{ed49fc94-18dd-4117-9bb1-9edaee5e50dc}=0A=
+ cpp;c;cxx=0A=
+ =0A=
+ =0A=
+ =
{50b16c19-53fc-429b-af80-6dcc902ad055}=0A=
+ h;hpp;hxx=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+ Header Files=0A=
+ =0A=
+ =0A=
+=0A=
\ No newline at end of file=0A=
diff --git a/win32/tests.vcxproj b/win32/tests.vcxproj=0A=
new file mode 100644=0A=
index 0000000..9c58fbf=0A=
--- /dev/null=0A=
+++ b/win32/tests.vcxproj=0A=
@@ -0,0 +1,149 @@=0A=
+=EF=BB=BF=0A=
+=0A=
+ =0A=
+ =0A=
+ Debug=0A=
+ Win32=0A=
+ =0A=
+ =0A=
+ Release=0A=
+ Win32=0A=
+ =0A=
+ =0A=
+ Template=0A=
+ Win32=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}=0A=
+ =0A=
+ =0A=
+ =0A=
+ Application=0A=
+ v120=0A=
+ =0A=
+ =0A=
+ Application=0A=
+ v120=0A=
+ false=0A=
+ MultiByte=0A=
+ =0A=
+ =0A=
+ Application=0A=
+ v120=0A=
+ false=0A=
+ MultiByte=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ .\Release\=0A=
+ .\Release\=0A=
+ false=0A=
+ =0A=
+ =0A=
+ .\Debug\=0A=
+ .\Debug\=0A=
+ true=0A=
+ =0A=
+ =0A=
+ =0A=
+ MultiThreadedDLL=0A=
+ Default=0A=
+ true=0A=
+ true=0A=
+ MaxSpeed=0A=
+ true=0A=
+ Level3=0A=
+ =
..\include;..\win32;%(AdditionalIncludeDire=
ctories)=0A=
+ =
WIN32;NDEBUG;LIBSSH2_WIN32;_CONSOLE;%(Preprocess=
orDefinitions)=0A=
+ .\Release\=0A=
+ =
.\Release\tests.pch=0A=
+ .\Release\=0A=
+ .\Release\=0A=
+ =0A=
+ =0A=
+ .\Release\tests.tlb=0A=
+ =0A=
+ =0A=
+ 0x0409=0A=
+ =
NDEBUG;%(PreprocessorDefinitions)=0A=
+ =0A=
+ =0A=
+ true=0A=
+ .\Release\tests.bsc=0A=
+ =0A=
+ =0A=
+ true=0A=
+ Console=0A=
+ simple.exe=0A=
+ =
Release;%(AdditionalLibraryDirectories)=0A=
+ =
odbc32.lib;odbccp32.lib;libeay32.lib;ssleay32.lib=
;ws2_32.lib;zlib.lib;libssh2.lib;%(AdditionalDependencies)=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ MultiThreadedDebugDLL=0A=
+ Default=0A=
+ false=0A=
+ Disabled=0A=
+ true=0A=
+ Level3=0A=
+ true=0A=
+ EditAndContinue=0A=
+ =
..\include;..\win32;%(AdditionalIncludeDire=
ctories)=0A=
+ =
WIN32;_DEBUG;LIBSSH2_WIN32;_CONSOLE;%(Preprocess=
orDefinitions)=0A=
+ .\Debug\=0A=
+ =
.\Debug\tests.pch=0A=
+ .\Debug\=0A=
+ .\Debug\=0A=
+ EnableFastChecks=0A=
+ =0A=
+ =0A=
+ .\Debug\tests.tlb=0A=
+ =0A=
+ =0A=
+ 0x0409=0A=
+ =
_DEBUG;%(PreprocessorDefinitions)=0A=
+ =0A=
+ =0A=
+ true=0A=
+ .\Debug\tests.bsc=0A=
+ =0A=
+ =0A=
+ true=0A=
+ true=0A=
+ Console=0A=
+ =
msvcrt.lib;%(IgnoreSpecificDefaultLibrari=
es)=0A=
+ simple.exe=0A=
+ =
Debug;%(AdditionalLibraryDirectories)=0A=
+ =
odbc32.lib;odbccp32.lib;libeay32.lib;ssleay32.lib=
;ws2_32.lib;zlib.lib;libssh2d.lib;%(AdditionalDependencies)=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ true=0A=
+ true=0A=
+ true=
ExcludedFromBuild>=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+=0A=
\ No newline at end of file=0A=
diff --git a/win32/tests.vcxproj.filters b/win32/tests.vcxproj.filters=0A=
new file mode 100644=0A=
index 0000000..a2c899c=0A=
--- /dev/null=0A=
+++ b/win32/tests.vcxproj.filters=0A=
@@ -0,0 +1,25 @@=0A=
+=EF=BB=BF=0A=
+=0A=
+ =0A=
+ =0A=
+ =
{5f88c3ec-6eaf-402c-b529-9c3be528ab9a}=0A=
+ cpp;c;cxx;rc;def;r;odl;idl;hpj;bat=0A=
+ =0A=
+ =0A=
+ =
{b7f5ec6a-9426-4cb0-b384-eacfd8078165}=0A=
+ h;hpp;hxx;hm;inl=0A=
+ =0A=
+ =0A=
+ =
{c37cf913-6ab0-4960-9b2e-b7f4bd19102a}=0A=
+ =
ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+ Source Files=0A=
+ =0A=
+ =0A=
+=0A=
\ No newline at end of file=0A=
-- =0A=
1.9.0.msysgit.0=0A=
=0A=
------=_NextPart_000_0029_01CF5351.1B0AE930
Content-Type: application/octet-stream;
name="0001-formal-parameter-must-be-const-since-it-is-used-in-c.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="0001-formal-parameter-must-be-const-since-it-is-used-in-c.patch"
From f15b8916d87fed6dcc0a7243d061ebf0ea15dafa Mon Sep 17 00:00:00 2001=0A=
From: Bob Kast =0A=
Date: Thu, 20 Mar 2014 14:37:46 -0400=0A=
Subject: [PATCH] formal parameter must be const since it is used in =
contexts=0A=
where the actual parameter may be const=0A=
=0A=
---=0A=
src/wincng.c | 4 ++--=0A=
1 file changed, 2 insertions(+), 2 deletions(-)=0A=
=0A=
diff --git a/src/wincng.c b/src/wincng.c=0A=
index 8adda26..498e567 100644=0A=
--- a/src/wincng.c=0A=
+++ b/src/wincng.c=0A=
@@ -317,9 +317,9 @@ _libssh2_wincng_hash_init(_libssh2_wincng_hash_ctx =
*ctx,=0A=
=0A=
int=0A=
_libssh2_wincng_hash_update(_libssh2_wincng_hash_ctx *ctx,=0A=
- unsigned char *data, unsigned long datalen)=0A=
+ const unsigned char *data, unsigned long =
datalen)=0A=
{=0A=
- return BCryptHashData(ctx->hHash, data, datalen, 0)=0A=
+ return BCryptHashData(ctx->hHash, (unsigned char *)data, datalen, 0)=0A=
=3D=3D STATUS_SUCCESS ? 0 : -1;=0A=
}=0A=
=0A=
-- =0A=
1.9.0.msysgit.0=0A=
=0A=
------=_NextPart_000_0029_01CF5351.1B0AE930
Content-Type: application/octet-stream;
name="0001-for-MS-VS-builds-specify-the-libraries-that-are-requ.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="0001-for-MS-VS-builds-specify-the-libraries-that-are-requ.patch"
From 7635d80547c213088553b5fc6b364f9fdf82dacc Mon Sep 17 00:00:00 2001=0A=
From: Bob Kast =0A=
Date: Thu, 20 Mar 2014 13:06:12 -0400=0A=
Subject: [PATCH 1/5] for MS VS builds, specify the libraries that are =
required=0A=
so they don't need to go into all project files that may use this =
library=0A=
=0A=
---=0A=
src/wincng.c | 5 +++++=0A=
1 file changed, 5 insertions(+)=0A=
=0A=
diff --git a/src/wincng.c b/src/wincng.c=0A=
index 398fe89..8adda26 100644=0A=
--- a/src/wincng.c=0A=
+++ b/src/wincng.c=0A=
@@ -40,6 +40,11 @@=0A=
=0A=
#ifdef LIBSSH2_WINCNG /* compile only if we build with wincng */=0A=
=0A=
+#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A=
+#pragma comment(lib, "Bcrypt.lib")=0A=
+#pragma comment(lib, "Crypt32.lib")=0A=
+#endif=0A=
+=0A=
#include =0A=
=0A=
#ifdef HAVE_STDLIB_H=0A=
-- =0A=
1.9.0.msysgit.0=0A=
=0A=
------=_NextPart_000_0029_01CF5351.1B0AE930
Content-Type: application/octet-stream;
name="0001-Remove-redundant-inline-define.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="0001-Remove-redundant-inline-define.patch"
From 74380b4494e7cc13bee7aaf4f996e7ae60ca7782 Mon Sep 17 00:00:00 2001=0A=
From: Bob Kast =0A=
Date: Tue, 8 Apr 2014 17:06:21 -0400=0A=
Subject: [PATCH] Remove redundant 'inline' define=0A=
=0A=
---=0A=
src/libssh2_priv.h | 5 -----=0A=
1 file changed, 5 deletions(-)=0A=
=0A=
diff --git a/src/libssh2_priv.h b/src/libssh2_priv.h=0A=
index 7d8b162..cf91fba 100644=0A=
--- a/src/libssh2_priv.h=0A=
+++ b/src/libssh2_priv.h=0A=
@@ -136,11 +136,6 @@ static inline int writev(int sock, struct iovec =
*iov, int nvecs)=0A=
#include =0A=
#include =0A=
=0A=
-#ifdef _MSC_VER=0A=
-/* "inline" keyword is valid only with C++ engine! */=0A=
-#define inline __inline=0A=
-#endif=0A=
-=0A=
#endif=0A=
=0A=
/* RFC4253 section 6.1 Maximum Packet Length says:=0A=
-- =0A=
1.9.0.msysgit.0=0A=
=0A=
------=_NextPart_000_0029_01CF5351.1B0AE930
Content-Type: application/octet-stream;
name="0001-Use-secure-versions-of-CRT-library.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="0001-Use-secure-versions-of-CRT-library.patch"
From 874be9b757377f14568f7639021ec15145fe44c5 Mon Sep 17 00:00:00 2001=0A=
From: Bob Kast =0A=
Date: Tue, 8 Apr 2014 16:53:42 -0400=0A=
Subject: [PATCH] Use secure versions of CRT library=0A=
=0A=
Replace deprecated, insecure versions of library routines, such as =
sprintf,=0A=
with secure versions. Remove _CRT_SECURE_NO_DEPRECATE.=0A=
Windows only.=0A=
---=0A=
src/agent.c | 2 +-=0A=
src/channel.c | 4 ++++=0A=
src/kex.c | 4 ++--=0A=
src/knownhost.c | 32 +++++++++++++++++++++-----------=0A=
src/misc.c | 10 +++++-----=0A=
src/scp.c | 8 ++++----=0A=
src/transport.c | 4 ++--=0A=
src/userauth.c | 7 ++++++-=0A=
src/wincng.c | 7 ++++++-=0A=
win32/libssh2_config.h | 11 +++++++----=0A=
10 files changed, 58 insertions(+), 31 deletions(-)=0A=
=0A=
diff --git a/src/agent.c b/src/agent.c=0A=
index 92927b7..c259d3c 100644=0A=
--- a/src/agent.c=0A=
+++ b/src/agent.c=0A=
@@ -294,7 +294,7 @@ agent_transact_pageant(LIBSSH2_AGENT *agent, =
agent_transaction_ctx_t transctx)=0A=
return _libssh2_error(agent->session, =
LIBSSH2_ERROR_AGENT_PROTOCOL,=0A=
"found no pageant");=0A=
=0A=
- sprintf(mapname, "PageantRequest%08x", =
(unsigned)GetCurrentThreadId());=0A=
+ SNPRINTF(mapname, sizeof(mapname), "PageantRequest%08x", =
(unsigned)GetCurrentThreadId());=0A=
filemap =3D CreateFileMapping(INVALID_HANDLE_VALUE, NULL, =
PAGE_READWRITE,=0A=
0, PAGEANT_MAX_MSGLEN, mapname);=0A=
=0A=
diff --git a/src/channel.c b/src/channel.c=0A=
index 58cee5f..b19b28d 100644=0A=
--- a/src/channel.c=0A=
+++ b/src/channel.c=0A=
@@ -1138,7 +1138,11 @@ channel_x11_req(LIBSSH2_CHANNEL *channel, int =
single_connection,=0A=
=0A=
_libssh2_random(buffer, LIBSSH2_X11_RANDOM_COOKIE_LEN / 2);=0A=
for(i =3D 0; i < (LIBSSH2_X11_RANDOM_COOKIE_LEN / 2); i++) {=0A=
+#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A=
+ sprintf_s((char *)&s[i * 2], channel->reqX11_packet_len =
- ((s - channel->reqX11_packet) + (i * 2)), "%02X", buffer[i]);=0A=
+#else=0A=
sprintf((char *)&s[i*2], "%02X", buffer[i]);=0A=
+#endif=0A=
}=0A=
}=0A=
s +=3D cookie_len;=0A=
diff --git a/src/kex.c b/src/kex.c=0A=
index 07e717f..ad03b3c 100644=0A=
--- a/src/kex.c=0A=
+++ b/src/kex.c=0A=
@@ -233,7 +233,7 @@ static int diffie_hellman_sha1(LIBSSH2_SESSION =
*session,=0A=
char fingerprint[50], *fprint =3D fingerprint;=0A=
int i;=0A=
for(i =3D 0; i < 16; i++, fprint +=3D 3) {=0A=
- snprintf(fprint, 4, "%02x:", =
session->server_hostkey_md5[i]);=0A=
+ SNPRINTF(fprint, 4, "%02x:", =
session->server_hostkey_md5[i]);=0A=
}=0A=
*(--fprint) =3D '\0';=0A=
_libssh2_debug(session, LIBSSH2_TRACE_KEX,=0A=
@@ -256,7 +256,7 @@ static int diffie_hellman_sha1(LIBSSH2_SESSION =
*session,=0A=
int i;=0A=
=0A=
for(i =3D 0; i < 20; i++, fprint +=3D 3) {=0A=
- snprintf(fprint, 4, "%02x:", =
session->server_hostkey_sha1[i]);=0A=
+ SNPRINTF(fprint, 4, "%02x:", =
session->server_hostkey_sha1[i]);=0A=
}=0A=
*(--fprint) =3D '\0';=0A=
_libssh2_debug(session, LIBSSH2_TRACE_KEX,=0A=
diff --git a/src/knownhost.c b/src/knownhost.c=0A=
index 9b3b79a..68fcf82 100644=0A=
--- a/src/knownhost.c=0A=
+++ b/src/knownhost.c=0A=
@@ -371,7 +371,7 @@ knownhost_check(LIBSSH2_KNOWNHOSTS *hosts,=0A=
/* if a port number is given, check for a '[host]:port' first =
before the=0A=
plain 'host' */=0A=
if(port >=3D 0) {=0A=
- int len =3D snprintf(hostbuff, sizeof(hostbuff), "[%s]:%d", =
hostp, port);=0A=
+ int len =3D SNPRINTF(hostbuff, sizeof(hostbuff), "[%s]:%d", =
hostp, port);=0A=
if (len < 0 || len >=3D (int)sizeof(hostbuff)) {=0A=
_libssh2_error(hosts->session,=0A=
LIBSSH2_ERROR_BUFFER_TOO_SMALL,=0A=
@@ -954,7 +954,12 @@ libssh2_knownhost_readfile(LIBSSH2_KNOWNHOSTS =
*hosts,=0A=
"Unsupported type of known-host =
information "=0A=
"store");=0A=
=0A=
- file =3D fopen(filename, "r");=0A=
+#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A=
+ if (fopen_s(&file, filename, "r") !=3D 0)=0A=
+ file =3D NULL;=0A=
+#else=0A=
+ file =3D fopen(filename, "r");=0A=
+#endif=0A=
if(file) {=0A=
while(fgets(buf, sizeof(buf), file)) {=0A=
if(libssh2_knownhost_readline(hosts, buf, strlen(buf), =
type)) {=0A=
@@ -1085,16 +1090,16 @@ knownhost_writeline(LIBSSH2_KNOWNHOSTS *hosts,=0A=
=0A=
if(required_size <=3D buflen) {=0A=
if(node->comment && key_type_len)=0A=
- snprintf(buf, buflen, "|1|%s|%s %s %s %s\n", saltalloc,=0A=
+ SNPRINTF(buf, buflen, "|1|%s|%s %s %s %s\n", saltalloc,=0A=
namealloc, key_type_name, node->key, =
node->comment);=0A=
else if (node->comment)=0A=
- snprintf(buf, buflen, "|1|%s|%s %s %s\n", saltalloc, =
namealloc,=0A=
+ SNPRINTF(buf, buflen, "|1|%s|%s %s %s\n", saltalloc, =
namealloc,=0A=
node->key, node->comment);=0A=
else if (key_type_len)=0A=
- snprintf(buf, buflen, "|1|%s|%s %s %s\n", saltalloc, =
namealloc,=0A=
+ SNPRINTF(buf, buflen, "|1|%s|%s %s %s\n", saltalloc, =
namealloc,=0A=
key_type_name, node->key);=0A=
else=0A=
- snprintf(buf, buflen, "|1|%s|%s %s\n", saltalloc, =
namealloc,=0A=
+ SNPRINTF(buf, buflen, "|1|%s|%s %s\n", saltalloc, =
namealloc,=0A=
node->key);=0A=
}=0A=
=0A=
@@ -1107,16 +1112,16 @@ knownhost_writeline(LIBSSH2_KNOWNHOSTS *hosts,=0A=
=0A=
if(required_size <=3D buflen) {=0A=
if(node->comment && key_type_len)=0A=
- snprintf(buf, buflen, "%s %s %s %s\n", node->name,=0A=
+ SNPRINTF(buf, buflen, "%s %s %s %s\n", node->name,=0A=
key_type_name, node->key, node->comment);=0A=
else if (node->comment)=0A=
- snprintf(buf, buflen, "%s %s %s\n", node->name, =
node->key,=0A=
+ SNPRINTF(buf, buflen, "%s %s %s\n", node->name, =
node->key,=0A=
node->comment);=0A=
else if (key_type_len)=0A=
- snprintf(buf, buflen, "%s %s %s\n", node->name, =
key_type_name,=0A=
+ SNPRINTF(buf, buflen, "%s %s %s\n", node->name, =
key_type_name,=0A=
node->key);=0A=
else=0A=
- snprintf(buf, buflen, "%s %s\n", node->name, node->key);=0A=
+ SNPRINTF(buf, buflen, "%s %s\n", node->name, node->key);=0A=
}=0A=
}=0A=
=0A=
@@ -1178,7 +1183,12 @@ libssh2_knownhost_writefile(LIBSSH2_KNOWNHOSTS =
*hosts,=0A=
"Unsupported type of known-host =
information "=0A=
"store");=0A=
=0A=
- file =3D fopen(filename, "w");=0A=
+#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A=
+ if (fopen_s(&file, filename, "w") !=3D 0)=0A=
+ file =3D NULL;=0A=
+#else=0A=
+ file =3D fopen(filename, "w");=0A=
+#endif=0A=
if(!file)=0A=
return _libssh2_error(hosts->session, LIBSSH2_ERROR_FILE,=0A=
"Failed to open file");=0A=
diff --git a/src/misc.c b/src/misc.c=0A=
index 65ba521..178f18e 100644=0A=
--- a/src/misc.c=0A=
+++ b/src/misc.c=0A=
@@ -337,18 +337,18 @@ size_t _libssh2_base64_encode(LIBSSH2_SESSION =
*session,=0A=
=0A=
switch(inputparts) {=0A=
case 1: /* only one byte read */=0A=
- snprintf(output, 5, "%c%c=3D=3D",=0A=
+ SNPRINTF(output, 5, "%c%c=3D=3D",=0A=
table64[obuf[0]],=0A=
table64[obuf[1]]);=0A=
break;=0A=
case 2: /* two bytes read */=0A=
- snprintf(output, 5, "%c%c%c=3D",=0A=
+ SNPRINTF(output, 5, "%c%c%c=3D",=0A=
table64[obuf[0]],=0A=
table64[obuf[1]],=0A=
table64[obuf[2]]);=0A=
break;=0A=
default:=0A=
- snprintf(output, 5, "%c%c%c%c",=0A=
+ SNPRINTF(output, 5, "%c%c%c%c",=0A=
table64[obuf[0]],=0A=
table64[obuf[1]],=0A=
table64[obuf[2]],=0A=
@@ -442,7 +442,7 @@ _libssh2_debug(LIBSSH2_SESSION * session, int =
context, const char *format, ...)=0A=
}=0A=
now.tv_sec -=3D firstsec;=0A=
=0A=
- len =3D snprintf(buffer, buflen, "[libssh2] %d.%06d %s: ",=0A=
+ len =3D SNPRINTF(buffer, buflen, "[libssh2] %d.%06d %s: ",=0A=
(int)now.tv_sec, (int)now.tv_usec, contexttext);=0A=
=0A=
if (len >=3D buflen)=0A=
@@ -451,7 +451,7 @@ _libssh2_debug(LIBSSH2_SESSION * session, int =
context, const char *format, ...)=0A=
buflen -=3D len;=0A=
msglen =3D len;=0A=
va_start(vargs, format);=0A=
- len =3D vsnprintf(buffer + msglen, buflen, format, vargs);=0A=
+ len =3D VSNPRINTF(buffer + msglen, buflen, format, vargs);=0A=
va_end(vargs);=0A=
msglen +=3D len < buflen ? len : buflen - 1;=0A=
}=0A=
diff --git a/src/scp.c b/src/scp.c=0A=
index 1ccd3be..975fa36 100644=0A=
--- a/src/scp.c=0A=
+++ b/src/scp.c=0A=
@@ -294,7 +294,7 @@ scp_recv(LIBSSH2_SESSION * session, const char =
*path, struct stat * sb)=0A=
return NULL;=0A=
}=0A=
=0A=
- snprintf((char *)session->scpRecv_command,=0A=
+ SNPRINTF((char *)session->scpRecv_command,=0A=
session->scpRecv_command_len, "scp -%sf ", sb?"p":"");=0A=
=0A=
cmd_len =3D strlen((char *)session->scpRecv_command);=0A=
@@ -796,7 +796,7 @@ scp_send(LIBSSH2_SESSION * session, const char =
*path, int mode,=0A=
return NULL;=0A=
}=0A=
=0A=
- snprintf((char *)session->scpSend_command, =
session->scpSend_command_len,=0A=
+ SNPRINTF((char *)session->scpSend_command, =
session->scpSend_command_len,=0A=
"scp -%st ", (mtime || atime)?"p":"");=0A=
=0A=
cmd_len =3D strlen((char *)session->scpSend_command);=0A=
@@ -887,7 +887,7 @@ scp_send(LIBSSH2_SESSION * session, const char =
*path, int mode,=0A=
if (mtime || atime) {=0A=
/* Send mtime and atime to be used for file */=0A=
session->scpSend_response_len =3D=0A=
- snprintf((char *) session->scpSend_response,=0A=
+ SNPRINTF((char *) session->scpSend_response,=0A=
LIBSSH2_SCP_RESPONSE_BUFLEN, "T%ld 0 %ld 0\n",=0A=
(long)mtime, (long)atime);=0A=
_libssh2_debug(session, LIBSSH2_TRACE_SCP, "Sent %s",=0A=
@@ -955,7 +955,7 @@ scp_send(LIBSSH2_SESSION * session, const char =
*path, int mode,=0A=
base =3D path;=0A=
=0A=
session->scpSend_response_len =3D=0A=
- snprintf((char *) session->scpSend_response,=0A=
+ SNPRINTF((char *) session->scpSend_response,=0A=
LIBSSH2_SCP_RESPONSE_BUFLEN, "C0%o %"=0A=
LIBSSH2_INT64_T_FORMAT " %s\n", mode,=0A=
size, base);=0A=
diff --git a/src/transport.c b/src/transport.c=0A=
index 33460dc..ec36262 100644=0A=
--- a/src/transport.c=0A=
+++ b/src/transport.c=0A=
@@ -72,7 +72,7 @@ debugdump(LIBSSH2_SESSION * session,=0A=
return;=0A=
}=0A=
=0A=
- used =3D snprintf(buffer, sizeof(buffer), "=3D> %s (%d bytes)\n",=0A=
+ used =3D SNPRINTF(buffer, sizeof(buffer), "=3D> %s (%d bytes)\n",=0A=
desc, (int) size);=0A=
if (session->tracehandler)=0A=
(session->tracehandler)(session, session->tracehandler_context,=0A=
@@ -87,7 +87,7 @@ debugdump(LIBSSH2_SESSION * session,=0A=
=0A=
for(i =3D 0; i < size; i +=3D width) {=0A=
=0A=
- used =3D snprintf(buffer, sizeof(buffer), "%04lx: ", (long)i);=0A=
+ used =3D SNPRINTF(buffer, sizeof(buffer), "%04lx: ", (long)i);=0A=
=0A=
/* hex not disabled, show it */=0A=
for(c =3D 0; c < width; c++) {=0A=
diff --git a/src/userauth.c b/src/userauth.c=0A=
index edfe729..ec913da 100644=0A=
--- a/src/userauth.c=0A=
+++ b/src/userauth.c=0A=
@@ -467,7 +467,12 @@ file_read_publickey(LIBSSH2_SESSION * session, =
unsigned char **method,=0A=
_libssh2_debug(session, LIBSSH2_TRACE_AUTH, "Loading public key =
file: %s",=0A=
pubkeyfile);=0A=
/* Read Public Key */=0A=
- fd =3D fopen(pubkeyfile, "r");=0A=
+#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A=
+ if (fopen_s(&fd, pubkeyfile, "r") !=3D 0)=0A=
+ fd =3D NULL;=0A=
+#else=0A=
+ fd =3D fopen(pubkeyfile, "r");=0A=
+#endif=0A=
if (!fd) {=0A=
return _libssh2_error(session, LIBSSH2_ERROR_FILE,=0A=
"Unable to open public key file");=0A=
diff --git a/src/wincng.c b/src/wincng.c=0A=
index 498e567..ffb0264 100644=0A=
--- a/src/wincng.c=0A=
+++ b/src/wincng.c=0A=
@@ -468,7 +468,12 @@ _libssh2_wincng_load_pem(LIBSSH2_SESSION *session,=0A=
=0A=
(void)passphrase;=0A=
=0A=
- fp =3D fopen(filename, "r");=0A=
+#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A=
+ if (fopen_s(&fp, filename, "r") !=3D 0)=0A=
+ fp =3D NULL;=0A=
+#else=0A=
+ fp =3D fopen(filename, "r");=0A=
+#endif=0A=
if (!fp) {=0A=
return -1;=0A=
}=0A=
diff --git a/win32/libssh2_config.h b/win32/libssh2_config.h=0A=
index 4e2ae29..41e0004 100644=0A=
--- a/win32/libssh2_config.h=0A=
+++ b/win32/libssh2_config.h=0A=
@@ -4,9 +4,6 @@=0A=
#ifndef WIN32=0A=
#define WIN32=0A=
#endif=0A=
-#ifndef _CRT_SECURE_NO_DEPRECATE=0A=
-#define _CRT_SECURE_NO_DEPRECATE 1=0A=
-#endif /* _CRT_SECURE_NO_DEPRECATE */=0A=
#include =0A=
#include =0A=
#include =0A=
@@ -23,9 +20,11 @@=0A=
#define HAVE_SELECT=0A=
=0A=
#ifdef _MSC_VER=0A=
-#define snprintf _snprintf=0A=
+#define SNPRINTF(pBuf, nLen, ...) _snprintf_s(pBuf, nLen, (nLen-1), =
__VA_ARGS__)=0A=
#if _MSC_VER < 1500=0A=
#define vsnprintf _vsnprintf=0A=
+#else=0A=
+#define VSNPRINTF(pBuf, nLen, pFormat, pArgptr) vsnprintf_s(pBuf, nLen, =
(nLen-1), pFormat, pArgptr)=0A=
#endif=0A=
#define strdup _strdup=0A=
#define strncasecmp _strnicmp=0A=
@@ -38,5 +37,9 @@=0A=
/* Enable newer diffie-hellman-group-exchange-sha1 syntax */=0A=
#define LIBSSH2_DH_GEX_NEW 1=0A=
=0A=
+#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A=
+#pragma warning(disable: 4244 4267)=0A=
+#endif=0A=
+=0A=
#endif /* LIBSSH2_CONFIG_H */=0A=
=0A=
-- =0A=
1.9.0.msysgit.0=0A=
=0A=
------=_NextPart_000_0029_01CF5351.1B0AE930
Content-Type: application/octet-stream;
name="0001-Wincng-define-function-prototypes-for-wincng-routine.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="0001-Wincng-define-function-prototypes-for-wincng-routine.patch"
From 4e1ab6c37f23f165a52349bb332c26e681197053 Mon Sep 17 00:00:00 2001=0A=
From: Bob Kast =0A=
Date: Tue, 8 Apr 2014 17:10:15 -0400=0A=
Subject: [PATCH] Wincng - define function prototypes for wincng routines=0A=
=0A=
---=0A=
src/wincng.h | 44 +++++++++++++++++++++++++++++++++++++-------=0A=
1 file changed, 37 insertions(+), 7 deletions(-)=0A=
=0A=
diff --git a/src/wincng.h b/src/wincng.h=0A=
index a327b55..f6acba7 100644=0A=
--- a/src/wincng.h=0A=
+++ b/src/wincng.h=0A=
@@ -113,14 +113,12 @@ void _libssh2_wincng_free(void);=0A=
* Windows CNG backend: Hash structure=0A=
*/=0A=
=0A=
-struct _libssh2_wincng_hash_ctx {=0A=
+typedef struct __libssh2_wincng_hash_ctx {=0A=
BCRYPT_HASH_HANDLE hHash;=0A=
unsigned char *pbHashObject;=0A=
unsigned long dwHashObject;=0A=
unsigned long cbHash;=0A=
-};=0A=
-=0A=
-#define _libssh2_wincng_hash_ctx struct _libssh2_wincng_hash_ctx=0A=
+} _libssh2_wincng_hash_ctx;=0A=
=0A=
/*=0A=
* Windows CNG backend: Hash functions=0A=
@@ -176,13 +174,12 @@ struct _libssh2_wincng_hash_ctx {=0A=
* Windows CNG backend: Key Context structure=0A=
*/=0A=
=0A=
-struct _libssh2_wincng_key_ctx {=0A=
+typedef struct __libssh2_wincng_key_ctx {=0A=
BCRYPT_KEY_HANDLE hKey;=0A=
unsigned char *pbKeyObject;=0A=
unsigned long cbKeyObject;=0A=
-};=0A=
+} _libssh2_wincng_key_ctx;=0A=
=0A=
-#define _libssh2_wincng_key_ctx struct _libssh2_wincng_key_ctx=0A=
=0A=
/*=0A=
* Windows CNG backend: RSA functions=0A=
@@ -325,3 +322,36 @@ _libssh2_bn *_libssh2_wincng_bignum_init(void);=0A=
_libssh2_wincng_bignum_bits(bn)=0A=
#define _libssh2_bn_free(bn) \=0A=
_libssh2_wincng_bignum_free(bn)=0A=
+=0A=
+/*******************************************************************/=0A=
+/*=0A=
+* Windows CNG backend: forward declarations=0A=
+*/=0A=
+extern int _libssh2_wincng_random(void *buf, int len);=0A=
+extern void _libssh2_wincng_cipher_dtor(_libssh2_cipher_ctx *ctx);=0A=
+extern int _libssh2_wincng_hash_init(_libssh2_wincng_hash_ctx *ctx,=0A=
+ BCRYPT_ALG_HANDLE hAlg, unsigned long hashlen,=0A=
+ unsigned char *key, unsigned long keylen);=0A=
+extern int _libssh2_wincng_hash_update(_libssh2_wincng_hash_ctx *ctx,=0A=
+ const unsigned char *data, unsigned long datalen);=0A=
+extern int _libssh2_wincng_hash_final(_libssh2_wincng_hash_ctx *ctx,=0A=
+ unsigned char *hash);=0A=
+extern void _libssh2_wincng_rsa_free(libssh2_rsa_ctx *rsa);=0A=
+extern void _libssh2_wincng_dsa_free(libssh2_dsa_ctx *dsa);=0A=
+extern int _libssh2_wincng_bignum_rand(_libssh2_bn *rnd, int bits, int =
top, int bottom);=0A=
+extern int _libssh2_wincng_bignum_mod_exp(_libssh2_bn *r,=0A=
+ _libssh2_bn *a,=0A=
+ _libssh2_bn *p,=0A=
+ _libssh2_bn *m,=0A=
+ _libssh2_bn_ctx *bnctx);=0A=
+extern unsigned long _libssh2_wincng_bignum_bits(const _libssh2_bn *bn);=0A=
+extern void _libssh2_wincng_bignum_to_bin(const _libssh2_bn *bn, =
unsigned char *bin);=0A=
+extern void _libssh2_wincng_bignum_from_bin(_libssh2_bn *bn, unsigned =
long len,=0A=
+ const unsigned char *bin);=0A=
+extern void _libssh2_wincng_bignum_free(_libssh2_bn *bn);=0A=
+extern int _libssh2_wincng_bignum_set_word(_libssh2_bn *bn, unsigned =
long word);=0A=
+extern int _libssh2_wincng_hmac_final(_libssh2_wincng_hash_ctx *ctx,=0A=
+ unsigned char *hash);=0A=
+extern void _libssh2_wincng_hmac_cleanup(_libssh2_wincng_hash_ctx *ctx);=0A=
+=0A=
+=0A=
-- =0A=
1.9.0.msysgit.0=0A=
=0A=
------=_NextPart_000_0029_01CF5351.1B0AE930
Content-Type: application/octet-stream;
name="0001-Windows-library-don-t-export-externals.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="0001-Windows-library-don-t-export-externals.patch"
From d54dabf41015237228fab98c4060f442d58f91c9 Mon Sep 17 00:00:00 2001=0A=
From: Bob Kast =0A=
Date: Tue, 8 Apr 2014 15:26:57 -0400=0A=
Subject: [PATCH] Windows library - don't export externals=0A=
=0A=
If the library goes into a creating a DLL, it currently will export all =
libssh2 entries=0A=
from the DLL. A library should not determine what gets exported from a =
DLL.=0A=
---=0A=
include/libssh2.h | 12 ++++++++----=0A=
1 file changed, 8 insertions(+), 4 deletions(-)=0A=
=0A=
diff --git a/include/libssh2.h b/include/libssh2.h=0A=
index f0139ff..0491ee3 100644=0A=
--- a/include/libssh2.h=0A=
+++ b/include/libssh2.h=0A=
@@ -100,11 +100,15 @@ extern "C" {=0A=
/* Allow alternate API prefix from CFLAGS or calling app */=0A=
#ifndef LIBSSH2_API=0A=
# ifdef LIBSSH2_WIN32=0A=
-# ifdef LIBSSH2_LIBRARY=0A=
-# define LIBSSH2_API __declspec(dllexport)=0A=
+# ifdef _WINDLL=0A=
+# ifdef LIBSSH2_LIBRARY=0A=
+# define LIBSSH2_API __declspec(dllexport)=0A=
+# else=0A=
+# define LIBSSH2_API __declspec(dllimport)=0A=
+# endif /* LIBSSH2_LIBRARY */=0A=
# else=0A=
-# define LIBSSH2_API __declspec(dllimport)=0A=
-# endif /* LIBSSH2_LIBRARY */=0A=
+# define LIBSSH2_API=0A=
+# endif=0A=
# else /* !LIBSSH2_WIN32 */=0A=
# define LIBSSH2_API=0A=
# endif /* LIBSSH2_WIN32 */=0A=
-- =0A=
1.9.0.msysgit.0=0A=
=0A=
------=_NextPart_000_0029_01CF5351.1B0AE930
Content-Type: application/octet-stream;
name="0001-Windows-Tracing-use-OutputDebugString.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="0001-Windows-Tracing-use-OutputDebugString.patch"
From 457506aa1bfd293e71ebe1effc332db7c8d23ae1 Mon Sep 17 00:00:00 2001=0A=
From: Bob Kast =0A=
Date: Tue, 8 Apr 2014 15:13:52 -0400=0A=
Subject: [PATCH] Windows Tracing - use OutputDebugString=0A=
=0A=
stdout or stderr are usually not available for services or windowed apps=0A=
this will output tracing to the debugger Output window or you can use=0A=
DebugView from sysinternals.com=0A=
---=0A=
src/libssh2_priv.h | 4 ++++=0A=
src/misc.c | 19 ++++++++++++++++++-=0A=
src/transport.c | 14 ++++++++++++--=0A=
3 files changed, 34 insertions(+), 3 deletions(-)=0A=
=0A=
diff --git a/src/libssh2_priv.h b/src/libssh2_priv.h=0A=
index 8f11709..7d8b162 100644=0A=
--- a/src/libssh2_priv.h=0A=
+++ b/src/libssh2_priv.h=0A=
@@ -915,6 +915,10 @@ struct _LIBSSH2_COMP_METHOD=0A=
#ifdef LIBSSH2DEBUG=0A=
void _libssh2_debug(LIBSSH2_SESSION * session, int context, const char =
*format,=0A=
...);=0A=
+#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A=
+void _libssh2_WIN32_trace(const char *format, ...);=0A=
+#endif=0A=
+=0A=
#else=0A=
#if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >=3D 199901L)) || =
defined(__GNUC__)=0A=
/* C99 supported and also by older GCC */=0A=
diff --git a/src/misc.c b/src/misc.c=0A=
index a9f423a..65ba521 100644=0A=
--- a/src/misc.c=0A=
+++ b/src/misc.c=0A=
@@ -387,6 +387,18 @@ libssh2_trace_sethandler(LIBSSH2_SESSION *session, =
void* handler_context,=0A=
return 0;=0A=
}=0A=
=0A=
+#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A=
+void _libssh2_WIN32_trace(const char *format, ...)=0A=
+{=0A=
+ char ErrorMsg[1024];=0A=
+ va_list marker;=0A=
+ va_start(marker, format); /* Initialize variable arguments. */=0A=
+ (void)vsprintf_s(ErrorMsg, _countof(ErrorMsg), format, marker);=0A=
+ OutputDebugString(ErrorMsg);=0A=
+ va_end(marker); /* Reset variable arguments. */=0A=
+}=0A=
+#endif=0A=
+=0A=
void=0A=
_libssh2_debug(LIBSSH2_SESSION * session, int context, const char =
*format, ...)=0A=
{=0A=
@@ -447,8 +459,13 @@ _libssh2_debug(LIBSSH2_SESSION * session, int =
context, const char *format, ...)=0A=
if (session->tracehandler)=0A=
(session->tracehandler)(session, session->tracehandler_context, =
buffer,=0A=
msglen);=0A=
- else=0A=
+ else {=0A=
+#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A=
+ _libssh2_WIN32_trace("%s\n", buffer);=0A=
+#else=0A=
fprintf(stderr, "%s\n", buffer);=0A=
+#endif=0A=
+ }=0A=
}=0A=
=0A=
#else=0A=
diff --git a/src/transport.c b/src/transport.c=0A=
index 3d61f8d..33460dc 100644=0A=
--- a/src/transport.c=0A=
+++ b/src/transport.c=0A=
@@ -77,8 +77,13 @@ debugdump(LIBSSH2_SESSION * session,=0A=
if (session->tracehandler)=0A=
(session->tracehandler)(session, session->tracehandler_context,=0A=
buffer, used);=0A=
- else=0A=
+ else {=0A=
+#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A=
+ _libssh2_WIN32_trace("%s\n", buffer);=0A=
+#else=0A=
fprintf(stderr, "%s", buffer);=0A=
+#endif=0A=
+ }=0A=
=0A=
for(i =3D 0; i < size; i +=3D width) {=0A=
=0A=
@@ -113,8 +118,13 @@ debugdump(LIBSSH2_SESSION * session,=0A=
if (session->tracehandler)=0A=
(session->tracehandler)(session, =
session->tracehandler_context,=0A=
buffer, used);=0A=
- else=0A=
+ else {=0A=
+#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A=
+ _libssh2_WIN32_trace("%s\n", buffer);=0A=
+#else=0A=
fprintf(stderr, "%s", buffer);=0A=
+#endif=0A=
+ }=0A=
}=0A=
}=0A=
#else=0A=
-- =0A=
1.9.0.msysgit.0=0A=
=0A=
------=_NextPart_000_0029_01CF5351.1B0AE930
Content-Type: application/octet-stream;
name="0003-in-Windows-a-socket-is-of-type-SOCKET-not-int.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="0003-in-Windows-a-socket-is-of-type-SOCKET-not-int.patch"
From 24da71bea424b528ad69c45ac6433b9ea45b26cf Mon Sep 17 00:00:00 2001=0A=
From: Bob Kast =0A=
Date: Thu, 20 Mar 2014 14:43:33 -0400=0A=
Subject: [PATCH 3/5] in Windows, a socket is of type SOCKET, not int=0A=
=0A=
---=0A=
include/libssh2.h | 2 +-=0A=
1 file changed, 1 insertion(+), 1 deletion(-)=0A=
=0A=
diff --git a/include/libssh2.h b/include/libssh2.h=0A=
index 3cb2be5..f0139ff 100644=0A=
--- a/include/libssh2.h=0A=
+++ b/include/libssh2.h=0A=
@@ -281,7 +281,7 @@ typedef struct _LIBSSH2_POLLFD {=0A=
unsigned char type; /* LIBSSH2_POLLFD_* below */=0A=
=0A=
union {=0A=
- int socket; /* File descriptors -- examined with system =
select() call */=0A=
+ libssh2_socket_t socket; /* File descriptors -- examined with =
system select() call */=0A=
LIBSSH2_CHANNEL *channel; /* Examined by checking internal =
state */=0A=
LIBSSH2_LISTENER *listener; /* Read polls only -- are inbound=0A=
connections waiting to be =
accepted? */=0A=
-- =0A=
1.9.0.msysgit.0=0A=
=0A=
------=_NextPart_000_0029_01CF5351.1B0AE930
Content-Type: application/octet-stream;
name="0004-a-1-bit-bit-field-should-be-unsigned-some-compilers-.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="0004-a-1-bit-bit-field-should-be-unsigned-some-compilers-.patch"
From e027259c5112e215b1bf61e9188a33f6d409521f Mon Sep 17 00:00:00 2001=0A=
From: Bob Kast =0A=
Date: Thu, 20 Mar 2014 14:45:46 -0400=0A=
Subject: [PATCH 4/5] a 1 bit bit-field should be unsigned - some =
compilers may=0A=
not like this=0A=
=0A=
---=0A=
src/libssh2_priv.h | 2 +-=0A=
1 file changed, 1 insertion(+), 1 deletion(-)=0A=
=0A=
diff --git a/src/libssh2_priv.h b/src/libssh2_priv.h=0A=
index 461d14c..8f11709 100644=0A=
--- a/src/libssh2_priv.h=0A=
+++ b/src/libssh2_priv.h=0A=
@@ -576,7 +576,7 @@ struct _LIBSSH2_SESSION=0A=
=0A=
/* Agreed Key Exchange Method */=0A=
const LIBSSH2_KEX_METHOD *kex;=0A=
- int burn_optimistic_kexinit:1;=0A=
+ unsigned int burn_optimistic_kexinit:1;=0A=
=0A=
unsigned char *session_id;=0A=
uint32_t session_id_len;=0A=
-- =0A=
1.9.0.msysgit.0=0A=
=0A=
------=_NextPart_000_0029_01CF5351.1B0AE930
Content-Type: application/octet-stream;
name="0005-openssl-should-not-compile-unless-it-is-specifically.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="0005-openssl-should-not-compile-unless-it-is-specifically.patch"
From 92f5a7564ab65159c78cdaf525379ee2f1c3728c Mon Sep 17 00:00:00 2001=0A=
From: Bob Kast =0A=
Date: Thu, 20 Mar 2014 14:47:00 -0400=0A=
Subject: [PATCH 5/5] openssl should not compile unless it is specifically=0A=
enabled with LIBSSH2_OPENSSL=0A=
=0A=
---=0A=
src/openssl.c | 4 ++++=0A=
1 file changed, 4 insertions(+)=0A=
=0A=
diff --git a/src/openssl.c b/src/openssl.c=0A=
index b26842b..371bc9e 100644=0A=
--- a/src/openssl.c=0A=
+++ b/src/openssl.c=0A=
@@ -38,6 +38,8 @@=0A=
* OF SUCH DAMAGE.=0A=
*/=0A=
=0A=
+#ifdef LIBSSH2_OPENSSL /* compile only if we build with openssl */=0A=
+=0A=
#include "libssh2_priv.h"=0A=
=0A=
#include =0A=
@@ -814,3 +816,5 @@ _libssh2_pub_priv_keyfile(LIBSSH2_SESSION *session,=0A=
EVP_PKEY_free(pk);=0A=
return st;=0A=
}=0A=
+=0A=
+#endif /* LIBSSH2_OPENSSL */=0A=
-- =0A=
1.9.0.msysgit.0=0A=
=0A=
------=_NextPart_000_0029_01CF5351.1B0AE930
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
------=_NextPart_000_0029_01CF5351.1B0AE930--
From libssh2-devel-bounces@cool.haxx.se Fri Apr 11 01:59:59 2014
Return-Path:
Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3ANxCV7009292;
Fri, 11 Apr 2014 01:59:36 +0200
Received: from mail.panic.com (posh.panic.com [38.103.165.4])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3ANxAlE009057
for ; Fri, 11 Apr 2014 01:59:10 +0200
Received: from [10.0.0.71] (unknown [38.103.165.36])
by mail.panic.com (Postfix) with ESMTPSA id 21FBE97B9EE0
for ; Thu, 10 Apr 2014 16:59:05 -0700 (PDT)
From: James Moore
Subject: libssh2 incompatible with OpenBSD 5.5
Message-Id: <6CCDC3B7-4B64-4EA9-B28D-8730DBC8ECA5@panic.com>
Date: Thu, 10 Apr 2014 16:56:32 -0700
To: libssh2-devel@cool.haxx.se
Mime-Version: 1.0 (Mac OS X Mail 7.2 \(1874\))
X-Mailer: Apple Mail (2.1874)
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id
s3ANxAlE009057
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.16
Precedence: list
Reply-To: libssh2 development
List-Id: libssh2 development
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Content-Type: text/plain; charset="windows-1252"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel"
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id s3ANxCV7009292
Hi all, we recently received a report that our iOS app Prompt isn’t working with OpenBSD 5.5. Sure enough, the MAC list that’s sent by libssh2 is incompatible with their new defaults. I logged a bug on this in Trac but it appears it has not been moderated yet.
For reference here’s the list of MACs
libssh2
hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,hmac-ripemd160@openssh.com
OpenBSD 5.5
umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512
If we decide to add these ourselves will it just be a matter of creating the necessary openssl wrappers?
--
James
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
From libssh2-devel-bounces@cool.haxx.se Fri Apr 11 21:30:10 2014
Return-Path:
Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3BJTfJ3010007;
Fri, 11 Apr 2014 21:30:05 +0200
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3BJTdlU010001
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
for ; Fri, 11 Apr 2014 21:29:39 +0200
Received: (qmail 30382 invoked from network); 11 Apr 2014 19:19:13 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
by localhost with SMTP; 11 Apr 2014 19:19:13 -0000
MIME-Version: 1.0
From: "libssh2 Trac"
X-Trac-Version: 1.0dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 1.0dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Fri, 11 Apr 2014 19:19:13 -0000
X-URL: https://trac.libssh2.org/
Subject: [libssh2] #286: LibSSH2-HEAD can't be used with OpenBSD 5.5
X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/286
Message-ID: <047.ca246143a7db3e54d5f588d7b9825ba8@libssh2.stuge.se>
X-Trac-Ticket-ID: 286
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id s3BJTdlU010001
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.16
Reply-To: trac@libssh2.stuge.se,
libssh2 development
List-Id: libssh2 development
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel"
#286: LibSSH2-HEAD can't be used with OpenBSD 5.5
-------------------------+--------------------
Reporter: jamesmoore | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone: 1.4.3
Component: crypto | Version: 1.4.2
Keywords: | Blocked By:
Blocks: |
-------------------------+--------------------
OpenBSD 5.5 is changing the default MACs available to sshd. Libssh2
supplies the following
hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,hmac-
ripemd160@openssh.com
while OpenBSD 5.5 expects
umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-
sha2-256-etm@openssh.com,hmac-
sha2-512-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-
sha2-256,hmac-sha2-512
It appears libssh2's MAC support needs to be updated.
--
Ticket URL:
libssh2
C library for writing portable SSH2 clients
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
From libssh2-devel-bounces@cool.haxx.se Fri Apr 11 21:31:40 2014
Return-Path:
Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3BJVdri011626;
Fri, 11 Apr 2014 21:31:40 +0200
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3BJVb4X011615
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
for ; Fri, 11 Apr 2014 21:31:37 +0200
Received: (qmail 30649 invoked from network); 11 Apr 2014 19:21:13 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
by localhost with SMTP; 11 Apr 2014 19:21:13 -0000
MIME-Version: 1.0
From: "libssh2 Trac"
X-Trac-Version: 1.0dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 1.0dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Fri, 11 Apr 2014 19:21:13 -0000
X-URL: https://trac.libssh2.org/
Subject: [libssh2] #287: LIBSSH2_FX_PERMISSION_DENIED on reading file from
other user
X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/287
Message-ID: <045.6bdb5c97f79b38a31532dbaed5647b89@libssh2.stuge.se>
X-Trac-Ticket-ID: 287
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id s3BJVb4X011615
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.16
Reply-To: trac@libssh2.stuge.se,
libssh2 development
List-Id: libssh2 development
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel"
#287: LIBSSH2_FX_PERMISSION_DENIED on reading file from other user
---------------------------------------+--------------------
Reporter: pschultz | Owner:
Type: defect | Status: new
Priority: normal | Milestone: 1.4.3
Component: SFTP | Version: 1.4.2
Keywords: sftp open file permission | Blocked By:
Blocks: |
---------------------------------------+--------------------
Hi,
I used the libssh2 examples "sftp.c" and "sftpdir.c", lightly modified to
get more information on the errors.
I have to get files from several subdirectories on a SFTP Server.
Some of these subdirectories ar written by other users, one is written by
the user which I use as login with user and password.
All users are in the same group.
Getting files which are created by "my" user works fine.
But when I try to get the other files then libssh2_sftp_open fails,
libssh2_session_last_error returns -31 (= LIBSSH2_ERROR_SFTP_PROTOCOL) and
libssh2_sftp_last_error returns 3 (= LIBSSH2_FX_PERMISSION_DENIED).
I have no problems reading the directories (libssh2_sftp_opendir /
libssh2_sftp_readdir_ex).
Examples:
My directory on the server:
-rw-rw-r-- 1 My_User Group1 7923 Apr 9 13:49 file1 (ok)
Another directory:
-rw-r--r-- 1 Other_User Group1 1229 Apr 9 00:59 file2 (fails)
The system I work on is SUSE Linux Enterprise Server 11 (i586).
The version of libssh2 is 1.4.3.
/usr/bin/sftp has no problems, I can get all files; same on windows with
WinSCP.
The problem must be on my side.
What could I make better? Are there more steps to do than coded in the
examples?
Thanks
Peter
--
Ticket URL:
libssh2
C library for writing portable SSH2 clients
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
From libssh2-devel-bounces@cool.haxx.se Sun Apr 13 22:38:07 2014
Return-Path:
Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3DKahpd012768;
Sun, 13 Apr 2014 22:37:08 +0200
Received: from mail-vc0-x22c.google.com (mail-vc0-x22c.google.com
[IPv6:2607:f8b0:400c:c03::22c])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3DKaejF012678
(version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
for ; Sun, 13 Apr 2014 22:36:41 +0200
Received: by mail-vc0-f172.google.com with SMTP id la4so6807651vcb.31
for ; Sun, 13 Apr 2014 13:36:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
h=mime-version:date:message-id:subject:from:to:content-type;
bh=OTtXeh4erCpsClBrdbmcJ/IpK7AZorOls62AXOQbW3g=;
b=QSSn/qXtho6QnUzMmubCiuiK8FNaCIkc2Uu4qt06+PQZxF5tD43abljodJ7d7oeQDF
VK3osNntRYZmyJekDwyaFUymnzFqDA457zkj/4o3DOlhA+pz/OwLc5JhO7hFcT23Swl9
7N/ct9acpbn/Bf8MqVV2fduZpy4DyFBYGmwydpW6xJIjx6TjtCVOVl8kc2Vdft9vCx8o
yZBsSm81Pphds+RMNtL2LkVPBiUTbjuCL4o06ZRADEIOG6eunJXI1YZbXLpoZe5l1enf
eAaDW2Jerc33kFxQVaisQftZiCSgHIeFEBa2kmd1mzgdr+/8ouXmHDIzWQSFkNB1+PGW
vqPQ==
MIME-Version: 1.0
X-Received: by 10.52.142.10 with SMTP id rs10mr27442951vdb.3.1397421396438;
Sun, 13 Apr 2014 13:36:36 -0700 (PDT)
Received: by 10.221.63.199 with HTTP; Sun, 13 Apr 2014 13:36:36 -0700 (PDT)
Date: Sun, 13 Apr 2014 22:36:36 +0200
Message-ID:
Subject: Channel timeout
From: =?ISO-8859-2?B?Smn47SCpZXbo7Ws=?=
To: libssh2-devel@cool.haxx.se
Content-Type: multipart/mixed; boundary=bcaec51a7190efd10704f6f2859c
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.16
Precedence: list
Reply-To: libssh2 development
List-Id: libssh2 development
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel"
--bcaec51a7190efd10704f6f2859c
Content-Type: multipart/alternative; boundary=bcaec51a7190efd10204f6f2859a
--bcaec51a7190efd10204f6f2859a
Content-Type: text/plain; charset=ISO-8859-1
Hi, We are dealing with problem during parallel creation of several
channels and creation of direct tcp ip channel for a server that is
unavailable. The whole program runs in a main loop using epoll. For testing
we use dropped packets of forward server (ssh server refuses connection
after three minutes). In case of induced event on server, all channels are
tried out in framework of operation by a method in accordance for a given
state of the channel. Our problems follow as such. 1. Parallel creation of
channels within a framework of a single non-blocking session. Is there any
effective way how to achieve that? 2. The activity on an active channel
cancels the creation of re-routed channel. 3. According to a trace listing
it was found out, that after minute of attempting to create a re-routed
channel within a libssh2 framework an internal timeout is initiated, the
creation is cancelled and a new channel is created internally. This does
not propagate itself into the application. In attachment you can find a
testing code and trace listing where: -lines in the listing in a form
'09.04.2014 10:35:13.912' are listings of the program itself. - A debug
trace listing [libssh2] 60.908507 Conn: Packet requirev retval' is added
for observing of return value
--bcaec51a7190efd10204f6f2859a
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Hi,
We are dealing with problem during parallel creation of several channels an=
d creation of direct tcp ip channel for a server that is unavailable. The w=
hole program runs in a main loop using epoll. For testing we use dropped pa=
ckets of forward server (ssh server refuses connection after three minutes)=
. In case of induced event on server, all channels are tried out in framewo=
rk of operation by a method in accordance for a given state of the channel.=
Our problems follow as such.=20
1. Parallel creation of channels within a framework of a single non-blockin=
g session. Is there any effective way how to achieve that?
2. The activity on an active channel cancels the creation of re-routed chan=
nel.
3. According to a trace listing it was found out, that after minute of atte=
mpting to create a re-routed channel within a libssh2 framework an internal=
timeout is initiated, the creation is cancelled and a new channel is creat=
ed internally. This does not propagate itself into the application.
In attachment you can find a testing code and trace listing where:=20
-lines in the listing in a form '09.04.2014 10:35:13.912' are listi=
ngs of the program itself.
- A debug trace listing [libssh2] 60.908507 Conn: Packet requirev retval=
9; is added for observing of return value
I've implemented an SCP upload function based on t=
he scp_write.c example.
The code works as it should except for w=
hen the size of the file is larger than the available amount of disk space =
on the remote machine.
I get no indication that the entire file =
could not be uploaded to the remote machine.
I've tried using bo=
th libssh2_scp_send and libssh2_scp_send64. I've used libssh2_channel_flush=
to flush the channel and activated tracing. I've checked libssh2_session_l=
ast_error after each call and checked both libssh2_channel_get_exit_status =
and libssh2_channel_get_exit_signal. I get no indication anywhere that the =
disk is full.
What is the correct way to check that the entire f=
ile could be written?
Thanks in advance, Frasse
=
------------186-1398339195207-2--
------------186-1398339195207-1--
--===============0837643205==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
--===============0837643205==--
From libssh2-devel-bounces@cool.haxx.se Wed Apr 30 06:48:43 2014
Return-Path:
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3U4mB1t011815;
Wed, 30 Apr 2014 06:48:36 +0200
Received: from mail-ie0-x22d.google.com (mail-ie0-x22d.google.com
[IPv6:2607:f8b0:4001:c03::22d])
by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3U4m9WZ011803
(version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
for ; Wed, 30 Apr 2014 06:48:10 +0200
Received: by mail-ie0-f173.google.com with SMTP id rp18so1364244iec.18
for ; Tue, 29 Apr 2014 21:48:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
h=mime-version:date:message-id:subject:from:to:content-type;
bh=UllNRyO46oTCnZx3IbLXzKF3qDFLa0hsYboBmO+69Ko=;
b=AmAV49tlBj4Q0tSKUvxiGgUll+kb/mm+Im8ZPIYiQd9+erkldgPSZv2o7AegyxKFS+
w0SigKWtTK6yn43Ok90CXUByqvH1cVbXUpKh4sVZcH8G8zu7PqsZnFTJmdJHLx1bL+66
e0ANA0LBXJOnv08Sq7BxGg3z3ul2Ju/odNx+zNo6RCLTWwM0Ki5djly68id+raS2V80S
YIz0KaTTW7W99DvTgwnM7rkAxsHz8nqMSU5IsXY6GETPqrm0uo+STxF76M7ocModoSX8
uPE79++M/faoX9cFhO+9AG9nTuTHwmzdisT5vzxAY35hnrTivM+Bh+bvulngcyQIhUMb
dlMw==
MIME-Version: 1.0
X-Received: by 10.50.122.67 with SMTP id lq3mr32867154igb.8.1398833284355;
Tue, 29 Apr 2014 21:48:04 -0700 (PDT)
Received: by 10.43.118.7 with HTTP; Tue, 29 Apr 2014 21:48:04 -0700 (PDT)
Date: Wed, 30 Apr 2014 00:48:04 -0400
Message-ID:
Subject: [libss2] direct port forwarding with multiple channels
From: Oliver
To: libssh2-devel@cool.haxx.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.16
Precedence: list
Reply-To: libssh2 development
List-Id: libssh2 development
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel"
Hi all,
I've followed the example here:
http://www.libssh2.org/examples/direct_tcpip.html
Port forwarding now works, but only on one channel, which makes some
operations slow (eg webpages). After about 2 minutes of inactivity,
libssh2_channel_eof returns true and I do the following:
1) free the channel
2) turn blocking back on
3) call libssh2_channel_direct_tcpip_ex to start over with a new channel
When I use putty to port forward, I can see multiple channels opened
within the session and webpages load much faster.
Is there a way to use multiple channels with direct port forwarding in libssh2?
Thanks!
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel