mirror of
https://github.com/denoland/deno.git
synced 2024-12-30 02:59:11 -05:00
47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
|
// deno-fmt-ignore-file
|
||
|
// deno-lint-ignore-file
|
||
|
|
||
|
// Copyright Joyent and Node contributors. All rights reserved. MIT license.
|
||
|
// Taken from Node 20.11.1
|
||
|
// This file is automatically generated by `tests/node_compat/runner/setup.ts`. Do not modify this file manually.
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
const common = require('../common');
|
||
|
|
||
|
if (!common.hasCrypto)
|
||
|
common.skip('missing crypto');
|
||
|
|
||
|
const assert = require('assert');
|
||
|
const { subtle } = globalThis.crypto;
|
||
|
|
||
|
(async () => {
|
||
|
const k = await subtle.importKey(
|
||
|
'raw',
|
||
|
new Uint8Array(32),
|
||
|
{ name: 'AES-GCM' },
|
||
|
false,
|
||
|
[ 'encrypt', 'decrypt' ]);
|
||
|
assert(k instanceof CryptoKey);
|
||
|
|
||
|
const e = await subtle.encrypt({
|
||
|
name: 'AES-GCM',
|
||
|
iv: new Uint8Array(12),
|
||
|
}, k, new Uint8Array(0));
|
||
|
assert(e instanceof ArrayBuffer);
|
||
|
assert.deepStrictEqual(
|
||
|
Buffer.from(e),
|
||
|
Buffer.from([
|
||
|
0x53, 0x0f, 0x8a, 0xfb, 0xc7, 0x45, 0x36, 0xb9,
|
||
|
0xa9, 0x63, 0xb4, 0xf1, 0xc4, 0xcb, 0x73, 0x8b ]));
|
||
|
|
||
|
const v = await subtle.decrypt({
|
||
|
name: 'AES-GCM',
|
||
|
iv: new Uint8Array(12),
|
||
|
}, k, e);
|
||
|
assert(v instanceof ArrayBuffer);
|
||
|
assert.strictEqual(v.byteLength, 0);
|
||
|
})().then(common.mustCall()).catch((e) => {
|
||
|
assert.ifError(e);
|
||
|
});
|