Attack implementation.
[crypto_lab3.git] / src / main.cpp
index 4cfdb9c..3dcf71e 100644 (file)
@@ -19,15 +19,12 @@ const uint RSA_PUBLIC_EXPONENT = 65537;
 
 void printUsage(const string& progName)
 {
-   cout << "Usage: " << progName << " [tests|time-measures]" << endl;
-
-//   mpz_class n = 10;
-//   mpz_class d = 3;
-//   mpz_class q;
-//   mpz_fdiv_q(q.get_mpz_t(), n.get_mpz_t(), d.get_mpz_t());
-
-//   cout << "q: " << q << endl;
-//   cout << "q: " << (n / d) << endl;
+   cout << "Usage: " << progName << " <command>" << endl;
+   cout << " <command> can be one of the following:" << endl;
+   cout << "  * tests: Do some tests for RSA and RSA-CRT" << endl;
+   cout << "  * time-measures: Compute the ratio between RSA and RSA-CRT" << endl;
+   cout << "  * attack: Simulate the Boneh-DeMillo-Lipton attack against RSA-CRT" << endl;
+   cout << "  * attack-fixed: [TODO]" << endl;
 }
 
 int main(int argc, char** argv)
@@ -40,6 +37,8 @@ int main(int argc, char** argv)
       Tests(KEY_SIZE_BITS, RSA_PUBLIC_EXPONENT).runTests();
    else if (args.size() >= 2 && args[1] == "time-measures")
       Tests(KEY_SIZE_BITS, RSA_PUBLIC_EXPONENT).runTimeMeasures();
+   else if (args.size() >= 2 && args[1] == "attack")
+      Tests(KEY_SIZE_BITS, RSA_PUBLIC_EXPONENT).doAttack();
    else
       printUsage(args[0]);