Restore SEBPatch
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
@@ -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; }
|
||||
}
|
||||
}
|
@@ -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; }
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user