@w3bstream/w3bstream-http-client-simulator
Version:
[](https://www.npmjs.com/package/@w3bstream/w3bstream-http-client-simulator)
20 lines (19 loc) • 701 B
JavaScript
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();
}
}