From 6eac5db2161d1766650f951608a1df41b19c6719 Mon Sep 17 00:00:00 2001 From: Peter Dettman Date: Sat, 15 Apr 2023 17:21:18 +0700 Subject: Minor fixups for github_445 --- crypto/src/tls/DtlsClientProtocol.cs | 3 ++- crypto/src/tls/DtlsRecordLayer.cs | 4 ++-- crypto/src/tls/DtlsReliableHandshake.cs | 4 ++-- crypto/src/tls/DtlsServerProtocol.cs | 3 ++- crypto/src/tls/TlsPeer.cs | 3 ++- crypto/src/tls/TlsUtilities.cs | 9 +++++++++ 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/crypto/src/tls/DtlsClientProtocol.cs b/crypto/src/tls/DtlsClientProtocol.cs index 4a96eed23..72484e178 100644 --- a/crypto/src/tls/DtlsClientProtocol.cs +++ b/crypto/src/tls/DtlsClientProtocol.cs @@ -100,7 +100,8 @@ namespace Org.BouncyCastle.Tls SecurityParameters securityParameters = state.clientContext.SecurityParameters; DtlsReliableHandshake handshake = new DtlsReliableHandshake(state.clientContext, recordLayer, - state.client.GetHandshakeTimeoutMillis(), state.client.GetHandshakeResendTimeMillis(), null); + state.client.GetHandshakeTimeoutMillis(), TlsUtilities.GetHandshakeResendTimeMillis(state.client), + null); byte[] clientHelloBody = GenerateClientHello(state); diff --git a/crypto/src/tls/DtlsRecordLayer.cs b/crypto/src/tls/DtlsRecordLayer.cs index ab35c49b1..a18210de2 100644 --- a/crypto/src/tls/DtlsRecordLayer.cs +++ b/crypto/src/tls/DtlsRecordLayer.cs @@ -306,7 +306,7 @@ namespace Org.BouncyCastle.Tls HeartbeatMessageType.heartbeat_request, m_heartbeat.GeneratePayload()); this.m_heartbeatTimeout = new Timeout(m_heartbeat.TimeoutMillis, currentTimeMillis); - this.m_heartbeatResendMillis = m_peer.GetHandshakeResendTimeMillis(); + this.m_heartbeatResendMillis = TlsUtilities.GetHandshakeResendTimeMillis(m_peer); this.m_heartbeatResendTimeout = new Timeout(m_heartbeatResendMillis, currentTimeMillis); SendHeartbeatMessage(m_heartbeatInFlight); @@ -405,7 +405,7 @@ namespace Org.BouncyCastle.Tls HeartbeatMessageType.heartbeat_request, m_heartbeat.GeneratePayload()); this.m_heartbeatTimeout = new Timeout(m_heartbeat.TimeoutMillis, currentTimeMillis); - this.m_heartbeatResendMillis = m_peer.GetHandshakeResendTimeMillis(); + this.m_heartbeatResendMillis = TlsUtilities.GetHandshakeResendTimeMillis(m_peer); this.m_heartbeatResendTimeout = new Timeout(m_heartbeatResendMillis, currentTimeMillis); SendHeartbeatMessage(m_heartbeatInFlight); diff --git a/crypto/src/tls/DtlsReliableHandshake.cs b/crypto/src/tls/DtlsReliableHandshake.cs index 90fa17580..42a98a991 100644 --- a/crypto/src/tls/DtlsReliableHandshake.cs +++ b/crypto/src/tls/DtlsReliableHandshake.cs @@ -90,8 +90,8 @@ namespace Org.BouncyCastle.Tls private int m_next_send_seq = 0, m_next_receive_seq = 0; - internal DtlsReliableHandshake(TlsContext context, DtlsRecordLayer transport, int timeoutMillis, int initialResendMillis, - DtlsRequest request) + internal DtlsReliableHandshake(TlsContext context, DtlsRecordLayer transport, int timeoutMillis, + int initialResendMillis, DtlsRequest request) { this.m_recordLayer = transport; this.m_handshakeHash = new DeferredHash(context); diff --git a/crypto/src/tls/DtlsServerProtocol.cs b/crypto/src/tls/DtlsServerProtocol.cs index 974eed2de..a4f8f4bc5 100644 --- a/crypto/src/tls/DtlsServerProtocol.cs +++ b/crypto/src/tls/DtlsServerProtocol.cs @@ -89,7 +89,8 @@ namespace Org.BouncyCastle.Tls SecurityParameters securityParameters = state.serverContext.SecurityParameters; DtlsReliableHandshake handshake = new DtlsReliableHandshake(state.serverContext, recordLayer, - state.server.GetHandshakeTimeoutMillis(), state.server.GetHandshakeResendTimeMillis(), request); + state.server.GetHandshakeTimeoutMillis(), TlsUtilities.GetHandshakeResendTimeMillis(state.server), + request); DtlsReliableHandshake.Message clientMessage = null; diff --git a/crypto/src/tls/TlsPeer.cs b/crypto/src/tls/TlsPeer.cs index f5266f0c9..4f16978d9 100644 --- a/crypto/src/tls/TlsPeer.cs +++ b/crypto/src/tls/TlsPeer.cs @@ -36,7 +36,8 @@ namespace Org.BouncyCastle.Tls /// NOTE: Currently only respected by DTLS protocols. /// /// the handshake resend time, in milliseconds. - int GetHandshakeResendTimeMillis(); + // TODO[api] + //int GetHandshakeResendTimeMillis(); bool AllowLegacyResumption(); diff --git a/crypto/src/tls/TlsUtilities.cs b/crypto/src/tls/TlsUtilities.cs index a2ee82f9e..69a458a5a 100644 --- a/crypto/src/tls/TlsUtilities.cs +++ b/crypto/src/tls/TlsUtilities.cs @@ -5721,5 +5721,14 @@ namespace Org.BouncyCastle.Tls } return v; } + + // TODO[api] Not needed once GetHandshakeResendTimeMillis() has been added to TlsPeer + internal static int GetHandshakeResendTimeMillis(TlsPeer tlsPeer) + { + if (tlsPeer is AbstractTlsPeer abstractTlsPeer) + return abstractTlsPeer.GetHandshakeResendTimeMillis(); + + return 1000; + } } } -- cgit 1.4.1