From ac7a6cff4b308e74b4f55f762fb8c973c23a899c Mon Sep 17 00:00:00 2001 From: Bradford Wetmore Date: Thu, 30 Jan 2025 17:08:06 -0800 Subject: [PATCH 1/3] 8349121: SSLParameters.setApplicationProtocols() ALPN example could be clarified --- .../classes/javax/net/ssl/SSLParameters.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/java.base/share/classes/javax/net/ssl/SSLParameters.java b/src/java.base/share/classes/javax/net/ssl/SSLParameters.java index 88fa692489943..826c58a0ce1ba 100644 --- a/src/java.base/share/classes/javax/net/ssl/SSLParameters.java +++ b/src/java.base/share/classes/javax/net/ssl/SSLParameters.java @@ -655,17 +655,25 @@ public String[] getApplicationProtocols() { * and stored as a byte-oriented {@code String} before calling this method. * *
-     *     // MEETEI MAYEK LETTERS HUK UN I (Unicode 0xabcd->0xabcf): 2 bytes
-     *     byte[] bytes = "\u005cuabcd\u005cuabce\u005cuabcf"
-     *             .getBytes(StandardCharsets.UTF_8);
-     *     String HUK_UN_I = new String(bytes, StandardCharsets.ISO_8859_1);
+     *     // Encode 3 Meetei Mayek letters (HUK, UN, I) using Unicode Escapes
+     *     //     0xabcd->0xabcf, 2 Unicode bytes/letter.
+     *     String HUK_UN_I =  "\u005cuabcd\u005cuabce\u005cuabcf";
      *
-     *     // 0x00-0xFF:  1 byte
-     *     String rfc7301Grease8A = "\u005cu008A\u005cu008A";
+     *     // Convert into UTF-8 encoded bytes (3 bytes/letter)
+     *     byte[] bytes = HUK_UN_I.getBytes(StandardCharsets.UTF_8);
      *
+     *     // Convert bytes into a ISO_8859_1 encoded string
+     *     String encodedHukUnI =
+     *         new String(bytes, StandardCharsets.ISO_8859_1);
+     *
+     *     // Also, encode a two byte RFC 8701 GREASE ALPN value
+     *     //     e.g. 0x0A, 0x1A, 0x2A...0xFA
+     *     String rfc8701Grease8A = "\u005cu008A\u005cu008A";
+     *
+     *     // Set the ALPN vlues on the sslSocket.
      *     SSLParameters p = sslSocket.getSSLParameters();
      *     p.setApplicationProtocols(new String[] {
-     *             "h2", "http/1.1", rfc7301Grease8A, HUK_UN_I});
+     *             "h2", "http/1.1", encodedHukUnI, rfc8701Grease8A});
      *     sslSocket.setSSLParameters(p);
      * 
* From 61345a639d685103cea9147a8c74877ed502c5b7 Mon Sep 17 00:00:00 2001 From: Bradford Wetmore Date: Tue, 4 Feb 2025 11:39:10 -0800 Subject: [PATCH 2/3] Codereview Comments --- src/java.base/share/classes/javax/net/ssl/SSLParameters.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/java.base/share/classes/javax/net/ssl/SSLParameters.java b/src/java.base/share/classes/javax/net/ssl/SSLParameters.java index 826c58a0ce1ba..37ea74a3240cf 100644 --- a/src/java.base/share/classes/javax/net/ssl/SSLParameters.java +++ b/src/java.base/share/classes/javax/net/ssl/SSLParameters.java @@ -653,6 +653,7 @@ public String[] getApplicationProtocols() { * {@code String} should be exchanged using {@code UTF-8}, the * {@code String} should be converted to its {@code byte[]} representation * and stored as a byte-oriented {@code String} before calling this method. + * For example: * *
      *     // Encode 3 Meetei Mayek letters (HUK, UN, I) using Unicode Escapes
@@ -662,7 +663,7 @@ public String[] getApplicationProtocols() {
      *     // Convert into UTF-8 encoded bytes (3 bytes/letter)
      *     byte[] bytes = HUK_UN_I.getBytes(StandardCharsets.UTF_8);
      *
-     *     // Convert bytes into a ISO_8859_1 encoded string
+     *     // Preserve network byte order by using ISO_8859_1 encoding
      *     String encodedHukUnI =
      *         new String(bytes, StandardCharsets.ISO_8859_1);
      *

From 7a90be854a9ab611adc5cb5c2fc39310509500e2 Mon Sep 17 00:00:00 2001
From: Bradford Wetmore 
Date: Thu, 6 Feb 2025 11:27:26 -0800
Subject: [PATCH 3/3] minor wording tweak

---
 src/java.base/share/classes/javax/net/ssl/SSLParameters.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/java.base/share/classes/javax/net/ssl/SSLParameters.java b/src/java.base/share/classes/javax/net/ssl/SSLParameters.java
index 37ea74a3240cf..3ac38bd91dba9 100644
--- a/src/java.base/share/classes/javax/net/ssl/SSLParameters.java
+++ b/src/java.base/share/classes/javax/net/ssl/SSLParameters.java
@@ -663,7 +663,7 @@ public String[] getApplicationProtocols() {
      *     // Convert into UTF-8 encoded bytes (3 bytes/letter)
      *     byte[] bytes = HUK_UN_I.getBytes(StandardCharsets.UTF_8);
      *
-     *     // Preserve network byte order by using ISO_8859_1 encoding
+     *     // Preserve octet byte order by using ISO_8859_1 encoding
      *     String encodedHukUnI =
      *         new String(bytes, StandardCharsets.ISO_8859_1);
      *