shake256

std.crypto.hash.shake256

val BLOCK_SIZE

pub val BLOCK_SIZE: usize = 136

rec State

pub rec State;

SHAKE256 XOF 状态

fun init

pub fun init() State;

初始化一个新的 SHAKE256 状态

ret:已初始化的状态

fun update

pub fun update(s: *State, data: *u8, len: usize);

向 XOF 状态中喂入数据

s:指向 XOF 状态的指针 data:指向输入字节的指针 len:要处理的字节数

fun finalize

pub fun finalize(s: *State);

结束吸收并准备挤出(squeeze);在 squeeze 之前调用一次

s:指向 XOF 状态的指针

fun squeeze

pub fun squeeze(s: *State, out: *u8, len: usize);

挤出输出字节;可重复调用以获取更多输出

s:指向 XOF 状态的指针 out:指向输出缓冲区的指针 len:要生成的字节数

fun xof

pub fun xof(data: *u8, len: usize, out: *u8, out_len: usize);

单次调用在字节缓冲区上生成 out_len 字节的 SHAKE256 输出

data:指向输入字节的指针 len:输入字节数 out:指向输出缓冲区的指针 out_len:要生成的输出字节数