/* Decrypts a "chunk" (a small part of a message) using "key" */ string RSA::decryptChunk(const BigInt &chunk, const Key &key) { BigInt a = chunk; // The RSA decryption algorithm is a congruence equation. a.SetPowerMod(key.GetExponent(), key.GetModulus()); // Decode the message to a readable form. return RSA::decode(a); }
/* Encrypts a "chunk" (a small part of a message) using "key" */ string RSA::encryptChunk(const string &chunk, const Key &key) { // First encode the chunk, to make sure it is represented as an integer. BigInt a = RSA::encode(chunk); // The RSA encryption algorithm is a congruence equation. a.SetPowerMod(key.GetExponent(), key.GetModulus()); return a.ToString(); }