From 91ac0ef53e7fb8de4751ca2e2ce495544bec45d9 Mon Sep 17 00:00:00 2001 From: Numillyah Date: Sat, 16 Apr 2022 23:49:31 +0300 Subject: [PATCH] Initial commit --- Makefile | 14 +++++++++ No3 (1).docx | Bin 0 -> 14817 bytes config.h | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++ main.c | 8 ++++++ structs.h | 27 ++++++++++++++++++ 5 files changed, 128 insertions(+) create mode 100644 Makefile create mode 100644 No3 (1).docx create mode 100644 config.h create mode 100644 main.c create mode 100644 structs.h diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..733caac --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ +CC=gcc-11 +CFLAGS=-g -Wall -Wextra -O0 +LDFLAGS= +SOURCES=main.c config.h structs.h +OBJECTS=$(SOURCES:.cpp=.o) +EXECUTABLE=work1 + +all: $(SOURCES) $(EXECUTABLE) + +$(EXECUTABLE): $(OBJECTS) + $(CC) $(LDFLAGS) $(OBJECTS) -o $@ + +.cpp.o: + $(CC) $(CFLAGS) $< -o $@ \ No newline at end of file diff --git a/No3 (1).docx b/No3 (1).docx new file mode 100644 index 0000000000000000000000000000000000000000..6d750ab3a1dc372c0bcdcd59edff9b1905773cfe GIT binary patch literal 14817 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 literal 0 HcmV?d00001 diff --git a/config.h b/config.h new file mode 100644 index 0000000..86b4c42 --- /dev/null +++ b/config.h @@ -0,0 +1,79 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#define _CRT_SECURE_NO_WARNINGS +//#define DEBUG + +#include +#include +#include +#include +// #include +#include +#include +#include +#include + +// input console checking +#define HELP_CONSOLE_OPTION_1 "-h" +#define HELP_CONSOLE_OPTION_2 "--help" +#define GENKEY_CONSOLE_OPTION "genkey" +#define SIGNATURE_CONSOLE_OPTION "sign" +#define CHECK_CONSOLE_OPTION "check" +#define ENCRYPT_CONSOLE_OPTION "encrypt" +#define DECRYPT_CONSOLE_OPTION "decrypt" +#define SIZE_CONSOLE_OPTION "--size" +#define PUBKEY_CONSOLE_OPTION "--pubkey" +#define SECRET_CONSOLE_OPTION "--secret" +#define SIGFILE_CONSOLE_OPTION "--sigfile" +#define INFILE_CONSOLE_OPTION "--infile" +#define OUTFILE_CONSOLE_OPTION "--outfile" + +// boolean +#define BOOL int +#define TRUE 1 +#define FALSE 0 + +// RSA +#define KEYSIZE_MODULE 256 +typedef enum { + KEY_256 = 256, + KEY_512 = 512, + KEY_1024 = 1024, + KEY_2048 = 2048 +} KEY_BIT_SIZE; + +// file +#define FILE_OPENING_ERROR "Cannot open the %s file.\n" + +#define primes_128_bit_filename "primes_128_bit.blackleague" +#define primes_256_bit_filename "primes_256_bit.blackleague" +#define primes_512_bit_filename "primes_512_bit.blackleague" +#define primes_1024_bit_filename "primes_1024_bit.blackleague" + +/// +/// Exit codes for exit() +/// +enum EXIT_CODE { + SUCCESS, + FAILURE, + NO_ARGUMENTS_FAILURE, + WRONG_ARGUMENT_FAILURE, + NOT_ENOUGH_ARGUMENTS_FAILURE, + FILE_OPEN_FAILURE, + FILE_FORMAT_FAILURE, + LOG_FAILURE, + MEMORY_ALLOCATION_FAILURE, + GET_PRIME_FAILURE, + GET_NUMBER_FAILURE, + DEBUG_EXIT_CODE = 100 +}; + +// fast funcs +#define swap(a,b); b = a+b; a = b-a; b = b-a; +#ifdef _WIN32 +#else +#define max(a,b) (a>b)? a : b +#endif + +#endif // !CONFIG_H \ No newline at end of file diff --git a/main.c b/main.c new file mode 100644 index 0000000..8a005f5 --- /dev/null +++ b/main.c @@ -0,0 +1,8 @@ +#include "structs.h" + +int main() +{ + File new_file = createFile(); + printf("%s\n", new_file.creation_time); + return 0; +} \ No newline at end of file diff --git a/structs.h b/structs.h new file mode 100644 index 0000000..0e79e0e --- /dev/null +++ b/structs.h @@ -0,0 +1,27 @@ +#include "config.h" + +#define extinsion_lenth 5 +#define filename_lenth 10 +#define creation_time_length 17 + + +typedef struct +{ + char creation_time[creation_time_length+1]; + char filename[filename_lenth+1]; + char extension[extinsion_lenth+1]; +}File; + +File createFile() +{ + time_t time_now; + struct tm* time_info; + File result = {"\0","\0","\0"}; + + time(&time_now); + time_info = localtime(&time_now); + + strftime (result.creation_time,creation_time_length,"%T %D",time_info); + + return result; +} \ No newline at end of file