import { createHmac } from "crypto";
import { ec as EC } from "elliptic";

export function generateSchnorrKeyPair(seed: string): {
  privateKey: string;
  publicKey: string;
} {
  // Use HMAC-SHA256 with your seed as the message and a secret key (salt)
  const hmac = createHmac("sha256", "secret-salt");
  hmac.update(seed);
  const derivedKey = hmac.digest();

  // Create a key pair using the derived private key
  const ec = new EC("secp256k1");
  const keyPair = ec.keyFromPrivate(derivedKey);

  // Get the public key in hexadecimal format
  const publicKey = keyPair.getPublic("hex");

  return {
    privateKey: derivedKey.toString("hex"),
    publicKey,
  };
}