diff --git a/README.md b/README.md index 6d286f7..ec03ed2 100644 --- a/README.md +++ b/README.md @@ -22,75 +22,77 @@ For web browsers, you can also directly download the [IIFE file](https://raw.git ## Usage examples -### Node.js: +Import your module as : + + - Node.js + ```javascript + const bigintCryptoUtils = require('bigint-crypto-utils') + ... // your code here + ``` + - Javascript native project + ```javascript + import * as bigintCryptoUtils from 'bigint-crypto-utils' + ... // your code here + ``` + - Javascript native browser ES6 mod + ```html + + import as bcu from 'bigint-crypto-utils' + ... // your code here + ``` + - Javascript native browser IIFE + ```html + + + - TypeScript + ```typescript + import * as bigintCryptoUtils from 'bigint-crypto-utils' + ... // your code here + ``` + > BigInt is [ES-2020](https://tc39.es/ecma262/#sec-bigint-objects). In order to use it with TypeScript you should set `lib` (and probably also `target` and `module`) to `esnext` in `tsconfig.json`. ```javascript -const bigintCryptoUtils = require("bigint-crypto-utils"); - /* Stage 3 BigInts with value 666 can be declared as BigInt('666') or the shorter new no-so-linter-friendly syntax 666n. Notice that you can also pass a number, e.g. BigInt(666), but it is not recommended since values over 2**53 - 1 won't be safe but no warning will be raised. */ -let a = BigInt("5"); -let b = BigInt("2"); -let n = BigInt("19"); +const a = BigInt('5') +const b = BigInt('2') +const n = BigInt('19') -console.log(bigintCryptoUtils.modPow(a, b, n)); // prints 6 +console.log(bigintCryptoUtils.modPow(a, b, n)) // prints 6 -console.log(bigintCryptoUtils.modInv(BigInt("2"), BigInt("5"))); // prints 3 +console.log(bigintCryptoUtils.modInv(BigInt('2'), BigInt('5'))) // prints 3 -console.log(bigintCryptoUtils.modInv(BigInt("3"), BigInt("5"))); // prints 2 +console.log(bigintCryptoUtils.modInv(BigInt('3'), BigInt('5'))) // prints 2 -// Generation of a probable prime of 2048 bits -const prime = await bigintCryptoUtils.prime(2048); +console.log(bigintCryptoUtils.randBetween(BigInt(2) ** BigInt(256))) // Prints a cryptographically secure random number between 1 and 2**256 bits. -// Testing if a prime is a probable prime (Miller-Rabin) -if (await bigintCryptoUtils.isProbablyPrime(prime)) - // code if is prime +async function primeTesting () { + // Output of a probable prime of 2048 bits + console.log(await bigintCryptoUtils.prime(2048)) + + // Testing if a number is a probable prime (Miller-Rabin) + const number = 27 + const isPrime = await bigintCryptoUtils.isProbablyPrime(number) + if (isPrime) { + console.log(`${number} is prime`) + } else { + console.log(`${number} is composite`) + } +} + +primeTesting() - // Get a cryptographically secure random number between 1 and 2**256 bits. - const rnd = bigintCryptoUtils.randBetween(BigInt(2) ** BigInt(256)); ``` -### Javascript native from a browser - -You can just load the module in a html page as: - -```html - -``` - -### TypeScript - -BigInt is [ES-2020](https://tc39.es/ecma262/#sec-bigint-objects). In order to use it with TypeScript you should set `lib` (and probably also `target` and `module`) to `esnext` in `tsconfig.json`. - ## bigint-crypto-utils JS Doc ### Functions diff --git a/src/doc/readme-template.md b/src/doc/readme-template.md index c4a2985..37613e0 100644 --- a/src/doc/readme-template.md +++ b/src/doc/readme-template.md @@ -22,75 +22,77 @@ For web browsers, you can also directly download the [IIFE file](https://raw.git ## Usage examples -### Node.js: +Import your module as : + + - Node.js + ```javascript + const bigintCryptoUtils = require('bigint-crypto-utils') + ... // your code here + ``` + - Javascript native project + ```javascript + import * as bigintCryptoUtils from 'bigint-crypto-utils' + ... // your code here + ``` + - Javascript native browser ES6 mod + ```html + + import as bcu from 'bigint-crypto-utils' + ... // your code here + ``` + - Javascript native browser IIFE + ```html + + + - TypeScript + ```typescript + import * as bigintCryptoUtils from 'bigint-crypto-utils' + ... // your code here + ``` + > BigInt is [ES-2020](https://tc39.es/ecma262/#sec-bigint-objects). In order to use it with TypeScript you should set `lib` (and probably also `target` and `module`) to `esnext` in `tsconfig.json`. ```javascript -const bigintCryptoUtils = require("bigint-crypto-utils"); - /* Stage 3 BigInts with value 666 can be declared as BigInt('666') or the shorter new no-so-linter-friendly syntax 666n. Notice that you can also pass a number, e.g. BigInt(666), but it is not recommended since values over 2**53 - 1 won't be safe but no warning will be raised. */ -let a = BigInt("5"); -let b = BigInt("2"); -let n = BigInt("19"); +const a = BigInt('5') +const b = BigInt('2') +const n = BigInt('19') -console.log(bigintCryptoUtils.modPow(a, b, n)); // prints 6 +console.log(bigintCryptoUtils.modPow(a, b, n)) // prints 6 -console.log(bigintCryptoUtils.modInv(BigInt("2"), BigInt("5"))); // prints 3 +console.log(bigintCryptoUtils.modInv(BigInt('2'), BigInt('5'))) // prints 3 -console.log(bigintCryptoUtils.modInv(BigInt("3"), BigInt("5"))); // prints 2 +console.log(bigintCryptoUtils.modInv(BigInt('3'), BigInt('5'))) // prints 2 -// Generation of a probable prime of 2048 bits -const prime = await bigintCryptoUtils.prime(2048); +console.log(bigintCryptoUtils.randBetween(BigInt(2) ** BigInt(256))) // Prints a cryptographically secure random number between 1 and 2**256 bits. -// Testing if a prime is a probable prime (Miller-Rabin) -if (await bigintCryptoUtils.isProbablyPrime(prime)) - // code if is prime +async function primeTesting () { + // Output of a probable prime of 2048 bits + console.log(await bigintCryptoUtils.prime(2048)) + + // Testing if a number is a probable prime (Miller-Rabin) + const number = 27 + const isPrime = await bigintCryptoUtils.isProbablyPrime(number) + if (isPrime) { + console.log(`${number} is prime`) + } else { + console.log(`${number} is composite`) + } +} + +primeTesting() - // Get a cryptographically secure random number between 1 and 2**256 bits. - const rnd = bigintCryptoUtils.randBetween(BigInt(2) ** BigInt(256)); ``` -### Javascript native from a browser - -You can just load the module in a html page as: - -```html - -``` - -### TypeScript - -BigInt is [ES-2020](https://tc39.es/ecma262/#sec-bigint-objects). In order to use it with TypeScript you should set `lib` (and probably also `target` and `module`) to `esnext` in `tsconfig.json`. - ## bigint-crypto-utils JS Doc {{>main}}