mirror of
https://github.com/nbd-wtf/nostr-tools.git
synced 2025-12-09 00:28:51 +00:00
use tiny-secp256k1, updated nip06 and other utils.
This commit is contained in:
19
keys.js
Normal file
19
keys.js
Normal 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')
|
||||
}
|
||||
Reference in New Issue
Block a user