%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; const common = require('../common'); if (!common.hasCrypto) common.skip('missing crypto'); const { getCiphers, getCipherInfo } = require('crypto'); const assert = require('assert'); const ciphers = getCiphers(); assert.strictEqual(getCipherInfo(-1), undefined); assert.strictEqual(getCipherInfo('cipher that does not exist'), undefined); ciphers.forEach((cipher) => { const info = getCipherInfo(cipher); assert(info); const info2 = getCipherInfo(info.nid); assert.deepStrictEqual(info, info2); }); const info = getCipherInfo('aes-128-cbc'); assert.strictEqual(info.name, 'aes-128-cbc'); assert.strictEqual(info.nid, 419); assert.strictEqual(info.blockSize, 16); assert.strictEqual(info.ivLength, 16); assert.strictEqual(info.keyLength, 16); assert.strictEqual(info.mode, 'cbc'); [null, undefined, [], {}].forEach((arg) => { assert.throws(() => getCipherInfo(arg), { code: 'ERR_INVALID_ARG_TYPE' }); }); [null, '', 1, true].forEach((options) => { assert.throws( () => getCipherInfo('aes-192-cbc', options), { code: 'ERR_INVALID_ARG_TYPE' }); }); [null, '', {}, [], true].forEach((len) => { assert.throws( () => getCipherInfo('aes-192-cbc', { keyLength: len }), { code: 'ERR_INVALID_ARG_TYPE' }); assert.throws( () => getCipherInfo('aes-192-cbc', { ivLength: len }), { code: 'ERR_INVALID_ARG_TYPE' }); }); assert(!getCipherInfo('aes-128-cbc', { keyLength: 12 })); assert(getCipherInfo('aes-128-cbc', { keyLength: 16 })); assert(!getCipherInfo('aes-128-cbc', { ivLength: 12 })); assert(getCipherInfo('aes-128-cbc', { ivLength: 16 })); assert(!getCipherInfo('aes-128-ccm', { ivLength: 1 })); assert(!getCipherInfo('aes-128-ccm', { ivLength: 14 })); for (let n = 7; n <= 13; n++) assert(getCipherInfo('aes-128-ccm', { ivLength: n })); assert(!getCipherInfo('aes-128-ocb', { ivLength: 16 })); for (let n = 1; n < 16; n++) assert(getCipherInfo('aes-128-ocb', { ivLength: n }));