Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › Random › ChaCha › addEntropy Public Function addEntropy Doc Source Public Function std.Random.ChaCha.addEntropy
pub fn addEntropy (self : *Self , bytes : []const u8 ) void Params self : *Self bytes : []const u8 File Random/ChaCha.zig: 29
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 pub fn addEntropy (self : *Self , bytes : []const u8 ) void {
var i : usize = 0 ;
while (i + Cipher .key_length <= bytes .len ) : (i += Cipher .key_length ) {
Cipher .xor (
self .state [0 ..Cipher .key_length ],
self .state [0 ..Cipher .key_length ],
0 ,
bytes [i ..][0 ..Cipher .key_length ].*,
nonce ,
);
}
if (i < bytes .len ) {
var k : [Cipher .key_length ]u8 = @splat (0 );
const src = bytes [i ..];
@memcpy (k [0 ..src .len ], src );
Cipher .xor (
self .state [0 ..Cipher .key_length ],
self .state [0 ..Cipher .key_length ],
0 ,
k ,
nonce ,
);
}
self .refill ();
}
Inserts entropy to refresh the internal state.