Add SetDTLSCustomCipherSuite to SettingEngine

Resolves #2512
This commit is contained in:
Sean DuBois
2023-09-11 14:57:37 -04:00
parent 5cf4168432
commit 58c9a54275
2 changed files with 8 additions and 0 deletions

View File

@@ -318,6 +318,7 @@ func (t *DTLSTransport) Start(remoteParameters DTLSParameters) error {
ClientAuth: dtls.RequireAnyClientCert, ClientAuth: dtls.RequireAnyClientCert,
LoggerFactory: t.api.settingEngine.LoggerFactory, LoggerFactory: t.api.settingEngine.LoggerFactory,
InsecureSkipVerify: !t.api.settingEngine.dtls.disableInsecureSkipVerify, InsecureSkipVerify: !t.api.settingEngine.dtls.disableInsecureSkipVerify,
CustomCipherSuites: t.api.settingEngine.dtls.customCipherSuites,
}, nil }, nil
} }

View File

@@ -72,6 +72,7 @@ type SettingEngine struct {
clientCAs *x509.CertPool clientCAs *x509.CertPool
rootCAs *x509.CertPool rootCAs *x509.CertPool
keyLogWriter io.Writer keyLogWriter io.Writer
customCipherSuites func() []dtls.CipherSuite
} }
sctp struct { sctp struct {
maxReceiveBufferSize uint32 maxReceiveBufferSize uint32
@@ -434,3 +435,9 @@ func (e *SettingEngine) SetDTLSKeyLogWriter(writer io.Writer) {
func (e *SettingEngine) SetSCTPMaxReceiveBufferSize(maxReceiveBufferSize uint32) { func (e *SettingEngine) SetSCTPMaxReceiveBufferSize(maxReceiveBufferSize uint32) {
e.sctp.maxReceiveBufferSize = maxReceiveBufferSize e.sctp.maxReceiveBufferSize = maxReceiveBufferSize
} }
// SetDTLSCustomerCipherSuites allows the user to specify a list of DTLS CipherSuites.
// This allow usage of Ciphers that are reserved for private usage.
func (e *SettingEngine) SetDTLSCustomerCipherSuites(customCipherSuites func() []dtls.CipherSuite) {
e.dtls.customCipherSuites = customCipherSuites
}