Documentation ¶
Overview ¶
Package HashingContext provides methods for working with HashingContext object instances.
Index ¶
- type Advanced
- type Any
- type HashType
- type Instance
- func (self Instance) AsHashingContext() Instance
- func (self Instance) AsObject() [1]gd.Object
- func (self Instance) AsRefCounted() [1]gd.RefCounted
- func (self Instance) Finish() []byte
- func (self Instance) Start(atype gdclass.HashingContextHashType) error
- func (self *Instance) UnsafePointer() unsafe.Pointer
- func (self Instance) Update(chunk []byte) error
- func (self Instance) Virtual(name string) reflect.Value
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Advanced ¶
type Advanced = class
Advanced exposes a 1:1 low-level instance of the class, undocumented, for those who know what they are doing.
type HashType ¶
type HashType = gdclass.HashingContextHashType //gd:HashingContext.HashType
type Instance ¶
type Instance [1]gdclass.HashingContext
The HashingContext class provides an interface for computing cryptographic hashes over multiple iterations. Useful for computing hashes of big files (so you don't have to load them all in memory), network streams, and data streams in general (so you don't have to hold buffers). The [enum HashType] enum shows the supported hashing algorithms. [codeblocks] [gdscript] const CHUNK_SIZE = 1024
func hash_file(path):
# Check that file exists. if not FileAccess.file_exists(path): return # Start an SHA-256 context. var ctx = HashingContext.new() ctx.start(HashingContext.HASH_SHA256) # Open the file to hash. var file = FileAccess.open(path, FileAccess.READ) # Update the context after reading each chunk. while file.get_position() < file.get_length(): var remaining = file.get_length() - file.get_position() ctx.update(file.get_buffer(min(remaining, CHUNK_SIZE))) # Get the computed hash. var res = ctx.finish() # Print the result as hex string and array. printt(res.hex_encode(), Array(res))
[/gdscript] [csharp] public const int ChunkSize = 1024;
public void HashFile(string path)
{ // Check that file exists. if (!FileAccess.FileExists(path)) { return; } // Start an SHA-256 context. var ctx = new HashingContext(); ctx.Start(HashingContext.HashType.Sha256); // Open the file to hash. using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read); // Update the context after reading each chunk. while (file.GetPosition() < file.GetLength()) { int remaining = (int)(file.GetLength() - file.GetPosition()); ctx.Update(file.GetBuffer(Mathf.Min(remaining, ChunkSize))); } // Get the computed hash. byte[] res = ctx.Finish(); // Print the result as hex string and array. GD.PrintT(res.HexEncode(), (Variant)res); }
[/csharp] [/codeblocks]
var Nil Instance
Nil is a nil/null instance of the class. Equivalent to the zero value.
func (Instance) AsHashingContext ¶
func (Instance) AsRefCounted ¶
func (self Instance) AsRefCounted() [1]gd.RefCounted
func (Instance) Start ¶
func (self Instance) Start(atype gdclass.HashingContextHashType) error
Starts a new hash computation of the given [param type] (e.g. [constant HASH_SHA256] to start computation of an SHA-256).