From e665f88a61b66b2042bc8a4227b6c9e1e1e817a8 Mon Sep 17 00:00:00 2001 From: Chen Zou Date: Mon, 15 May 2017 17:56:28 -0500 Subject: [PATCH] Key Generation program --- .gitignore | 1 + Makefile | 8 +++++++ build/.gitignore | 2 ++ data/.gitignore | 2 ++ src/DataGen.cpp | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 75 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 build/.gitignore create mode 100644 data/.gitignore create mode 100644 src/DataGen.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..722d5e7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vscode diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a736e49 --- /dev/null +++ b/Makefile @@ -0,0 +1,8 @@ +build/DataGen: src/DataGen.cpp + g++ src/DataGen.cpp -o build/DataGen + +genData: + ./build/DataGen + +clean: + rm -rf ./build/* diff --git a/build/.gitignore b/build/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/build/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/data/.gitignore b/data/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/data/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/src/DataGen.cpp b/src/DataGen.cpp new file mode 100644 index 0000000..54dfd63 --- /dev/null +++ b/src/DataGen.cpp @@ -0,0 +1,62 @@ +#include +#include +#include + +using namespace std; + +void genLinear(const char * FilePath, int len){ + FILE * Fo = fopen(FilePath, "w"); + for (int i = 0; i < len; i++) + fprintf(Fo, "%8x\n", i+1); +} +void genRandom(const char * FilePath, int len){ + printf("RAND_MAX = %d\n", RAND_MAX); + printf("RAND_MAX = %x\n", RAND_MAX); + FILE * Fo = fopen(FilePath, "w"); + for (int i = 0; i < len; i++) + fprintf(Fo, "%8x\n", rand()); + +} +void genGrid(const char * FilePath, int len){ + string s = "0x11111111"; + FILE * Fo = fopen(FilePath, "w"); + for (; len; len--){ + fprintf(Fo, "%s\n", s.c_str()); + for (int i = s.length() - 1; i >= 0; i--) { + if (s[i] == '9') + s[i] = 'A'; + else if (s[i] == 'F') + s[i] = '0'; + else s[i]++; + + if (s[i] != '0') + break; + } + } +} +void genRevGrid(const char * FilePath, int len){ + string s = "0x11111111"; + FILE * Fo = fopen(FilePath, "w"); + for (; len; len--){ + fprintf(Fo, "%s\n", s.c_str()); + for (int i = 0; i < s.length(); i--) { + if (s[i] == '9') + s[i] = 'A'; + else if (s[i] == 'F') + s[i] = '0'; + else s[i]++; + + if (s[i] != '0') + break; + } + } +} + +int main(){ + int N = 1468000; + genLinear("../data/Linear.key", 1468000); + genRandom("../data/Random.key", 1468000); + genGrid("../data/Grid.key", 1468000); + genRevGrid("../data/RevGrid.key", 1468000); + return 0; +}