| 'use strict'; |
| // This tests validation of sessionTimeout option in TLS server. |
| const common = require('../common'); |
| |
| if (!common.hasCrypto) { |
| common.skip('missing crypto'); |
| } |
| |
| const tmpdir = require('../common/tmpdir'); |
| tmpdir.refresh(); |
| |
| const assert = require('assert'); |
| const tls = require('tls'); |
| const fixtures = require('../common/fixtures'); |
| |
| const key = fixtures.readKey('rsa_private.pem'); |
| const cert = fixtures.readKey('rsa_cert.crt'); |
| |
| // Node.js should not allow setting negative timeouts since new versions of |
| // OpenSSL do not handle those as users might expect |
| |
| for (const sessionTimeout of [-1, -100, -(2 ** 31)]) { |
| assert.throws(() => { |
| tls.createServer({ |
| key: key, |
| cert: cert, |
| ca: [cert], |
| sessionTimeout, |
| maxVersion: 'TLSv1.2', |
| }); |
| }, { |
| code: 'ERR_OUT_OF_RANGE', |
| message: 'The value of "options.sessionTimeout" is out of range. It ' + |
| `must be >= 0 && <= ${2 ** 31 - 1}. Received ${sessionTimeout}`, |
| }); |
| } |