mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
tls: validate ticket keys buffer
Fixes: https://github.com/nodejs/node/issues/38305 PR-URL: https://github.com/nodejs/node/pull/38308 Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
37b811a27a
commit
e151e909fd
@ -730,7 +730,8 @@ existing server. Existing connections to the server are not interrupted.
|
||||
added: v3.0.0
|
||||
-->
|
||||
|
||||
* `keys` {Buffer} A 48-byte buffer containing the session ticket keys.
|
||||
* `keys` {Buffer|TypedArray|DataView} A 48-byte buffer containing the session
|
||||
ticket keys.
|
||||
|
||||
Sets the session ticket keys.
|
||||
|
||||
|
@ -1396,6 +1396,9 @@ Server.prototype.getTicketKeys = function getTicketKeys() {
|
||||
|
||||
|
||||
Server.prototype.setTicketKeys = function setTicketKeys(keys) {
|
||||
validateBuffer(keys);
|
||||
assert(keys.byteLength === 48,
|
||||
'Session ticket keys must be a 48-byte buffer');
|
||||
this._sharedCreds.context.setTicketKeys(keys);
|
||||
};
|
||||
|
||||
|
24
test/parallel/test-tls-ticket-invalid-arg.js
Normal file
24
test/parallel/test-tls-ticket-invalid-arg.js
Normal file
@ -0,0 +1,24 @@
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
if (!common.hasCrypto) {
|
||||
common.skip('missing crypto');
|
||||
}
|
||||
|
||||
const assert = require('assert');
|
||||
const tls = require('tls');
|
||||
|
||||
const server = new tls.Server();
|
||||
|
||||
[null, undefined, 0, 1, 1n, Symbol(), {}, [], true, false, '', () => {}]
|
||||
.forEach((arg) =>
|
||||
assert.throws(
|
||||
() => server.setTicketKeys(arg),
|
||||
{ code: 'ERR_INVALID_ARG_TYPE' }
|
||||
));
|
||||
|
||||
[new Uint8Array(1), Buffer.from([1]), new DataView(new ArrayBuffer(2))].forEach(
|
||||
(arg) =>
|
||||
assert.throws(() => {
|
||||
server.setTicketKeys(arg);
|
||||
}, /Session ticket keys must be a 48-byte buffer/)
|
||||
);
|
Loading…
Reference in New Issue
Block a user