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,19 @@
/*
* 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.Configuration.Contracts.DataFormats
{
/// <summary>
/// Defines all supported data formats.
/// </summary>
public enum FormatType
{
Binary = 1,
Xml
}
}

View File

@@ -0,0 +1,29 @@
/*
* 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.IO;
using SafeExamBrowser.Configuration.Contracts.Cryptography;
namespace SafeExamBrowser.Configuration.Contracts.DataFormats
{
/// <summary>
/// Provides functionality to parse configuration data with a particular format.
/// </summary>
public interface IDataParser
{
/// <summary>
/// Indicates whether the given data complies with the required format.
/// </summary>
bool CanParse(Stream data);
/// <summary>
/// Tries to parse the given data.
/// </summary>
ParseResult TryParse(Stream data, PasswordParameters password = null);
}
}

View File

@@ -0,0 +1,29 @@
/*
* 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.Configuration.Contracts.Cryptography;
namespace SafeExamBrowser.Configuration.Contracts.DataFormats
{
/// <summary>
/// Provides functionality to serialize configuration data to a particular format.
/// </summary>
public interface IDataSerializer
{
/// <summary>
/// Indicates whether data can be serialized to the given format.
/// </summary>
bool CanSerialize(FormatType format);
/// <summary>
/// Tries to serialize the given data.
/// </summary>
SerializeResult TrySerialize(IDictionary<string, object> data, EncryptionParameters encryption = null);
}
}

View File

@@ -0,0 +1,39 @@
/*
* 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.Configuration.Contracts.Cryptography;
namespace SafeExamBrowser.Configuration.Contracts.DataFormats
{
/// <summary>
/// Defines the result of a data parsing operation by an <see cref="IDataParser"/>.
/// </summary>
public class ParseResult
{
/// <summary>
/// The encryption parameters which were used to decrypt the data, or <c>null</c> if it was not encrypted.
/// </summary>
public EncryptionParameters Encryption { get; set; }
/// <summary>
/// The original format of the data.
/// </summary>
public FormatType Format { get; set; }
/// <summary>
/// The parsed settings data. Might be <c>null</c> or in an undefinable state, depending on <see cref="Status"/>.
/// </summary>
public IDictionary<string, object> RawData { get; set; }
/// <summary>
/// The status result of the parsing operation.
/// </summary>
public LoadStatus Status { get; set; }
}
}

View File

@@ -0,0 +1,28 @@
/*
* 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.IO;
namespace SafeExamBrowser.Configuration.Contracts.DataFormats
{
/// <summary>
/// Defines the result of a data serialization operation by an <see cref="IDataSerializer"/>.
/// </summary>
public class SerializeResult
{
/// <summary>
/// The serialized data. Might be <c>null</c> or in an undefinable state, depending on <see cref="Status"/>.
/// </summary>
public Stream Data { get; set; }
/// <summary>
/// The status result of the serialization operation.
/// </summary>
public SaveStatus Status { get; set; }
}
}