<?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: .NET Assembly FAQ &#8211; Part 3 &#8211; Strong Names and Signing</title>
	<atom:link href="http://www.csharp411.com/net-assembly-faq-part-3-strong-names-and-signing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.csharp411.com/net-assembly-faq-part-3-strong-names-and-signing/</link>
	<description>C# Information, Code, Tips and News</description>
	<lastBuildDate>Tue, 07 Sep 2010 15:50:57 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Add strong name sign to third party dll in .Net &#171; Coding Realities &#8211; stuff from out there</title>
		<link>http://www.csharp411.com/net-assembly-faq-part-3-strong-names-and-signing/comment-page-1/#comment-5581</link>
		<dc:creator>Add strong name sign to third party dll in .Net &#171; Coding Realities &#8211; stuff from out there</dc:creator>
		<pubDate>Tue, 13 Jul 2010 07:33:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.mini-tools.com/at2/csharp/wordpress/net-assembly-faq-part-3-strong-names-and-signing/#comment-5581</guid>
		<description>[...] solutions are signed with a strong name.  (Don&#8217;t know what strong name signing is? Follow this [...]</description>
		<content:encoded><![CDATA[<p>[...] solutions are signed with a strong name.  (Don't know what strong name signing is? Follow this [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adding a strong name to a third party dll &#171; Coding Realities &#8211; stuff from out there</title>
		<link>http://www.csharp411.com/net-assembly-faq-part-3-strong-names-and-signing/comment-page-1/#comment-5580</link>
		<dc:creator>Adding a strong name to a third party dll &#171; Coding Realities &#8211; stuff from out there</dc:creator>
		<pubDate>Tue, 13 Jul 2010 07:29:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.mini-tools.com/at2/csharp/wordpress/net-assembly-faq-part-3-strong-names-and-signing/#comment-5580</guid>
		<description>[...] solutions are signed with a strong name.  (Don&#8217;t know what strong name signing is? Follow this [...]</description>
		<content:encoded><![CDATA[<p>[...] solutions are signed with a strong name.  (Don't know what strong name signing is? Follow this [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mansoor Mehmood</title>
		<link>http://www.csharp411.com/net-assembly-faq-part-3-strong-names-and-signing/comment-page-1/#comment-5382</link>
		<dc:creator>Mansoor Mehmood</dc:creator>
		<pubDate>Tue, 16 Feb 2010 12:49:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.mini-tools.com/at2/csharp/wordpress/net-assembly-faq-part-3-strong-names-and-signing/#comment-5382</guid>
		<description>Thanks for this detailed article. I am not clear about the point you mentioned.

&quot;Requires Exact Match. If you use strong names, your application or library must load the assembly with the exact strong name that you specify, including version and culture. Note that you can bypass this requirement with a publisher policy (to be discussed in a future article).&quot;

I have added a signed dll (test.dll) with version 1.0.1.0 in my exe (test.exe). I built test.dll again with version 1.0.2.0 then I simply copy past the dll to test.exe program it still get executed can please help in this. What I believe or get understood by your above point is that it should not get executed.

Thanks</description>
		<content:encoded><![CDATA[<p>Thanks for this detailed article. I am not clear about the point you mentioned.</p>
<p>"Requires Exact Match. If you use strong names, your application or library must load the assembly with the exact strong name that you specify, including version and culture. Note that you can bypass this requirement with a publisher policy (to be discussed in a future article)."</p>
<p>I have added a signed dll (test.dll) with version 1.0.1.0 in my exe (test.exe). I built test.dll again with version 1.0.2.0 then I simply copy past the dll to test.exe program it still get executed can please help in this. What I believe or get understood by your above point is that it should not get executed.</p>
<p>Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yaron</title>
		<link>http://www.csharp411.com/net-assembly-faq-part-3-strong-names-and-signing/comment-page-1/#comment-5376</link>
		<dc:creator>yaron</dc:creator>
		<pubDate>Mon, 08 Feb 2010 19:19:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.mini-tools.com/at2/csharp/wordpress/net-assembly-faq-part-3-strong-names-and-signing/#comment-5376</guid>
		<description>how can i use x509 certificate created from CA to strong name the code ?</description>
		<content:encoded><![CDATA[<p>how can i use x509 certificate created from CA to strong name the code ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Защищаем .NET программы.</title>
		<link>http://www.csharp411.com/net-assembly-faq-part-3-strong-names-and-signing/comment-page-1/#comment-5284</link>
		<dc:creator>Защищаем .NET программы.</dc:creator>
		<pubDate>Wed, 23 Sep 2009 16:25:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.mini-tools.com/at2/csharp/wordpress/net-assembly-faq-part-3-strong-names-and-signing/#comment-5284</guid>
		<description>[...] Сборки .NET можно подписать ключем, и позволять инклудинг только по публичному ключу. Но это никакая не защита, а простой выход убедится, что версия библиотеки правильная для конкретного приложения. Это также позволяет убедится в целостности приложения. Подробней на английском можно почитать здесь. [...]</description>
		<content:encoded><![CDATA[<p>[...] Сборки .NET можно подписать ключем, и позволять инклудинг только по публичному ключу. Но это никакая не защита, а простой выход убедится, что версия библиотеки правильная для конкретного приложения. Это также позволяет убедится в целостности приложения. Подробней на английском можно почитать здесь. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris</title>
		<link>http://www.csharp411.com/net-assembly-faq-part-3-strong-names-and-signing/comment-page-1/#comment-5283</link>
		<dc:creator>Chris</dc:creator>
		<pubDate>Mon, 21 Sep 2009 18:22:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.mini-tools.com/at2/csharp/wordpress/net-assembly-faq-part-3-strong-names-and-signing/#comment-5283</guid>
		<description>You can store hash (ex. in MD5) of your public key and compare it with hashes from loading assemblies before application starts. To create MD5 hash of the public key of loading assembly you can use:
currentAssembly.GetName().GetPublicKey() and MD5 class.

Now you know if loading assembly contains your public key or not.</description>
		<content:encoded><![CDATA[<p>You can store hash (ex. in MD5) of your public key and compare it with hashes from loading assemblies before application starts. To create MD5 hash of the public key of loading assembly you can use:<br />
currentAssembly.GetName().GetPublicKey() and MD5 class.</p>
<p>Now you know if loading assembly contains your public key or not.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Serge</title>
		<link>http://www.csharp411.com/net-assembly-faq-part-3-strong-names-and-signing/comment-page-1/#comment-3980</link>
		<dc:creator>Serge</dc:creator>
		<pubDate>Fri, 12 Dec 2008 13:52:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.mini-tools.com/at2/csharp/wordpress/net-assembly-faq-part-3-strong-names-and-signing/#comment-3980</guid>
		<description>I have a question about Assembly Versions.
What I have to do in order to use in my application old assembly with new version number? Should I remove the reference and insert it again every time the version is changed? Is there another way?</description>
		<content:encoded><![CDATA[<p>I have a question about Assembly Versions.<br />
What I have to do in order to use in my application old assembly with new version number? Should I remove the reference and insert it again every time the version is changed? Is there another way?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: timm</title>
		<link>http://www.csharp411.com/net-assembly-faq-part-3-strong-names-and-signing/comment-page-1/#comment-2755</link>
		<dc:creator>timm</dc:creator>
		<pubDate>Wed, 20 Aug 2008 21:55:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.mini-tools.com/at2/csharp/wordpress/net-assembly-faq-part-3-strong-names-and-signing/#comment-2755</guid>
		<description>Gnordstrom:

1.  I don&#039;t know for sure, but I would say yes.  You&#039;ll have to test it and let us know what you find.

2.  No, once you lose your pfx password, there is no recovery.  You will be forced to re-issue a new assembly signed with a new public-private key pair.</description>
		<content:encoded><![CDATA[<p>Gnordstrom:</p>
<p>1.  I don't know for sure, but I would say yes.  You'll have to test it and let us know what you find.</p>
<p>2.  No, once you lose your pfx password, there is no recovery.  You will be forced to re-issue a new assembly signed with a new public-private key pair.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gnordstrom</title>
		<link>http://www.csharp411.com/net-assembly-faq-part-3-strong-names-and-signing/comment-page-1/#comment-2754</link>
		<dc:creator>gnordstrom</dc:creator>
		<pubDate>Wed, 20 Aug 2008 20:55:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.mini-tools.com/at2/csharp/wordpress/net-assembly-faq-part-3-strong-names-and-signing/#comment-2754</guid>
		<description>I have two questions about the pfx file that Visual Studio creates:  1.  If the code for an assembly that I originally created and signed with a password protected pfx file, is recompiled by another developer on their machine with my pfx file does the dll contain the same strong name as the one compile on my machine?  2.  If I forget the password for a pfx file is there any way to decrypt the pfx file to obtain the password?  
Thanks!</description>
		<content:encoded><![CDATA[<p>I have two questions about the pfx file that Visual Studio creates:  1.  If the code for an assembly that I originally created and signed with a password protected pfx file, is recompiled by another developer on their machine with my pfx file does the dll contain the same strong name as the one compile on my machine?  2.  If I forget the password for a pfx file is there any way to decrypt the pfx file to obtain the password?<br />
Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: timm</title>
		<link>http://www.csharp411.com/net-assembly-faq-part-3-strong-names-and-signing/comment-page-1/#comment-1049</link>
		<dc:creator>timm</dc:creator>
		<pubDate>Wed, 21 May 2008 20:39:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.mini-tools.com/at2/csharp/wordpress/net-assembly-faq-part-3-strong-names-and-signing/#comment-1049</guid>
		<description>There are two types of signing (it&#039;s unfortunate both use the same name).  There&#039;s &quot;signing&quot; to give the assembly a strong assembly name, as described above, and there&#039;s &quot;signing&quot; to verify the application hasn&#039;t been tampered with.  The former uses .snk files.  The latter uses .pvk, .cer, and .pfx files.  

* A public key (.cer file) is given by a Certificate Authority (trusted third party)
* A private key (.pvk file) you generate and keep confidential
* A Personal Information Exchange (pfx file) contains a public key and a private key.

Here is an article that contrasts the two types of signing:

http://www.robrich.org/archive/2006/11/29/Code-Signing-two-worlds-defined.aspx</description>
		<content:encoded><![CDATA[<p>There are two types of signing (it's unfortunate both use the same name).  There's "signing" to give the assembly a strong assembly name, as described above, and there's "signing" to verify the application hasn't been tampered with.  The former uses .snk files.  The latter uses .pvk, .cer, and .pfx files.  </p>
<p>* A public key (.cer file) is given by a Certificate Authority (trusted third party)<br />
* A private key (.pvk file) you generate and keep confidential<br />
* A Personal Information Exchange (pfx file) contains a public key and a private key.</p>
<p>Here is an article that contrasts the two types of signing:</p>
<p><a href="http://www.robrich.org/archive/2006/11/29/Code-Signing-two-worlds-defined.aspx" rel="nofollow">http://www.robrich.org/archive/2006/11/29/Code-Signing-two-worlds-defined.aspx</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
