@bsv/sdk
Version:
BSV Blockchain Software Development Kit
23 lines (21 loc) • 769 B
text/typescript
/* eslint-env jest */
import BigNumber from '../../primitives/BigNumber'
import ReductionContext from '../../primitives/ReductionContext'
import { dhGroups } from './BigNumber.fixtures'
describe('BN.js/Slow DH test', () => {
Object.keys(dhGroups).forEach(function (name) {
it(
'should match public key for ' + name + ' group',
() => {
const group = dhGroups[name]
const base = new BigNumber(2)
const mont = new ReductionContext(new BigNumber(group.prime, 16))
const priv = new BigNumber(group.priv, 16)
const multed = base.toRed(mont).redPow(priv).fromRed()
const actual = Buffer.from(multed.toArray())
expect(actual.toString('hex')).toEqual(group.pub)
},
3600 * 1000
)
})
})