Gathering detailed insights and metrics for bigint-crypto-utils
Gathering detailed insights and metrics for bigint-crypto-utils
Gathering detailed insights and metrics for bigint-crypto-utils
Gathering detailed insights and metrics for bigint-crypto-utils
@lumeweb/bigint-crypto-utils
Arbitrary precision modular arithmetic, cryptographically secure random numbers and strong probable prime generation/testing. It works in modern browsers, Angular, React, Node.js, etc. since it uses the native JS implementation of BigInt
@crypto-utils/bigint
Utilities to handle bigints in web3 applications.
@durhailay/bigint-utils
Utilities to handle bigints in web3 applications.
Utils for working with cryptography using native JS implementation of BigInt. It includes arbitrary precision modular arithmetics, cryptographically secure random numbers and strong probable prime generation/testing. It works with Node.js, and native JS, including React and Angular
npm install bigint-crypto-utils
Typescript
Module System
Min. Node Version
Node Version
NPM Version
99.1
Supply Chain
95
Quality
76.1
Maintenance
100
Vulnerability
100
License
JavaScript (55.69%)
TypeScript (44.31%)
Total Downloads
16,702,112
Last Day
17,774
Last Week
102,810
Last Month
482,204
Last Year
5,549,670
MIT License
37 Stars
259 Commits
3 Forks
3 Watchers
3 Branches
4 Contributors
Updated on Jun 01, 2024
Minified
Minified + Gzipped
Latest Version
3.3.0
Package Id
bigint-crypto-utils@3.3.0
Unpacked Size
118.31 kB
Size
25.57 kB
File Count
45
NPM Version
9.5.1
Node Version
18.16.1
Published on
Jun 29, 2023
Cumulative downloads
Total Downloads
Last Day
-9.6%
17,774
Compared to previous day
Last Week
-0.6%
102,810
Compared to previous week
Last Month
-15.7%
482,204
Compared to previous month
Last Year
-32%
5,549,670
Compared to previous year
29
Arbitrary precision modular arithmetic, cryptographically secure random numbers and strong probable prime generation/testing.
It relies on the native JS implementation of (BigInt). It can be used by any Web Browser or webview supporting BigInt and with Node.js (>=10.4.0). The bundles can be imported directly by the browser or in Angular projects, React apps, Node.js, etc.
Secure random numbers are generated using the native crypto implementation of the browsers (Web Cryptography API) or Node.js Crypto. Strong probable prime generation and testing use Miller-Rabin primality tests and are automatically sped up using parallel workers both in browsers and Node.js.
The operations supported on BigInts are not constant time. BigInt can be therefore unsuitable for use in cryptography. Many platforms provide native support for cryptography, such as Web Cryptography API or Node.js Crypto.
bigint-crypto-utils
can be imported to your project with npm
:
1npm install bigint-crypto-utils
Then either require (Node.js CJS):
1const bigintCryptoUtils = require('bigint-crypto-utils')
or import (JavaScript ES module):
1import * as bigintCryptoUtils from 'bigint-crypto-utils'
The appropriate version for browser or node is automatically exported.
bigint-crypto-utils
uses ES2020 BigInt, so take into account that:
- If you experience issues using webpack/babel to create your production bundles, you may edit the supported browsers list and leave only supported browsers and versions. The browsers list is usually located in your project's
package.json
or the.browserslistrc
file.- In order to use
bigint-crypto-utils
with TypeScript you need to settarget
, andlib
andmodule
if in use, toES2020
in your project'stsconfig.json
.
You can also download the IIFE bundle, the ESM bundle or the UMD bundle and manually add it to your project, or, if you have already installed bigint-crypto-utils
in your project, just get the bundles from node_modules/bigint-crypto-utils/dist/bundles/
.
An example of usage could be (complete examples can be found in the examples directory):
1/* A BigInt with value 666 can be declared calling the bigint constructor as 2BigInt('666') or with the shorter 666n. 3Notice that you can also pass a number to the constructor, e.g. BigInt(666). 4However, it is not recommended since values over 2**53 - 1 won't be safe but 5no warning will be raised. 6*/ 7const a = BigInt('5') 8const b = BigInt('2') 9const n = 19n 10 11console.log(bigintCryptoUtils.modPow(a, b, n)) // prints 6 12 13console.log(bigintCryptoUtils.modInv(2n, 5n)) // prints 3 14 15console.log(bigintCryptoUtils.modInv(BigInt('3'), BigInt('5'))) // prints 2 16 17console.log(bigintCryptoUtils.randBetween(2n ** 256n)) // prints a cryptographically secure random number between 1 and 2**256 (both included). 18 19async function primeTesting (): void { 20 // Let us print out a probable prime of 2048 bits 21 console.log(await bigintCryptoUtils.prime(2048)) 22 23 // Testing if number is a probable prime (Miller-Rabin) 24 const number = 27n 25 const isPrime = await bigintCryptoUtils.isProbablyPrime(number) 26 if (isPrime === true) { 27 console.log(`${number} is prime`) 28 } else { 29 console.log(`${number} is composite`) 30 } 31} 32 33primeTesting() 34
No vulnerabilities found.
Reason
no dangerous workflow patterns detected
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
dependency not pinned by hash detected -- score normalized to 4
Details
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
Found 0/30 approved changesets -- score normalized to 0
Reason
no SAST tool detected
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
15 existing vulnerabilities detected
Details
Score
Last Scanned on 2025-04-07
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More