Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit cfc9764

Browse filesBrowse files
stefanmbrvagg
authored andcommitted
crypto: fix native module compilation with FIPS
Prevent OpenSSL's fipsld from being used to link native modules because this requires the original OpenSSL source to be available after Node's installation. Fixes: #3815 PR-URL: #4023 Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
1 parent e8e4e07 commit cfc9764
Copy full SHA for cfc9764

File tree

Expand file treeCollapse file tree

4 files changed

+17
-2
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

4 files changed

+17
-2
lines changed
Open diff view settings
Collapse file

‎.gitignore‎

Copy file name to clipboardExpand all lines: .gitignore
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ ipch/
4444

4545
/config.mk
4646
/config.gypi
47+
/config_fips.gypi
4748
*-nodegyp*
4849
/gyp-mac-tool
4950
/dist-osx
Collapse file

‎Makefile‎

Copy file name to clipboardExpand all lines: Makefile
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ clean:
7474

7575
distclean:
7676
-rm -rf out
77-
-rm -f config.gypi icu_config.gypi
77+
-rm -f config.gypi icu_config.gypi config_fips.gypi
7878
-rm -f config.mk
7979
-rm -rf $(NODE_EXE) $(NODE_G_EXE)
8080
-rm -rf node_modules
Collapse file

‎configure‎

Copy file name to clipboardExpand all lines: configure
+10-1Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -804,7 +804,7 @@ def configure_openssl(o):
804804
o['variables']['openssl_fips'] = options.openssl_fips
805805
fips_dir = os.path.join(root_dir, 'deps', 'openssl', 'fips')
806806
fips_ld = os.path.abspath(os.path.join(fips_dir, 'fipsld'))
807-
o['make_global_settings'] = [
807+
o['make_fips_settings'] = [
808808
['LINK', fips_ld + ' <(openssl_fips)/bin/fipsld'],
809809
]
810810
else:
@@ -1126,6 +1126,15 @@ configure_fullystatic(output)
11261126
variables = output['variables']
11271127
del output['variables']
11281128

1129+
# make_global_settings for special FIPS linking
1130+
# should not be used to compile modules in node-gyp
1131+
config_fips = { 'make_global_settings' : [] }
1132+
if 'make_fips_settings' in output:
1133+
config_fips['make_global_settings'] = output['make_fips_settings']
1134+
del output['make_fips_settings']
1135+
write('config_fips.gypi', do_not_edit +
1136+
pprint.pformat(config_fips, indent=2) + '\n')
1137+
11291138
# make_global_settings should be a root level element too
11301139
if 'make_global_settings' in output:
11311140
make_global_settings = output['make_global_settings']
Collapse file

‎tools/gyp_node.py‎

Copy file name to clipboardExpand all lines: tools/gyp_node.py
+5Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,22 @@ def run_gyp(args):
3030
args.append(os.path.join(node_root, 'node.gyp'))
3131
common_fn = os.path.join(node_root, 'common.gypi')
3232
options_fn = os.path.join(node_root, 'config.gypi')
33+
options_fips_fn = os.path.join(node_root, 'config_fips.gypi')
3334
else:
3435
args.append(os.path.join(os.path.abspath(node_root), 'node.gyp'))
3536
common_fn = os.path.join(os.path.abspath(node_root), 'common.gypi')
3637
options_fn = os.path.join(os.path.abspath(node_root), 'config.gypi')
38+
options_fips_fn = os.path.join(os.path.abspath(node_root), 'config_fips.gypi')
3739

3840
if os.path.exists(common_fn):
3941
args.extend(['-I', common_fn])
4042

4143
if os.path.exists(options_fn):
4244
args.extend(['-I', options_fn])
4345

46+
if os.path.exists(options_fips_fn):
47+
args.extend(['-I', options_fips_fn])
48+
4449
args.append('--depth=' + node_root)
4550

4651
# There's a bug with windows which doesn't allow this feature.

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.