Skip to documentation
SLOP

tiny.simd.AesCtrEngine

Reference tiny.simd AesCtrEngine

Defined in random.

API (5)

Actions

Public operations.

Fields and members

Public fields and members.

No direct callersNo direct callsrandomAesCtrEngine
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Source: lib/simd/src/random.zig:250

zig
pub const AesCtrEngine = struct {    key: [2 * (1 + rounds)]u64,    const rounds: usize = 5;    const D: type = tag.Full128(u8);    const D64: type = tag.Full128(u64);    pub fn initDeterministic() AesCtrEngine {        return initKey(.{ 0x243f_6a88_85a3_08d3, 0x1319_8a2e_0370_7344 });    }    pub fn initKey(seed: [2]u64) AesCtrEngine {        var result: AesCtrEngine = undefined;        result.key[0] = seed[0];        result.key[1] = seed[1];        inline for (0..rounds) |index| {            result.key[2 + 2 * index] = result.key[2 * index + 1] +%                0xa409_3822_299f_31d0;            result.key[2 + 2 * index + 1] = result.key[2 * index] +%                0x082e_fa98_ec4e_6c89;        }        return result;    }    pub fn initWithEntropy(entropy: anytype) !AesCtrEngine {        var bytes: [16]u8 = undefined;        try entropy.fill(&bytes);        return initKey(@bitCast(bytes));    }    pub fn generate(self: *const AesCtrEngine, stream: u64, counter: u64) u64 {        var state: D.Vector = @bitCast(@as(D64.Vector, .{ counter, stream }));        state ^= keyVector(self.key[0..2].*);        inline for (0..rounds) |index| {            state = crypto.aesRound(D, state, keyVector(self.key[2 + 2 * index ..][0..2].*));        }        const result: D64.Vector = @bitCast(state);        return result[0];    }    fn keyVector(pair: [2]u64) D.Vector {        return @bitCast(@as(D64.Vector, pair));    }};

Source: lib/simd/src/root.zig:511

zig
pub const AesCtrEngine = random.AesCtrEngine;
Called byCallsRngStreamnextcryptoaesRoundprivate sourcelib.simd.src.random.AesCtrEnginekeyVectorAesCtrEnginegenerate
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsprivate sourcelib.simd.src.cuckoo.builderPlanprivate sourcelib.simd.src.cuckoo.builderexpectDefaultBuildtest sourcelib.simd.src.cuckoo.buildertest: Highway generic Cuckoo builder ...private sourcelib.simd.src.cuckoo.familyfixtureTabletest sourcelib.simd.src.cuckoo.familytest: Highway generic Cuckoo query ta...+24 moreAesCtrEngineinitKeyAesCtrEngineinitDeterministic
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callsAesCtrEngineinitDeterministicAesCtrEngineinitWithEntropyAesCtrEngineinitKey
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallstest sourcelib.simd.src.randomtest: Highway AES counter accepts cal...AesCtrEngineinitKeyAesCtrEngineinitWithEntropy
Static calls · unresolved targets: 0 · external targets: 1.

Complete caller list for AesCtrEngine.initDeterministic

29 direct callers.

Audit

Definitions5
Public names10
Members1
Version26.7.0
Revisiondaab053ee433