From 2f1ed5c0637a7bdd079136d2cb80f6a4184ae299 Mon Sep 17 00:00:00 2001 From: Tobias Nießen Date: Sat, 30 Mar 2019 11:01:45 +0100 Subject: crypto: remove legacy native handles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/27011 Reviewed-By: Michaël Zasso Reviewed-By: Ben Noordhuis Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell Reviewed-By: Matteo Collina --- doc/api/deprecations.md | 9 ++++++--- lib/internal/crypto/cipher.js | 6 ------ lib/internal/crypto/diffiehellman.js | 6 ------ lib/internal/crypto/hash.js | 5 ----- lib/internal/crypto/sig.js | 5 ----- lib/internal/crypto/util.js | 14 -------------- 6 files changed, 6 insertions(+), 39 deletions(-) diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index 4609d7be93..3e52fa5758 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -2239,18 +2239,21 @@ use the [WHATWG URL API][] instead. ### DEP0117: Native crypto handles -Type: Runtime +Type: End-of-Life Previous versions of Node.js exposed handles to internal native objects through the `_handle` property of the `Cipher`, `Decipher`, `DiffieHellman`, `DiffieHellmanGroup`, `ECDH`, `Hash`, `Hmac`, `Sign`, and `Verify` classes. -Using the `_handle` property to access the native object is deprecated because -improper use of the native object can lead to crashing the application. +The `_handle` property has been removed because improper use of the native +object can lead to crashing the application. ### DEP0118: dns.lookup() support for a falsy hostname diff --git a/lib/internal/crypto/cipher.js b/lib/internal/crypto/cipher.js index dd6fe2d6d7..28bd1e57a6 100644 --- a/lib/internal/crypto/cipher.js +++ b/lib/internal/crypto/cipher.js @@ -20,7 +20,6 @@ const { const { getDefaultEncoding, kHandle, - legacyNativeHandle, toBuf } = require('internal/crypto/util'); @@ -219,8 +218,6 @@ Cipher.prototype.setAAD = function setAAD(aadbuf, options) { return this; }; -legacyNativeHandle(Cipher); - function Cipheriv(cipher, key, iv, options) { if (!(this instanceof Cipheriv)) return new Cipheriv(cipher, key, iv, options); @@ -245,7 +242,6 @@ function addCipherPrototypeFunctions(constructor) { Object.setPrototypeOf(Cipheriv.prototype, LazyTransform.prototype); Object.setPrototypeOf(Cipheriv, LazyTransform); addCipherPrototypeFunctions(Cipheriv); -legacyNativeHandle(Cipheriv); function Decipher(cipher, password, options) { if (!(this instanceof Decipher)) @@ -257,7 +253,6 @@ function Decipher(cipher, password, options) { Object.setPrototypeOf(Decipher.prototype, LazyTransform.prototype); Object.setPrototypeOf(Decipher, LazyTransform); addCipherPrototypeFunctions(Decipher); -legacyNativeHandle(Decipher); function Decipheriv(cipher, key, iv, options) { @@ -270,7 +265,6 @@ function Decipheriv(cipher, key, iv, options) { Object.setPrototypeOf(Decipheriv.prototype, LazyTransform.prototype); Object.setPrototypeOf(Decipheriv, LazyTransform); addCipherPrototypeFunctions(Decipheriv); -legacyNativeHandle(Decipheriv); module.exports = { Cipher, diff --git a/lib/internal/crypto/diffiehellman.js b/lib/internal/crypto/diffiehellman.js index 3bfc531455..7ec2ce6e41 100644 --- a/lib/internal/crypto/diffiehellman.js +++ b/lib/internal/crypto/diffiehellman.js @@ -11,7 +11,6 @@ const { isArrayBufferView } = require('internal/util/types'); const { getDefaultEncoding, kHandle, - legacyNativeHandle, toBuf } = require('internal/crypto/util'); const { @@ -165,9 +164,6 @@ DiffieHellman.prototype.setPrivateKey = function setPrivateKey(key, encoding) { return this; }; -legacyNativeHandle(DiffieHellman); -legacyNativeHandle(DiffieHellmanGroup); - function ECDH(curve) { if (!(this instanceof ECDH)) @@ -195,8 +191,6 @@ ECDH.prototype.getPublicKey = function getPublicKey(encoding, format) { return encode(key, encoding); }; -legacyNativeHandle(ECDH); - ECDH.convertKey = function convertKey(key, curve, inEnc, outEnc, format) { if (typeof key !== 'string' && !isArrayBufferView(key)) { throw new ERR_INVALID_ARG_TYPE( diff --git a/lib/internal/crypto/hash.js b/lib/internal/crypto/hash.js index 5e67efe6c5..89ab29d845 100644 --- a/lib/internal/crypto/hash.js +++ b/lib/internal/crypto/hash.js @@ -8,7 +8,6 @@ const { const { getDefaultEncoding, kHandle, - legacyNativeHandle, toBuf } = require('internal/crypto/util'); @@ -89,8 +88,6 @@ Hash.prototype.digest = function digest(outputEncoding) { return ret; }; -legacyNativeHandle(Hash); - function Hmac(hmac, key, options) { if (!(this instanceof Hmac)) @@ -130,8 +127,6 @@ Hmac.prototype.digest = function digest(outputEncoding) { Hmac.prototype._flush = Hash.prototype._flush; Hmac.prototype._transform = Hash.prototype._transform; -legacyNativeHandle(Hmac); - module.exports = { Hash, Hmac diff --git a/lib/internal/crypto/sig.js b/lib/internal/crypto/sig.js index 6ecc64c3d4..2dbebcdd80 100644 --- a/lib/internal/crypto/sig.js +++ b/lib/internal/crypto/sig.js @@ -19,7 +19,6 @@ const { const { getDefaultEncoding, kHandle, - legacyNativeHandle, toBuf, validateArrayBufferView, } = require('internal/crypto/util'); @@ -56,8 +55,6 @@ Sign.prototype.update = function update(data, encoding) { return this; }; -legacyNativeHandle(Sign); - function getPadding(options) { return getIntOption('padding', RSA_PKCS1_PADDING, options); } @@ -166,8 +163,6 @@ Verify.prototype.verify = function verify(options, signature, sigEncoding) { rsaPadding, pssSaltLength); }; -legacyNativeHandle(Verify); - function verifyOneShot(algorithm, data, key, signature) { if (algorithm != null) validateString(algorithm, 'algorithm'); diff --git a/lib/internal/crypto/util.js b/lib/internal/crypto/util.js index c8a1f9e927..ddef1a163c 100644 --- a/lib/internal/crypto/util.js +++ b/lib/internal/crypto/util.js @@ -21,7 +21,6 @@ const { validateString } = require('internal/validators'); const { Buffer } = require('buffer'); const { cachedResult, - deprecate, filterDuplicateStrings } = require('internal/util'); const { @@ -30,18 +29,6 @@ const { const kHandle = Symbol('kHandle'); -function legacyNativeHandle(clazz) { - Object.defineProperty(clazz.prototype, '_handle', { - get: deprecate(function() { return this[kHandle]; }, - `${clazz.name}._handle is deprecated. Use the public API ` + - 'instead.', 'DEP0117'), - set: deprecate(function(h) { this[kHandle] = h; }, - `${clazz.name}._handle is deprecated. Use the public API ` + - 'instead.', 'DEP0117'), - enumerable: false - }); -} - var defaultEncoding = 'buffer'; function setDefaultEncoding(val) { @@ -116,7 +103,6 @@ module.exports = { getDefaultEncoding, getHashes, kHandle, - legacyNativeHandle, setDefaultEncoding, setEngine, timingSafeEqual, -- cgit v1.2.3