reckfellENGINE

AesContext

Предоставляет доступ к шифрованию/дешифрованию необработанных данных по алгоритму AES.

На этой странице
class AesContextReckfellSharpНаследует RefCounted

Предоставляет доступ к шифрованию/дешифрованию необработанных данных по алгоритму AES.

Этот класс содержит контекстную информацию, необходимую для операций шифрования и дешифрования с помощью AES (Усовершенствованный стандарт шифрования). Поддерживаются режимы AES-ECB и AES-CBC.

C#
using Reckfell;
using System.Diagnostics;

public partial class MyNode : Entity
{
    private AesContext _aes = new AesContext();

    public override void _Ready()
    {
        string key = "My secret key!!!"; // Key must be either 16 or 32 bytes.
        string data = "My secret text!!"; // Data size must be multiple of 16 bytes, apply padding if needed.
        // Encrypt ECB
        _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer());
        byte[] encrypted = _aes.Update(data.ToUtf8Buffer());
        _aes.Finish();
        // Decrypt ECB
        _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer());
        byte[] decrypted = _aes.Update(encrypted);
        _aes.Finish();
        // Check ECB
        Debug.Assert(decrypted == data.ToUtf8Buffer());

        string iv = "My secret iv!!!!"; // IV must be of exactly 16 bytes.
        // Encrypt CBC
        _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer(), iv.ToUtf8Buffer());
        encrypted = _aes.Update(data.ToUtf8Buffer());
        _aes.Finish();
        // Decrypt CBC
        _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer(), iv.ToUtf8Buffer());
        decrypted = _aes.Update(encrypted);
        _aes.Finish();
        // Check CBC
        Debug.Assert(decrypted == data.ToUtf8Buffer());
    }
}

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

AesContextКонструктор
# AesContext
C#
public AesContext();

Методы6

Finishvoid
# Finish
C#
public void Finish();

Закрыть данный AES-контекст, чтобы его можно было запустить заново. См. раздел AesContext.Start.

GetIVStatebyte[] · Устарело
# GetIVState
C#
public byte[] GetIVState();

Возвращает пустоту byte[]. Примечание: Этот метод, используемый для возвращения активного состояния IV с изменениями, внесенными одним или несколькими AesContext.Update Это больше не поддерживается.

Возвращает byte[]
Start2 перегрузки
# Start · 1/2
C#
public Error Start(AesContext.Mode mode, byte[] key, byte[] iV = null);

Запустите контекст AES в заданном mode. Всегда должен быть указан key из 16 или 32 байт, тогда как iv (вектор инициализации) из ровно 16 байт требуется только тогда, когда mode равен AesContext.Mode.CbcEncrypt или AesContext.Mode.CbcDecrypt.

Параметры
ИмяТипПо умолчанию
modeAesContext.Mode—
keybyte[]—
iVbyte[]null
iV

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().

Возвращает Error
# Start · 2/2
C#
public Error Start(AesContext.Mode mode, ReadOnlySpan<byte> key, ReadOnlySpan<byte> iV);

Запустите контекст AES в заданном mode. Всегда должен быть указан key из 16 или 32 байт, тогда как iv (вектор инициализации) из ровно 16 байт требуется только тогда, когда mode равен AesContext.Mode.CbcEncrypt или AesContext.Mode.CbcDecrypt.

Параметры
ИмяТипПо умолчанию
modeAesContext.Mode—
keyReadOnlySpan<byte>—
iVReadOnlySpan<byte>—
Возвращает Error
Update2 перегрузки
# Update · 1/2
C#
public byte[] Update(byte[] src);

Выполнить нужную операцию для этого контекста AES. Вернет byte[], содержащий результат шифрования (или расшифровки) указанного src. См. AesContext.Start для режима работы. Примечание: Размер src должен быть кратен 16. При необходимости примените некоторое заполнение.

Параметры
ИмяТипПо умолчанию
srcbyte[]—
Возвращает byte[]
# Update · 2/2
C#
public byte[] Update(ReadOnlySpan<byte> src);

Выполнить нужную операцию для этого контекста AES. Вернет byte[], содержащий результат шифрования (или расшифровки) указанного src. См. AesContext.Start для режима работы. Примечание: Размер src должен быть кратен 16. При необходимости примените некоторое заполнение.

Параметры
ИмяТипПо умолчанию
srcReadOnlySpan<byte>—
Возвращает byte[]

AesContext.Mode

ЗначениеОписание
CbcDecrypt = 3

Режим дешифрования с использованием цепочки блоков шифрования AES.

CbcEncrypt = 2

Режим шифрования с использованием цепочки блоков AES.

EcbDecrypt = 1

AES режим дешифрования электронной кодовой книги.

EcbEncrypt = 0

AES режим шифрования электронной кодовой книги.

Max = 4

Максимальное значение для режима перечисления.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.