mirror of
https://github.com/nodejs/node.git
synced 2025-04-30 23:56:58 +00:00

Fixes: https://github.com/nodejs/node/issues/38883 PR-URL: https://github.com/nodejs/node/pull/38913 Refs: https://github.com/nodejs/node/issues/38883 Reviewed-By: Tobias Nießen <tniessen@tnie.de>
40 lines
970 B
JavaScript
40 lines
970 B
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
|
|
if (!common.hasCrypto)
|
|
common.skip('missing crypto');
|
|
|
|
const assert = require('assert');
|
|
const crypto = require('crypto').webcrypto;
|
|
|
|
(async () => {
|
|
const k = await crypto.subtle.importKey(
|
|
'raw',
|
|
new Uint8Array(32),
|
|
{ name: 'AES-GCM' },
|
|
false,
|
|
[ 'encrypt', 'decrypt' ]);
|
|
assert(k instanceof crypto.CryptoKey);
|
|
|
|
const e = await crypto.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 crypto.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);
|
|
});
|