UNPKG

fundsdb-zkpengine

Version:

A Zero-Knowledge Proof Engine using SnarkJS and PostgreSQL

59 lines (47 loc) 1.76 kB
const zkEngine = require("../zkengine"); const jwt = require("../auth/jwt"); exports.generateProof = async (req, res) => { try { const { input } = req.body; // 🔹 Ensure input is from body if (!input || typeof input !== "string") { return res.status(400).json({ error: "Invalid input: Expected a non-empty string" }); } console.log("Received input for proof generation:", input); // Debugging log const proof = await zkEngine.generateProof(input); res.json({ proof }); } catch (error) { console.error("Proof generation error:", error); // Log error for debugging res.status(500).json({ error: `Proof generation failed: ${error.message}` }); } }; exports.verifyProof = async (req, res) => { try { const { proof } = req.body; if (!proof) { return res.status(400).json({ error: "Missing proof for verification" }); } const isValid = await zkEngine.verifyProof(proof); res.json({ valid: isValid }); } catch (error) { res.status(500).json({ error: `Proof verification failed: ${error.message}` }); } }; exports.login = (req, res) => { try { const token = jwt.generateToken({ user: "testuser" }); res.json({ token }); } catch (error) { res.status(500).json({ error: "Token generation failed" }); } }; exports.secureEndpoint = (req, res) => { try { const auth = jwt.authenticate(req); if (!auth) { return res.status(403).json({ error: "Unauthorized" }); } res.json({ message: "Secure data accessed" }); } catch (error) { res.status(500).json({ error: "Authentication processing failed" }); } };