package core:crypto
Overview
A selection of cryptography algorithms and useful helper routines.
Index
Types (0)
This section is empty.
Constants (2)
Variables (0)
This section is empty.
Procedure Groups (0)
This section is empty.
`#config` values (1)
Types
This section is empty.
Constants
COMPACT_IMPLS ¶
COMPACT_IMPLS: bool : #config(ODIN_CRYPTO_COMPACT, false)
Omit large precomputed tables, trading off performance for size.
HAS_RAND_BYTES ¶
HAS_RAND_BYTES: bool : runtime.HAS_RAND_BYTES
HAS_RAND_BYTES is true iff the runtime provides a cryptographic entropy source.
Variables
This section is empty.
Procedures
compare_byte_ptrs_constant_time ¶
compare_byte_ptrs_constant_time returns 1 iff the bytes pointed to by a and b are equal, 0 otherwise.
The execution time of this routine is constant regardless of the contents of the memory being compared.
compare_constant_time ¶
compare_constant_time returns 1 iff a and b are equal, 0 otherwise.
The execution time of this routine is constant regardless of the contents of the slices being compared, as long as the length of the slices is equal. If the length of the two slices is different, it will early-return 0.
is_zero_constant_time ¶
is_zero_constant_time returns 1 iff b is all 0s, 0 otherwise.
rand_bytes ¶
rand_bytes :: proc(dst: []u8) {…}
rand_bytes fills the dst buffer with cryptographic entropy taken from the system entropy source. This routine will block if the system entropy source is not ready yet. All system entropy source failures are treated as catastrophic, resulting in a panic.
Support for the system entropy source can be checked with the
HAS_RAND_BYTES boolean constant.
random_generator ¶
random_generator :: proc() -> runtime.Random_Generator {…}
random_generator returns a runtime.Random_Generator backed by the
system entropy source.
Support for the system entropy source can be checked with the
HAS_RAND_BYTES boolean constant.
set ¶
Set each byte of a memory range to a specific value.
This procedure copies value specified by the value parameter into each of the
len bytes of a memory range, located at address data.
This procedure returns the pointer to data.
zero_explicit ¶
Set each byte of a memory range to zero.
This procedure copies the value 0 into the len bytes of a memory range,
starting at address data.
This procedure returns the pointer to data.
Unlike the zero() procedure, which can be optimized away or reordered by the
compiler under certain circumstances, zero_explicit() procedure can not be
optimized away or reordered with other memory access operations, and the
compiler assumes volatile semantics of the memory.
Procedure Groups
This section is empty.
`#config` values
COMPACT_IMPLS ¶
COMPACT_IMPLS: bool : #config(ODIN_CRYPTO_COMPACT, false)
Omit large precomputed tables, trading off performance for size.
Source Files
Generation Information
Generated with odin version dev-2026-03 (vendor "odin") Windows_amd64 @ 2026-03-02 21:24:33.590804700 +0000 UTC