diff --git a/patches/node/.patches b/patches/node/.patches index 6451dfb17487d..4a210077e91ec 100644 --- a/patches/node/.patches +++ b/patches/node/.patches @@ -27,6 +27,4 @@ fix_account_for_debugger_agent_race_condition.patch fix_use_new_v8_error_message_property_access_format.patch add_should_read_node_options_from_env_option_to_disable_node_options.patch repl_fix_crash_when_sharedarraybuffer_disabled.patch -fix_readbarrier_undefined_symbol_error_on_woa_arm64.patch -fix_-wunreachable-code-return.patch fix_crash_creating_private_key_with_unsupported_algorithm.patch diff --git a/spec/node-spec.js b/spec/node-spec.js index 56cf8c127d91f..4d06e39d445d4 100644 --- a/spec/node-spec.js +++ b/spec/node-spec.js @@ -317,6 +317,21 @@ describe('node feature', () => { // eslint-disable-next-line no-octal crypto.createDiffieHellman('abc', '123'); }); + + it('does not crash when calling crypto.createPrivateKey() with an unsupported algorithm', () => { + const crypto = require('crypto'); + + const ed448 = { + crv: 'Ed448', + x: 'KYWcaDwgH77xdAwcbzOgvCVcGMy9I6prRQBhQTTdKXUcr-VquTz7Fd5adJO0wT2VHysF3bk3kBoA', + d: 'UhC3-vN5vp_g9PnTknXZgfXUez7Xvw-OfuJ0pYkuwzpYkcTvacqoFkV_O05WMHpyXkzH9q2wzx5n', + kty: 'OKP' + }; + + expect(() => { + crypto.createPrivateKey({ key: ed448, format: 'jwk' }); + }).to.throw(/Failed to create key - unsupported algorithm/); + }); }); describe('process.stdout', () => {