[SPARK-49879][CORE] Move `TransportCipherUtil` to a separate file to eliminate Java compilation warnings
### What changes were proposed in this pull request?
Run `build/mvn clean install -pl common/network-common`, we can see the following compilation warnings:
```
[WARNING] [Warn] /Users/yangjie01/SourceCode/git/spark-maven/common/network-common/src/main/java/org/apache/spark/network/crypto/CtrTransportCipher.java:73:11:
auxiliary class TransportCipherUtil in /Users/yangjie01/SourceCode/git/spark-maven/common/network-common/src/main/java/org/apache/spark/network/crypto/TransportCipher.java should not be accessed from outside its own source file
[WARNING] [Warn] /Users/yangjie01/SourceCode/git/spark-maven/common/network-common/src/main/java/org/apache/spark/network/crypto/GcmTransportCipher.java:63:15:
auxiliary class TransportCipherUtil in /Users/yangjie01/SourceCode/git/spark-maven/common/network-common/src/main/java/org/apache/spark/network/crypto/TransportCipher.java should not be accessed from outside its own source file
```
So this pr moves `TransportCipherUtil` to a separate file to eliminate the aforementioned Java compilation warnings.
### Why are the changes needed?
Fix compilation warnings.
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
- Pass GitHub Actions
- locally run `build/mvn clean install -pl common/network-common`, no longer have the aforementioned compilation warnings.
### Was this patch authored or co-authored using generative AI tooling?
No
Closes #48352 from LuciferYang/Move-TransportCipherUtil.
Authored-by: yangjie01 <yangjie01@baidu.com>
Signed-off-by: Dongjoon Hyun <dongjoon@apache.org>
diff --git a/common/network-common/src/main/java/org/apache/spark/network/crypto/TransportCipher.java b/common/network-common/src/main/java/org/apache/spark/network/crypto/TransportCipher.java
index 355c552..33494ae 100644
--- a/common/network-common/src/main/java/org/apache/spark/network/crypto/TransportCipher.java
+++ b/common/network-common/src/main/java/org/apache/spark/network/crypto/TransportCipher.java
@@ -17,32 +17,12 @@
package org.apache.spark.network.crypto;
-import com.google.common.annotations.VisibleForTesting;
-import com.google.crypto.tink.subtle.Hex;
-import com.google.crypto.tink.subtle.Hkdf;
import io.netty.channel.Channel;
-import javax.crypto.spec.SecretKeySpec;
import java.io.IOException;
-import java.nio.charset.StandardCharsets;
import java.security.GeneralSecurityException;
interface TransportCipher {
String getKeyId() throws GeneralSecurityException;
void addToChannel(Channel channel) throws IOException, GeneralSecurityException;
}
-
-class TransportCipherUtil {
- /*
- * This method is used for testing to verify key derivation.
- */
- @VisibleForTesting
- static String getKeyId(SecretKeySpec key) throws GeneralSecurityException {
- byte[] keyIdBytes = Hkdf.computeHkdf("HmacSha256",
- key.getEncoded(),
- null,
- "keyID".getBytes(StandardCharsets.UTF_8),
- 32);
- return Hex.encode(keyIdBytes);
- }
-}
diff --git a/common/network-common/src/main/java/org/apache/spark/network/crypto/TransportCipherUtil.java b/common/network-common/src/main/java/org/apache/spark/network/crypto/TransportCipherUtil.java
new file mode 100644
index 0000000..1df2732
--- /dev/null
+++ b/common/network-common/src/main/java/org/apache/spark/network/crypto/TransportCipherUtil.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.spark.network.crypto;
+
+import java.nio.charset.StandardCharsets;
+import java.security.GeneralSecurityException;
+import javax.crypto.spec.SecretKeySpec;
+
+import com.google.common.annotations.VisibleForTesting;
+import com.google.crypto.tink.subtle.Hex;
+import com.google.crypto.tink.subtle.Hkdf;
+
+class TransportCipherUtil {
+ /**
+ * This method is used for testing to verify key derivation.
+ */
+ @VisibleForTesting
+ static String getKeyId(SecretKeySpec key) throws GeneralSecurityException {
+ byte[] keyIdBytes = Hkdf.computeHkdf("HmacSha256",
+ key.getEncoded(),
+ null,
+ "keyID".getBytes(StandardCharsets.UTF_8),
+ 32);
+ return Hex.encode(keyIdBytes);
+ }
+}