Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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, ключ)
assert(err == OK)
var msg1 = "це ".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());
}
}
Методи
PackedByteArray |
finish() |
update(data: PackedByteArray) |
Описи методів
PackedByteArray finish() 🔗
Повертає результуючий HMAC. Якщо HMAC не вдалося, повертається порожній PackedByteArray.
Error start(hash_type: HashType, key: PackedByteArray) 🔗
Returns the resulting HMAC. If HMAC fails, an empty PackedByteArray is returned.
Error update(data: PackedByteArray) 🔗
Оновлює повідомлення для HMAC. Це можна викликати кілька разів перед викликом finish(), щоб додати data до повідомлення, але не можна викликати, доки не буде викликано start().