<div dir="ltr">Great work Kazu!!!</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 20, 2014 at 6:08 PM, Kazu Yamamoto <span dir="ltr"><<a href="mailto:kazu@iij.ad.jp" target="_blank">kazu@iij.ad.jp</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi web-devel,<br>
<br>
This is an old topic talked one year ago. I have sticked on this<br>
project since then and can report good news.<br>
<br>
I have implemented ALPN to hs-tls, which is already<br>
merged. Unfortunately, it was appeared that this is not good enough<br>
for HTTP/2.  HTTP/2 requires TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 but<br>
hs-tls does not support neither ECDHE nor AES GCM.  So, I have<br>
implemented both which should be merged eventually.<br>
<br>
A branch of Warp has integrated this hs-tls lib and http2 lib. This<br>
warp app can communicate with Firefox Nightly and Chrome 39 (with<br>
HTTP/2 enabled) by HTTP/2 over TLS now.<br>
<span class="HOEnZb"><font color="#888888"><br>
--Kazu<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
> Hi Greg,<br>
><br>
>> This is a nice start. I considered implementing SPDY myself soon after the<br>
>> spec was first published but the TLS stuff seemed too daunting. At the time<br>
>> I think Chrome was using a bunch of in-tree OpenSSL patches to support<br>
>> next-protocol-negotiation / TLS snap start / etc. It looks like the HTTP 2<br>
>> draft has gotten rid of those requirements but the TLS server name<br>
>> indication extension must be supported. HsOpenSSL doesn't have bindings for<br>
>> the needed functions (SSL_CTX_set_tlsext_servername_callback() /<br>
>> SSL_get_servername()) and the tls library (which I am personally reluctant<br>
>> to use for "crypto is hard to do right and you really want to use<br>
>> widely-audited code" reasons) doesn't seem to have an implementation yet<br>
>> either. OpenSSL support seems to be the easier nut to crack there.<br>
><br>
> Indeed, TLS is tough. All existing implementations of HTTP/2.0 are<br>
> using OpenSSL HEAD, not released one. Also, spec is changing, i.e. NPN<br>
> (SPDY's one, proposals from the server side) vs ALPN (current<br>
> HTTP/2.0's one, proposals from the client side).<br>
><br>
> I finished inter-operability test of HPACK with one in nodejs and one<br>
> in C. The next step is to implement HTTP/2.0 framing and plain-text<br>
> communication. Then, I will tackle TLS stuff. If necessary, I will<br>
> write bindings to OpenSSL.<br>
><br>
> --Kazu<br>
</div></div><div class="HOEnZb"><div class="h5">> _______________________________________________<br>
> web-devel mailing list<br>
> <a href="mailto:web-devel@haskell.org">web-devel@haskell.org</a><br>
> <a href="http://www.haskell.org/mailman/listinfo/web-devel" target="_blank">http://www.haskell.org/mailman/listinfo/web-devel</a><br>
_______________________________________________<br>
web-devel mailing list<br>
<a href="mailto:web-devel@haskell.org">web-devel@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/web-devel" target="_blank">http://www.haskell.org/mailman/listinfo/web-devel</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Gregory Collins <<a href="mailto:greg@gregorycollins.net" target="_blank">greg@gregorycollins.net</a>></div>
</div>