UNPKG

@w3bstream/w3bstream-http-client-simulator

Version:

[![npm](https://img.shields.io/npm/v/@w3bstream/w3bstream-http-client-simulator)](https://www.npmjs.com/package/@w3bstream/w3bstream-http-client-simulator)

20 lines (19 loc) 701 B
import crypto from "crypto"; import Elliptic from "elliptic"; const ec = new Elliptic.ec("p256"); export class SimulatorSigner { static sign(message, pk) { const hash = SimulatorSigner.msgToHash(message); const ecPrivateKey = ec.keyFromPrivate(pk, "hex"); const signature = ecPrivateKey.sign(hash); return signature.toDER("hex"); } static verify(message, signature, pubK) { const hash = SimulatorSigner.msgToHash(message); const ecPublicKey = ec.keyFromPublic(pubK, "hex"); return ecPublicKey.verify(hash, signature); } static msgToHash(message) { return crypto.createHash("sha256").update(message).digest(); } }