mirror of
https://github.com/stan220/godot-docs.git
synced 2026-09-08 22:29:18 +00:00
Sync the class reference with the 3.4 branch (4330c0b8e909bd095345f2a979a23aad08493bb8), minus some 3.4.3 specific API changes that are not released yet. Importantly, this fixes some invalid links and thus makes CI happy. Happy CI, happy devs!
107 lines
4.7 KiB
ReStructuredText
107 lines
4.7 KiB
ReStructuredText
:github_url: hide
|
|
|
|
.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
|
|
.. DO NOT EDIT THIS FILE, but the HMACContext.xml source instead.
|
|
.. The source is found in doc/classes or modules/<name>/doc_classes.
|
|
|
|
.. _class_HMACContext:
|
|
|
|
HMACContext
|
|
===========
|
|
|
|
**Inherits:** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
|
|
|
|
Used to create an HMAC for a message using a key.
|
|
|
|
Description
|
|
-----------
|
|
|
|
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()
|
|
var err = ctx.start(HashingContext.HASH_SHA256, key)
|
|
assert(err == OK)
|
|
var msg1 = "this is ".to_utf8()
|
|
var msg2 = "super duper 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())
|
|
|
|
And in C# we can use the following.
|
|
|
|
::
|
|
|
|
using Godot;
|
|
using System;
|
|
using System.Diagnostics;
|
|
|
|
public class CryptoNode : Node
|
|
{
|
|
private HMACContext ctx = new HMACContext();
|
|
public override void _Ready()
|
|
{
|
|
PoolByteArray key = String("supersecret").to_utf8();
|
|
Error err = ctx.Start(HashingContext.HASH_SHA256, key);
|
|
GD.Assert(err == OK);
|
|
PoolByteArray msg1 = String("this is ").to_utf8();
|
|
PoolByteArray msg2 = String("super duper secret").to_utf8();
|
|
err = ctx.Update(msg1);
|
|
GD.Assert(err == OK);
|
|
err = ctx.Update(msg2);
|
|
GD.Assert(err == OK);
|
|
PoolByteArray hmac = ctx.Finish();
|
|
GD.Print(hmac.HexEncode());
|
|
}
|
|
}
|
|
|
|
**Note:** Not available in HTML5 exports.
|
|
|
|
Methods
|
|
-------
|
|
|
|
+-------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`finish<class_HMACContext_method_finish>` **(** **)** |
|
|
+-------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`start<class_HMACContext_method_start>` **(** :ref:`HashType<enum_HashingContext_HashType>` hash_type, :ref:`PoolByteArray<class_PoolByteArray>` key **)** |
|
|
+-------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`update<class_HMACContext_method_update>` **(** :ref:`PoolByteArray<class_PoolByteArray>` data **)** |
|
|
+-------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
Method Descriptions
|
|
-------------------
|
|
|
|
.. _class_HMACContext_method_finish:
|
|
|
|
- :ref:`PoolByteArray<class_PoolByteArray>` **finish** **(** **)**
|
|
|
|
Returns the resulting HMAC. If the HMAC failed, an empty :ref:`PoolByteArray<class_PoolByteArray>` is returned.
|
|
|
|
----
|
|
|
|
.. _class_HMACContext_method_start:
|
|
|
|
- :ref:`Error<enum_@GlobalScope_Error>` **start** **(** :ref:`HashType<enum_HashingContext_HashType>` hash_type, :ref:`PoolByteArray<class_PoolByteArray>` key **)**
|
|
|
|
Initializes the HMACContext. This method cannot be called again on the same HMACContext until :ref:`finish<class_HMACContext_method_finish>` has been called.
|
|
|
|
----
|
|
|
|
.. _class_HMACContext_method_update:
|
|
|
|
- :ref:`Error<enum_@GlobalScope_Error>` **update** **(** :ref:`PoolByteArray<class_PoolByteArray>` data **)**
|
|
|
|
Updates the message to be HMACed. This can be called multiple times before :ref:`finish<class_HMACContext_method_finish>` is called to append ``data`` to the message, but cannot be called until :ref:`start<class_HMACContext_method_start>` has been called.
|
|
|
|
.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
|
|
.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
|
|
.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
|