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
Hérite de : RefCounted < Object
Utilisé pour créer un HMAC pour un message utilisant une clé.
Description
La classe HMACContext est utile pour les usages HMAC avancés, comme l'envoi continu de message puisqu'il supporte la création de message en plusieurs fois plutôt qu'en une seule fois.
extends Node
var ctx = HMACContext.new()
func _ready():
var key = "supersecret".to_utf8()
var err = ctx.start(HashingContext.HASH_SHA256, key)
assert(err == OK)
var msg1 = "c'est un ".to_utf8()
var msg2 = "extra méga super secret".to_utf8()
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 class CryptoNode : 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 = "c'est un ".ToUtf8Buffer();
byte[] msg2 = "extra méga super 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éthodes
finish() |
|
start(hash_type: HashType, key: PackedByteArray) |
|
update(data: PackedByteArray) |
Descriptions des méthodes
PackedByteArray finish() 🔗
Renvoie le HMAC résultant. Si le HMAC a échoué, un PackedByteArray vide est renvoyé.
Error start(hash_type: HashType, key: PackedByteArray) 🔗
Initialise le HMACContext. Cette méthode ne peut pas être appelée sur le même HMACContext tant que finish() n'a pas été appelé.
Error update(data: PackedByteArray) 🔗
Met à jour le message a être HMACé. Ceci peut être appelé plusieurs fois avant que finish() soit appelée pour ajouter les données data au message, mais ne peut être appelé avant que start() ne soit appelée.