Skip to content

Commit b5fb497

Browse files
committed
Read jdk.tls.maxHandshakeMessageSize system property every SSLContext init
1 parent 98e862d commit b5fb497

File tree

4 files changed

+17
-16
lines changed

4 files changed

+17
-16
lines changed

tls/src/main/java/org/bouncycastle/jsse/provider/ContextData.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ final class ContextData
3636
private final ProvSSLSessionContext serverSessionContext;
3737
private final NamedGroupInfo.PerContext namedGroups;
3838
private final SignatureSchemeInfo.PerContext signatureSchemes;
39+
private final int maxHandshakeMessageSize;
3940

4041
ContextData(boolean fipsMode, JcaTlsCrypto crypto, BCX509ExtendedKeyManager x509KeyManager,
4142
BCX509ExtendedTrustManager x509TrustManager, Map<String, CipherSuiteInfo> supportedCipherSuites,
@@ -56,6 +57,8 @@ final class ContextData
5657
this.serverSessionContext = new ProvSSLSessionContext(this);
5758
this.namedGroups = NamedGroupInfo.createPerContext(fipsMode, crypto);
5859
this.signatureSchemes = SignatureSchemeInfo.createPerContext(fipsMode, crypto, namedGroups);
60+
this.maxHandshakeMessageSize = PropertyUtils.getIntegerSystemProperty(
61+
"jdk.tls.maxHandshakeMessageSize", 32768, 1024, Integer.MAX_VALUE);
5962
}
6063

6164
int[] getActiveCipherSuites(JcaTlsCrypto crypto, ProvSSLParameters sslParameters,
@@ -191,9 +194,9 @@ ProvSSLParameters getDefaultSSLParameters(boolean isClient)
191194
return new ProvSSLParameters(this, implGetDefaultCipherSuites(isClient), implGetDefaultProtocols(isClient));
192195
}
193196

194-
ProvSSLParameters getSupportedSSLParameters(boolean isClient)
197+
int getMaxHandshakeMessageSize()
195198
{
196-
return new ProvSSLParameters(this, getSupportedCipherSuites(), getSupportedProtocols());
199+
return maxHandshakeMessageSize;
197200
}
198201

199202
NamedGroupInfo.PerConnection getNamedGroupsClient(ProvSSLParameters sslParameters,
@@ -213,6 +216,11 @@ ProvSSLSessionContext getServerSessionContext()
213216
return serverSessionContext;
214217
}
215218

219+
List<SignatureSchemeInfo> getSignatureSchemes(Vector<SignatureAndHashAlgorithm> sigAndHashAlgs)
220+
{
221+
return SignatureSchemeInfo.getSignatureSchemes(signatureSchemes, sigAndHashAlgs);
222+
}
223+
216224
SignatureSchemeInfo.PerConnection getSignatureSchemesClient(ProvSSLParameters sslParameters,
217225
ProtocolVersion[] activeProtocolVersions, NamedGroupInfo.PerConnection namedGroups)
218226
{
@@ -227,11 +235,6 @@ SignatureSchemeInfo.PerConnection getSignatureSchemesServer(ProvSSLParameters ss
227235
namedGroups);
228236
}
229237

230-
List<SignatureSchemeInfo> getSignatureSchemes(Vector<SignatureAndHashAlgorithm> sigAndHashAlgs)
231-
{
232-
return SignatureSchemeInfo.getSignatureSchemes(signatureSchemes, sigAndHashAlgs);
233-
}
234-
235238
String[] getSupportedCipherSuites()
236239
{
237240
return JsseUtils.getKeysArray(supportedCipherSuites);
@@ -267,6 +270,11 @@ String[] getSupportedProtocols()
267270
return JsseUtils.getKeysArray(supportedProtocols);
268271
}
269272

273+
ProvSSLParameters getSupportedSSLParameters(boolean isClient)
274+
{
275+
return new ProvSSLParameters(this, getSupportedCipherSuites(), getSupportedProtocols());
276+
}
277+
270278
BCX509ExtendedKeyManager getX509KeyManager()
271279
{
272280
return x509KeyManager;

tls/src/main/java/org/bouncycastle/jsse/provider/JsseUtils.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,6 @@ abstract class JsseUtils
7272
PropertyUtils.getBooleanSystemProperty("jdk.tls.allowLegacyMasterSecret", true);
7373
private static final boolean provTlsAllowLegacyResumption =
7474
PropertyUtils.getBooleanSystemProperty("jdk.tls.allowLegacyResumption", false);
75-
private static final int provTlsMaxHandshakeMessageSize =
76-
PropertyUtils.getIntegerSystemProperty("jdk.tls.maxHandshakeMessageSize", 32768, 1024, Integer.MAX_VALUE);
7775
private static final boolean provTlsRequireCloseNotify =
7876
PropertyUtils.getBooleanSystemProperty("com.sun.net.ssl.requireCloseNotify", true);
7977
private static final boolean provTlsUseCompatibilityMode =
@@ -290,11 +288,6 @@ static boolean equals(Object a, Object b)
290288
return a == b || (null != a && null != b && a.equals(b));
291289
}
292290

293-
static int getMaxHandshakeMessageSize()
294-
{
295-
return provTlsMaxHandshakeMessageSize;
296-
}
297-
298291
static int getMaxInboundCertChainLenClient()
299292
{
300293
return provTlsClientMaxInboundCertChainLen;

tls/src/main/java/org/bouncycastle/jsse/provider/ProvTlsClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ public int getMaxCertificateChainLength()
402402
@Override
403403
public int getMaxHandshakeMessageSize()
404404
{
405-
return JsseUtils.getMaxHandshakeMessageSize();
405+
return manager.getContextData().getMaxHandshakeMessageSize();
406406
}
407407

408408
@Override

tls/src/main/java/org/bouncycastle/jsse/provider/ProvTlsServer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ public int getMaxCertificateChainLength()
452452
@Override
453453
public int getMaxHandshakeMessageSize()
454454
{
455-
return JsseUtils.getMaxHandshakeMessageSize();
455+
return manager.getContextData().getMaxHandshakeMessageSize();
456456
}
457457

458458
public synchronized boolean isHandshakeComplete()

0 commit comments

Comments
 (0)