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

Reply via email to