|
@@ -0,0 +1,60 @@
|
|
|
+
|
|
|
+ *
|
|
|
+ * This file contains functions for manipulating tagged flows.
|
|
|
+ *
|
|
|
+ * Slitheen - a decoy routing system for censorship resistance
|
|
|
+ * Copyright (C) 2017 Cecylia Bocovich (cbocovic@uwaterloo.ca)
|
|
|
+ *
|
|
|
+ * This program is free software: you can redistribute it and/or modify
|
|
|
+ * it under the terms of the GNU General Public License as published by
|
|
|
+ * the Free Software Foundation, version 3.
|
|
|
+ *
|
|
|
+ * This program is distributed in the hope that it will be useful,
|
|
|
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
+ * GNU General Public License for more details.
|
|
|
+ *
|
|
|
+ * You should have received a copy of the GNU General Public License
|
|
|
+ * along with this program. If not, see <http:
|
|
|
+ *
|
|
|
+ * Additional permission under GNU GPL version 3 section 7
|
|
|
+ *
|
|
|
+ * If you modify this Program, or any covered work, by linking or combining
|
|
|
+ * it with the OpenSSL library (or a modified version of that library),
|
|
|
+ * containing parts covered by the terms of the OpenSSL Licence and the
|
|
|
+ * SSLeay license, the licensors of this Program grant you additional
|
|
|
+ * permission to convey the resulting work. Corresponding Source for a
|
|
|
+ * non-source form of such a combination shall include the source code
|
|
|
+ * for the parts of the OpenSSL library used as well as that of the covered
|
|
|
+ * work.
|
|
|
+ */
|
|
|
+
|
|
|
+#include <stdio.h>
|
|
|
+#include <stdlib.h>
|
|
|
+#include <stdint.h>
|
|
|
+#include <check.h>
|
|
|
+
|
|
|
+#include "../util.h"
|
|
|
+
|
|
|
+int32_t read_file(const char *path, uint8_t **target){
|
|
|
+
|
|
|
+ FILE *fp;
|
|
|
+ int32_t fsize;
|
|
|
+
|
|
|
+ fp = fopen(path, "rb");
|
|
|
+ if (fp == NULL) {
|
|
|
+ perror("fopen");
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ fseek(fp, 0, SEEK_END);
|
|
|
+ fsize = ftell(fp);
|
|
|
+ fseek(fp, 0, SEEK_SET);
|
|
|
+ *target = smalloc(fsize);
|
|
|
+
|
|
|
+ int32_t result = fread(*target, fsize, 1, fp);
|
|
|
+
|
|
|
+ fclose(fp);
|
|
|
+
|
|
|
+ return result;
|
|
|
+}
|