genKeypair.ts 446 B

12345678910111213
  1. /**
  2. * # Returns privkey (32 bytes), pubkey (65 bytes, uncompressed), pubkey (33 bytes, compressed)
  3. */
  4. export default () => {
  5. privkey = ecdsa.util.randrange(ecdsa.SECP256k1.order)
  6. P = privkey * ecdsa.SECP256k1.generator
  7. return (int(privkey).to_bytes(32,'big'),
  8. b'\x04' + int(P.x()).to_bytes(32,'big') + int(P.y()).to_bytes(32,'big'),
  9. bytes((2 + (P.y()&1),)) + int(P.x()).to_bytes(32,'big'),
  10. )
  11. }