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 << " * tests-with-shamirs-trick: Do some tests for RSA-CRT with Shamir's trick" << 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;
+ cout << " * attack-fixed: Try the attack with the Shamir's trick version" << endl;
}
int main(int argc, char** argv)
if (args.size() >= 2 && args[1] == "tests")
Tests(KEY_SIZE_BITS, RSA_PUBLIC_EXPONENT).runTests();
+ else if (args.size() >= 2 && args[1] == "tests-with-shamirs-trick")
+ Tests(KEY_SIZE_BITS, RSA_PUBLIC_EXPONENT).runTestsWithShamirsTrick();
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 if (args.size() >= 2 && args[1] == "attack-fixed")
+ Tests(KEY_SIZE_BITS, RSA_PUBLIC_EXPONENT).doAttackFixed();
else
printUsage(args[0]);