'use strict'; const common = require('../common'); if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); const crypto = require('crypto'); const test = [ { algorithm: 'aes128-wrap', key: 'b26f309fbe57e9b3bb6ae5ef31d54450', iv: '3fd838af4093d749', text: '12345678123456781234567812345678' }, { algorithm: 'id-aes128-wrap-pad', key: 'b26f309fbe57e9b3bb6ae5ef31d54450', iv: '3fd838af', text: '12345678123456781234567812345678123' }, { algorithm: 'aes192-wrap', key: '40978085d68091f7dfca0d7dfc7a5ee76d2cc7f2f345a304', iv: '3fd838af4093d749', text: '12345678123456781234567812345678' }, { algorithm: 'id-aes192-wrap-pad', key: '40978085d68091f7dfca0d7dfc7a5ee76d2cc7f2f345a304', iv: '3fd838af', text: '12345678123456781234567812345678123' }, { algorithm: 'aes256-wrap', key: '29c9eab5ed5ad44134a1437fe2e673b4d88a5b7c72e68454fea08721392b7323', iv: '3fd838af4093d749', text: '12345678123456781234567812345678' }, { algorithm: 'id-aes256-wrap-pad', key: '29c9eab5ed5ad44134a1437fe2e673b4d88a5b7c72e68454fea08721392b7323', iv: '3fd838af', text: '12345678123456781234567812345678123' }, ]; test.forEach((data) => { const cipher = crypto.createCipheriv( data.algorithm, Buffer.from(data.key, 'hex'), Buffer.from(data.iv, 'hex')); const ciphertext = cipher.update(data.text, 'utf8'); const decipher = crypto.createDecipheriv( data.algorithm, Buffer.from(data.key, 'hex'), Buffer.from(data.iv, 'hex')); const msg = decipher.update(ciphertext, 'buffer', 'utf8'); assert.strictEqual(msg, data.text, `${data.algorithm} test case failed`); });