项目珠穆朗玛峰上的好人们编写了一个正式验证的加密库,称为HACL*,用于Web组装.遗憾的是,没有使用此处定义的代码的示例.
我用Version 71.0.3578.98 (Official Build) (64-bit)Chrome 测试了代码.
这实际上是我在客户端上尝试的,以获得一个有效的例子.
var module = HaclLoader().then(function(m) {
var state_buffer = new ArrayBuffer(32);
var state = new Uint32Array(state_buffer);
var message_buffer = new ArrayBuffer(32);
var message = new Uint8Array(message_buffer);
for (var i = 0; i < message.length; i++) {
message[i] = i;
}
var hash_buffer = new ArrayBuffer(32);
var hash = new Uint8Array(hash_buffer);
m._Hacl_SHA2_256_init(state);
m._Hacl_SHA2_256_update(state, message);
m._Hacl_SHA2_256_finish(state, hash);
console.log(hash);
});
Run Code Online (Sandbox Code Playgroud)
引用的代码尝试使用此处定义的函数.不幸的是,这个示例代码不起作用,哈希最终成为零数组.