Skip to main content
Glama

privateGPT MCP Server

by Fujitsu-AI
generate_decrypted_password.js2.29 kB
import fs from 'fs'; import crypto from 'crypto'; import readline from 'readline'; // Function to load the private key function loadPrivateKey(path) { if (!path) { throw new Error( `No private key path provided. Please specify the path to the RSA-private key as an argument. Example usage: node security/generate_decrypted_password.js ~/.ssh/id_rsa` ); } try { return fs.readFileSync(path, 'utf8'); } catch (err) { throw new Error(`Error reading private key at "${path}": ${err.message}`); } } // Function for decryption (uses RSA-OAEP) function decryptWithPrivateKey(encryptedData, privateKeyPem) { const ciphertext = Buffer.from(encryptedData, 'base64'); const keyObj = crypto.createPrivateKey(privateKeyPem); const tryOaep = (hash) => crypto.privateDecrypt( { key: keyObj, padding: crypto.constants.RSA_PKCS1_OAEP_PADDING, oaepHash: hash, // try sha256 first, sha1 fallback if legacy }, ciphertext ); try { return tryOaep('sha256').toString('utf8'); } catch (e256) { try { return tryOaep('sha1').toString('utf8'); } catch (e1) { throw new Error( `Decryption failed with RSA-OAEP (tried SHA-256 and SHA-1). ` + `Ensure the ciphertext was created with RSA-OAEP using the same hash. ` + `Errors: [${e256.message}] / [${e1.message}]` ); } } } // Function to prompt for encrypted password input function askEncryptedPassword(question) { const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: true, }); return new Promise((resolve) => { rl.question(question, (answer) => { rl.close(); resolve(answer.trim()); }); }); } // Main function async function main() { const privateKeyPath = process.argv[2]; // private key path as CLI arg try { const privateKey = loadPrivateKey(privateKeyPath); const encryptedPassword = await askEncryptedPassword('Please enter the encrypted password (base64): '); const decryptedPassword = decryptWithPrivateKey(encryptedPassword, privateKey); console.log('Decrypted Password:', decryptedPassword); } catch (err) { console.error('Error:', err.message); process.exitCode = 1; } } main();

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Fujitsu-AI/MCP-Server-for-MAS-Developments'

If you have feedback or need assistance with the MCP directory API, please join our Discord server