1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-20 14:25:08 +00:00
serenity/Tests/LibWeb/Text/input/Crypto/SubtleCrypto-import-PBKDF2.html

31 lines
1 KiB
HTML

<script src="../include.js"></script>
<script>
function bufferToHex(buffer) {
return [...new Uint8Array(buffer)].map(b => b.toString(16).padStart(2, "0")).join("");
}
test(async () => {
let key_material = "password";
let enc = new TextEncoder();
let key = await window.crypto.subtle.importKey(
"raw",
enc.encode(key_material),
{ name: "PBKDF2" },
false,
["deriveBits", "deriveKey"]
);
println(`imported key: ${key}`);
println(`imported key.type: ${key.type}`);
println(`imported key.extractable: ${key.extractable}`);
println(`imported key.algorithm: ${JSON.stringify(key.algorithm)}`);
// FIXME: Implement usages println(`imported key.usages: ${key.usages}`);
let message = "Hello, world!";
let encoded_message = enc.encode(message);
let digest = await window.crypto.subtle.digest("SHA-256", encoded_message);
println(`SHA-256 digest: ${bufferToHex(digest)}`);
});
</script>