UNPKG

fidelius-abdm

Version:

This Project Require Java Version 11 Please Do Not install java 17 it create issue in this package

89 lines (79 loc) 2.16 kB
const path = require("path"); const { execSync } = require("child_process"); const binPath = path.join( __dirname, `/fidelius-cli-1.2.0/bin/fidelius-cli` ); const execFideliusCli = (args) => { const execOptions = { encoding: "utf-8" }; const fideliusCommand = `${binPath} ${args.join(" ")}`; const result = execSync(fideliusCommand, execOptions); try { return JSON.parse(result.replace(/(\r\n|\n|\r)/gm, "")); } catch (error) { console.error( `ERROR · execFideliusCli · Command: ${args.join(" ")}\n${result}` ); } }; /** * Function to getEcdhKeyMaterial * @returns */ const getEcdhKeyMaterial = () => { const result = execFideliusCli(["gkm"]); return result; }; /** * Function to encrypt using HIU's public key and nonce and HIP's private key and nonse * @param {Object} EncryptionParams * @param {String} EncryptionParams.stringToEncrypt * @param {String} EncryptionParams.senderNonce * @param {String} EncryptionParams.requesterNonce * @param {String} EncryptionParams.senderPrivateKey * @param {String} EncryptionParams.requesterPublicKey * @returns */ const encryptData = ({ stringToEncrypt, senderNonce, requesterNonce, senderPrivateKey, requesterPublicKey }) => { const result = execFideliusCli([ "e", stringToEncrypt = JSON.stringify(stringToEncrypt), senderNonce, requesterNonce, senderPrivateKey, requesterPublicKey]); return result; }; /** * Function to decrypt using HIP's private key and nonce and HIP's public key and nonse * @param {Object} DecryptionParams * @param {String} DecryptionParams.encryptedData * @param {String} DecryptionParams.requesterNonce * @param {String} DecryptionParams.senderNonce * @param {String} DecryptionParams.requesterPrivateKey * @param {String} DecryptionParams.senderPublicKey * @returns */ const decryptData = ({ encryptedData, requesterNonce, senderNonce, requesterPrivateKey, senderPublicKey, }) => { const result = execFideliusCli([ "d", encryptedData, requesterNonce, senderNonce, requesterPrivateKey, senderPublicKey]); return result; }; module.exports = { encryptData, decryptData, getEcdhKeyMaterial }