ElGamal cryptosystem for JavaScript based on the implementation of PyCrypto.
In order to access the provided cryptographic functions, an instance of ElGamal should be generated or initialized with custom parameters.
import ElGamal from 'elgamal';
const eg = await ElGamal.generateAsync(); // Recommended way of initialization
const egCustom = new ElGamal(prime, generator, publicKey, privateKey);
const secret = 'The quick brown fox jumps over the lazy dog';
const encrypted = await eg.encryptAsync(secret);
const decrypted = await eg.decryptAsync(encrypted);
console.log(decrypted.toString() === secret); // true