Kazuho,

Thanks for the feedback. This is very helpful.

On Wed, Oct 12, 2016 at 11:17 PM, Kazuho Oku <kazuho...@gmail.com> wrote:
>
> I wrote my implementation by going through the draft. While writing my
> code, I did not refer to other implementations except for looking into
> OpenSSL to see if there was an optimized path for implementing AES-GCM
> for TLS 1.3 (which turned out to not exist in 1.0.2; it has been
> introduced in OpenSSL 1.1.0).
>
> After my own implementation of server and client started talking to
> each other, I started to test interoperability by using Firefox
> Nightly.
>
> I had to fix five issues before picotls started talking with Firefox,
> which took about half a day of work (some errors are not strictly
> related to TLS).
>
> Commit 479f25f, ddd50b7 fixed errors in AEAD construction.
> Commit 5cb99c5 fixed an error in RSA signing.
> Commit 2d20c86 fixed a mis-optimization in my implementation of
> Derive-Secret.
> Commit 5780bfc fixed a silly mistake in generating a CertificateVerify.
>
> Details of each commit can be found at
> https://github.com/h2o/picotls/commits/master
>
> It was possible to fix the errors by observing the fatal alert sent by
> Firefox and going back to the Internet Draft. But it would have been
> even more easier if the draft included test vectors especially for the
> cryptographic operations.
>

We have heard this a number of times. We'll see what we can do about
producing some
vectors from a working implementation.


Aside from the bugs I fixed, it seemed to me that the draft was vague
> on whether if msg_type and length of Handshake should be considered as
> part of the Handshake Context (please forgive me if I missed somewhere
> that mentions it).
>
> In section 4.4, the draft states that, quote: a Handshake Context
> based on the hash of the handshake messages. This text seems to imply
> that msg_type and length should be considered part of the Context, but
> I could not find a formal definition of what a “handshake message” is.
>

Ouch. Yes, I see what you mean here. There used to be some text that made
this clear, but I think it got lost in an edit. I have filed an issue to
fix this
(https://github.com/tlswg/tls13-spec/issues/688) and will try to get it in
by -17.


The other two issues I had are my confusion on why a Handshake Context
> may contain Certificate and CertificateVerify after ServerFinished
> (answered by Illari at
> https://www.ietf.org/mail-archive/web/tls/current/msg21476.html), and
>

It sounds like test vectors would help here.



> a mistake in encoding draft 16 as 0x16
> (https://github.com/tlswg/tls13-spec/issues/682).
>

I have clarified this in in:
https://github.com/tlswg/tls13-spec/commit/0353994e038cfbf15becc68c412644789d2e3009

Thanks for the bug report!


Thank you very much for the great draft, and providing answers to my
> issues. I am looking forward to seeing it formalized.


Thank you very much for your input. It's great to see people doing
implementations from
the specification and having success!

Best,
-Ekr


>
> --
> Kazuho Oku
>
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls
>
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to