<?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>Quinn Slack</title>
	<atom:link href="http://qslack.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://qslack.com</link>
	<description></description>
	<lastBuildDate>Wed, 25 Apr 2012 22:19:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Discovered HPaste, a great Scala DSL for HBase</title>
		<link>http://qslack.com/2012/04/discovered-hpaste-a-great-scala-dsl-for-hbase/</link>
		<comments>http://qslack.com/2012/04/discovered-hpaste-a-great-scala-dsl-for-hbase/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 22:14:41 +0000</pubDate>
		<dc:creator>Quinn Slack</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[hbase]]></category>

		<guid isPermaLink="false">http://qslack.com/?p=120</guid>
		<description><![CDATA[I recently came across HPaste, a Scala DSL for HBase. Once you&#8217;ve declared an schema like below, you can run HBase operations and MapReduce jobs on your data much more easily than with the standard HBase Java library. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [...]]]></description>
			<content:encoded><![CDATA[<p>I recently came across <a href="https://github.com/GravityLabs/HPaste">HPaste, a Scala DSL for HBase</a>. Once you&#8217;ve declared an schema like below, you can run HBase operations and MapReduce jobs on your data much more easily than with the standard HBase Java library.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
</pre></td><td class="code"><pre class="scala" style="font-family:monospace;"><span style="color: #0000ff; font-weight: bold;">object</span> EventSchema <span style="color: #0000ff; font-weight: bold;">extends</span> Schema <span style="color: #F78811;">&#123;</span>
&nbsp;
  <span style="color: #0000ff; font-weight: bold;">implicit</span> <span style="color: #0000ff; font-weight: bold;">val</span> conf <span style="color: #000080;">=</span> <span style="color: #0000ff; font-weight: bold;">new</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">hadoop</span>.<span style="color: #000000;">hbase</span>.<span style="color: #000000;">HBaseConfiguration</span>
&nbsp;
  <span style="color: #0000ff; font-weight: bold;">class</span> EventTable <span style="color: #0000ff; font-weight: bold;">extends</span> HbaseTable<span style="color: #F78811;">&#91;</span>EventTable, String, EventRow<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#40;</span>
    tableName <span style="color: #000080;">=</span> <span style="color: #6666FF;">&quot;event&quot;</span>,
    rowKeyClass <span style="color: #000080;">=</span> classOf<span style="color: #F78811;">&#91;</span>String<span style="color: #F78811;">&#93;</span>
  <span style="color: #F78811;">&#41;</span> <span style="color: #F78811;">&#123;</span>
    <span style="color: #0000ff; font-weight: bold;">def</span> rowBuilder<span style="color: #F78811;">&#40;</span>result<span style="color: #000080;">:</span> DeserializedResult<span style="color: #F78811;">&#41;</span> <span style="color: #000080;">=</span> <span style="color: #0000ff; font-weight: bold;">new</span> EventRow<span style="color: #F78811;">&#40;</span><span style="color: #0000ff; font-weight: bold;">this</span>, result<span style="color: #F78811;">&#41;</span>
&nbsp;
    <span style="color: #0000ff; font-weight: bold;">val</span> msg       <span style="color: #000080;">=</span> family<span style="color: #F78811;">&#91;</span>String, String, Any<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;msg&quot;</span><span style="color: #F78811;">&#41;</span>
    <span style="color: #0000ff; font-weight: bold;">val</span> msgSender <span style="color: #000080;">=</span> column<span style="color: #F78811;">&#40;</span>msg, <span style="color: #6666FF;">&quot;sender&quot;</span>, classOf<span style="color: #F78811;">&#91;</span>String<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#41;</span>
    <span style="color: #0000ff; font-weight: bold;">val</span> msgBody   <span style="color: #000080;">=</span> column<span style="color: #F78811;">&#40;</span>msg, <span style="color: #6666FF;">&quot;body&quot;</span>, classOf<span style="color: #F78811;">&#91;</span>String<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#41;</span>
    <span style="color: #0000ff; font-weight: bold;">val</span> msgDate   <span style="color: #000080;">=</span> column<span style="color: #F78811;">&#40;</span>msg, <span style="color: #6666FF;">&quot;date&quot;</span>, classOf<span style="color: #F78811;">&#91;</span>String<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#41;</span>
&nbsp;
    <span style="color: #0000ff; font-weight: bold;">val</span> info      <span style="color: #000080;">=</span> family<span style="color: #F78811;">&#91;</span>String, String, Any<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;info&quot;</span><span style="color: #F78811;">&#41;</span>
    <span style="color: #0000ff; font-weight: bold;">val</span> name      <span style="color: #000080;">=</span> column<span style="color: #F78811;">&#40;</span>info, <span style="color: #6666FF;">&quot;name&quot;</span>, classOf<span style="color: #F78811;">&#91;</span>String<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#41;</span>
    <span style="color: #0000ff; font-weight: bold;">val</span> startDate <span style="color: #000080;">=</span> column<span style="color: #F78811;">&#40;</span>info, <span style="color: #6666FF;">&quot;startDate&quot;</span>, classOf<span style="color: #F78811;">&#91;</span>String<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#41;</span>
    <span style="color: #0000ff; font-weight: bold;">val</span> endDate   <span style="color: #000080;">=</span> column<span style="color: #F78811;">&#40;</span>info, <span style="color: #6666FF;">&quot;endDate&quot;</span>, classOf<span style="color: #F78811;">&#91;</span>String<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#41;</span>
    <span style="color: #0000ff; font-weight: bold;">val</span> body      <span style="color: #000080;">=</span> column<span style="color: #F78811;">&#40;</span>info, <span style="color: #6666FF;">&quot;body&quot;</span>, classOf<span style="color: #F78811;">&#91;</span>String<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#41;</span>
    <span style="color: #0000ff; font-weight: bold;">val</span> source    <span style="color: #000080;">=</span> column<span style="color: #F78811;">&#40;</span>info, <span style="color: #6666FF;">&quot;source&quot;</span>, classOf<span style="color: #F78811;">&#91;</span>String<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#41;</span>
    <span style="color: #0000ff; font-weight: bold;">val</span> tags      <span style="color: #000080;">=</span> column<span style="color: #F78811;">&#40;</span>info, <span style="color: #6666FF;">&quot;tags&quot;</span>, classOf<span style="color: #F78811;">&#91;</span>String<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#41;</span>
  <span style="color: #F78811;">&#125;</span>
&nbsp;
  <span style="color: #0000ff; font-weight: bold;">class</span> EventRow<span style="color: #F78811;">&#40;</span>table<span style="color: #000080;">:</span> EventTable, result<span style="color: #000080;">:</span> DeserializedResult<span style="color: #F78811;">&#41;</span> <span style="color: #0000ff; font-weight: bold;">extends</span> HRow<span style="color: #F78811;">&#91;</span>EventTable, String<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#40;</span>result, table<span style="color: #F78811;">&#41;</span>
&nbsp;
  <span style="color: #0000ff; font-weight: bold;">val</span> EventTable <span style="color: #000080;">=</span> table<span style="color: #F78811;">&#40;</span><span style="color: #0000ff; font-weight: bold;">new</span> EventTable<span style="color: #F78811;">&#41;</span>
<span style="color: #F78811;">&#125;</span></pre></td></tr></table></div>

<p>HPaste stops short of being an ORM (like ActiveRecord or DataMapper) on purpose, but I&#8217;ve found myself making a number of ad-hoc singletons to wrap common operations against HBase. I&#8217;d find it very useful to have an ORM that sits on top of HBase and lets you define the operations and the de/serialization you want for your types. Time permitting, I&#8217;ll factor out what I have and post it up on Github. (I also made a <a href="https://github.com/sqs/rhino">Ruby ORM for HBase</a> back in 2008, but I think the way people use HBase has become more sophisticated since then and that ORM design is no longer suitable for heavy use.)</p>
]]></content:encoded>
			<wfw:commentRss>http://qslack.com/2012/04/discovered-hpaste-a-great-scala-dsl-for-hbase/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>From Quora: Will Linux incorporate tcpcrypt?</title>
		<link>http://qslack.com/2011/06/will-linux-incorporate-tcpcrypt/</link>
		<comments>http://qslack.com/2011/06/will-linux-incorporate-tcpcrypt/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 16:03:09 +0000</pubDate>
		<dc:creator>Quinn Slack</dc:creator>
				<category><![CDATA[tcpcrypt]]></category>

		<guid isPermaLink="false">http://qslack.com/?p=111</guid>
		<description><![CDATA[Someone on Quora just asked: &#8220;Will Linux incorporate tcpcrypt?&#8221;. I posted a response over there: I have been working on and off with tcpcrypt for about a year. I believe that if someone puts in the time to polish the Linux kernel implementation, it&#8217;d be a likely candidate for inclusion. Andrea Bittau (the lead tcpcrypt [...]]]></description>
			<content:encoded><![CDATA[<p>Someone on Quora just asked: <a href="http://www.quora.com/Linux/Will-Linux-incorporate-tcpcrypt">&#8220;Will Linux incorporate tcpcrypt?&#8221;</a>. I posted a response over there:</p>
<blockquote><p>
I have been working on and off with <a href="http://tcpcrypt.org">tcpcrypt</a> for about a year. I believe that if someone puts in the time to polish the Linux kernel implementation, it&#8217;d be a likely candidate for inclusion. Andrea Bittau (the lead tcpcrypt guy) told me he would like to work on the kernel implementation himself sometime in the future. Andrea, Mark Handley, and David Mazieres are also working on the <a href="http://tools.ietf.org/html/draft-bittau-tcp-crypt-00">Internet Draft</a>.</p>
<p>For now, the userspace implementation works well (and supports Linux, Mac OS X, FreeBSD, and Windows). It has a library so that endpoints can see the tcpcrypt session ID (to perform their own authentication), at <a href="https://github.com/sorbo/tcpcrypt/blob/master/user/include/tcpcrypt/tcpcrypt.h">https://github.com/sorbo/tcpcrypt/blob/master/user/include/tcpcrypt/tcpcrypt.h</a>, and I made an Apache module that passes the session ID to Web apps, at <a href="https://github.com/sqs/mod_tcpcrypt">https://github.com/sqs/mod_tcpcrypt</a>.
</p></blockquote>
<p>On the advantages of tcpcrypt over TLS:</p>
<blockquote><p>If your system runs tcpcryptd, then existing applications will use tcpcrypt. If the destination host doesn&#8217;t support tcpcrypt, then the channel falls back to normal TCP with no communication round-trip overhead. If both sides support tcpcrypt, then the applications get encryption for free (no code changes and minimal overhead). Of course, this only protects against passive attackers; to protect against active attacks, the apps would have to be modified to authenticate using the tcpcrypt session ID. Still, it&#8217;s better than cleartext. This, I think, is the key benefit tcpcrypt has over TLS: it makes encrypted-by-default really simple to bring about.
</p></blockquote>
<p>See also the <a href="http://tools.ietf.org/html/draft-bittau-tcp-crypt-00">tcpcrypt Internet-Draft</a> and the <a href="http://en.wikipedia.org/wiki/Tcpcrypt">tcpcrypt Wikipedia page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://qslack.com/2011/06/will-linux-incorporate-tcpcrypt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What I&#8217;ve finished reading, Jan-May 2011</title>
		<link>http://qslack.com/2011/05/wha-ive-finished-reading-jan-may-2011/</link>
		<comments>http://qslack.com/2011/05/wha-ive-finished-reading-jan-may-2011/#comments</comments>
		<pubDate>Mon, 30 May 2011 03:47:17 +0000</pubDate>
		<dc:creator>Quinn Slack</dc:creator>
				<category><![CDATA[Reading]]></category>

		<guid isPermaLink="false">http://qslack.com/?p=103</guid>
		<description><![CDATA[The Devil in the White City by Erik Larson The Myth of the Rational Voter: Why Democracies Choose Bad Policies by Bryan Caplan The Great Stagnation: How America Ate All The Low-Hanging Fruit of Modern History, Got Sick, and Will (Eventually) Feel Better by Tyler Cowen Ayn Rand and the World She Made by Anne [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><cite><a href="http://www.amazon.com/Devil-White-City-Madness-Changed/dp/0375725601">The Devil in the White City</a></cite> by Erik Larson</li>
<li><cite><a href="http://www.amazon.com/Myth-Rational-Voter-Democracies-Policies/dp/0691129428">The Myth of the Rational Voter: Why Democracies Choose Bad Policies</a></cite> by Bryan Caplan</li>
<li><cite><a href="http://www.amazon.com/Great-Stagnation-Low-Hanging-Eventually-ebook/dp/B004H0M8QS">The Great Stagnation: How America Ate All The Low-Hanging Fruit of Modern History, Got Sick, and Will (Eventually) Feel Better</a></cite> by Tyler Cowen</li>
<li><cite><a href="http://www.amazon.com/Ayn-Rand-World-She-Made/dp/0385513992">Ayn Rand and the World She Made</a></cite> by Anne Heller</li>
<li><cite><a href="http://www.amazon.com/Plex-Google-Thinks-Works-Shapes/dp/1416596585">In The Plex</a></cite> by Stephen Levy (about Google)</li>
<li><cite><a href="http://www.amazon.com/Immortal-Life-Henrietta-Lacks/dp/1400052173">The Immortal Life of Henrietta Lacks</a></cite> by Rebecca Skloot</li>
<li><cite><a href="http://www.amazon.com/Greatest-Trade-Ever-Behind-Scenes/dp/0385529910">The Greatest Trade Ever: The Behind-the-Scenes Story of How John Paulson Defied Wall Street and Made Financial History</a></cite> by Gregory Zuckerman</li>
<li><a href="http://www.econlib.org/library/Essays/hykKnw1.html">&#8220;The Use of Knowledge in Society&#8221;</a> by F. A. Hayek</li>
<li><a href="http://www.amazon.com/Machinery-Freedom-Guide-Radical-Capitalism/dp/0812690699">The Machinery of Freedom: Guide to a Radical Capitalism</a> by David Friedman (son of Milton Friedman)
</ul>
<p>I enjoyed all of them&#8211;or else I wouldn&#8217;t have finished reading them.</p>
]]></content:encoded>
			<wfw:commentRss>http://qslack.com/2011/05/wha-ive-finished-reading-jan-may-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reading &#8220;Sum: Forty Tales from the Afterlives&#8221; by David Eagleman</title>
		<link>http://qslack.com/2011/05/reading-sum-forty-tales-from-the-afterlives-by-david-eagleman/</link>
		<comments>http://qslack.com/2011/05/reading-sum-forty-tales-from-the-afterlives-by-david-eagleman/#comments</comments>
		<pubDate>Mon, 30 May 2011 03:32:23 +0000</pubDate>
		<dc:creator>Quinn Slack</dc:creator>
				<category><![CDATA[Reading]]></category>

		<guid isPermaLink="false">http://qslack.com/?p=99</guid>
		<description><![CDATA[Just started reading Sum: Forty Tales from the Afterlives by David Eagleman. I heard about the book from an interesting New Yorker profile of him. I&#8217;ll update this post when (or if) I finish reading the book. Update (May 31): Just finished reading it. Very thought-provoking. My favorite was the one where people wait in [...]]]></description>
			<content:encoded><![CDATA[<p>Just started reading <cite><a href="http://www.amazon.com/Sum-Forty-Tales-Afterlives-ebook/dp/B001TKA0VO/ref=tmm_kin_title_0?ie=UTF8&#038;m=AG56TWVU5XWC2">Sum: Forty Tales from the Afterlives</a></cite> by David Eagleman. I heard about the book from <a href="http://www.newyorker.com/reporting/2011/04/25/110425fa_fact_bilger">an interesting <cite>New Yorker</cite> profile</a> of him. </p>
<p>I&#8217;ll update this post when (or if) I finish reading the book.</p>
<p><strong>Update (May 31):</strong> Just finished reading it. Very thought-provoking. My favorite was the one where people wait in the afterlife until the last utterance of their name.</p>
]]></content:encoded>
			<wfw:commentRss>http://qslack.com/2011/05/reading-sum-forty-tales-from-the-afterlives-by-david-eagleman/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python 3.3 patch for TLS-SRP support</title>
		<link>http://qslack.com/2011/04/python-3-3-patch-for-tls-srp-support/</link>
		<comments>http://qslack.com/2011/04/python-3-3-patch-for-tls-srp-support/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 22:35:34 +0000</pubDate>
		<dc:creator>Quinn Slack</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[TLS-SRP]]></category>

		<guid isPermaLink="false">http://qslack.com/?p=94</guid>
		<description><![CDATA[I just posted a patch for Python 3.3 to add TLS-SRP support (Issue #11943). This patch adds support for TLS-SRP (RFC 5054) to Python ssl.SSLSocket, _ssl.c, http, and urllib. TLS-SRP lets a client and server establish a mutually authenticated SSL channel using only a username and password (a certificate may also be used to supplement [...]]]></description>
			<content:encoded><![CDATA[<p>I just posted a <a href="http://bugs.python.org/issue11943">patch for Python 3.3 to add TLS-SRP support (Issue #11943)</a>. <a href="http://trustedhttp.org/wiki/TLS-SRP_in_Python">This patch</a> adds support for <a href="http://tools.ietf.org/html/rfc5054">TLS-SRP (RFC 5054)</a> to Python ssl.SSLSocket, _ssl.c, http, and urllib. TLS-SRP lets a client and server establish a mutually authenticated SSL channel using only a username and password (a certificate may also be used to supplement authentication). Two Python-specific use cases for TLS-SRP are calling HTTP APIs that require auth, and writing test suites in Python for networked software (e.g., how Chromium uses TLSLite for network testing). <a href="http://trustedhttp.org/wiki/TLS-SRP_in_Python">More info at http://trustedhttp.org/wiki/TLS-SRP_in_Python.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://qslack.com/2011/04/python-3-3-patch-for-tls-srp-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TLS-SRP patch for Apache 2 mod_ssl</title>
		<link>http://qslack.com/2011/04/tls-srp-patch-for-apache-2-mod_ssl/</link>
		<comments>http://qslack.com/2011/04/tls-srp-patch-for-apache-2-mod_ssl/#comments</comments>
		<pubDate>Sun, 17 Apr 2011 21:53:09 +0000</pubDate>
		<dc:creator>Quinn Slack</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[TLS-SRP]]></category>

		<guid isPermaLink="false">http://qslack.com/?p=84</guid>
		<description><![CDATA[I just posted a patch for TLS-SRP support in Apache 2 mod_ssl on the wiki and as ASF Bugzilla #51075.]]></description>
			<content:encoded><![CDATA[<p>I just posted a <a href="http://trustedhttp.org/wiki/TLS-SRP_in_Apache_mod_ssl">patch for TLS-SRP support in Apache 2 mod_ssl</a> on the wiki and as <a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=51075">ASF Bugzilla #51075</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://qslack.com/2011/04/tls-srp-patch-for-apache-2-mod_ssl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated Steffen Schulz&#8217;s NSS patch for TLS-SRP support</title>
		<link>http://qslack.com/2011/04/updated-steffen-schulzs-nss-patch-for-tls-srp-support/</link>
		<comments>http://qslack.com/2011/04/updated-steffen-schulzs-nss-patch-for-tls-srp-support/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 21:44:10 +0000</pubDate>
		<dc:creator>Quinn Slack</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[TLS-SRP]]></category>

		<guid isPermaLink="false">http://qslack.com/?p=80</guid>
		<description><![CDATA[I updated Steffen Schulz&#8217;s NSS patch for TLS-SRP support and posted it to Bugzilla #405155. NSS (Network Security Services) is a Mozilla library that provides SSL and crypto routines to Firefox, Chrome, and lots of other apps. I modified Steffen Schulz&#8217;s patch to: use the same format for the SRP passwd and group param file [...]]]></description>
			<content:encoded><![CDATA[<p>I updated Steffen Schulz&#8217;s <a href="http://trustedhttp.org/wiki/TLS-SRP_in_NSS">NSS patch for TLS-SRP support</a> and posted it to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=405155">Bugzilla #405155</a>. NSS (Network Security Services) is a Mozilla library that provides SSL and crypto routines to <a href="http://trustedhttp.org/wiki/TLS-SRP_in_Firefox">Firefox</a>, <a href="http://trustedhttp.org/wiki/TLS-SRP_in_Chrome">Chrome</a>, and lots of other apps.</p>
<p>I modified Steffen Schulz&#8217;s patch to:</p>
<ul>
<li>use the same format for the SRP passwd and group param file as libsrp, so<br />
that the standard srptool (provided by libsrp or GnuTLS) can be used. This<br />
means that srputil (which duplicated srptool&#8217;s functionality) is no longer<br />
necessary to include in this patch. (This means either libsrp or GnuTLS are<br />
required to generate SRP passwd files. Is this OK, or does NSS need to be fully<br />
self-contained? For the test suite, I have included pre-generated SRP passwd<br />
files.)</li>
<li>implement TLS-SRP in selfserv instead of SSLsample.</li>
<li>include TLS-SRP tests. (These currently fail because of a memory leak;<br />
ignoring that, they pass.)</li>
<li>apply cleanly against nss-3.12.9.</li>
</ul>
<p>See <a href="http://trustedhttp.org/wiki/TLS-SRP_in_NSS">&#8220;TLS-SRP in NSS&#8221;</a> on the wiki for more usage instructions, but here&#8217;s a quick example:</p>
<pre>
tstclnt usage:
tstclnt -l jsmith -k abc -h tls-srp.test.trustedhttp.org -d /tmp/certs/ -c
:C01D -o -3 -2
# then GET /

selfserv usage:
cd $NSS/mozilla/security/nss/tests
selfserv -n localhost -p 4443 -v -H ssl/tpasswd.conf -K ssl/tpasswd -d
/tmp/certs/
tstclnt -p 4443 -h localhost -f -d /tmp/certs -v -l TestUser -k nss -2 -c :C01D
</pre>
<p>This patch still needs a lot more work before it&#8217;s ready for serious review, but I wanted to get some feedback on it now. </p>
]]></content:encoded>
			<wfw:commentRss>http://qslack.com/2011/04/updated-steffen-schulzs-nss-patch-for-tls-srp-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TLS-SRP in Chrome announcement</title>
		<link>http://qslack.com/2011/04/tls-srp-in-chrome-announcement/</link>
		<comments>http://qslack.com/2011/04/tls-srp-in-chrome-announcement/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 17:39:27 +0000</pubDate>
		<dc:creator>Quinn Slack</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[TLS-SRP]]></category>

		<guid isPermaLink="false">http://qslack.com/?p=76</guid>
		<description><![CDATA[I just posted an in-progress patch that adds TLS-SRP support to Chrome over at the Chromium code review site. I also posted a Chromium-discuss message announcing my progress. To install it yourself, see the TLS-SRP in Chrome wiki page.]]></description>
			<content:encoded><![CDATA[<p>I just posted an in-progress <a href="http://codereview.chromium.org/6804032/">patch that adds TLS-SRP support to Chrome</a> over at the Chromium code review site. I also posted a <a href="http://groups.google.com/a/chromium.org/group/chromium-discuss/browse_thread/thread/f4d1fbac7bceebe9">Chromium-discuss message</a> announcing my progress.</p>
<p>To install it yourself, see the <a href="http://trustedhttp.org/wiki/TLS-SRP_in_Chrome">TLS-SRP in Chrome</a> wiki page.</p>
<div class="wp-caption alignnone" style="width: 585px"><img alt="" src="http://trustedhttp.org/wiki/images/b/b8/Chrome-Login.png" title="Chrome TLS-SRP login" width="575" height="587" /><p class="wp-caption-text">Chrome TLS-SRP login (preliminary)</p></div>
<div class="wp-caption alignnone" style="width: 584px"><img alt="" src="http://trustedhttp.org/wiki/images/c/c5/Chrome-Page.png" title="Chrome TLS-SRP Web page" width="574" height="587" /><p class="wp-caption-text">Chrome TLS-SRP Web page</p></div>
]]></content:encoded>
			<wfw:commentRss>http://qslack.com/2011/04/tls-srp-in-chrome-announcement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Patch: RFC 5054-compliant TLS-SRP support for TLS Lite</title>
		<link>http://qslack.com/2011/04/patch-rfc-5054-compliant-tls-srp-support-for-tls-lite/</link>
		<comments>http://qslack.com/2011/04/patch-rfc-5054-compliant-tls-srp-support-for-tls-lite/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 20:48:59 +0000</pubDate>
		<dc:creator>Quinn Slack</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[TLS-SRP]]></category>

		<guid isPermaLink="false">http://qslack.com/?p=73</guid>
		<description><![CDATA[I submitted a patch to TLS Lite that updates its TLS-SRP support to comply with RFC 5054. Read the email message to tlslite-users or download the the patch (tlslite+tls-srp-rfc5054.patch). I&#8217;ve also applied this patch to my tlslite git repository.]]></description>
			<content:encoded><![CDATA[<p>I submitted a patch to <a href="http://trevp.net/tlslite/">TLS Lite</a> that updates its TLS-SRP support to comply with <a href="http://tools.ietf.org/html/rfc5054">RFC 5054</a>. Read the <a href="http://sourceforge.net/mailarchive/message.php?msg_id=27309432">email message to tlslite-users</a> or <a href="http://trustedhttp.org/tlslite+tls-srp-rfc5054.patch">download the the patch (tlslite+tls-srp-rfc5054.patch)</a>. I&#8217;ve also applied this patch to my <a href="https://github.com/sqs/tlslite">tlslite git repository</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://qslack.com/2011/04/patch-rfc-5054-compliant-tls-srp-support-for-tls-lite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TLS-SRP patch (probably) accepted into OpenSSL 1.0.1</title>
		<link>http://qslack.com/2011/03/tls-srp-patch-probably-accepted-into-openssl-1-0-1/</link>
		<comments>http://qslack.com/2011/03/tls-srp-patch-probably-accepted-into-openssl-1-0-1/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 20:00:10 +0000</pubDate>
		<dc:creator>Quinn Slack</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[TLS-SRP]]></category>
		<category><![CDATA[tls-srp openssl]]></category>

		<guid isPermaLink="false">http://qslack.com/?p=65</guid>
		<description><![CDATA[Looks like TLS-SRP will be in OpenSSL 1.0.1. Tom Wu&#8217;s patch at http://cvs.openssl.org/chngview?cn=20484 was finally accepted. (HT: Tom Wu and Daniel Stenberg)]]></description>
			<content:encoded><![CDATA[<p>Looks like TLS-<a href="http://srp.stanford.edu/">SRP</a> will be in OpenSSL 1.0.1. Tom Wu&#8217;s patch at <a href="http://cvs.openssl.org/chngview?cn=20484">http://cvs.openssl.org/chngview?cn=20484</a> was finally accepted.</p>
<p>(HT: Tom Wu and <a href="http://twitter.com/#!/bagder/status/47584869559185408">Daniel Stenberg</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://qslack.com/2011/03/tls-srp-patch-probably-accepted-into-openssl-1-0-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

