Skip to content

Commit bf5cc3b

Browse files
danbevaddaleax
authored andcommitted
crypto: move process.binding('crypto') to internal
This commit makes the crypto builtin an internal builtin, and changes usage of the builtin from using process.binding('crypto') to use internalBinding instead. Refs: #22160 PR-URL: #22426 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
1 parent d8ef981 commit bf5cc3b

16 files changed

+32
-25
lines changed

lib/_tls_common.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ const { SSL_OP_CIPHER_SERVER_PREFERENCE } = process.binding('constants').crypto;
3434
// Lazily loaded
3535
var crypto = null;
3636

37-
const { SecureContext: NativeSecureContext } = process.binding('crypto');
38-
37+
const { internalBinding } = require('internal/bootstrap/loaders');
38+
const { SecureContext: NativeSecureContext } = internalBinding('crypto');
3939
function SecureContext(secureProtocol, secureOptions, context) {
4040
if (!(this instanceof SecureContext)) {
4141
return new SecureContext(secureProtocol, secureOptions, context);

lib/_tls_wrap.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,8 @@ const tls_wrap = process.binding('tls_wrap');
3636
const { TCP, constants: TCPConstants } = process.binding('tcp_wrap');
3737
const { Pipe, constants: PipeConstants } = process.binding('pipe_wrap');
3838
const { owner_symbol } = require('internal/async_hooks').symbols;
39-
const {
40-
SecureContext: NativeSecureContext
41-
} = process.binding('crypto');
39+
const { internalBinding } = require('internal/bootstrap/loaders');
40+
const { SecureContext: NativeSecureContext } = internalBinding('crypto');
4241
const {
4342
ERR_INVALID_ARG_TYPE,
4443
ERR_MULTIPLE_CALLBACK,

lib/crypto.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ const {
3030
} = require('internal/util');
3131
assertCrypto();
3232

33+
const { internalBinding } = require('internal/bootstrap/loaders');
3334
const {
3435
ERR_CRYPTO_FIPS_FORCED,
3536
ERR_CRYPTO_FIPS_UNAVAILABLE
@@ -39,10 +40,7 @@ const {
3940
fipsMode,
4041
fipsForced
4142
} = process.binding('config');
42-
const {
43-
getFipsCrypto,
44-
setFipsCrypto,
45-
} = process.binding('crypto');
43+
const { getFipsCrypto, setFipsCrypto } = internalBinding('crypto');
4644
const {
4745
randomBytes,
4846
randomFill,

lib/internal/bootstrap/node.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,8 @@
350350
'http_parser',
351351
'v8',
352352
'stream_wrap',
353-
'signal_wrap']);
353+
'signal_wrap',
354+
'crypto']);
354355
process.binding = function binding(name) {
355356
return internalBindingWhitelist.has(name) ?
356357
internalBinding(name) :

lib/internal/crypto/certificate.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
'use strict';
22

3+
const { internalBinding } = require('internal/bootstrap/loaders');
34
const {
45
certExportChallenge,
56
certExportPublicKey,
67
certVerifySpkac
7-
} = process.binding('crypto');
8+
} = internalBinding('crypto');
89

910
const { ERR_INVALID_ARG_TYPE } = require('internal/errors').codes;
1011
const { isArrayBufferView } = require('internal/util/types');

lib/internal/crypto/cipher.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,14 @@ const {
1919

2020
const { isArrayBufferView } = require('internal/util/types');
2121

22+
const { internalBinding } = require('internal/bootstrap/loaders');
2223
const {
2324
CipherBase,
2425
privateDecrypt: _privateDecrypt,
2526
privateEncrypt: _privateEncrypt,
2627
publicDecrypt: _publicDecrypt,
2728
publicEncrypt: _publicEncrypt
28-
} = process.binding('crypto');
29+
} = internalBinding('crypto');
2930

3031
const assert = require('assert');
3132
const LazyTransform = require('internal/streams/lazy_transform');

lib/internal/crypto/pbkdf2.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
const { AsyncWrap, Providers } = process.binding('async_wrap');
44
const { Buffer } = require('buffer');
5-
const { INT_MAX, pbkdf2: _pbkdf2 } = process.binding('crypto');
5+
const { internalBinding } = require('internal/bootstrap/loaders');
6+
const { INT_MAX, pbkdf2: _pbkdf2 } = internalBinding('crypto');
67
const { validateInt32 } = require('internal/validators');
78
const {
89
ERR_CRYPTO_INVALID_DIGEST,

lib/internal/crypto/random.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
const { AsyncWrap, Providers } = process.binding('async_wrap');
44
const { Buffer, kMaxLength } = require('buffer');
5-
const { randomBytes: _randomBytes } = process.binding('crypto');
5+
const { internalBinding } = require('internal/bootstrap/loaders');
6+
const { randomBytes: _randomBytes } = internalBinding('crypto');
67
const {
78
ERR_INVALID_ARG_TYPE,
89
ERR_INVALID_CALLBACK,

lib/internal/crypto/scrypt.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
const { AsyncWrap, Providers } = process.binding('async_wrap');
44
const { Buffer } = require('buffer');
5-
const { INT_MAX, scrypt: _scrypt } = process.binding('crypto');
5+
const { internalBinding } = require('internal/bootstrap/loaders');
6+
const { INT_MAX, scrypt: _scrypt } = internalBinding('crypto');
67
const { validateInt32 } = require('internal/validators');
78
const {
89
ERR_CRYPTO_SCRYPT_INVALID_PARAMETER,

lib/internal/crypto/sig.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@ const {
55
ERR_INVALID_OPT_VALUE
66
} = require('internal/errors').codes;
77
const { validateString } = require('internal/validators');
8-
const {
9-
Sign: _Sign,
10-
Verify: _Verify
11-
} = process.binding('crypto');
8+
const { internalBinding } = require('internal/bootstrap/loaders');
9+
const { Sign: _Sign, Verify: _Verify } = internalBinding('crypto');
1210
const {
1311
RSA_PSS_SALTLEN_AUTO,
1412
RSA_PKCS1_PADDING

lib/internal/crypto/util.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
'use strict';
22

3+
const { internalBinding } = require('internal/bootstrap/loaders');
34
const {
45
getCiphers: _getCiphers,
56
getCurves: _getCurves,
67
getHashes: _getHashes,
78
setEngine: _setEngine,
89
timingSafeEqual: _timingSafeEqual
9-
} = process.binding('crypto');
10+
} = internalBinding('crypto');
1011

1112
const {
1213
ENGINE_METHOD_ALL

lib/tls.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ const { isUint8Array } = require('internal/util/types');
2929

3030
const net = require('net');
3131
const url = require('url');
32-
const binding = process.binding('crypto');
32+
const { internalBinding } = require('internal/bootstrap/loaders');
33+
const binding = internalBinding('crypto');
3334
const { Buffer } = require('buffer');
3435
const EventEmitter = require('events');
3536
const { URL } = require('internal/url');

src/node_crypto.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -5262,4 +5262,4 @@ void Initialize(Local<Object> target,
52625262
} // namespace crypto
52635263
} // namespace node
52645264

5265-
NODE_BUILTIN_MODULE_CONTEXT_AWARE(crypto, node::crypto::Initialize)
5265+
NODE_MODULE_CONTEXT_AWARE_INTERNAL(crypto, node::crypto::Initialize)

test/parallel/test-crypto-scrypt.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// Flags: --expose-internals
12
'use strict';
23
const common = require('../common');
34
if (!common.hasCrypto)
@@ -6,7 +7,8 @@ if (!common.hasCrypto)
67
const assert = require('assert');
78
const crypto = require('crypto');
89

9-
if (typeof process.binding('crypto').scrypt !== 'function')
10+
const { internalBinding } = require('internal/test/binding');
11+
if (typeof internalBinding('crypto').scrypt !== 'function')
1012
common.skip('no scrypt support');
1113

1214
const good = [

test/parallel/test-tls-clientcertengine-unsupported.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1+
// Flags: --expose-internals
12
'use strict';
23
const common = require('../common');
34

45
if (!common.hasCrypto)
56
common.skip('missing crypto');
67

78
// Monkey-patch SecureContext
8-
const binding = process.binding('crypto');
9+
const { internalBinding } = require('internal/test/binding');
10+
const binding = internalBinding('crypto');
911
const NativeSecureContext = binding.SecureContext;
1012

1113
binding.SecureContext = function() {

test/sequential/test-async-wrap-getasyncid.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ if (common.hasCrypto) { // eslint-disable-line node-core/crypto-check
122122
testInitialized(this, 'AsyncWrap');
123123
}));
124124

125-
if (typeof process.binding('crypto').scrypt === 'function') {
125+
if (typeof internalBinding('crypto').scrypt === 'function') {
126126
crypto.scrypt('password', 'salt', 8, common.mustCall(function() {
127127
testInitialized(this, 'AsyncWrap');
128128
}));

0 commit comments

Comments
 (0)