mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
7ad069c53c
PR-URL: https://github.com/nodejs/node/pull/45817 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: James M Snell <jasnell@gmail.com>
40 lines
936 B
JavaScript
40 lines
936 B
JavaScript
'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);
|
|
});
|