<div dir="ltr"><div><br></div>I think this discussion can be simplified to the following points:<div><ul><li>ALPN allows for a negotiated application protocol to be a function of the cipher negotiated ( h2 vs h1 selection being the prime use-case).</li><li>The cipher is negotiated by SslEngine during the unwrap of the Hello message</li><li>The negotiated application protocol is sent by SslEngine during the following wrap of the Hello response.</li><li>SslEngined does not allow the negotiated protocol to be set after the unwrap of the Hello message.</li></ul><div>So this last point means that SslEngine does not allow the negotiated protocol to be a function of the negotiated cipher.      Sure there are ways to work around this limitation (guessing, running duplicate sslEngine instances etc.), but we should have to work around limitations in a newly released feature!</div><div><br></div><div>If SslEngine is changed to allow the negotiated application protocol to be set up until the time the hello response was wrapped, that would fix the problem.  Would it create any others?</div><div><br></div><div>cheers</div><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Greg Wilkins <<a href="mailto:gregw@webtide.com" target="_blank">gregw@webtide.com</a>> CTO <a href="http://webtide.com" target="_blank">http://webtide.com</a><br></div></div>
</div></div>