@funded-labs/plug-controller
Version:
Internet Computer Plug wallet's controller
29 lines (28 loc) • 1.11 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.verify = exports.sign = void 0;
const text_encoding_shim_1 = require("text-encoding-shim");
const secp256k1_1 = __importDefault(require("secp256k1"));
const encoder = new text_encoding_shim_1.TextEncoder('utf-8');
const sign = (message, secretKey) => {
const encoded = encoder.encode(message);
const buffer = Buffer.from([
...Buffer.alloc(32 - encoded.length).fill(0),
...encoded,
]);
const { signature } = secp256k1_1.default.ecdsaSign(buffer, new Uint8Array(secretKey));
return signature;
};
exports.sign = sign;
const verify = (message, signature, publicKey) => {
const encoded = encoder.encode(message);
const buffer = Buffer.from([
...Buffer.alloc(32 - encoded.length).fill(0),
...encoded,
]);
return secp256k1_1.default.ecdsaVerify(signature, buffer, new Uint8Array(publicKey.toRaw()));
};
exports.verify = verify;