commit fd020e0e94b09bf3a54693470cf28a85245f6aab
parent 754551b924853a600a3cefa96619f31ac11d9842
Author: finwo <finwo@pm.me>
Date: Tue, 8 Aug 2017 22:21:08 +0200
command switches
Diffstat:
6 files changed, 98 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
@@ -20,7 +20,7 @@ FCC=$(command -v musl-gcc gcc 2>/dev/null | head -1)
echo " - C flags"
echo "CFLAGS :=" >> Makefile
-command -v gcc &>/dev/null && echo "CFLAGS += -O3 -s" >> Makefile
+command -v gcc &>/dev/null && echo "CFLAGS += -Os -s" >> Makefile
echo "CFLAGS += -I inc" >> Makefile
echo " - Other variables"
diff --git a/inc/base.h b/inc/base.h
@@ -2,6 +2,10 @@
extern "C" {
#endif
+int encrypt( unsigned int mult, unsigned int modulo, unsigned int padding );
+int decrypt( unsigned int mult, unsigned int modulo, unsigned int padding );
+int sign( unsigned int mult, unsigned int modulo, unsigned int padding );
+
#ifdef __cplusplus
} // extern "C"
#endif
diff --git a/src/decrypt.c b/src/decrypt.c
@@ -0,0 +1,13 @@
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "base.h"
+
+int decrypt( unsigned int mult, unsigned int modulo, unsigned int padding ) {
+
+}
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/src/encrypt.c b/src/encrypt.c
@@ -0,0 +1,13 @@
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "base.h"
+
+int encrypt( unsigned int mult, unsigned int modulo, unsigned int padding ) {
+
+}
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/src/main.c b/src/main.c
@@ -2,12 +2,65 @@
extern "C" {
#endif
+#include <stdio.h>
+#include <unistd.h>
+
#include "base.h"
-int main( int argc, char **argv ) {
+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");
return 0;
}
+int main( int argc, char **argv ) {
+ int opt;
+
+ unsigned int mult = 13, modulo = 557, padding = 1;
+ char mode = 0;
+
+ while((opt=getopt(argc,argv,"edsht:m:p:"))!=-1) {
+ switch(opt) {
+ case 'e':
+ mode = 1;
+ break;
+ case 'd':
+ mode = 2;
+ break;
+ case 's':
+ mode = 3;
+ break;
+ case 't':
+ case 'm':
+ case 'p':
+ case 'h':
+ return usage( *argv );
+ default:
+ fprintf(stderr,"Run '%s -h' for usage.\n", *argv);
+ return 1;
+ }
+ }
+
+ switch(mode) {
+ case 1: return encrypt( mult, modulo, padding );
+ case 2: return decrypt( mult, modulo, padding );
+ case 3: return sign( mult, modulo, padding );
+ }
+
+ usage( *argv );
+ return 2;
+}
+
#ifdef __cplusplus
} // extern "C"
#endif
diff --git a/src/sign.c b/src/sign.c
@@ -0,0 +1,13 @@
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "base.h"
+
+int sign( unsigned int mult, unsigned int modulo, unsigned int padding ) {
+
+}
+
+#ifdef __cplusplus
+} // extern "C"
+#endif