HashingContext

Context to compute cryptographic hashes over multiple iterations.

The HashingContext class provides an interface for computing cryptographic hashes over multiple iterations. This is useful for example when 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 hashtype enum shows the supported hashing algorithms.

More...

Members

Aliases

BaseClasses
alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses)
Undocumented in source.

Enums

Constants
enum Constants
HashType
enum HashType

Functions

finish
PoolByteArray finish()

Closes the current context, and return the computed hash.

opAssign
typeof(null) opAssign(typeof(null) n)
opEquals
bool opEquals(HashingContext other)
opEquals
bool opEquals(typeof(null) n)
start
GodotError start(long type)

Starts a new hash computation of the given type (e.g. constant HASH_SHA256 to start computation of a SHA-256).

toHash
size_t toHash()
update
GodotError update(PoolByteArray chunk)

Updates the computation with the given chunk of data.

Mixins

__anonymous
mixin baseCasts
Undocumented in source.

Static functions

_new
HashingContext _new()

Construct a new instance of HashingContext. Note: use memnew!HashingContext instead.

Static variables

_classBindingInitialized
bool _classBindingInitialized;
Undocumented in source.

Structs

GDNativeClassBinding
struct GDNativeClassBinding
Undocumented in source.

Unions

__anonymous
union __anonymous
Undocumented in source.

Variables

_GODOT_internal_name
enum string _GODOT_internal_name;
Undocumented in source.

Mixed In Members

From mixin baseCasts

as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(ToRef) as()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(ToRef)
Undocumented in source.
opCast
void* opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
godot_object opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
bool opCast()
Undocumented in source. Be warned that the author may not have intended to support it.

Detailed Description

const CHUNK_SIZE = 1024

func hash_file(path): var ctx = HashingContext.new() var file = File.new() # Start a SHA-256 context. ctx.start(HashingContext.HASH_SHA256) # Check that file exists. if not file.file_exists(path): return # Open the file to hash. file.open(path, File.READ) # Update the context after reading each chunk. while not file.eof_reached(): ctx.update(file.get_buffer(CHUNK_SIZE)) # Get the computed hash. var res = ctx.finish() # Print the result as hex string and array. printt(res.hex_encode(), Array(res))

Note: Not available in HTML5 exports.

Meta