<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: OpenSSL v0.9.8m for Indy</title>
	<atom:link href="http://blog.digivendo.com/2010/03/openssl-v0-9-8m-for-indy/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.digivendo.com/2010/03/openssl-v0-9-8m-for-indy/</link>
	<description>Delphi Development &#38; More</description>
	<lastBuildDate>Thu, 02 Feb 2012 12:34:08 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
	<item>
		<title>By: Arvid&#8217;s Blog @ digivendo &#187; Important Compatibility Announcement regarding OpenSSL</title>
		<link>http://blog.digivendo.com/2010/03/openssl-v0-9-8m-for-indy/comment-page-1/#comment-5707</link>
		<dc:creator>Arvid&#8217;s Blog @ digivendo &#187; Important Compatibility Announcement regarding OpenSSL</dc:creator>
		<pubDate>Thu, 24 Mar 2011 20:58:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=233#comment-5707</guid>
		<description>[...] Since mid 2010 I used a different approach in building the libraries, instead of my old-fashined mingw gcc 3.4.5 build chain Salvor came up with the idea to use VC++ with special adjustments as posted in his comment here. [...]</description>
		<content:encoded><![CDATA[<p>[...] Since mid 2010 I used a different approach in building the libraries, instead of my old-fashined mingw gcc 3.4.5 build chain Salvor came up with the idea to use VC++ with special adjustments as posted in his comment here. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arvid</title>
		<link>http://blog.digivendo.com/2010/03/openssl-v0-9-8m-for-indy/comment-page-1/#comment-5219</link>
		<dc:creator>Arvid</dc:creator>
		<pubDate>Fri, 19 Mar 2010 12:39:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=233#comment-5219</guid>
		<description>&lt;a href=&quot;#comment-5218&quot; rel=&quot;nofollow&quot;&gt;@Joe&lt;/a&gt; 
Shalom Joe ;)

No, I disagree that a version information makes a file unsuspicious. We build the files 1:1 using the OpenSSL make process, any change to that process will actually make the files &quot;suspicious&quot;, even if those changes are just related to version info.

OpenSSL provides version information through it&#039;s API, that&#039;s the way to go, especially when talking about our experimental FIPS versions.

Cheers,
Arvid</description>
		<content:encoded><![CDATA[<p><a href="#comment-5218" rel="nofollow">@Joe</a><br />
Shalom Joe <img src='http://blog.digivendo.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>No, I disagree that a version information makes a file unsuspicious. We build the files 1:1 using the OpenSSL make process, any change to that process will actually make the files &#8220;suspicious&#8221;, even if those changes are just related to version info.</p>
<p>OpenSSL provides version information through it&#8217;s API, that&#8217;s the way to go, especially when talking about our experimental FIPS versions.</p>
<p>Cheers,<br />
Arvid</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joe</title>
		<link>http://blog.digivendo.com/2010/03/openssl-v0-9-8m-for-indy/comment-page-1/#comment-5218</link>
		<dc:creator>Joe</dc:creator>
		<pubDate>Fri, 19 Mar 2010 08:59:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=233#comment-5218</guid>
		<description>When you click properties on them, both files don&#039;t have a version tab, which is very suspicious.</description>
		<content:encoded><![CDATA[<p>When you click properties on them, both files don&#8217;t have a version tab, which is very suspicious.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arvid</title>
		<link>http://blog.digivendo.com/2010/03/openssl-v0-9-8m-for-indy/comment-page-1/#comment-5216</link>
		<dc:creator>Arvid</dc:creator>
		<pubDate>Tue, 16 Mar 2010 08:06:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=233#comment-5216</guid>
		<description>&lt;a href=&quot;#comment-5214&quot; rel=&quot;nofollow&quot;&gt;@Risto Tamme&lt;/a&gt; 
Hi Risto,

I&#039;ll reply to your question in the Embarcadero Forums at https://forums.codegear.com/thread.jspa?threadID=34251 shortly.

Regards,
Arvid</description>
		<content:encoded><![CDATA[<p><a href="#comment-5214" rel="nofollow">@Risto Tamme</a><br />
Hi Risto,</p>
<p>I&#8217;ll reply to your question in the Embarcadero Forums at <a href="https://forums.codegear.com/thread.jspa?threadID=34251" rel="nofollow">https://forums.codegear.com/thread.jspa?threadID=34251</a> shortly.</p>
<p>Regards,<br />
Arvid</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Risto Tamme</title>
		<link>http://blog.digivendo.com/2010/03/openssl-v0-9-8m-for-indy/comment-page-1/#comment-5214</link>
		<dc:creator>Risto Tamme</dc:creator>
		<pubDate>Sun, 14 Mar 2010 08:20:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=233#comment-5214</guid>
		<description>Hei 

I have a problem with OpenSSL v0.9.8m for Indy (I use 10.5.5). My code works fine with Indy 9.X and OpenSSL v0.9.7, but now I use Delphi 2010 with Indy 10.5.5 and OpenSSL v0.9.8m and there is access violation. Any suggestions?

uses IdSSL, IdSSLOpenSSL, IdSSLOpenSSLHeaders
...
function RSA_new:pRSA; cdecl; external &#039;libeay32.dll&#039;;//this function was not described in IdSSLOpenSSLHeaders.pas
function BN_bin2bn(const _from: pointer; len: integer; ret: pBIGNUM): pBIGNUM; cdecl; external &#039;libeay32.dll&#039;;//this function was not described in IdSSLOpenSSLHeaders.pas
...

procedure TForm1.Button1Click(Sender: TObject);
var
publicKey, Signature, ResultArray : array[1..256] of AnsiChar;
publicKeyExponent : array [1 .. 3] of ansichar;
resultValue, keyLen, exponentLen : Integer;
CryptLibHandle : Cardinal;
rsaMethods : IdSSLOpenSSLHeaders.RSA_METHOD;
rsaBody : IdSSLOpenSSLHeaders.pRSA;
begin

//...
//publicKey, Signature, publicKeyExponent are assigned, also keyLen and exponentLen gets his value
//...

if not IdSSLOpenSSL.LoadOpenSSLLibrary then begin
MessageDlg(&#039;Unable to load SSL library&#039;,mtInformation,[mbOK],0);
exit;
end;

rsaBody := RSA_new;

CryptLibHandle := IdSSLOpenSSLHeaders.GetCryptLibHandle;
rsaMethods.rsa_pub_dec := GetProcAddress(CryptLibHandle, PChar(&#039;RSA_public_decrypt&#039;));//this method was not initilaized in LoadOpenSSLLibrary

if @rsaMethods.rsa_pub_dec = nil then begin
MessageDlg(&#039;Unable to load function rsa_pub_dec&#039;,mtInformation,[mbOK],0);
exit;
end;

rsaBody.n := BN_bin2bn(@publicKey, keyLen, rsaBody.n);
rsaBody.e := BN_bin2bn(@publicKeyExponent, exponentLen, rsaBody.e);

resultValue := rsaMethods.rsa_pub_dec(keyLen,@Signature,@ResultArray,rsaBody,OPENSSL_RSA_NO_PADDING);//access violation at address 61D9484F in module libeay32.dll :(
end;</description>
		<content:encoded><![CDATA[<p>Hei </p>
<p>I have a problem with OpenSSL v0.9.8m for Indy (I use 10.5.5). My code works fine with Indy 9.X and OpenSSL v0.9.7, but now I use Delphi 2010 with Indy 10.5.5 and OpenSSL v0.9.8m and there is access violation. Any suggestions?</p>
<p>uses IdSSL, IdSSLOpenSSL, IdSSLOpenSSLHeaders<br />
&#8230;<br />
function RSA_new:pRSA; cdecl; external &#8216;libeay32.dll&#8217;;//this function was not described in IdSSLOpenSSLHeaders.pas<br />
function BN_bin2bn(const _from: pointer; len: integer; ret: pBIGNUM): pBIGNUM; cdecl; external &#8216;libeay32.dll&#8217;;//this function was not described in IdSSLOpenSSLHeaders.pas<br />
&#8230;</p>
<p>procedure TForm1.Button1Click(Sender: TObject);<br />
var<br />
publicKey, Signature, ResultArray : array[1..256] of AnsiChar;<br />
publicKeyExponent : array [1 .. 3] of ansichar;<br />
resultValue, keyLen, exponentLen : Integer;<br />
CryptLibHandle : Cardinal;<br />
rsaMethods : IdSSLOpenSSLHeaders.RSA_METHOD;<br />
rsaBody : IdSSLOpenSSLHeaders.pRSA;<br />
begin</p>
<p>//&#8230;<br />
//publicKey, Signature, publicKeyExponent are assigned, also keyLen and exponentLen gets his value<br />
//&#8230;</p>
<p>if not IdSSLOpenSSL.LoadOpenSSLLibrary then begin<br />
MessageDlg(&#8216;Unable to load SSL library&#8217;,mtInformation,[mbOK],0);<br />
exit;<br />
end;</p>
<p>rsaBody := RSA_new;</p>
<p>CryptLibHandle := IdSSLOpenSSLHeaders.GetCryptLibHandle;<br />
rsaMethods.rsa_pub_dec := GetProcAddress(CryptLibHandle, PChar(&#8216;RSA_public_decrypt&#8217;));//this method was not initilaized in LoadOpenSSLLibrary</p>
<p>if @rsaMethods.rsa_pub_dec = nil then begin<br />
MessageDlg(&#8216;Unable to load function rsa_pub_dec&#8217;,mtInformation,[mbOK],0);<br />
exit;<br />
end;</p>
<p>rsaBody.n := BN_bin2bn(@publicKey, keyLen, rsaBody.n);<br />
rsaBody.e := BN_bin2bn(@publicKeyExponent, exponentLen, rsaBody.e);</p>
<p>resultValue := rsaMethods.rsa_pub_dec(keyLen,@Signature,@ResultArray,rsaBody,OPENSSL_RSA_NO_PADDING);//access violation at address 61D9484F in module libeay32.dll <img src='http://blog.digivendo.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
end;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arvid</title>
		<link>http://blog.digivendo.com/2010/03/openssl-v0-9-8m-for-indy/comment-page-1/#comment-5210</link>
		<dc:creator>Arvid</dc:creator>
		<pubDate>Tue, 09 Mar 2010 14:17:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=233#comment-5210</guid>
		<description>&lt;a href=&quot;#comment-5208&quot; rel=&quot;nofollow&quot;&gt;@Salvor&lt;/a&gt; 

Nice solution, despite I think we will get troubles with our internal test regarding the FIPS versions of OpenSSL when we adjust the build process.

I would suggest you open a ticket at the RT of the OpenSSL team for a feature request about. I will of course support this approach!

Regarding C++ Builder I am still looking forward for David Dean&#039;s tests: http://blogs.embarcadero.com/ddean/2009/11/11/34858

He says he has this on his list.

Cheers,
Arvid</description>
		<content:encoded><![CDATA[<p><a href="#comment-5208" rel="nofollow">@Salvor</a> </p>
<p>Nice solution, despite I think we will get troubles with our internal test regarding the FIPS versions of OpenSSL when we adjust the build process.</p>
<p>I would suggest you open a ticket at the RT of the OpenSSL team for a feature request about. I will of course support this approach!</p>
<p>Regarding C++ Builder I am still looking forward for David Dean&#8217;s tests: <a href="http://blogs.embarcadero.com/ddean/2009/11/11/34858" rel="nofollow">http://blogs.embarcadero.com/ddean/2009/11/11/34858</a></p>
<p>He says he has this on his list.</p>
<p>Cheers,<br />
Arvid</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Salvor</title>
		<link>http://blog.digivendo.com/2010/03/openssl-v0-9-8m-for-indy/comment-page-1/#comment-5208</link>
		<dc:creator>Salvor</dc:creator>
		<pubDate>Tue, 09 Mar 2010 01:56:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=233#comment-5208</guid>
		<description>Hi Arvid,

Yes, I checked using Dependency Walker. 
Here&#039;s what I did using Microsoft Visual C++ 2008 SP1:

1. perl Configure VC-WIN32 --prefix=c:/temp
2. notepad.exe ms\ntdll.mak  // replace &quot;/MD&quot; with &quot;/MT&quot;
3. ms\do_masm
4. nmake -f ms\ntdll.mak
5. nmake -f ms\ntdll.mak test
6. editbin.exe /rebase:base=0x11000000 libeay32.dll
7. editbin.exe /rebase:base=0x12000000 ssleay32.dll

IMHO, building with Embarcadero C++ 2010 and being able to static link  into a Delphi or Embarcadero C++ EXE would be super.  I hate using DLLs for crypto since calls are so easy to intercept (no programming skills needed.)</description>
		<content:encoded><![CDATA[<p>Hi Arvid,</p>
<p>Yes, I checked using Dependency Walker.<br />
Here&#8217;s what I did using Microsoft Visual C++ 2008 SP1:</p>
<p>1. perl Configure VC-WIN32 &#8211;prefix=c:/temp<br />
2. notepad.exe ms\ntdll.mak  // replace &#8220;/MD&#8221; with &#8220;/MT&#8221;<br />
3. ms\do_masm<br />
4. nmake -f ms\ntdll.mak<br />
5. nmake -f ms\ntdll.mak test<br />
6. editbin.exe /rebase:base=0&#215;11000000 libeay32.dll<br />
7. editbin.exe /rebase:base=0&#215;12000000 ssleay32.dll</p>
<p>IMHO, building with Embarcadero C++ 2010 and being able to static link  into a Delphi or Embarcadero C++ EXE would be super.  I hate using DLLs for crypto since calls are so easy to intercept (no programming skills needed.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arvid</title>
		<link>http://blog.digivendo.com/2010/03/openssl-v0-9-8m-for-indy/comment-page-1/#comment-5207</link>
		<dc:creator>Arvid</dc:creator>
		<pubDate>Tue, 09 Mar 2010 00:23:08 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=233#comment-5207</guid>
		<description>Hi Salvor,

yes the lack of C++ Builder support is one of the reasons to use gcc. The DLLs you created are usable with any newer Indy version too, there are no more adjustments needed. We are &quot;just&quot; publishing them in order to provide something like an out-of-the-box experience when using Indy and SSL/TLS (without the need for MS VC Runtime DLLs as you already mentioned and most precompiled OpenSSL libraries available need).

The drawback of using gcc is a slightly larger size of the resulting files.

One thing regarding your experience: Are you sure there are no dependencies? I mean did you check it with Dependency Walker or something like that? If so, I will need to check that again, regarding Win32 we might move to that build environment after doing some tests.

Cheers,
Arvid</description>
		<content:encoded><![CDATA[<p>Hi Salvor,</p>
<p>yes the lack of C++ Builder support is one of the reasons to use gcc. The DLLs you created are usable with any newer Indy version too, there are no more adjustments needed. We are &#8220;just&#8221; publishing them in order to provide something like an out-of-the-box experience when using Indy and SSL/TLS (without the need for MS VC Runtime DLLs as you already mentioned and most precompiled OpenSSL libraries available need).</p>
<p>The drawback of using gcc is a slightly larger size of the resulting files.</p>
<p>One thing regarding your experience: Are you sure there are no dependencies? I mean did you check it with Dependency Walker or something like that? If so, I will need to check that again, regarding Win32 we might move to that build environment after doing some tests.</p>
<p>Cheers,<br />
Arvid</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Salvor</title>
		<link>http://blog.digivendo.com/2010/03/openssl-v0-9-8m-for-indy/comment-page-1/#comment-5206</link>
		<dc:creator>Salvor</dc:creator>
		<pubDate>Tue, 09 Mar 2010 00:10:56 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=233#comment-5206</guid>
		<description>I didn&#039;t know Arvid would post this today, so I tried a few things.

My findings were surprising.

I was unable to build OpenSSL 0.98m using Embarcadero C++ 2010.

I tried building OpenSSL 0.98m with Microsoft Visual C++ 2008 using the instructions in INSTALL.W32.  But the default settings require deploying MSVC runtime DLL.

I changed &quot;/MD&quot; to &quot;/MT&quot; in ms/ntdll.mak and resulting DLL&#039;s don&#039;t require any more runtime DLL&#039;s than MinGW.  

No MSVC++ runtime DLL&#039;s needed and OpenSSL binaries are smaller compared to ones compiled by MinGW!  If I had time, I&#039;d do benchmarks.

So far, it is working great with Delphi 2010 apps using Synapse.  I haven&#039;t done multithreaded stress tests, yet.

Embarcadero needs to work with the OpenSSL team, because Borland C++ 5.0 is the latest version mentioned by OpenSSL.  That is embarrassing as not being able to compile.</description>
		<content:encoded><![CDATA[<p>I didn&#8217;t know Arvid would post this today, so I tried a few things.</p>
<p>My findings were surprising.</p>
<p>I was unable to build OpenSSL 0.98m using Embarcadero C++ 2010.</p>
<p>I tried building OpenSSL 0.98m with Microsoft Visual C++ 2008 using the instructions in INSTALL.W32.  But the default settings require deploying MSVC runtime DLL.</p>
<p>I changed &#8220;/MD&#8221; to &#8220;/MT&#8221; in ms/ntdll.mak and resulting DLL&#8217;s don&#8217;t require any more runtime DLL&#8217;s than MinGW.  </p>
<p>No MSVC++ runtime DLL&#8217;s needed and OpenSSL binaries are smaller compared to ones compiled by MinGW!  If I had time, I&#8217;d do benchmarks.</p>
<p>So far, it is working great with Delphi 2010 apps using Synapse.  I haven&#8217;t done multithreaded stress tests, yet.</p>
<p>Embarcadero needs to work with the OpenSSL team, because Borland C++ 5.0 is the latest version mentioned by OpenSSL.  That is embarrassing as not being able to compile.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

