mirror of
https://github.com/godotengine/godot-docs.git
synced 2026-01-04 14:11:02 +03:00
classref: Sync with latest 4.0-dev
This commit is contained in:
114
classes/class_hmaccontext.rst
Normal file
114
classes/class_hmaccontext.rst
Normal file
@@ -0,0 +1,114 @@
|
||||
:github_url: hide
|
||||
|
||||
.. Generated automatically by doc/tools/makerst.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:`RefCounted<class_RefCounted>` **<** :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.
|
||||
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. code-tab:: gdscript
|
||||
|
||||
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 = "vewy vewy 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())
|
||||
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
using Godot;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
|
||||
public class CryptoNode : Node
|
||||
{
|
||||
private HMACContext ctx = new HMACContext();
|
||||
public override void _Ready()
|
||||
{
|
||||
PackedByteArray key = String("supersecret").to_utf8();
|
||||
Error err = ctx.Start(HashingContext.HASH_SHA256, key);
|
||||
GD.Assert(err == OK);
|
||||
PackedByteArray msg1 = String("this is ").to_utf8();
|
||||
PackedByteArray msg2 = String("vewy vew secret").to_utf8();
|
||||
err = ctx.Update(msg1);
|
||||
GD.Assert(err == OK);
|
||||
err = ctx.Update(msg2);
|
||||
GD.Assert(err == OK);
|
||||
PackedByteArray hmac = ctx.Finish();
|
||||
GD.Print(hmac.HexEncode());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
**Note:** Not available in HTML5 exports.
|
||||
|
||||
Methods
|
||||
-------
|
||||
|
||||
+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| :ref:`PackedByteArray<class_PackedByteArray>` | :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:`PackedByteArray<class_PackedByteArray>` key **)** |
|
||||
+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`update<class_HMACContext_method_update>` **(** :ref:`PackedByteArray<class_PackedByteArray>` data **)** |
|
||||
+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
Method Descriptions
|
||||
-------------------
|
||||
|
||||
.. _class_HMACContext_method_finish:
|
||||
|
||||
- :ref:`PackedByteArray<class_PackedByteArray>` **finish** **(** **)**
|
||||
|
||||
Returns the resulting HMAC. If the HMAC failed, an empty :ref:`PackedByteArray<class_PackedByteArray>` is returned.
|
||||
|
||||
----
|
||||
|
||||
.. _class_HMACContext_method_start:
|
||||
|
||||
- :ref:`Error<enum_@GlobalScope_Error>` **start** **(** :ref:`HashType<enum_HashingContext_HashType>` hash_type, :ref:`PackedByteArray<class_PackedByteArray>` 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:`PackedByteArray<class_PackedByteArray>` 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.)`
|
||||
.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
|
||||
.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
|
||||
.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
|
||||
Reference in New Issue
Block a user