-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TLS 1.3 client: Writing of the early data indication extension #6326
Comments
For time being, I prefer PSK firstly, that can provide a suitable client for testing ASAP. @ronald-cron-arm and @xkqian, what's your opinion? |
I do not get any property about ticket_flags From RFC 8446. I think the definition of In |
Looking at TLS 1.3 specification, the flag |
Seems Jerry prefer external psk firstly, How about your opinion? @ronald-cron-arm |
But I think that can be represent by |
I prefer mandatory |
--If we bind them together, there will be no optional external psk. |
Regarding the support of early data through ticket and/or external PSK, the main use case is to me the ticket case. Thus I prefer to add support for it first. I know it is more complicated to test than using an external PSK but anyway we need to do it. As @yuhaoth pointed there are quite complex security issues to have in mind when using early data with an external PSK and if we want a quite complete support we would need to extend somehow |
If we support early data only through tickets (my preferred option) to start with, yes MBEDTLS_SSL_SESSION_TICKETS should be a requisite to MBEDTLS_SSL_EARLY_DATA. I do not think this would be a problem for local testing with external PSKs (as mentioned just above). |
Yes that could work but then we state that a NewSessionTicket without the early data indication extension is equivalent to a NewSessionTicket with an early data indication extension and |
As my understand, I think your meaning is
|
Understand. I misunderstand |
I guess you rather mean "when early_data not exists in NewSessionTicket, |
Understand. I think we should rename |
What name should we used? MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA? MBEDTLS_SSL_TLS1_3_TICKET_EARLY_DATA_PRESENT ? or MBEDTLS_SSL_TLS1_3_TICKET_HAS_EARLY_DATA_INDACTION? I am very confused about the naming rule, seems every review will have one different point, which one should we follow up? |
This issue tracks the up-streaming on client side of the writing of the early data indication extension
Source: https://github.com/hannestschofenig/mbedtls/tree/tls13-prototype
PLEASE READ THOROUGHLY section 4.2.10 of the specification
session->ticket_flags
).The check of ALPN is out of the scope of this PR.
early_data_status
field indicating the status of the negotiation of early data with the server. No need to add thembedtls_ssl_get_early_data_status()
API for the time being: to be defined as part of Define the API for writing early data on client side in TLS 1.3 #4902 if we need this API or not.Testing:
test (ssl-opt.sh test) with an OpenSSL/GnuTLS server that a ClientHello containing an early data indication extension is successfully parsed. The resumption handshake should fail if the server accepts early data as long as the client does not write the End of Early Data message in response (another issue dedicated to that).
Depends on #6330
The text was updated successfully, but these errors were encountered: