use tiny-secp256k1, updated nip06 and other utils.

This commit is contained in:
fiatjaf
2021-12-29 14:29:43 -03:00
parent faa308049f
commit 60fc0d7940
7 changed files with 61 additions and 31 deletions

19
keys.js Normal file
View File

@@ -0,0 +1,19 @@
import randomBytes from 'randombytes'
import {isPrivate, pointFromScalar} from 'tiny-secp256k1'
export function generatePrivateKey() {
let i = 8
while (i--) {
let r32 = Buffer.from(randomBytes(32))
if (isPrivate(r32)) return r32.toString('hex')
}
throw new Error(
'Valid private key was not found in 8 iterations. PRNG is broken'
)
}
export function getPublicKey(privateKey) {
return Buffer.from(
pointFromScalar(Buffer.from(privateKey, 'hex'), true)
).toString('hex')
}