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
Hereda: RefCounted < Object
Se usa para crear un HMAC para un mensaje usando una clave.
Descripción
The HMACContext class is useful for advanced HMAC use cases, such as streaming the message as it supports creating the message over time rather than providing it all at once.
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());
}
}
Métodos
finish() |
|
start(hash_type: HashType, key: PackedByteArray) |
|
update(data: PackedByteArray) |
Descripciones de Métodos
PackedByteArray finish() 🔗
Devuelve el HMAC resultante. Si el HMAC falló, se devuelve un PackedByteArray vacío.
Error start(hash_type: HashType, key: PackedByteArray) 🔗
Inicializa el HMACContext. Este método no puede volver a llamarse en el mismo HMACContext hasta que se haya llamado a finish().
Error update(data: PackedByteArray) 🔗
Actualiza el mensaje a ser HMAC. Esto puede ser llamado múltiples veces antes de que se llame a finish() para añadir data al mensaje, pero no puede ser llamado hasta que se haya llamado a start().