c++: How to exchange input and output for this code?

Here is the code below. The code is about RSA.

#include "rsa.h"

int main()
{
  RSA rsa(13, 77);
  rsa.crypt("plainFile", "cipherFile");
  return 0;
}

rsa.cpp

#include "rsa.h"
#include <fstream>
#include <cmath>

RSA :: RSA(int k, int m)
: key(k), modulus(m)
{
}
RSA :: ~RSA()
{
}
void RSA :: crypt(const char* inFile, const char* outFile)
{
  ifstream  istrm(inFile, ios :: in);   
  ofstream  ostrm(outFile, ios :: out);
  int base, result;
  while (istrm >> base)
  {
    result = modulo(base, key, modulus);
    ostrm << result;
    ostrm << ' ';
  }
  istrm.close();
  ostrm.close();
}
int RSA:: modulo(int base, int power, int modulus)
{
  int result = 1;
  for (int i = 0; i < power; i++)
  {
    result = (result * base) % modulus;
  }
  return result;
}

rsa.h

#ifndef RSA_H
#define RSA_H
#include <iostream>
using namespace std;

class RSA
{
  private:
    int key;
    int modulus;
    int modulo(int base, int power, int modulus);
  public: 
    RSA(int key, int modulus);
    ~RSA();
    void crypt(const char* inFile, const char* outFile);
};
#endif

The output should be

Contents of Plaintext File:
14 27 12 45 9 64 22 8
Contents of Ciphertext File:
49 48 12 45 58 36 22 50

Now I would like to make this output become input, and get this output

#include “rsa.h”
int main ()
{
RSA rsa (13, 77); // 13 is the value of e and 77 is value of n
rsa.crypt (“plainFile”, “cipherFile”); return 0;
}

I try to exchange input and output but don’t know where to start, can I just change a little bit to do that? or I need to rewrite the code? anyone can help? How should I do it? Thanks.

Go to Source
Author: Maggie L