commit dbf82cc1a3f881a81834b6007f18840203735c66
parent 61e54365ecb5bf5ea521cc5fee52cccbe0781026
Author: finwo <finwo@pm.me>
Date: Thu, 10 Aug 2017 16:25:29 +0200
More options ; forgot sign call change
Diffstat:
| M | src/main.c | | | 43 | ++++++++++++++++++++++++++++++------------- |
1 file changed, 30 insertions(+), 13 deletions(-)
diff --git a/src/main.c b/src/main.c
@@ -8,18 +8,21 @@ extern "C" {
#include "base.h"
int usage( char *name ) {
- fprintf(stderr, "Usage:\n");
- fprintf(stderr, " %s -h\n", name);
- fprintf(stderr, " %s [-e|-d] [-t mul] [-m mod] [-p pad]\n", name);
- fprintf(stderr, " %s -s [-t mul] [-m mod]\n", name);
- fprintf(stderr, "Options:\n");
- fprintf(stderr, " -d Decrypt stdin\n");
- fprintf(stderr, " -e Encrypt stdin\n");
- fprintf(stderr, " -h Show this usage\n");
- fprintf(stderr, " -s Output sign for stdin\n");
- fprintf(stderr, " -t Set the multiplicand (default: 13)\n");
- fprintf(stderr, " -m Set the modulo (default: 557)\n");
- fprintf(stderr, " -p Set the padding in bytes (default: 1)\n");
+ fprintf(stderr, "\n"
+ "Usage:\n"
+ " %s -h\n"
+ " %s [-e|-d] [-t mul] [-m mod] [-p pad]\n"
+ " %s -s [-t mul] [-m mod]\n", name, name, name );
+ fprintf(stderr, "\n"
+ "Options:\n"
+ " -d Decrypt stdin\n"
+ " -e Encrypt stdin\n"
+ " -h Show this usage\n"
+ " -s Output sign for stdin\n"
+ " -t Set the multiplicand (default: 13)\n"
+ " -m Set the modulo (>=128) (default: 557)\n"
+ " -p Set the padding in bytes (>=1) (default: 1)\n");
+ fprintf(stderr, "\n");
return 0;
}
@@ -41,8 +44,22 @@ int main( int argc, char **argv ) {
mode = 3;
break;
case 't':
+ mult = atoui( optarg );
+ break;
case 'm':
+ modulo = atoui( optarg );
+ if ( modulo < 128 ) {
+ fprintf(stderr, "Modulo must be >= 128\n");
+ return 3;
+ }
+ break;
case 'p':
+ padding = atoui( optarg );
+ if ( padding < 1 ) {
+ fprintf(stderr, "Padding must be >= 1\n");
+ return 4;
+ }
+ break;
case 'h':
return usage( *argv );
default:
@@ -54,7 +71,7 @@ int main( int argc, char **argv ) {
switch(mode) {
case 1: return encrypt( mult, modulo, padding );
case 2: return decrypt( mult, modulo, padding );
- case 3: return sign( mult, modulo, padding );
+ case 3: return sign( mult, modulo );
}
usage( *argv );