Restore SEBPatch

This commit is contained in:
2025-06-01 11:44:20 +02:00
commit 8c656e3137
1297 changed files with 142172 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* 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/.
*/
namespace SafeExamBrowser.SystemComponents.Contracts.Network
{
/// <summary>
/// Defines all possible connection statuses which can be determined by the application.
/// </summary>
public enum ConnectionStatus
{
/// <summary>
/// The connection status is not determinable.
/// </summary>
Undefined = 0,
/// <summary>
/// A connection has been established.
/// </summary>
Connected,
/// <summary>
/// A connection is being established.
/// </summary>
Connecting,
/// <summary>
/// No connection is established.
/// </summary>
Disconnected
}
}

View File

@@ -0,0 +1,31 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* 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/.
*/
namespace SafeExamBrowser.SystemComponents.Contracts.Network
{
/// <summary>
/// Defines all possible connection types which can be determined by the application.
/// </summary>
public enum ConnectionType
{
/// <summary>
/// The connection type cannot be determined.
/// </summary>
Undefined = 0,
/// <summary>
/// A wired network connection.
/// </summary>
Wired,
/// <summary>
/// A wireless network connection.
/// </summary>
Wireless
}
}

View File

@@ -0,0 +1,15 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* 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/.
*/
namespace SafeExamBrowser.SystemComponents.Contracts.Network.Events
{
/// <summary>
/// Indicates that the network adapter has changed.
/// </summary>
public delegate void ChangedEventHandler();
}

View File

@@ -0,0 +1,36 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* 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/.
*/
namespace SafeExamBrowser.SystemComponents.Contracts.Network.Events
{
/// <summary>
/// The event arguments for the <see cref="CredentialsRequiredEventHandler"/>.
/// </summary>
public class CredentialsRequiredEventArgs
{
/// <summary>
/// The name of the network which requires credentials.
/// </summary>
public string NetworkName { get; set; }
/// <summary>
/// The password as specified by the user.
/// </summary>
public string Password { get; set; }
/// <summary>
/// Indicates whether the credentials could be successfully retrieved or not.
/// </summary>
public bool Success { get; set; }
/// <summary>
/// The username as specified by the user.
/// </summary>
public string Username { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* 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/.
*/
namespace SafeExamBrowser.SystemComponents.Contracts.Network.Events
{
/// <summary>
/// Indicates that credentials are required to connect to a network.
/// </summary>
public delegate void CredentialsRequiredEventHandler(CredentialsRequiredEventArgs args);
}

View File

@@ -0,0 +1,59 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* 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/.
*/
using System.Collections.Generic;
using SafeExamBrowser.SystemComponents.Contracts.Network.Events;
namespace SafeExamBrowser.SystemComponents.Contracts.Network
{
/// <summary>
/// Defines the functionality of the network adapter system component.
/// </summary>
public interface INetworkAdapter : ISystemComponent
{
/// <summary>
/// The connection status of the network adapter.
/// </summary>
ConnectionStatus Status { get; }
/// <summary>
/// The type of the current network connection.
/// </summary>
ConnectionType Type { get; }
/// <summary>
/// Fired when the network adapter has changed.
/// </summary>
event ChangedEventHandler Changed;
/// <summary>
/// Fired when credentials are required to connect to a network.
/// </summary>
event CredentialsRequiredEventHandler CredentialsRequired;
/// <summary>
/// Attempts to connect to the wireless network with the given name.
/// </summary>
void ConnectToWirelessNetwork(string name);
/// <summary>
/// Retrieves all currently available wireless networks.
/// </summary>
IEnumerable<IWirelessNetwork> GetWirelessNetworks();
/// <summary>
/// Starts periodically scanning the available wireless networks.
/// </summary>
void StartWirelessNetworkScanning();
/// <summary>
/// Stops the periodical scanning of wireless networks.
/// </summary>
void StopWirelessNetworkScanning();
}
}

View File

@@ -0,0 +1,31 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
*
* 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/.
*/
namespace SafeExamBrowser.SystemComponents.Contracts.Network
{
/// <summary>
/// Defines a wireless network which can be connected to by the application.
/// </summary>
public interface IWirelessNetwork
{
/// <summary>
/// The network name.
/// </summary>
string Name { get; }
/// <summary>
/// The signal strength of this network, from <c>0</c> (worst) to <c>100</c> (best).
/// </summary>
int SignalStrength { get; }
/// <summary>
/// The connection status of this network.
/// </summary>
ConnectionStatus Status { get; }
}
}