diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /netwerk/base/FuzzySocketControl.cpp | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'netwerk/base/FuzzySocketControl.cpp')
-rw-r--r-- | netwerk/base/FuzzySocketControl.cpp | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/netwerk/base/FuzzySocketControl.cpp b/netwerk/base/FuzzySocketControl.cpp new file mode 100644 index 0000000000..ec24d1da6b --- /dev/null +++ b/netwerk/base/FuzzySocketControl.cpp @@ -0,0 +1,185 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set ts=2 sw=2 sts=2 et cindent: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "FuzzySocketControl.h" + +#include "FuzzySecurityInfo.h" +#include "ipc/IPCMessageUtils.h" +#include "nsITlsHandshakeListener.h" +#include "sslt.h" + +namespace mozilla { +namespace net { + +FuzzySocketControl::FuzzySocketControl() {} + +FuzzySocketControl::~FuzzySocketControl() {} + +NS_IMPL_ISUPPORTS(FuzzySocketControl, nsITLSSocketControl) + +NS_IMETHODIMP +FuzzySocketControl::GetProviderFlags(uint32_t* aProviderFlags) { + MOZ_CRASH("Unused"); + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::GetKEAUsed(int16_t* aKea) { + // Can be ssl_kea_dh or ssl_kea_ecdh for HTTP2 + *aKea = ssl_kea_ecdh; + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::GetKEAKeyBits(uint32_t* aKeyBits) { + // Must be >= 224 for ecdh and >= 2048 for dh when using HTTP2 + *aKeyBits = 256; + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::GetSSLVersionUsed(int16_t* aSSLVersionUsed) { + // Must be >= TLS 1.2 for HTTP2 + *aSSLVersionUsed = nsITLSSocketControl::TLS_VERSION_1_2; + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::GetSSLVersionOffered(int16_t* aSSLVersionOffered) { + *aSSLVersionOffered = nsITLSSocketControl::TLS_VERSION_1_2; + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::GetMACAlgorithmUsed(int16_t* aMac) { + // The only valid choice for HTTP2 is SSL_MAC_AEAD + *aMac = nsITLSSocketControl::SSL_MAC_AEAD; + return NS_OK; +} + +bool FuzzySocketControl::GetDenyClientCert() { return false; } + +void FuzzySocketControl::SetDenyClientCert(bool aDenyClientCert) { + // Called by mozilla::net::nsHttpConnection::StartSpdy +} + +NS_IMETHODIMP +FuzzySocketControl::GetClientCertSent(bool* arg) { + *arg = false; + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::GetFailedVerification(bool* arg) { + *arg = false; + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::GetAlpnEarlySelection(nsACString& aAlpnSelected) { + // TODO: For now we don't support early selection + return NS_ERROR_NOT_AVAILABLE; +} + +NS_IMETHODIMP +FuzzySocketControl::GetEarlyDataAccepted(bool* aAccepted) { + *aAccepted = false; + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::DriveHandshake() { return NS_OK; } + +NS_IMETHODIMP +FuzzySocketControl::IsAcceptableForHost(const nsACString& hostname, + bool* _retval) { + NS_ENSURE_ARG(_retval); + *_retval = true; + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::TestJoinConnection(const nsACString& npnProtocol, + const nsACString& hostname, int32_t port, + bool* _retval) { + *_retval = false; + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::JoinConnection(const nsACString& npnProtocol, + const nsACString& hostname, int32_t port, + bool* _retval) { + *_retval = false; + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::ProxyStartSSL() { return NS_OK; } + +NS_IMETHODIMP +FuzzySocketControl::StartTLS() { return NS_OK; } + +NS_IMETHODIMP +FuzzySocketControl::SetNPNList(nsTArray<nsCString>& protocolArray) { + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::GetEsniTxt(nsACString& aEsniTxt) { return NS_OK; } + +NS_IMETHODIMP +FuzzySocketControl::SetEsniTxt(const nsACString& aEsniTxt) { + MOZ_CRASH("Unused"); + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::GetEchConfig(nsACString& aEchConfig) { return NS_OK; } + +NS_IMETHODIMP +FuzzySocketControl::SetEchConfig(const nsACString& aEchConfig) { + MOZ_CRASH("Unused"); + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::GetRetryEchConfig(nsACString& aEchConfig) { return NS_OK; } + +NS_IMETHODIMP +FuzzySocketControl::GetPeerId(nsACString& aResult) { + aResult.Assign(""_ns); + return NS_OK; +} + +NS_IMETHODIMP FuzzySocketControl::SetHandshakeCallbackListener( + nsITlsHandshakeCallbackListener* callback) { + if (callback) { + callback->HandshakeDone(); + } + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::DisableEarlyData(void) { return NS_ERROR_NOT_IMPLEMENTED; } + +NS_IMETHODIMP FuzzySocketControl::GetSecurityInfo( + nsITransportSecurityInfo** aSecurityInfo) { + nsCOMPtr<nsITransportSecurityInfo> securityInfo(new FuzzySecurityInfo()); + securityInfo.forget(aSecurityInfo); + return NS_OK; +} + +NS_IMETHODIMP +FuzzySocketControl::AsyncGetSecurityInfo(JSContext* aCx, + mozilla::dom::Promise** aPromise) { + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP FuzzySocketControl::Claim() { return NS_OK; } + +} // namespace net +} // namespace mozilla |