diff options
Diffstat (limited to 'cli/tests/node_compat/test/parallel/test-crypto-prime.js')
-rw-r--r-- | cli/tests/node_compat/test/parallel/test-crypto-prime.js | 302 |
1 files changed, 0 insertions, 302 deletions
diff --git a/cli/tests/node_compat/test/parallel/test-crypto-prime.js b/cli/tests/node_compat/test/parallel/test-crypto-prime.js deleted file mode 100644 index fc2218c2a..000000000 --- a/cli/tests/node_compat/test/parallel/test-crypto-prime.js +++ /dev/null @@ -1,302 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. - -'use strict'; - -const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); - -const assert = require('assert'); - -const { - generatePrime, - generatePrimeSync, - checkPrime, - checkPrimeSync, -} = require('crypto'); - -const { promisify } = require('util'); -const pgeneratePrime = promisify(generatePrime); -const pCheckPrime = promisify(checkPrime); - -assert(!checkPrimeSync(Buffer.from([0x1]))); -assert(checkPrimeSync(Buffer.from([0x2]))); -assert(checkPrimeSync(Buffer.from([0x3]))); -assert(!checkPrimeSync(Buffer.from([0x4]))); - -assert( - !checkPrimeSync( - Buffer.from([0x1]), - { - fast: true, - trialDivision: true, - checks: 10 - })); - -(async function() { - const prime = await pgeneratePrime(36); - assert(await pCheckPrime(prime)); -})().then(common.mustCall()); - -assert.throws(() => { - generatePrimeSync(32, { bigint: '' }); -}, { code: 'ERR_INVALID_ARG_TYPE' }); - -assert.throws(() => { - generatePrime(32, { bigint: '' }, common.mustNotCall()); -}, { code: 'ERR_INVALID_ARG_TYPE' }); - -{ - const prime = generatePrimeSync(3, { bigint: true }); - assert.strictEqual(typeof prime, 'bigint'); - assert.strictEqual(prime, 7n); - assert(checkPrimeSync(prime)); - checkPrime(prime, common.mustSucceed(assert)); -} - -{ - generatePrime(3, { bigint: true }, common.mustSucceed((prime) => { - assert.strictEqual(typeof prime, 'bigint'); - assert.strictEqual(prime, 7n); - assert(checkPrimeSync(prime)); - checkPrime(prime, common.mustSucceed(assert)); - })); -} - - -['hello', false, {}, []].forEach((i) => { - assert.throws(() => generatePrime(i), { - code: 'ERR_INVALID_ARG_TYPE' - }); - assert.throws(() => generatePrimeSync(i), { - code: 'ERR_INVALID_ARG_TYPE' - }); -}); - -['hello', false, 123].forEach((i) => { - assert.throws(() => generatePrime(80, i, common.mustNotCall()), { - code: 'ERR_INVALID_ARG_TYPE' - }); - assert.throws(() => generatePrimeSync(80, i), { - code: 'ERR_INVALID_ARG_TYPE' - }); -}); - -['hello', false, 123].forEach((i) => { - assert.throws(() => generatePrime(80, {}), { - code: 'ERR_INVALID_ARG_TYPE' - }); -}); - -[-1, 0, 2 ** 31, 2 ** 31 + 1, 2 ** 32 - 1, 2 ** 32].forEach((size) => { - assert.throws(() => generatePrime(size, common.mustNotCall()), { - code: 'ERR_OUT_OF_RANGE', - message: />= 1 && <= 2147483647/ - }); - assert.throws(() => generatePrimeSync(size), { - code: 'ERR_OUT_OF_RANGE', - message: />= 1 && <= 2147483647/ - }); -}); - -['test', -1, {}, []].forEach((i) => { - assert.throws(() => generatePrime(8, { safe: i }, common.mustNotCall()), { - code: 'ERR_INVALID_ARG_TYPE' - }); - assert.throws(() => generatePrime(8, { rem: i }, common.mustNotCall()), { - code: 'ERR_INVALID_ARG_TYPE' - }); - assert.throws(() => generatePrime(8, { add: i }, common.mustNotCall()), { - code: 'ERR_INVALID_ARG_TYPE' - }); - assert.throws(() => generatePrimeSync(8, { safe: i }), { - code: 'ERR_INVALID_ARG_TYPE' - }); - assert.throws(() => generatePrimeSync(8, { rem: i }), { - code: 'ERR_INVALID_ARG_TYPE' - }); - assert.throws(() => generatePrimeSync(8, { add: i }), { - code: 'ERR_INVALID_ARG_TYPE' - }); -}); - -{ - // Negative BigInts should not be converted to 0 silently. - - assert.throws(() => generatePrime(20, { add: -1n }, common.mustNotCall()), { - code: 'ERR_OUT_OF_RANGE', - message: 'The value of "options.add" is out of range. It must be >= 0. ' + - 'Received -1n' - }); - - assert.throws(() => generatePrime(20, { rem: -1n }, common.mustNotCall()), { - code: 'ERR_OUT_OF_RANGE', - message: 'The value of "options.rem" is out of range. It must be >= 0. ' + - 'Received -1n' - }); - - // assert.throws(() => checkPrime(-1n, common.mustNotCall()), { - // code: 'ERR_OUT_OF_RANGE', - // message: 'The value of "candidate" is out of range. It must be >= 0. ' + - // 'Received -1n' - // }); -} - -generatePrime(80, common.mustSucceed((prime) => { - assert(checkPrimeSync(prime)); - checkPrime(prime, common.mustSucceed((result) => { - assert(result); - })); -})); - -assert(checkPrimeSync(generatePrimeSync(80))); - -generatePrime(80, {}, common.mustSucceed((prime) => { - assert(checkPrimeSync(prime)); -})); - -assert(checkPrimeSync(generatePrimeSync(80, {}))); - -// generatePrime(32, { safe: true }, common.mustSucceed((prime) => { -// assert(checkPrimeSync(prime)); -// const buf = Buffer.from(prime); -// const val = buf.readUInt32BE(); -// const check = (val - 1) / 2; -// buf.writeUInt32BE(check); -// assert(checkPrimeSync(buf)); -// })); - -// { -// const prime = generatePrimeSync(32, { safe: true }); -// assert(checkPrimeSync(prime)); -// const buf = Buffer.from(prime); -// const val = buf.readUInt32BE(); -// const check = (val - 1) / 2; -// buf.writeUInt32BE(check); -// assert(checkPrimeSync(buf)); -// } - -// const add = 12; -// const rem = 11; -// const add_buf = Buffer.from([add]); -// const rem_buf = Buffer.from([rem]); -// generatePrime( -// 32, -// { add: add_buf, rem: rem_buf }, -// common.mustSucceed((prime) => { -// assert(checkPrimeSync(prime)); -// const buf = Buffer.from(prime); -// const val = buf.readUInt32BE(); -// assert.strictEqual(val % add, rem); -// })); - -// { -// const prime = generatePrimeSync(32, { add: add_buf, rem: rem_buf }); -// assert(checkPrimeSync(prime)); -// const buf = Buffer.from(prime); -// const val = buf.readUInt32BE(); -// assert.strictEqual(val % add, rem); -// } - -// { -// const prime = generatePrimeSync(32, { add: BigInt(add), rem: BigInt(rem) }); -// assert(checkPrimeSync(prime)); -// const buf = Buffer.from(prime); -// const val = buf.readUInt32BE(); -// assert.strictEqual(val % add, rem); -// } - -// { -// // The behavior when specifying only add without rem should depend on the -// // safe option. - -// if (process.versions.openssl >= '1.1.1f') { -// generatePrime(128, { -// bigint: true, -// add: 5n -// }, common.mustSucceed((prime) => { -// assert(checkPrimeSync(prime)); -// assert.strictEqual(prime % 5n, 1n); -// })); - -// generatePrime(128, { -// bigint: true, -// safe: true, -// add: 5n -// }, common.mustSucceed((prime) => { -// assert(checkPrimeSync(prime)); -// assert.strictEqual(prime % 5n, 3n); -// })); -// } -// } - -// { -// // This is impossible because it implies (prime % 2**64) == 1 and -// // prime < 2**64, meaning prime = 1, but 1 is not prime. -// for (const add of [2n ** 64n, 2n ** 65n]) { -// assert.throws(() => { -// generatePrimeSync(64, { add }); -// }, { -// code: 'ERR_OUT_OF_RANGE', -// message: 'invalid options.add' -// }); -// } - -// // Any parameters with rem >= add lead to an impossible condition. -// for (const rem of [7n, 8n, 3000n]) { -// assert.throws(() => { -// generatePrimeSync(64, { add: 7n, rem }); -// }, { -// code: 'ERR_OUT_OF_RANGE', -// message: 'invalid options.rem' -// }); -// } - -// // This is possible, but not allowed. It implies prime == 7, which means that -// // we did not actually generate a random prime. -// assert.throws(() => { -// generatePrimeSync(3, { add: 8n, rem: 7n }); -// }, { -// code: 'ERR_OUT_OF_RANGE' -// }); - -// if (process.versions.openssl >= '1.1.1f') { -// // This is possible and allowed (but makes little sense). -// assert.strictEqual(generatePrimeSync(4, { -// add: 15n, -// rem: 13n, -// bigint: true -// }), 13n); -// } -// } - -[1, 'hello', {}, []].forEach((i) => { - assert.throws(() => checkPrime(i), { - code: 'ERR_INVALID_ARG_TYPE' - }); -}); - -for (const checks of ['hello', {}, []]) { - assert.throws(() => checkPrime(2n, { checks }, common.mustNotCall()), { - code: 'ERR_INVALID_ARG_TYPE', - message: /checks/ - }); - assert.throws(() => checkPrimeSync(2n, { checks }), { - code: 'ERR_INVALID_ARG_TYPE', - message: /checks/ - }); -} - -for (const checks of [-(2 ** 31), -1, 2 ** 31, 2 ** 32 - 1, 2 ** 32, 2 ** 50]) { - assert.throws(() => checkPrime(2n, { checks }, common.mustNotCall()), { - code: 'ERR_OUT_OF_RANGE', - message: /<= 2147483647/ - }); - assert.throws(() => checkPrimeSync(2n, { checks }), { - code: 'ERR_OUT_OF_RANGE', - message: /<= 2147483647/ - }); -} |