aboutsummaryrefslogtreecommitdiff
path: root/src/dvault.h
blob: 3ae29e6ba266786ed5defc7330c3c74ae1d16a38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#pragma once
#include "util_ct.h"
#include "data.h"

#include <stddef.h>
#include <stdbool.h>
#include <stdint.h>


typedef struct prne_dvault_mask_result prne_dvault_mask_result_t;

typedef enum {
    PRNE_DATA_TYPE_NONE = -1,

    PRNE_DATA_TYPE_CSTR,
    PRNE_DATA_TYPE_BIN,
    
    NB_PRNE_DATA_TYPE
} prne_data_type_t;
PRNE_LIMIT_ENUM(prne_data_type_t, NB_PRNE_DATA_TYPE, 0xFF);

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_type_tostr (const prne_data_type_t t);
prne_data_type_t prne_data_type_fstr (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_unmask_entry_bin (const prne_data_key_t key, const uint8_t **data, size_t *len);
void prne_dvault_reset_dict (void);