| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent f1bc994 commit 30a35ae
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -223,8 +223,6 @@ function test_rsa(padding, encryptOaepHash, decryptOaepHash) { | |||
| 223 | 223 | ||
| 224 | 224 | ||
| 225 | 225 | if (padding === constants.RSA_PKCS1_PADDING) { | |
| 226 | - // TODO(richardlau): see if it's possible to determine implicit rejection | ||
| 227 | - // support when dynamically linked against OpenSSL. | ||
| 228 | 226 | if (!process.config.variables.node_shared_openssl) { | |
| 229 | 227 | assert.throws(() => { | |
| 230 | 228 | crypto.privateDecrypt({ | |
@@ -240,6 +238,55 @@ function test_rsa(padding, encryptOaepHash, decryptOaepHash) { | |||
| 240 | 238 | oaepHash: decryptOaepHash | |
| 241 | 239 | }, encryptedBuffer); | |
| 242 | 240 | }, { code: 'ERR_INVALID_ARG_VALUE' }); | |
| 241 | + } else { | ||
| 242 | + // The version of a linked against OpenSSL. May | ||
| 243 | + // or may not support implicit rejection. Figuring | ||
| 244 | + // this out in the test is not feasible but we | ||
| 245 | + // require that it pass based on one of the two | ||
| 246 | + // cases of supporting it or not. | ||
| 247 | + try { | ||
| 248 | + // The expected exceptions should be thrown if implicit rejection | ||
| 249 | + // is not supported | ||
| 250 | + assert.throws(() => { | ||
| 251 | + crypto.privateDecrypt({ | ||
| 252 | + key: rsaKeyPem, | ||
| 253 | + padding: padding, | ||
| 254 | + oaepHash: decryptOaepHash | ||
| 255 | + }, encryptedBuffer); | ||
| 256 | + }, { code: 'ERR_INVALID_ARG_VALUE' }); | ||
| 257 | + assert.throws(() => { | ||
| 258 | + crypto.privateDecrypt({ | ||
| 259 | + key: rsaPkcs8KeyPem, | ||
| 260 | + padding: padding, | ||
| 261 | + oaepHash: decryptOaepHash | ||
| 262 | + }, encryptedBuffer); | ||
| 263 | + }, { code: 'ERR_INVALID_ARG_VALUE' }); | ||
| 264 | + } catch (e) { | ||
| 265 | + if (e.toString() === | ||
| 266 | + 'AssertionError [ERR_ASSERTION]: Missing expected exception.') { | ||
| 267 | + // Implicit rejection must be supported since | ||
| 268 | + // we did not get the exceptions that are thrown | ||
| 269 | + // when it is not, we should be able to decrypt | ||
| 270 | + let decryptedBuffer = crypto.privateDecrypt({ | ||
| 271 | + key: rsaKeyPem, | ||
| 272 | + padding: padding, | ||
| 273 | + oaepHash: decryptOaepHash | ||
| 274 | + }, encryptedBuffer); | ||
| 275 | + assert.deepStrictEqual(decryptedBuffer, input); | ||
| 276 | + | ||
| 277 | + decryptedBuffer = crypto.privateDecrypt({ | ||
| 278 | + key: rsaPkcs8KeyPem, | ||
| 279 | + padding: padding, | ||
| 280 | + oaepHash: decryptOaepHash | ||
| 281 | + }, encryptedBuffer); | ||
| 282 | + assert.deepStrictEqual(decryptedBuffer, input); | ||
| 283 | + } else { | ||
| 284 | + // There was an exception but it is not the one we expect if implicit | ||
| 285 | + // rejection is not supported so there was some other failure, | ||
| 286 | + // re-throw it so the test fails | ||
| 287 | + throw e; | ||
| 288 | + } | ||
| 289 | + } | ||
| 243 | 290 | } | |
| 244 | 291 | } else { | |
| 245 | 292 | let decryptedBuffer = crypto.privateDecrypt({ | |
| Back | FazBrowse Home | New Git URL |
0 commit comments