Conversation
There was a problem hiding this comment.
Code Review
This pull request configures the Conscrypt security provider for the default HTTP transport in BigQueryJdbcProxyUtility and excludes shaded Netty from gRPC relocation in pom.xml. It also introduces a new integration test, ITPqcValidationTest, to verify that both REST and gRPC transports negotiate post-quantum hybrid key exchange (X25519MLKEM768). Feedback on the test code suggests optimizing reflection calls by retrieving fields outside of the loop to improve efficiency.
| List<Object> contexts = findInstancesInGraph(readClient, openSslCtxClass, 25); | ||
| for (Object ctx : contexts) { | ||
| Field enginesField = openSslCtxClass.getDeclaredField("engines"); | ||
| enginesField.setAccessible(true); | ||
| Map<?, ?> engines = (Map<?, ?>) enginesField.get(ctx); | ||
| for (Object engineObj : engines.values()) { | ||
| if (openSslEngineClass.isInstance(engineObj)) { | ||
| SSLEngine engine = (SSLEngine) engineObj; | ||
| SSLSession session = engine.getSession(); | ||
| Field groupsField = openSslEngineClass.getDeclaredField("groups"); | ||
| groupsField.setAccessible(true); | ||
| String[] engineGroups = (String[]) groupsField.get(engineObj); | ||
| if (engineGroups == null || engineGroups.length == 0) { | ||
| engineGroups = defaultGroups; | ||
| } | ||
| String primaryKeyShare = | ||
| (engineGroups != null && engineGroups.length > 0) ? engineGroups[0] : "unknown"; | ||
| results.add( | ||
| new HandshakeRecord( | ||
| session.getPeerHost(), | ||
| engine.getClass().getName(), | ||
| false, | ||
| session.getProtocol(), | ||
| session.getCipherSuite(), | ||
| primaryKeyShare)); | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
To improve efficiency and maintainability, retrieve the enginesField and groupsField reflectively once outside the loops rather than repeatedly calling getDeclaredField and setAccessible(true) on every iteration.
List<Object> contexts = findInstancesInGraph(readClient, openSslCtxClass, 25);
if (!contexts.isEmpty()) {
Field enginesField = openSslCtxClass.getDeclaredField("engines");
enginesField.setAccessible(true);
Field groupsField = openSslEngineClass.getDeclaredField("groups");
groupsField.setAccessible(true);
for (Object ctx : contexts) {
Map<?, ?> engines = (Map<?, ?>) enginesField.get(ctx);
for (Object engineObj : engines.values()) {
if (openSslEngineClass.isInstance(engineObj)) {
SSLEngine engine = (SSLEngine) engineObj;
SSLSession session = engine.getSession();
String[] engineGroups = (String[]) groupsField.get(engineObj);
if (engineGroups == null || engineGroups.length == 0) {
engineGroups = defaultGroups;
}
String primaryKeyShare =
(engineGroups != null && engineGroups.length > 0) ? engineGroups[0] : "unknown";
results.add(
new HandshakeRecord(
session.getPeerHost(),
engine.getClass().getName(),
false,
session.getProtocol(),
session.getCipherSuite(),
primaryKeyShare));
}
}
}
}References
- Avoid adding defensive null checks for values that are guaranteed to be non-null by design, as this can hide invariant breaks.
No description provided.