AesContext
Предоставляет доступ к шифрованию/дешифрованию необработанных данных по алгоритму AES.
Предоставляет доступ к шифрованию/дешифрованию необработанных данных по алгоритму AES.
Этот класс содержит контекстную информацию, необходимую для операций шифрования и дешифрования с помощью AES (Усовершенствованный стандарт шифрования). Поддерживаются режимы AES-ECB и AES-CBC.
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Конструктор
public AesContext();Методы6
Finishvoid
public void Finish();Закрыть данный AES-контекст, чтобы его можно было запустить заново. См. раздел AesContext.Start.
GetIVStatebyte[] · Устарело
public byte[] GetIVState();Возвращает пустоту byte[].
Примечание: Этот метод, используемый для возвращения активного состояния IV с изменениями, внесенными одним или несколькими AesContext.Update Это больше не поддерживается.
byte[]Start2 перегрузки
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.
| Имя | Тип | По умолчанию |
|---|---|---|
mode | AesContext.Mode | — |
key | byte[] | — |
iV | byte[] | null |
iVЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().
Errorpublic 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.
| Имя | Тип | По умолчанию |
|---|---|---|
mode | AesContext.Mode | — |
key | ReadOnlySpan<byte> | — |
iV | ReadOnlySpan<byte> | — |
ErrorUpdate2 перегрузки
public byte[] Update(byte[] src);Выполнить нужную операцию для этого контекста AES. Вернет byte[], содержащий результат шифрования (или расшифровки) указанного src. См. AesContext.Start для режима работы.
Примечание: Размер src должен быть кратен 16. При необходимости примените некоторое заполнение.
| Имя | Тип | По умолчанию |
|---|---|---|
src | byte[] | — |
byte[]public byte[] Update(ReadOnlySpan<byte> src);Выполнить нужную операцию для этого контекста AES. Вернет byte[], содержащий результат шифрования (или расшифровки) указанного src. См. AesContext.Start для режима работы.
Примечание: Размер src должен быть кратен 16. При необходимости примените некоторое заполнение.
| Имя | Тип | По умолчанию |
|---|---|---|
src | ReadOnlySpan<byte> | — |
byte[]AesContext.Mode
| Значение | Описание |
|---|---|
CbcDecrypt = 3 | Режим дешифрования с использованием цепочки блоков шифрования AES. |
CbcEncrypt = 2 | Режим шифрования с использованием цепочки блоков AES. |
EcbDecrypt = 1 | AES режим дешифрования электронной кодовой книги. |
EcbEncrypt = 0 | AES режим шифрования электронной кодовой книги. |
Max = 4 | Максимальное значение для режима перечисления. |