aboutsummaryrefslogtreecommitdiff
path: root/src/dvault.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/dvault.h')
-rw-r--r--src/dvault.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/dvault.h b/src/dvault.h
new file mode 100644
index 0000000..71fbc5e
--- /dev/null
+++ b/src/dvault.h
@@ -0,0 +1,47 @@
+#pragma once
+#include <stddef.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+#include "data.h"
+
+
+typedef struct prne_dvault_mask_result prne_dvault_mask_result_t;
+
+typedef enum {
+ PRNE_DATA_TYPE_NONE = -1,
+ PRNE_DATA_TYPE_CSTR,
+ NB_PRNE_DATA_TYPE
+} prne_data_type_t;
+
+typedef enum {
+ PRNE_DVAULT_MASK_OK,
+ PRNE_DVAULT_MASK_MEM_ERR,
+ PRNE_DVAULT_MASK_TOO_LARGE,
+ PRNE_DVAULT_MASK_INVALID_TYPE
+} prne_dvault_mask_result_code_t;
+
+struct prne_dvault_mask_result {
+ size_t str_len;
+ char *str;
+ prne_dvault_mask_result_code_t result;
+};
+
+
+extern const uint8_t PRNE_DVAULT_MASK[256];
+
+const char *prne_data_type2str (const prne_data_type_t t);
+prne_data_type_t prne_str2data_type (const char *str);
+void prne_dvault_invert_mem (const size_t size, uint8_t *m, const uint8_t salt);
+
+void prne_init_dvault_mask_result (prne_dvault_mask_result_t *r);
+void prne_free_dvault_mask_result (prne_dvault_mask_result_t *r);
+prne_dvault_mask_result_t prne_dvault_mask (const prne_data_type_t type, const uint8_t salt, const size_t data_size, const uint8_t *data);
+
+void prne_init_dvault (void);
+void prne_deinit_dvault (void);
+prne_data_type_t prne_dvault_get_entry_data_type (const prne_data_key_t key);
+size_t prne_dvault_get_entry_size (const prne_data_key_t key);
+uint8_t prne_dvault_get_entry_salt (const prne_data_key_t key);
+char *prne_dvault_unmask_entry_cstr (const prne_data_key_t key, size_t *len);
+void prne_dvault_reset_dict (void);