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 library itself.
Zig › std/ › crypto/ › aes/ › soft.zig › generateTable
generateTable
soft.generateTable
fn generateTable (invert : bool ) [4 ][256 ]u32
File
Code
fn generateTable (invert : bool ) [4 ][256 ]u32 {
@setEvalBranchQuota (50000 );
var table : [4 ][256 ]u32 = undefined ;
for (generateSbox (invert ), 0 ..) |value , index | {
table [0 ][index ] = math .shl (u32 , mul (value , if (invert ) 0xb else 0x3 ), 24 );
table [0 ][index ] |= math .shl (u32 , mul (value , if (invert ) 0xd else 0x1 ), 16 );
table [0 ][index ] |= math .shl (u32 , mul (value , if (invert ) 0x9 else 0x1 ), 8 );
table [0 ][index ] |= mul (value , if (invert ) 0xe else 0x2 );
table [1 ][index ] = math .rotl (u32 , table [0 ][index ], 8 );
table [2 ][index ] = math .rotl (u32 , table [0 ][index ], 16 );
table [3 ][index ] = math .rotl (u32 , table [0 ][index ], 24 );
}
return table ;
}