Integrate current state-of-affairs into luksrku

Now integrated into the official Makefile. All functionality is broken
(was for a while), but it's progress nevertheless.
This commit is contained in:
Johannes Bauer 2019-10-23 09:39:40 +02:00
parent 20ffe38b53
commit ecbf3827ca
5 changed files with 15 additions and 41 deletions

View File

@ -1,30 +1,24 @@
.PHONY: all clean test testclient derive install .PHONY: all clean test testclient install
all: luksrku luksrku-config all: luksrku
BUILD_REVISION := $(shell git describe --abbrev=10 --dirty --always --tags) BUILD_REVISION := $(shell git describe --abbrev=10 --dirty --always --tags)
INSTALL_PREFIX := /usr/local/ INSTALL_PREFIX := /usr/local/
CFLAGS := -Wall -Wextra -Wshadow -Wswitch -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Werror=implicit-function-declaration -Werror=format -Wno-unused-parameter CFLAGS := -Wall -Wextra -Wshadow -Wswitch -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Werror=implicit-function-declaration -Werror=format -Wno-unused-parameter
#CFLAGS := -Wall -Wextra -O2 -Wmissing-prototypes -Wstrict-prototypes CFLAGS += -O3 -std=c11 -pthread -D_POSIX_SOURCE -D_XOPEN_SOURCE=500 -DBUILD_REVISION='"$(BUILD_REVISION)"'
CFLAGS += -std=c11 -pthread -D_POSIX_SOURCE -D_XOPEN_SOURCE=500 -DBUILD_REVISION='"$(BUILD_REVISION)"'
#CFLAGS += -g -DDEBUG
CFLAGS += `pkg-config --cflags openssl` CFLAGS += `pkg-config --cflags openssl`
CFLAGS += -ggdb3 -DDEBUG -fsanitize=address -fsanitize=undefined -fsanitize=leak
LDFLAGS := `pkg-config --libs openssl` LDFLAGS := `pkg-config --libs openssl`
OBJS := luksrku.o server.o log.o openssl.o client.o keyfile.o msg.o binkeyfile.o util.o cmdline.o luks.o exec.o blacklist.o OBJS := luksrku.o editor.o util.o log.o keydb.o file_encryption.o uuid.o
OBJS_CFG := luksrku-config.o keyfile.o binkeyfile.o parse-keyfile.o openssl.o log.o util.o
install: all install: all
strip luksrku luksrku-config cp luksrku $(INSTALL_PREFIX)sbin/
cp luksrku luksrku-config $(INSTALL_PREFIX)sbin/ chown root:root $(INSTALL_PREFIX)sbin/luksrku
chown root:root $(INSTALL_PREFIX)sbin/luksrku $(INSTALL_PREFIX)sbin/luksrku-config chmod 755 $(INSTALL_PREFIX)sbin/luksrku
chmod 755 $(INSTALL_PREFIX)sbin/luksrku $(INSTALL_PREFIX)sbin/luksrku-config
clean: clean:
rm -f $(OBJS) $(OBJS_CFG) luksrku luksrku-config rm -f $(OBJS) $(OBJS_CFG) luksrku
valgrind: luksrku
valgrind --leak-check=full --show-leak-kinds=all ./luksrku -v --client-mode -k client_keys.bin
test: luksrku test: luksrku
./luksrku -v --server-mode -k server_key.bin ./luksrku -v --server-mode -k server_key.bin
@ -35,15 +29,8 @@ gdb: luksrku
testclient: luksrku testclient: luksrku
./luksrku -v --client-mode -k client_keys.bin ./luksrku -v --client-mode -k client_keys.bin
derive: luksrku-config
./luksrku-config server server_key.txt server_key.bin
./luksrku-config client client_keys.txt client_keys.bin
.c.o: .c.o:
$(CC) $(CFLAGS) -c -o $@ $< $(CC) $(CFLAGS) -c -o $@ $<
luksrku: $(OBJS) luksrku: $(OBJS)
$(CC) $(CFLAGS) -o $@ $(OBJS) $(LDFLAGS) $(CC) $(CFLAGS) -o $@ $(OBJS) $(LDFLAGS)
luksrku-config: $(OBJS_CFG)
$(CC) $(CFLAGS) -o $@ $(OBJS_CFG) $(LDFLAGS)

View File

@ -49,9 +49,9 @@ struct editor_context_t {
}; };
struct editor_command_t { struct editor_command_t {
const char *cmdnames[MAX_COMMAND_ALIAS_COUNT];
unsigned int min_params; unsigned int min_params;
unsigned int max_params; unsigned int max_params;
const char *cmdnames[MAX_COMMAND_ALIAS_COUNT];
const char *param_names; const char *param_names;
const char *description; const char *description;
enum cmd_returncode_t (*callback)(struct editor_context_t *ctx, const char *cmdname, unsigned int param_cnt, char **params); enum cmd_returncode_t (*callback)(struct editor_context_t *ctx, const char *cmdname, unsigned int param_cnt, char **params);
@ -179,7 +179,7 @@ static const struct editor_command_t commands[] = {
.description = "Dumps the raw representation of a file", .description = "Dumps the raw representation of a file",
}, },
#endif #endif
{ { 0 } } { 0 }
}; };
static void format_command(char dest[static 128], const struct editor_command_t *cmd, const char *command_name) { static void format_command(char dest[static 128], const struct editor_command_t *cmd, const char *command_name) {
@ -548,13 +548,3 @@ void editor_start(void) {
} }
OPENSSL_cleanse(&editor_context, sizeof(editor_context)); OPENSSL_cleanse(&editor_context, sizeof(editor_context));
} }
#ifndef __TEST_EDITOR__
// gcc -O3 -ggdb3 -DDEBUG -D_POSIX_SOURCE -Wall -std=c11 -Wmissing-prototypes -Wstrict-prototypes -Werror=implicit-function-declaration -Wimplicit-fallthrough -Wshadow -pie -fPIE -fsanitize=address -fsanitize=undefined -fsanitize=leak -o editor editor.c util.c log.c keydb.c file_encryption.c uuid.c -lcrypto && ./editor
int main(int argc, char **argv) {
editor_start();
return 0;
}
#endif

View File

@ -49,7 +49,7 @@ struct host_entry_t {
struct keydb_t { struct keydb_t {
unsigned int keydb_version; unsigned int keydb_version;
bool server_database; bool server_database;
int host_count; unsigned int host_count;
struct host_entry_t hosts[]; struct host_entry_t hosts[];
}; };

View File

@ -25,13 +25,8 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "server.h"
#include "client.h"
#include "openssl.h" #include "openssl.h"
#include "binkeyfile.h"
#include "cmdline.h"
#include "log.h" #include "log.h"
#include "keyfile.h"
#if OPENSSL_VERSION_NUMBER < 0x010100000 #if OPENSSL_VERSION_NUMBER < 0x010100000
#error "luksrku requires at least OpenSSL v1.1 to work." #error "luksrku requires at least OpenSSL v1.1 to work."
@ -42,6 +37,7 @@ int main(int argc, char **argv) {
fprintf(stderr, "WARNING: This has been compiled in DEBUG mode and uses reduced security.\n"); fprintf(stderr, "WARNING: This has been compiled in DEBUG mode and uses reduced security.\n");
#endif #endif
#if 0
struct options_t options; struct options_t options;
if (!parse_cmdline_arguments(&options, argc, argv)) { if (!parse_cmdline_arguments(&options, argc, argv)) {
print_syntax(argv[0]); print_syntax(argv[0]);
@ -108,6 +104,7 @@ int main(int argc, char **argv) {
if (!success) { if (!success) {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
#endif
return 0; return 0;
} }

2
util.c
View File

@ -176,7 +176,7 @@ bool array_remove(void *base, unsigned int element_size, unsigned int element_co
/* Then, wipe the last element */ /* Then, wipe the last element */
const unsigned int last_element_offset = element_size * (element_count - 1); const unsigned int last_element_offset = element_size * (element_count - 1);
memset(base + last_element_offset, 0, element_size); memset(bytebase + last_element_offset, 0, element_size);
return true; return true;
} }