Examples of code
This commit is contained in:
parent
0524f41a3f
commit
9cc950fad3
|
@ -0,0 +1,54 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>bigint-crypto-utils</title>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="status">Still computing in background...</div>
|
||||||
|
<p>Look for the results in the JS console (Developer Tools)</p>
|
||||||
|
<script type="module">
|
||||||
|
import * as bigintCryptoUtils from '../lib/index.browser.bundle.mod.js'
|
||||||
|
/* A BigInt with value 666 can be declared calling the bigint constructor as
|
||||||
|
BigInt('666') or with the shorter 666n.
|
||||||
|
Notice that you can also pass a number to the constructor, e.g. BigInt(666).
|
||||||
|
However, it is not recommended since values over 2**53 - 1 won't be safe but
|
||||||
|
no warning will be raised.
|
||||||
|
*/
|
||||||
|
const a = BigInt('5')
|
||||||
|
const b = BigInt('2')
|
||||||
|
const n = 19n
|
||||||
|
|
||||||
|
console.log(bigintCryptoUtils.modPow(a, b, n)) // prints 6
|
||||||
|
|
||||||
|
console.log(bigintCryptoUtils.modInv(2n, 5n)) // prints 3
|
||||||
|
|
||||||
|
console.log(bigintCryptoUtils.modInv(BigInt('3'), BigInt('5'))) // prints 2
|
||||||
|
|
||||||
|
console.log(bigintCryptoUtils.randBetween(2n ** 256n)) // Prints a cryptographically secure random number between 1 and 2**256 bits.
|
||||||
|
|
||||||
|
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 = 13139188972124309083000292697519085211422620620787723340749020496498012413131881656428777288953095338604061035790562501399090389032827482643578651715752317n
|
||||||
|
const isPrime = await bigintCryptoUtils.isProbablyPrime(number)
|
||||||
|
if (isPrime) {
|
||||||
|
console.log(`${number} is prime`)
|
||||||
|
} else {
|
||||||
|
console.log(`${number} is composite`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
primeTesting().then(() => {
|
||||||
|
document.getElementById(
|
||||||
|
"status"
|
||||||
|
).innerHTML = 'Done!'
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
|
@ -0,0 +1,54 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>bigint-crypto-utils</title>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<script src="../lib/index.browser.bundle.iife.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="status">Still computing in background...</div>
|
||||||
|
<p>Look for the results in the JS console (Developer Tools)</p>
|
||||||
|
<script>
|
||||||
|
/* A BigInt with value 666 can be declared calling the bigint constructor as
|
||||||
|
BigInt('666') or with the shorter 666n.
|
||||||
|
Notice that you can also pass a number to the constructor, e.g. BigInt(666).
|
||||||
|
However, it is not recommended since values over 2**53 - 1 won't be safe but
|
||||||
|
no warning will be raised.
|
||||||
|
*/
|
||||||
|
const a = BigInt('5')
|
||||||
|
const b = BigInt('2')
|
||||||
|
const n = 19n
|
||||||
|
|
||||||
|
console.log(bigintCryptoUtils.modPow(a, b, n)) // prints 6
|
||||||
|
|
||||||
|
console.log(bigintCryptoUtils.modInv(2n, 5n)) // prints 3
|
||||||
|
|
||||||
|
console.log(bigintCryptoUtils.modInv(BigInt('3'), BigInt('5'))) // prints 2
|
||||||
|
|
||||||
|
console.log(bigintCryptoUtils.randBetween(2n ** 256n)) // Prints a cryptographically secure random number between 1 and 2**256 bits.
|
||||||
|
|
||||||
|
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 = 13139188972124309083000292697519085211422620620787723340749020496498012413131881656428777288953095338604061035790562501399090389032827482643578651715752317n
|
||||||
|
const isPrime = await bigintCryptoUtils.isProbablyPrime(number)
|
||||||
|
if (isPrime) {
|
||||||
|
console.log(`${number} is prime`)
|
||||||
|
} else {
|
||||||
|
console.log(`${number} is composite`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
primeTesting().then(() => {
|
||||||
|
document.getElementById(
|
||||||
|
"status"
|
||||||
|
).innerHTML = 'Done!'
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
|
@ -0,0 +1,36 @@
|
||||||
|
const bigintCryptoUtils = require('../lib/index.node')
|
||||||
|
// const bigintCryptoUtils = require('bigint-crypto-utils')
|
||||||
|
|
||||||
|
/* A BigInt with value 666 can be declared calling the bigint constructor as
|
||||||
|
BigInt('666') or with the shorter 666n.
|
||||||
|
Notice that you can also pass a number to the constructor, e.g. BigInt(666).
|
||||||
|
However, it is not recommended since values over 2**53 - 1 won't be safe but
|
||||||
|
no warning will be raised.
|
||||||
|
*/
|
||||||
|
const a = BigInt('5')
|
||||||
|
const b = BigInt('2')
|
||||||
|
const n = 19n
|
||||||
|
|
||||||
|
console.log(bigintCryptoUtils.modPow(a, b, n)) // prints 6
|
||||||
|
|
||||||
|
console.log(bigintCryptoUtils.modInv(2n, 5n)) // prints 3
|
||||||
|
|
||||||
|
console.log(bigintCryptoUtils.modInv(BigInt('3'), BigInt('5'))) // prints 2
|
||||||
|
|
||||||
|
console.log(bigintCryptoUtils.randBetween(2n ** 256n)) // Prints a cryptographically secure random number between 1 and 2**256 bits.
|
||||||
|
|
||||||
|
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 = 13139188972124309083000292697519085211422620620787723340749020496498012413131881656428777288953095338604061035790562501399090389032827482643578651715752317n
|
||||||
|
const isPrime = await bigintCryptoUtils.isProbablyPrime(number)
|
||||||
|
if (isPrime) {
|
||||||
|
console.log(`${number} is prime`)
|
||||||
|
} else {
|
||||||
|
console.log(`${number} is composite`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
primeTesting()
|
Loading…
Reference in New Issue