HMACContext
Наследует: RefCounted < Object
Используется для создания HMAC для сообщения с использованием ключа.
Описание
Класс HMACContext полезен для расширенных вариантов использования HMAC, таких как потоковая передача сообщений, поскольку он поддерживает создание сообщений с течением времени, а не предоставляет их все сразу.
extends Node
var ctx = HMACContext.new()
func _ready():
var key = "supersecret".to_utf8_buffer()
var err = ctx.start(HashingContext.HASH_SHA256, key)
assert(err == OK)
var msg1 = "this is ".to_utf8_buffer()
var msg2 = "super duper secret".to_utf8_buffer()
err = ctx.update(msg1)
assert(err == OK)
err = ctx.update(msg2)
assert(err == OK)
var hmac = ctx.finish()
print(hmac.hex_encode())
using Godot;
using System.Diagnostics;
public partial class MyNode : Node
{
private HmacContext _ctx = new HmacContext();
public override void _Ready()
{
byte[] key = "supersecret".ToUtf8Buffer();
Error err = _ctx.Start(HashingContext.HashType.Sha256, key);
Debug.Assert(err == Error.Ok);
byte[] msg1 = "this is ".ToUtf8Buffer();
byte[] msg2 = "super duper secret".ToUtf8Buffer();
err = _ctx.Update(msg1);
Debug.Assert(err == Error.Ok);
err = _ctx.Update(msg2);
Debug.Assert(err == Error.Ok);
byte[] hmac = _ctx.Finish();
GD.Print(hmac.HexEncode());
}
}
Методы
finish() |
|
start(hash_type: HashType, key: PackedByteArray) |
|
update(data: PackedByteArray) |
Описания метода
PackedByteArray finish() 🔗
Возвращает полученный HMAC. Если HMAC не удалось, возвращается пустой PackedByteArray.
Error start(hash_type: HashType, key: PackedByteArray) 🔗
Инициализирует HMACContext. Этот метод не может быть вызван снова для того же HMACContext, пока не будет вызван finish().
Error update(data: PackedByteArray) 🔗
Обновляет сообщение, чтобы оно было HMACed. Это может быть вызвано несколько раз до вызова finish() для добавления data к сообщению, но не может быть вызвано до вызова start().