Code Review Request: TLS 1.3 Implementation
Jamil Nimeh
jamil.j.nimeh at oracle.com
Fri Jun 1 07:15:58 UTC 2018
Some comments in-line:
On 05/31/2018 10:04 PM, Xuelei Fan wrote:
> > http://cr.openjdk.java.net/~xuelei/8196584/webrev-full.00
>
> AlpnExtension.java
> ------------------
> Looks fine to me.
>
>
> CertificateRequest.java
> -----------------------
> Looks fine to me.
>
>
> CertificateStatus.java
> ----------------------
> - 42 * Pack of the CertificateStatus handshake message.
> + 42 * Pack of the CertificateStatus handshake message. [RFC 6066]
>
> May be nice if adding the RFC number that defines this handshake
> message. Otherwise, looks fine to me.
JJN: Yeah, we can do that. And probably reference both 6066 and 6961
since both are represented in this handshake message. Perhaps a full
header comment that describes the structure of the message might be
appropriate here, too. It would help maintainers perhaps.
>
>
> CertificateVerify.java
> ----------------------
> -129 if (x509Credentials == null) {
> +129 if (x509Credentials == null ||
> x509Credentials.popPublicKey == null) {
> 130 shc.conContext.fatal(Alert.HANDSHAKE_FAILURE,
> 131 "No X509 credentials negotiated for CertificateVerify");
> 132 }
>
> May be safe to check the x509Credentials.popPublicKey as well. Similar
> to line 357-360, 607-610, 916-919.
>
>
> -233 if (x509Possession == null) {
> +233 if (x509Possession == null ||
> x509Possession.popPrivateKey == null) {
> 234 if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
> 235 SSLLogger.fine(
> 236 "No X.509 credentials negotiated for CertificateVerify");
> 237 }
> 238
> 239 return null;
> 240 }
>
> May be safe to check the x509Possession.popPrivateKey as well. Similar
> to line 458-466, 697-704, 1021-1027.
>
> Otherwise, looks fine to me.
>
> CertStatusExtension.java
> ------------------------
> 326 private final int encodedLen;
>
> Looks like this field is not used. Remove it?
>
> 425 if (!responderIds.isEmpty()) {
> 426 ridStr = responderIds.toString();
> -427
> 428 }
> One unnecessary blank line. Otherwise, looks fine to me.
JJN: For the last two comments, yes to both. That encodedLen field is a
remnant from the JDK 9 implementation and it was used there.
>
> Xuelei
>
> On 5/25/2018 4:45 PM, Xuelei Fan wrote:
>> Hi,
>>
>> I'd like to invite you to review the TLS 1.3 implementation. I
>> appreciate it if I could have compatibility and specification
>> feedback before May 31, 2018, and implementation feedback before June
>> 7, 2018.
>>
>> Here is the webrev:
>> http://cr.openjdk.java.net/~xuelei/8196584/webrev-full.00
>>
>> The formal TLS 1.3 specification is not finalized yet, although it
>> had been approved to be a standard. The implementation is based on
>> the draft version 28:
>> https://tools.ietf.org/html/draft-ietf-tls-tls13-28
>>
>> For the overall description of this enhancement, please refer to JEP
>> 332:
>> http://openjdk.java.net/jeps/332
>>
>> For the compatibility and specification update, please refer to CSR
>> 8202625:
>> https://bugs.openjdk.java.net/browse/JDK-8202625
>>
>> Note that we are using the sandbox for the development right now.
>> For more information, please refer to Bradford's previous email:
>>
>> http://mail.openjdk.java.net/pipermail/security-dev/2018-May/017139.html
>>
>> Thanks & Regards,
>> Xuelei
More information about the security-dev
mailing list