<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TylerBurton.ca &#187; Free Software</title>
	<atom:link href="http://www.tylerburton.ca/category/tech/software/free-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tylerburton.ca</link>
	<description></description>
	<lastBuildDate>Tue, 10 Jan 2012 04:41:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>RSA-768: Nothing to worry about</title>
		<link>http://www.tylerburton.ca/2010/01/rsa-768-nothing-to-worry-about/</link>
		<comments>http://www.tylerburton.ca/2010/01/rsa-768-nothing-to-worry-about/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 01:19:35 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[Computer security]]></category>
		<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Asymmetric Encryption]]></category>
		<category><![CDATA[Cryptography]]></category>
		<category><![CDATA[ElGamal]]></category>
		<category><![CDATA[GPG]]></category>
		<category><![CDATA[PGP]]></category>
		<category><![CDATA[Public Key]]></category>
		<category><![CDATA[RSA]]></category>
		<category><![CDATA[RSA-768]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=256</guid>
		<description><![CDATA[I have been meaning to write up a short post about this for a while, but thanks to the start of a new school term I have been a bit busy. If you have seen the security news in the last month or so you will know that RSA-768, a 768bit or 232 decimal digit [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I have been meaning to write up a short post about this for a while, but thanks to the start of a new school term I have been a bit busy.</p>
<p>If you have seen the <a href="http://science.slashdot.org/story/10/01/07/1623249/Factorization-of-a-768-Bit-RSA-Modulus?from=rss&amp;utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29" target="_blank">security news</a> in the last month or so you will know that RSA-768, a 768bit or 232 decimal digit asymmetric key, has been broken (factored). This has <a href="http://www.schneier.com/blog/archives/2010/01/768-bit_number.html" target="_blank">important security repercussions</a> for all of us because it is these public key algorithms like <a href="http://en.wikipedia.org/wiki/RSA" target="_blank">RSA</a>, or <a href="http://en.wikipedia.org/wiki/ElGamal_encryption" target="_blank">ElGamal</a>, that guard our <a href="http://en.wikipedia.org/wiki/Transport_Layer_Security" target="_blank">online transactions</a>, and <a href="http://www.tylerburton.ca/2009/10/security-tip-3-public-key-cryptography-pgp/" target="_blank">e-mail conversations</a>.</p>
<h2>So just how much should we be worrying about this newest &#8216;break&#8217;?</h2>
<p>When it comes to public key cryptography it is important to remember that their security is essentially in our inability to factor them quickly. The only real way that public key cryptography could be considered broken is if we find a way to <a href="http://en.wikipedia.org/wiki/Shor%27s_algorithm" target="_blank">drastically increase</a> our ability to factor massive prime numbers. Thankfully that time is still far away. In fact after digging into the news articles a little more it quickly became obvious that the feat of factoring a 768bit key, <a href="http://arstechnica.com/security/news/2010/01/768-bit-rsa-cracked-1024-bit-safe-for-now.ars" target="_blank">while incredibly difficult</a>, was inevitable.</p>
<h2>So what now?</h2>
<p>Nothing. Currently the most popular asymmetric key size in use is 1024bit, which represents a work load increase of over 1000 times when compared to RSA-768. Still afraid? Check out <a href="http://en.wikipedia.org/wiki/RSA_numbers" target="_blank">the list of RSA challenges</a> that have been issued over the years and just how few have actually be &#8216;broken&#8217;.</p>
<p>In choosing my current <a href="http://en.wikipedia.org/wiki/Pretty_Good_Privacy" target="_blank">PGP</a>/<a href="http://en.wikipedia.org/wiki/GNU_Privacy_Guard" target="_blank">GPG</a> public key I decided to go with a 2048bit one, which, according to all accounts, will be safe for years to come. As always, <a href="http://www.tylerburton.ca/2009/09/security-tip-2-key-lengths/" target="_blank">I recommend</a> checking out <a href="http://www.keylength.com/" target="_blank">this site</a> for the most up to date key length recommendations from the world&#8217;s foremost cryptography experts.</p>
<h2>There you have it</h2>
<p>With the knowledge that you&#8217;re online transactions are still perfectly safe you have nothing to worry about.</p>
<p>For reference, the currently recommended key lengths for asymmetric encryption algorithms, like RSA, are 1976bit (BSI recommendation for use after 2016), 2048bit (NSA recommendation for current and future use), and 2432 (ECRYPT II recommendation for protection until at least 2030).</p>
<div class="shr-publisher-256"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2010/01/rsa-768-nothing-to-worry-about/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XMLVM makes all programming languages portable</title>
		<link>http://www.tylerburton.ca/2010/01/xmlvm-makes-all-programming-languages-portable/</link>
		<comments>http://www.tylerburton.ca/2010/01/xmlvm-makes-all-programming-languages-portable/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 00:22:19 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Obj-C]]></category>
		<category><![CDATA[portable code]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XMLVM]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=219</guid>
		<description><![CDATA[I honestly don&#8217;t remember how I came across this awesome project but I am certainly glad I did! XMLVM is a software toolchain which is designed to take cross-compilation to a whole new level. Rather than just offer OS portability, XMLVM is able to actually offer OS, hardware and programming language portability. Here&#8217;s how it [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I honestly don&#8217;t remember how I came across this awesome project but I am certainly glad I did! <a href="http://www.xmlvm.org/" target="_blank">XMLVM</a> is a software toolchain which is designed to take <a href="http://en.wikipedia.org/wiki/Cross_compiler" target="_blank">cross-compilation</a> to a whole new level. Rather than just offer <a href="http://en.wikipedia.org/wiki/Operating_system" target="_blank">OS</a> portability, XMLVM is able to actually offer OS, hardware <em>and</em> programming language portability.</p>
<p>Here&#8217;s how it works: you write a program in a programming language of your choice, say <a href="http://en.wikipedia.org/wiki/.NET_Framework" target="_blank">.NET</a>. Once compiled you send it through the first step of XMLVM which analyzes the produced <a href="http://en.wikipedia.org/wiki/Common_Language_Infrastructure" target="_blank">CIL</a> and creates an <a href="http://en.wikipedia.org/wiki/XML" target="_blank">XML</a> document out of it. It would end up looking like something similar to this:</p>
<blockquote><p>&lt;clr:ldc type=&#8221;int&#8221; value=&#8221;2&#8243;/&gt;<br />
&lt;clr:rem/&gt;</p></blockquote>
<p>Next this XML document is fed through what XMLVM calls the data-flow analysis (DFA). Basically you can think of DFA as a <a href="http://en.wikipedia.org/wiki/Pseudocode" target="_blank">pseudo-language</a> that simply describes the operations that the program is trying to perform. Once in this form the code is considered portable. XMLVM then lets you pick a target, for example the <a href="http://en.wikipedia.org/wiki/Java_%28software_platform%29" target="_blank">Java</a> <a href="http://en.wikipedia.org/wiki/Java_Virtual_Machine" target="_blank">JVM</a>, and automates the conversion of the DFA to an XML representation of the <a href="http://en.wikipedia.org/wiki/Java_bytecode" target="_blank">java byte code</a>. From there it&#8217;s an easy conversion back to true java byte code.</p>
<p>Now think about this in practical terms for a second. That means that you can write a program in a .NET language (C#), and have it automatically ported and compiled to Java. Expand on this a bit and consider that you can write the same program in <em>any</em> language and have it converted to <em>any</em> other language. Currently the XMLVM offers a lot of other cool options as well and has actually been designed a lot with mobile devices in mind. Now you can write a program once and have it automatically converted to <a href="http://en.wikipedia.org/wiki/Objective-C" target="_blank">Objective-C</a>, to run on the <a href="http://en.wikipedia.org/wiki/IPhone" target="_blank">iPhone</a>, and to Java to run on <a href="http://en.wikipedia.org/wiki/Android_%28operating_system%29" target="_blank">Android</a>.</p>
<p>I really hope that this project continues to improve and I will certainly be watching it closely. It is still very early in development but from what I have seen it is simply brilliant.</p>
<div class="shr-publisher-219"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2010/01/xmlvm-makes-all-programming-languages-portable/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Linux Exeriment is over</title>
		<link>http://www.tylerburton.ca/2010/01/the-linux-exeriment-is-over/</link>
		<comments>http://www.tylerburton.ca/2010/01/the-linux-exeriment-is-over/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 21:34:17 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[The Linux Experiment]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=215</guid>
		<description><![CDATA[Well, at least for now. Check out the site to see what everyone thought about the experiment as a whole. Check it out here: The Linux Experiment]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Well, at least for now. Check out <a href="http://www.thelinuxexperiment.com" target="_blank">the site</a> to see what everyone thought about the experiment as a whole.</p>
<p>Check it out here: <a href="http://www.thelinuxexperiment.com" target="_blank">The Linux Experiment</a></p>
<div class="shr-publisher-215"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2010/01/the-linux-exeriment-is-over/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hash Verifier 0.2.0.0 Released!</title>
		<link>http://www.tylerburton.ca/2009/12/hash-verifier-0-2-0-0-released/</link>
		<comments>http://www.tylerburton.ca/2009/12/hash-verifier-0-2-0-0-released/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 01:17:08 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[Computer security]]></category>
		<category><![CDATA[Created by Tyler Burton]]></category>
		<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[hash verifier]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[tyler burton]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=173</guid>
		<description><![CDATA[That&#8217;s right an update to your favourite hash verification program! This update includes a few new features that some of you might find useful. It also includes help documentation which walks you through how to use it! New Features Menu strip for even easier use Export features allows you to automatically write all of the [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>That&#8217;s right an update to your favourite hash verification program! <img src='http://www.tylerburton.ca/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>This update includes a few new features that some of you might find useful. It also includes help documentation which walks you through how to use it!</p>
<p><strong>New Features</strong></p>
<ul>
<li>Menu strip for even easier use</li>
<li>Export features allows you to automatically write all of the hashes to a single file</li>
<li>About dialog that provides information about the program</li>
<li>Help documentation</li>
</ul>
<p><em>Requirements:</em></p>
<ul>
<li><strong>All platforms:</strong> .NET 2.0+ / Mono, a graphical display</li>
<li><strong>*nix platforms:</strong> WinForms (identified as System.Windows.Forms)</li>
</ul>
<p>As always the binary only package contains just the executable, whereas the all package contains the source code as well.</p>
<table border="1">
<tbody>
<tr>
<td></td>
<td><strong>Binary Only Package</strong></td>
<td><strong>All Package</strong></td>
</tr>
<tr>
<td><strong>File name:</strong></td>
<td>hash_verifier_0_2_0_0_binary.zip</td>
<td>hash_verifier_0_2_0_0_all.zip</td>
</tr>
<tr>
<td><strong>File hashes:</strong></td>
<td style="text-align: center;" colspan="2"><a href="http://www.tylerburton.ca/files/hashes/hash_verifier_0_2_0_0.hashes.txt">Download Here</a></td>
</tr>
<tr>
<td><strong>GPG signature:</strong></td>
<td><a href="http://www.tylerburton.ca/files/sigs/hash_verifier_0_2_0_0_binary.zip.sig" target="_blank">Download Here</a></td>
<td><a href="http://www.tylerburton.ca/files/sigs/hash_verifier_0_2_0_0_all.zip.sig" target="_blank">Download Here</a></td>
</tr>
<tr>
<td><strong>Screenshots:</strong></td>
<td><a href="http://www.tylerburton.ca/files/wordpress/2009/12/img3.png" target="_blank">Screenshot 1</a></td>
<td><a href="http://www.tylerburton.ca/files/wordpress/2009/12/img4.png" target="_blank">Screenshot 2</a></td>
</tr>
<tr>
<td><strong>License:</strong></td>
<td style="text-align: center;" colspan="2">(LGPL) <a href="http://www.gnu.org/licenses/lgpl.html" target="_blank">View Here</a></td>
</tr>
<tr>
<td><strong>Version:</strong></td>
<td style="text-align: center;" colspan="2">0.2.0.0</td>
</tr>
<tr>
<td><strong>File size:</strong></td>
<td>171.5KB</td>
<td>530.1KB</td>
</tr>
<tr>
<td><strong>File download:</strong></td>
<td><a href="http://www.tylerburton.ca/files/apps/hash_verifier_0_2_0_0_binary.zip" target="_blank">Download Here</a></td>
<td><a href="http://www.tylerburton.ca/files/apps/hash_verifier_0_2_0_0_all.zip" target="_blank">Download Here</a></td>
</tr>
</tbody>
</table>
<div class="shr-publisher-173"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2009/12/hash-verifier-0-2-0-0-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The return of the Hash Verifier</title>
		<link>http://www.tylerburton.ca/2009/11/the-return-of-the-hash-verifier/</link>
		<comments>http://www.tylerburton.ca/2009/11/the-return-of-the-hash-verifier/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 01:26:24 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[Created by Tyler Burton]]></category>
		<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[hash verifier]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[MonoDevelop]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows.Forms]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=105</guid>
		<description><![CDATA[Some of you may remember an old Windows program of mine called Hash Verifier. It was a graphical utility that allowed people to generate hashes of their files, and then compare those to known hashes, ensuring that their files had not been corrupted. Well in recent months my foray into the world of Linux has [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Some of you may remember an old Windows program of mine called <a href="http://www.tylerburton.ca/2009/09/hash-verifier/" target="_blank">Hash Verifier</a>. It was a graphical utility that allowed people to generate <a href="http://en.wikipedia.org/wiki/Cryptographic_hash_function" target="_blank">hashes</a> of their files, and then compare those to known hashes, ensuring that their files had not been corrupted. Well in recent months my foray into <a href="http://www.thelinuxexperiment.com" target="_blank">the world of Linux</a> has finally taken me into the realm of programming on that platform. Being primarily a <a href="http://en.wikipedia.org/wiki/.NET_Framework" target="_blank">.NET</a> developer on Windows I have found the <a href="http://mono-project.com/Main_Page" target="_blank">Mono project</a> on Linux to be an absolute breath of fresh air.</p>
<h2>&#8220;Monkey&#8221; project</h2>
<p>The Mono project is an open source implementation of Microsoft&#8217;s .NET common language runtime and a C# compiler. On Linux the easiest way to program in a Mono language is within the project&#8217;s own integrated development environment called <a href="http://en.wikipedia.org/wiki/MonoDevelop" target="_blank">MonoDevelop</a>.</p>
<h2>C is a sharp language</h2>
<p><a href="http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29" target="_blank">C#</a> is a very powerful programming language that falls somewhere between <a href="http://en.wikipedia.org/wiki/C_%28programming_language%29" target="_blank">C</a> and <a href="http://en.wikipedia.org/wiki/Java_%28programming_language%29" target="_blank">Java</a> in terms of syntax. While my experience with C# has been limited in the past, I was easily able to pick it up quickly thanks to my background in both C and Java, as well as fellow .NET language <a href="http://en.wikipedia.org/wiki/Visual_Basic_.NET" target="_blank">Visual Basic</a>.</p>
<h2>The challenge</h2>
<p>Digging up an old .NET project of mine, Hash Verifier, I decided to challenge myself to port the application to Mono. In order to do this I needed to accomplish the following:</p>
<ul>
<li>The original application ran on Microsoft&#8217;s .NET on the Windows platform. The new application must run on both .NET on Windows and Mono on supported platforms.</li>
<li>The original application was written in Visual Basic. The new application must be written in C#.</li>
<li>The original application has a GUI powered by the native Windows.Forms. The new application needs to have a GUI that works in a similar way on all platforms.</li>
<li>The new application must be able to fully re-create all of the old application&#8217;s features and functions.</li>
</ul>
<h2>Porting = easy<span style="text-decoration: underline;"><strong><br />
</strong></span></h2>
<p>I must say that porting this old application to C#/Mono was a relatively straightforward task. Although I had plenty of <a href="http://www.mono-project.com/Gui_Toolkits" target="_blank">GUI toolkits to choose from</a> I ended up sticking with the existing Windows.Forms. Once I had decided on using Windows.Forms as the basis for my GUI (<a href="http://www.mono-project.com/WinForms" target="_blank">WinForms</a> is a free and open source implementation for non-Windows users!) I set out to create my new application. I was literally able to open the old Visual Basic GUI designer file, copy the code into my Mono workspace, change the syntax to C# and voila it worked!</p>
<p>In fact the only tricky part was trying to figure out a compatibility issue that .NET/Mono 2.0 seem to have with the new <a href="http://en.wikipedia.org/wiki/Windows_Presentation_Foundation" target="_blank">Windows Presentation Foundation (WPF)</a>. I&#8217;ll save you the gory details but basically drag and drop functionality would not work. I eventually rectified this issue by including a compiler flag telling .NET/Mono to execute the form in <a href="http://www.csharphelp.com/archives3/archive558.html" target="_blank">single thread apartments</a> mode. You can see where I did this in my code by looking right above my static main function:</p>
<blockquote><p>[STAThreadAttribute]<br />
public static void Main()<br />
{<br />
&#8230;<br />
}</p></blockquote>
<h2>Final result</h2>
<p>With the application complete I must say I am impressed. Crafting and running applications for Mono is extraordinarily simple to do, seems very powerful, and the application itself only takes up a couple of MiB to run. In the future I definitely plan on doing more of this type of development now that I am using different operating systems every day.</p>
<h2>Hash Verifier<span style="text-decoration: underline;"><strong><br />
</strong></span></h2>
<p>If you are <a href="http://www.jonathanfritz.ca/software/automating-command-line-applications-in-visualbasic-dot-net" target="_blank">still</a> <a href="http://www.jonathanfritz.ca/software/opengl-in-visualstudionet-with-the-tao-framework" target="_blank">using</a> the <a href="http://www.jonathanfritz.ca/software/areca-the-open-sourced-backup-solution" target="_blank">old</a> version of Hash Verifier, or if you would just like to try it out you can download the new Hash Verifier in two different ways. The package marked <em>binary only</em> contains just the program itself and the relevant documentation. The package marked <em>all</em> contains both the program, documentation as well as the source code.</p>
<p><em>Requirements:</em></p>
<ul>
<li><strong>All platforms:</strong> .NET 2.0+ / Mono, a graphical display</li>
<li><strong>*nix platforms:</strong> WinForms (identified as System.Windows.Forms)</li>
</ul>
<table border="1">
<tbody>
<tr>
<td></td>
<td><strong>Binary Only Package</strong></td>
<td><strong>All Package</strong></td>
</tr>
<tr>
<td><strong>File name:</strong></td>
<td>hash_verifier_0_1_0_0_binary.zip</td>
<td>hash_verifier_0_1_0_0_all.zip</td>
</tr>
<tr>
<td><strong>File hashes:</strong></td>
<td style="text-align: center;" colspan="2"><a href="http://www.tylerburton.ca/files/hashes/hash_verifier_0_1_0_0.hashes.txt">Download Here</a></td>
</tr>
<tr>
<td><strong>GPG signature:</strong></td>
<td><a href="http://www.tylerburton.ca/files/sigs/hash_verifier_0_1_0_0_binary.zip.sig" target="_blank">Download Here</a></td>
<td><a href="http://www.tylerburton.ca/files/sigs/hash_verifier_0_1_0_0_all.zip.sig" target="_blank">Download Here</a></td>
</tr>
<tr>
<td><strong>License:</strong></td>
<td style="text-align: center;" colspan="2">(LGPL) <a href="http://www.gnu.org/licenses/lgpl.html" target="_blank">View Here</a></td>
</tr>
<tr>
<td><strong>Version:</strong></td>
<td style="text-align: center;" colspan="2">0.1.0.0</td>
</tr>
<tr>
<td><strong>File download:</strong></td>
<td><a href="http://www.tylerburton.ca/files/apps/hash_verifier_0_1_0_0_binary.zip" target="_blank">Download Here</a></td>
<td><a href="http://www.tylerburton.ca/files/apps/hash_verifier_0_1_0_0_all.zip" target="_blank">Download Here</a></td>
</tr>
</tbody>
</table>
<div class="shr-publisher-105"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2009/11/the-return-of-the-hash-verifier/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Change of seasons</title>
		<link>http://www.tylerburton.ca/2009/10/change-of-seasons/</link>
		<comments>http://www.tylerburton.ca/2009/10/change-of-seasons/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 22:42:07 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Fedora 11]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[The Linux Experiment]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=92</guid>
		<description><![CDATA[Over at The Linux Experiment we have decided to shake things up a little bit by forcing a change of desktop environments on everyone. Whatever we have been using thus far as to go for at least two weeks. If you care to follow along you can start by reading about how my transition from [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Over at <a href="http://www.thelinuxexperiment.com" target="_blank">The Linux Experiment</a> we have decided to shake things up a little bit by forcing a change of <a href="http://en.wikipedia.org/wiki/Desktop_environment" target="_blank">desktop environments</a> on everyone. Whatever we have been using thus far as to go for at least two weeks. If you care to follow along you can start by reading about how my transition from KDE to GNOME went below.</p>
<p>Check it out here: <a href="http://thelinuxexperiment.com/guinea-pigs/tyler-b/the-road-to-gnome/" target="_blank"><strong></strong><strong>The road to GNOME</strong></a></p>
<div class="shr-publisher-92"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2009/10/change-of-seasons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Pilot</title>
		<link>http://www.tylerburton.ca/2009/10/the-pilot/</link>
		<comments>http://www.tylerburton.ca/2009/10/the-pilot/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 20:02:59 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[The Linux Experiment]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=82</guid>
		<description><![CDATA[Just wanted to point out that we over at The Linux Experiment have pushed out our first podcast. Join us as we discuss our experiences with Linux, and complain about all of the little issues we&#8217;ve been having. Check it out here: The Linux Experiment Podcast #1: The Pilot]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Just wanted to point out that we over at <a href="http://www.thelinuxexperiment.com" target="_blank">The Linux Experiment</a> have pushed out our first podcast. Join us as we discuss our experiences with Linux, and complain about all of the little issues we&#8217;ve been having.</p>
<p>Check it out here: <a href="http://thelinuxexperiment.com/guinea-pigs/the-linux-experiment-podcast-1-the-pilot/" target="_blank">The Linux Experiment Podcast #1: The Pilot</a></p>
<div class="shr-publisher-82"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2009/10/the-pilot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Security tip #3: public key cryptography &amp; PGP</title>
		<link>http://www.tylerburton.ca/2009/10/security-tip-3-public-key-cryptography-pgp/</link>
		<comments>http://www.tylerburton.ca/2009/10/security-tip-3-public-key-cryptography-pgp/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 19:58:51 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[Computer security]]></category>
		<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[GnuPG]]></category>
		<category><![CDATA[GPG]]></category>
		<category><![CDATA[OpenPGP]]></category>
		<category><![CDATA[PGP]]></category>
		<category><![CDATA[Thunderbird]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=43</guid>
		<description><![CDATA[Public key cryptography is one of the most essential pieces to online security. It is at the root of what enables you to shop online, do secure online banking, and communicate securely. I will be focusing on the latter in this tip. But first a quick and simple refresher on what public key cryptography is [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://en.wikipedia.org/wiki/Public-key_cryptography" target="_blank">Public key cryptography</a> is one of the most essential pieces to <a href="http://en.wikipedia.org/wiki/Transport_Layer_Security" target="_blank">online security</a>. It is at the root of what enables you to shop online, do secure online banking, and communicate securely. I will be focusing on the latter in this tip. But first a quick and simple refresher on what public key cryptography is and how it works.</p>
<h2>How public key cryptography works</h2>
<p>Or rather how you use it. Cryptography allows you can lock any data or information inside of a digital safe. Generally this is done through the use of a shared key (password). This is similar to how you, and only you, can log on to your <a href="http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access" target="_blank">home wireless internet</a>. But what if you don&#8217;t already have a shared key? This is where public key cryptography comes in to play.</p>
<p>Public key crypto works by using two keys instead of one. We will call these keys the public key and the private key. The public key can be thought of as your listing in a phone book, you want everyone to be able to get a hold of it in case they need to get a hold of you. The private key on the other hand is like your voice mail password, you only want one person to know it: you.</p>
<p>Messages and data encrypted with your public key are put into a digital safe that can&#8217;t be opened by anyone, even the person who just put the data into the safe, except you. This is important because it means anyone and everyone can encrypt things to send to you but you will be the only one able to decrypt them, or open the safe.</p>
<p>OK, so I can encrypt things with your public key and only you can open it. Now what?</p>
<p>Now we use it to send private e-mail.</p>
<h2>Pretty Good Privacy (PGP)</h2>
<p><a href="http://en.wikipedia.org/wiki/Pretty_Good_Privacy" target="_blank">PGP</a> uses a system of keys which are actually just public and private keys. If I want to send you a private e-mail I just need to get a hold of your public key. For added integrity I could also <a href="http://en.wikipedia.org/wiki/Digital_signature" target="_blank">sign the message</a> using my private key, which you could then in turn verify with my public key, but that is beyond the scope of this post. Set up correctly not only does PGP allow me to receive secure e-mails, that no one but me can read, but also verify that the person who actually sent me the e-mail is who I think it is.</p>
<h2>GNU Privacy Guard (GnuPG)</h2>
<p><a href="http://en.wikipedia.org/wiki/GNU_Privacy_Guard" target="_blank">GnuPG</a> is a a free and open source implementation of <a href="http://en.wikipedia.org/wiki/Pretty_Good_Privacy#OpenPGP" target="_blank">OpenPGP</a> that is very common. Most Linux distributions come equipped with it by default but Windows users will most likely need to download it. Several e-mail clients also integrate seamlessly with GnuPG which makes things very easy. Others, like <a href="http://en.wikipedia.org/wiki/Microsoft_Outlook" target="_blank">Outlook</a> and <a href="http://en.wikipedia.org/wiki/Mozilla_Thunderbird" target="_blank">Thunderbird</a>, simply require an add-on.</p>
<h2>How to get GnuPG</h2>
<p>This is a simple step but is crucial to getting everything to work. Jump over to the official website, <a href="http://www.gnupg.org/" target="_blank">http://www.gnupg.org/</a>, or hop right over to their <a href="http://www.gnupg.org/download/index.en.html" target="_blank">download section here</a> and grab a copy of it. For Window&#8217;s users you can just grab the binary, indicated by the letter <em>B</em>, while Linux and Mac users should either look in their software repositories or follow the links available. Once installed GnuPG, or <em>gpg</em> as it will be called, should be good to go.</p>
<h2>Generate your first key</h2>
<p>There are a number of different ways to generate your keys, from within the terminal or command line to within your favourite e-mail client. Rather than cover all of the numerous possible ways that you <em>could</em> generate your key I&#8217;m going to only cover two: the terminal and from within Thunderbird (see below).</p>
<p><strong>1.</strong> Open up a terminal or a command prompt</p>
<p><strong>2.</strong> Type:</p>
<blockquote><p>gpg &#8211;gen-key</p></blockquote>
<p>That&#8217;s two dashes before &#8220;gen&#8221;</p>
<p><strong>3.</strong> This should prompt you with the following options:</p>
<blockquote><p>Please select what kind of key you want:<br />
(1) DSA and Elgamal (default)<br />
(2) DSA (sign only)<br />
(5) RSA (sign only)<br />
Your selection?</p></blockquote>
<p>As you can see there are a couple of different options. Let&#8217;s break it down a little. <a href="http://en.wikipedia.org/wiki/Digital_Signature_Algorithm" target="_blank">Digital Signature Algorithm</a>, is the standard way of signing messages. <a href="http://en.wikipedia.org/wiki/ElGamal_encryption" target="_blank">El Gamal</a> is a widespread way of encrypting a message. Finally <a href="http://en.wikipedia.org/wiki/RSA" target="_blank">RSA</a> is a versatile algorithm that can do both (don&#8217;t worry about the <em>sign only</em> part of #5, we can fix that later).</p>
<p>For your first key I recommend making a test key just so you can familiarize yourself with the steps required.</p>
<p><strong>4.</strong> Type the number &#8220;1&#8243; and press Enter. It should now be asking you what size you want the key to be.</p>
<blockquote><p>DSA keypair will have 1024 bits.<br />
ELG-E keys may be between 1024 and 4096 bits long.<br />
What keysize do you want? (2048)</p></blockquote>
<p>The <a href="http://www.tylerburton.ca/2009/09/security-tip-2-key-lengths/" target="_blank">current recommendations</a> seem to be that a 2048 bit key is a very good idea. Creating a larger key will make it more secure but might take a bit longer to generate the key. For now let&#8217;s just go with the default 2048. Press enter.</p>
<p><strong>5.</strong> Next gpg will ask you how long the key should be valid for. This expiry date is important because should you lose your key, or have it compromised, you will at least feel good that eventually it will become invalid. For this example key we will set it to expire tomorrow. In order to do so type &#8220;1&#8243; and press enter. If you wanted it to expire in one week, month, or even year you just need to instead type &#8220;1w&#8221;, &#8220;1m&#8221;, or &#8220;1y&#8221; respectively.</p>
<blockquote><p>Please specify how long the key should be valid.<br />
0 = key does not expire<br />
&lt;n&gt;  = key expires in n days<br />
&lt;n&gt;w = key expires in n weeks<br />
&lt;n&gt;m = key expires in n months<br />
&lt;n&gt;y = key expires in n years<br />
Key is valid for? (0)</p></blockquote>
<p><strong>6.</strong> This is where you would enter your personal information. You don&#8217;t want to lie about this because this key is meant to identify you as <em>you</em> and only <em>you</em>! However for this example I am going to enter the following information:</p>
<blockquote><p>You need a user ID to identify your key; the software constructs the user ID<br />
from the Real Name, Comment and Email Address in this form:<br />
&#8220;Heinrich Heine (Der Dichter) &lt;heinrichh@duesseldorf.de&gt;&#8221;</p>
<p>Real name: Test Key<br />
Email address: testkey@tylerburton.ca<br />
Comment:<br />
You selected this USER-ID:<br />
&#8220;Test Key &lt;testkey@tylerburton.ca&gt;&#8221;</p></blockquote>
<p>Once you have verified this information type &#8220;o&#8221; and hit enter for &#8220;OK&#8221;</p>
<p><strong>7.</strong> It will now prompt you for a passphrase. A passphrase gives your key some additional security. Once your key is generated you want to make sure that <strong>no one</strong> else can get a hold of your private key. If someone does don&#8217;t panic, there are ways for you to revoke the key, but a lot of damage can still be done with someone reading your encrypted e-mails or impersonating you. A passphrase makes it difficult for someone to decrypt your e-mail or impersonate you <em>even if</em> they have a copy of your secret key.</p>
<p><strong>8.</strong> One you finish this GnuPG will generate the large prime numbers used in your key. This may take a while depending on the hardware you are running. When it&#8217;s done you will be shown your key&#8217;s information. It should look something like this:</p>
<blockquote><p>pub   1024D/E1775F9E 2009-10-04 [expires: 2009-10-05]<br />
Key fingerprint = 6DD1 5B41 1279 03E5 1088  225C 5B1B 90A9 E177 5F9E<br />
uid                  Test Key &lt;testkey@tylerburton.ca&gt;<br />
sub   2048g/4DDF6291 2009-10-04 [expires: 2009-10-05]</p></blockquote>
<p><strong>9.</strong> That&#8217;s it! You now have a key that you can use to securely encrypt your e-mail and files. Just be sure to get your public key out to as many people as possible. You can even upload it to a public key server so others can easily retrieve it.</p>
<h2>Setting up Thunderbird</h2>
<p>Obviously these instructions will only work if you use Thunderbird as your mail client. That being said a quick <a href="http://www.google.com" target="_blank">google</a> search provide you with all of the answers you&#8217;ll need to set up PGP with your e-mail client of choice.</p>
<p><strong>1.</strong> Download and install the <a href="https://addons.mozilla.org/en-US/thunderbird/addon/71" target="_blank">Enigmail</a> add-on for Thunderbird.</p>
<p><strong>2.</strong> This will add a title bar option labeled &#8220;OpenPGP.&#8221; You may want to turn on expert mode to give yourself some extra options but that&#8217;s your choice. Inside of this menu you will find something called &#8220;Key Management.&#8221; If you click this, it will show you all of the keys you have stored in your <em>key ring</em>. The ones for which you have a private key are highlighted in <strong>bold</strong>.</p>
<p><strong>3. </strong>Next go into your account settings and you&#8217;ll notice a new option called &#8220;OpenPGP Security.&#8221; Click this and check the box called &#8220;Enable OpenPGP support.&#8221; This will add two small icons to the bottom of your new e-mail composition window. One looks like a pen and when it is highlighted means you will sign the e-mail, proving that you were the one who sent it. The other is a key; if you have the recipient&#8217;s public key you can use this to encrypt the message you are sending so that no one else will be able to read it. Take a look at the options provided and set it up to your liking.</p>
<p><strong>4.</strong> That&#8217;s it! You now have PGP support for your e-mail! If you feel like creating a new key, or even your first key, I would suggest doing so from the Key Manager inside of Enigmail instead of via the command line. It provides a very easy wizard to walk you through.</p>
<h2>Final points</h2>
<p><strong>1.</strong> Hopefully this mini-guide  hasn&#8217;t scared you away from trying PGP yourself. If you are asking yourself <em>&#8216;why should I even bother? I have nothing to hide&#8217;</em> you should take a moment while sending that next e-mail and consider if you instead wrote the same thing on a postcard and sent it on an around the world trip. This analogy gives you an idea of how little privacy your current e-mails have. As they are sent out over the internet they hop from server to server until they reach their destination. You have little to no control over what these servers do with your e-mail. Still have nothing to hide? Then you are far less concerned about identity theft then I am.</p>
<p><strong>2.</strong> I said above, when selecting what type of key to create, that if you chose RSA (sign only) you could still use it to encrypt e-mail. This is true and all you need to do is edit the key by typing:</p>
<blockquote><p>gpg &#8211;edit-key [e-mail address goes here]</p></blockquote>
<p>(that&#8217;s two dashes in front of edit-key) and then on the next prompt entering:</p>
<blockquote><p>addkey</p></blockquote>
<p>This will walk you through adding an additional subkey, this time used for encryption. Just follow the steps as before and you should be set!</p>
<p><strong>3.</strong> Remember PGP can be used for more things than just e-mail. You can also digitally sign documents and files or even encrypt them just like you can with your e-mail.</p>
<p><strong>4.</strong> Now that you have this set up I fully expect any e-mail being sent my way to make use of it <img src='http://www.tylerburton.ca/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div class="shr-publisher-43"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2009/10/security-tip-3-public-key-cryptography-pgp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Setting up some Synergy</title>
		<link>http://www.tylerburton.ca/2009/10/setting-up-some-synergy/</link>
		<comments>http://www.tylerburton.ca/2009/10/setting-up-some-synergy/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 16:28:11 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft Windows]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[synergy]]></category>
		<category><![CDATA[The Linux Experiment]]></category>
		<category><![CDATA[Windows Vista]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=66</guid>
		<description><![CDATA[I just finished up a quick post over on The Linux Experiment about how to share one keyboard and mouse among multiple computers using software, in this case a Windows Vista desktop and a Fedora 11 laptop. Check it out here: Setting up some Synergy]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I just finished up a quick post over on <a href="http://www.thelinuxexperiment.com" target="_blank">The Linux Experiment</a> about how to share one keyboard and mouse among multiple computers using software, in this case a <a href="http://en.wikipedia.org/wiki/Windows_Vista" target="_blank">Windows Vista</a> desktop and a <a href="http://en.wikipedia.org/wiki/Fedora_%28operating_system%29" target="_blank">Fedora 11</a> laptop.</p>
<p>Check it out here: <a href="http://thelinuxexperiment.com/guinea-pigs/tyler-b/setting-up-some-synergy/" target="_blank">Setting up some Synergy</a></p>
<div class="shr-publisher-66"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2009/10/setting-up-some-synergy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Linux Experiment</title>
		<link>http://www.tylerburton.ca/2009/09/the-linux-experiment/</link>
		<comments>http://www.tylerburton.ca/2009/09/the-linux-experiment/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 00:28:42 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft Windows]]></category>
		<category><![CDATA[Proprietary software]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[The Linux Experiment]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=37</guid>
		<description><![CDATA[Some friends and I have decided to give Linux a run for its money. Most of us are experienced Window&#8217;s users so we figured making the transition to Linux would be 1) a good thing for the resumé and 2) a pretty easy switch. Boy were we ever wrong about #2&#8230; #1 is still debatable [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Some friends and I have decided to give <a href="http://en.wikipedia.org/wiki/Linux" target="_blank">Linux</a> a run for its money. Most of us are experienced <a href="http://en.wikipedia.org/wiki/Microsoft_Windows" target="_blank">Window&#8217;s</a> users so we figured making the transition to Linux would be 1) a good thing for the resumé and 2) a pretty easy switch. Boy were we ever wrong about #2&#8230; #1 is still debatable <img src='http://www.tylerburton.ca/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>The basic premise is this:</p>
<ol>
<li>Is Linux really a practical desktop computer for the masses?</li>
<li>Can someone really make the switch from the far more popular proprietary operating systems and applications to the <a href="http://en.wikipedia.org/wiki/Free_and_open_source_software" target="_blank">free and open source</a> alternatives?</li>
</ol>
<p>The experiment is govern more or less by the following two rules:</p>
<ol>
<li>You must use Linux as your primary computing platform for 4 months</li>
<li>You cannot use a distribution of Linux that you are familiar with or have used in the past</li>
</ol>
<p>Follow us through the highs and lows of getting everything working just right, as we learn new things, and share our user experiences!</p>
<p><a href="http://www.thelinuxexperiment.com" target="_blank">www.thelinuxexperiment.com</a></p>
<div class="shr-publisher-37"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2009/09/the-linux-experiment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

