| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent b7d7ffe commit 6d99ec3
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1223,10 +1223,7 @@ InitializeOncePerProcessInternal(const std::vector<std::string>& args, | |||
| 1223 | 1223 | } | |
| 1224 | 1224 | #endif | |
| 1225 | 1225 | if (!crypto::ProcessFipsOptions()) { | |
| 1226 | - // XXX: ERR_GET_REASON does not return something that is | ||
| 1227 | - // useful as an exit code at all. | ||
| 1228 | - result->exit_code_ = | ||
| 1229 | - static_cast<ExitCode>(ERR_GET_REASON(ERR_peek_error())); | ||
| 1226 | + result->exit_code_ = ExitCode::kGenericUserError; | ||
| 1230 | 1227 | result->early_return_ = true; | |
| 1231 | 1228 | result->errors_.emplace_back( | |
| 1232 | 1229 | "OpenSSL error when trying to enable FIPS:\n" + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -23,13 +23,16 @@ const FIPS_ENABLE_ERROR_STRING = 'OpenSSL error when trying to enable FIPS:'; | |||
| 23 | 23 | const CNF_FIPS_ON = fixtures.path('openssl_fips_enabled.cnf'); | |
| 24 | 24 | const CNF_FIPS_OFF = fixtures.path('openssl_fips_disabled.cnf'); | |
| 25 | 25 | ||
| 26 | + const kNoFailure = 0; | ||
| 27 | + const kGenericUserError = 1; | ||
| 28 | + | ||
| 26 | 29 | let num_children_ok = 0; | |
| 27 | 30 | ||
| 28 | 31 | function sharedOpenSSL() { | |
| 29 | 32 | return process.config.variables.node_shared_openssl; | |
| 30 | 33 | } | |
| 31 | 34 | ||
| 32 | - function testHelper(stream, args, expectedOutput, cmd, env) { | ||
| 35 | + function testHelper(stream, args, expectedStatus, expectedOutput, cmd, env) { | ||
| 33 | 36 | const fullArgs = args.concat(['-e', `console.log(${cmd})`]); | |
| 34 | 37 | const child = spawnSync(process.execPath, fullArgs, { | |
| 35 | 38 | cwd: path.dirname(process.execPath), | |
@@ -56,6 +59,7 @@ function testHelper(stream, args, expectedOutput, cmd, env) { | |||
| 56 | 59 | // Normal path where we expect either FIPS enabled or disabled. | |
| 57 | 60 | assert.strictEqual(getFipsValue, expectedOutput); | |
| 58 | 61 | } | |
| 62 | + assert.strictEqual(child.status, expectedStatus); | ||
| 59 | 63 | childOk(child); | |
| 60 | 64 | } | |
| 61 | 65 | ||
@@ -66,6 +70,7 @@ function testHelper(stream, args, expectedOutput, cmd, env) { | |||
| 66 | 70 | testHelper( | |
| 67 | 71 | testFipsCrypto() ? 'stdout' : 'stderr', | |
| 68 | 72 | ['--enable-fips'], | |
| 73 | + testFipsCrypto() ? kNoFailure : kGenericUserError, | ||
| 69 | 74 | testFipsCrypto() ? FIPS_ENABLED : FIPS_ENABLE_ERROR_STRING, | |
| 70 | 75 | 'process.versions', | |
| 71 | 76 | process.env); | |
@@ -74,6 +79,7 @@ testHelper( | |||
| 74 | 79 | testHelper( | |
| 75 | 80 | testFipsCrypto() ? 'stdout' : 'stderr', | |
| 76 | 81 | ['--force-fips'], | |
| 82 | + testFipsCrypto() ? kNoFailure : kGenericUserError, | ||
| 77 | 83 | testFipsCrypto() ? FIPS_ENABLED : FIPS_ENABLE_ERROR_STRING, | |
| 78 | 84 | 'process.versions', | |
| 79 | 85 | process.env); | |
@@ -85,6 +91,7 @@ if (!sharedOpenSSL()) { | |||
| 85 | 91 | testHelper( | |
| 86 | 92 | 'stdout', | |
| 87 | 93 | [], | |
| 94 | + kNoFailure, | ||
| 88 | 95 | FIPS_DISABLED, | |
| 89 | 96 | 'require("crypto").getFips()', | |
| 90 | 97 | { ...process.env, 'OPENSSL_CONF': ' ' }); | |
@@ -94,6 +101,7 @@ if (!sharedOpenSSL()) { | |||
| 94 | 101 | testHelper( | |
| 95 | 102 | 'stderr', | |
| 96 | 103 | [], | |
| 104 | + kGenericUserError, | ||
| 97 | 105 | 'Calling crypto.setFips() is not supported in workers', | |
| 98 | 106 | 'new worker_threads.Worker(\'require("crypto").setFips(true);\', { eval: true })', | |
| 99 | 107 | process.env); | |
@@ -120,6 +128,7 @@ if (!sharedOpenSSL() && !hasOpenSSL3) { | |||
| 120 | 128 | testHelper( | |
| 121 | 129 | 'stdout', | |
| 122 | 130 | [`--openssl-config=${CNF_FIPS_ON}`], | |
| 131 | + kNoFailure, | ||
| 123 | 132 | testFipsCrypto() ? FIPS_ENABLED : FIPS_DISABLED, | |
| 124 | 133 | 'require("crypto").getFips()', | |
| 125 | 134 | process.env); | |
@@ -128,6 +137,7 @@ if (!sharedOpenSSL() && !hasOpenSSL3) { | |||
| 128 | 137 | testHelper( | |
| 129 | 138 | 'stdout', | |
| 130 | 139 | [], | |
| 140 | + kNoFailure, | ||
| 131 | 141 | testFipsCrypto() ? FIPS_ENABLED : FIPS_DISABLED, | |
| 132 | 142 | 'require("crypto").getFips()', | |
| 133 | 143 | Object.assign({}, process.env, { 'OPENSSL_CONF': CNF_FIPS_ON })); | |
@@ -136,6 +146,7 @@ if (!sharedOpenSSL() && !hasOpenSSL3) { | |||
| 136 | 146 | testHelper( | |
| 137 | 147 | 'stdout', | |
| 138 | 148 | [`--openssl-config=${CNF_FIPS_ON}`], | |
| 149 | + kNoFailure, | ||
| 139 | 150 | testFipsCrypto() ? FIPS_ENABLED : FIPS_DISABLED, | |
| 140 | 151 | 'require("crypto").getFips()', | |
| 141 | 152 | Object.assign({}, process.env, { 'OPENSSL_CONF': CNF_FIPS_OFF })); | |
@@ -149,6 +160,7 @@ if (!hasOpenSSL3) { | |||
| 149 | 160 | testHelper( | |
| 150 | 161 | 'stdout', | |
| 151 | 162 | [`--openssl-config=${CNF_FIPS_OFF}`], | |
| 163 | + kNoFailure, | ||
| 152 | 164 | FIPS_DISABLED, | |
| 153 | 165 | 'require("crypto").getFips()', | |
| 154 | 166 | Object.assign({}, process.env, { 'OPENSSL_CONF': CNF_FIPS_ON })); | |
@@ -157,20 +169,23 @@ if (!hasOpenSSL3) { | |||
| 157 | 169 | testHelper( | |
| 158 | 170 | testFipsCrypto() ? 'stdout' : 'stderr', | |
| 159 | 171 | ['--enable-fips', `--openssl-config=${CNF_FIPS_OFF}`], | |
| 172 | + testFipsCrypto() ? kNoFailure : kGenericUserError, | ||
| 160 | 173 | testFipsCrypto() ? FIPS_ENABLED : FIPS_UNSUPPORTED_ERROR_STRING, | |
| 161 | 174 | 'require("crypto").getFips()', | |
| 162 | 175 | process.env); | |
| 163 | 176 | // --force-fips should take precedence over OpenSSL config file | |
| 164 | 177 | testHelper( | |
| 165 | 178 | testFipsCrypto() ? 'stdout' : 'stderr', | |
| 166 | 179 | ['--force-fips', `--openssl-config=${CNF_FIPS_OFF}`], | |
| 180 | + testFipsCrypto() ? kNoFailure : kGenericUserError, | ||
| 167 | 181 | testFipsCrypto() ? FIPS_ENABLED : FIPS_UNSUPPORTED_ERROR_STRING, | |
| 168 | 182 | 'require("crypto").getFips()', | |
| 169 | 183 | process.env); | |
| 170 | 184 | // --enable-fips should turn FIPS mode on | |
| 171 | 185 | testHelper( | |
| 172 | 186 | testFipsCrypto() ? 'stdout' : 'stderr', | |
| 173 | 187 | ['--enable-fips'], | |
| 188 | + testFipsCrypto() ? kNoFailure : kGenericUserError, | ||
| 174 | 189 | testFipsCrypto() ? FIPS_ENABLED : FIPS_UNSUPPORTED_ERROR_STRING, | |
| 175 | 190 | 'require("crypto").getFips()', | |
| 176 | 191 | process.env); | |
@@ -179,6 +194,7 @@ if (!hasOpenSSL3) { | |||
| 179 | 194 | testHelper( | |
| 180 | 195 | testFipsCrypto() ? 'stdout' : 'stderr', | |
| 181 | 196 | ['--force-fips'], | |
| 197 | + testFipsCrypto() ? kNoFailure : kGenericUserError, | ||
| 182 | 198 | testFipsCrypto() ? FIPS_ENABLED : FIPS_UNSUPPORTED_ERROR_STRING, | |
| 183 | 199 | 'require("crypto").getFips()', | |
| 184 | 200 | process.env); | |
@@ -187,6 +203,7 @@ if (!hasOpenSSL3) { | |||
| 187 | 203 | testHelper( | |
| 188 | 204 | testFipsCrypto() ? 'stdout' : 'stderr', | |
| 189 | 205 | ['--enable-fips'], | |
| 206 | + testFipsCrypto() ? kNoFailure : kGenericUserError, | ||
| 190 | 207 | testFipsCrypto() ? FIPS_ENABLED : FIPS_UNSUPPORTED_ERROR_STRING, | |
| 191 | 208 | 'require("crypto").getFips()', | |
| 192 | 209 | Object.assign({}, process.env, { 'OPENSSL_CONF': CNF_FIPS_OFF })); | |
@@ -195,6 +212,7 @@ if (!hasOpenSSL3) { | |||
| 195 | 212 | testHelper( | |
| 196 | 213 | testFipsCrypto() ? 'stdout' : 'stderr', | |
| 197 | 214 | ['--force-fips'], | |
| 215 | + testFipsCrypto() ? kNoFailure : kGenericUserError, | ||
| 198 | 216 | testFipsCrypto() ? FIPS_ENABLED : FIPS_UNSUPPORTED_ERROR_STRING, | |
| 199 | 217 | 'require("crypto").getFips()', | |
| 200 | 218 | Object.assign({}, process.env, { 'OPENSSL_CONF': CNF_FIPS_OFF })); | |
@@ -203,6 +221,7 @@ if (!hasOpenSSL3) { | |||
| 203 | 221 | testHelper( | |
| 204 | 222 | testFipsCrypto() ? 'stdout' : 'stderr', | |
| 205 | 223 | [], | |
| 224 | + testFipsCrypto() ? kNoFailure : kGenericUserError, | ||
| 206 | 225 | testFipsCrypto() ? FIPS_ENABLED : FIPS_UNSUPPORTED_ERROR_STRING, | |
| 207 | 226 | '(require("crypto").setFips(true),' + | |
| 208 | 227 | 'require("crypto").getFips())', | |
@@ -212,6 +231,7 @@ if (!hasOpenSSL3) { | |||
| 212 | 231 | testHelper( | |
| 213 | 232 | testFipsCrypto() ? 'stdout' : 'stderr', | |
| 214 | 233 | [], | |
| 234 | + testFipsCrypto() ? kNoFailure : kGenericUserError, | ||
| 215 | 235 | testFipsCrypto() ? FIPS_DISABLED : FIPS_UNSUPPORTED_ERROR_STRING, | |
| 216 | 236 | '(require("crypto").setFips(true),' + | |
| 217 | 237 | 'require("crypto").setFips(false),' + | |
@@ -222,6 +242,7 @@ if (!hasOpenSSL3) { | |||
| 222 | 242 | testHelper( | |
| 223 | 243 | testFipsCrypto() ? 'stdout' : 'stderr', | |
| 224 | 244 | [`--openssl-config=${CNF_FIPS_OFF}`], | |
| 245 | + testFipsCrypto() ? kNoFailure : kGenericUserError, | ||
| 225 | 246 | testFipsCrypto() ? FIPS_ENABLED : FIPS_UNSUPPORTED_ERROR_STRING, | |
| 226 | 247 | '(require("crypto").setFips(true),' + | |
| 227 | 248 | 'require("crypto").getFips())', | |
@@ -231,6 +252,7 @@ if (!hasOpenSSL3) { | |||
| 231 | 252 | testHelper( | |
| 232 | 253 | 'stdout', | |
| 233 | 254 | [`--openssl-config=${CNF_FIPS_ON}`], | |
| 255 | + kNoFailure, | ||
| 234 | 256 | FIPS_DISABLED, | |
| 235 | 257 | '(require("crypto").setFips(false),' + | |
| 236 | 258 | 'require("crypto").getFips())', | |
@@ -240,6 +262,7 @@ if (!hasOpenSSL3) { | |||
| 240 | 262 | testHelper( | |
| 241 | 263 | testFipsCrypto() ? 'stdout' : 'stderr', | |
| 242 | 264 | ['--enable-fips'], | |
| 265 | + testFipsCrypto() ? kNoFailure : kGenericUserError, | ||
| 243 | 266 | testFipsCrypto() ? FIPS_DISABLED : FIPS_UNSUPPORTED_ERROR_STRING, | |
| 244 | 267 | '(require("crypto").setFips(false),' + | |
| 245 | 268 | 'require("crypto").getFips())', | |
@@ -249,6 +272,7 @@ if (!hasOpenSSL3) { | |||
| 249 | 272 | testHelper( | |
| 250 | 273 | 'stderr', | |
| 251 | 274 | ['--force-fips'], | |
| 275 | + kGenericUserError, | ||
| 252 | 276 | testFipsCrypto() ? FIPS_ERROR_STRING2 : FIPS_UNSUPPORTED_ERROR_STRING, | |
| 253 | 277 | 'require("crypto").setFips(false)', | |
| 254 | 278 | process.env); | |
@@ -257,6 +281,7 @@ if (!hasOpenSSL3) { | |||
| 257 | 281 | testHelper( | |
| 258 | 282 | testFipsCrypto() ? 'stdout' : 'stderr', | |
| 259 | 283 | ['--force-fips'], | |
| 284 | + testFipsCrypto() ? kNoFailure : kGenericUserError, | ||
| 260 | 285 | testFipsCrypto() ? FIPS_ENABLED : FIPS_UNSUPPORTED_ERROR_STRING, | |
| 261 | 286 | '(require("crypto").setFips(true),' + | |
| 262 | 287 | 'require("crypto").getFips())', | |
@@ -266,6 +291,7 @@ if (!hasOpenSSL3) { | |||
| 266 | 291 | testHelper( | |
| 267 | 292 | 'stderr', | |
| 268 | 293 | ['--force-fips', '--enable-fips'], | |
| 294 | + kGenericUserError, | ||
| 269 | 295 | testFipsCrypto() ? FIPS_ERROR_STRING2 : FIPS_UNSUPPORTED_ERROR_STRING, | |
| 270 | 296 | 'require("crypto").setFips(false)', | |
| 271 | 297 | process.env); | |
@@ -274,6 +300,7 @@ if (!hasOpenSSL3) { | |||
| 274 | 300 | testHelper( | |
| 275 | 301 | 'stderr', | |
| 276 | 302 | ['--enable-fips', '--force-fips'], | |
| 303 | + kGenericUserError, | ||
| 277 | 304 | testFipsCrypto() ? FIPS_ERROR_STRING2 : FIPS_UNSUPPORTED_ERROR_STRING, | |
| 278 | 305 | 'require("crypto").setFips(false)', | |
| 279 | 306 | process.env); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments