-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrevault_api.h
More file actions
228 lines (226 loc) · 18.2 KB
/
Copy pathrevault_api.h
File metadata and controls
228 lines (226 loc) · 18.2 KB
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
#ifndef REVAULT_API_H
#define REVAULT_API_H
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct { uint8_t *ptr; size_t len; } RevaultBuffer;
/* Structured buffers use the versioned LBWF frame and Protobuf schemas in
* bindings/proto. Raw file/key buffers remain unframed bytes. */
uint32_t api_abi_version(void);
const char *buffer_last_error(void);
RevaultBuffer buffer_last_error_details(void);
void buffer_free(RevaultBuffer value);
uint16_t lockbox_format_version(void);
uint16_t lockbox_probe_format_version(const uint8_t *bytes, size_t len);
void *lockbox_create(const uint8_t *key, size_t key_len);
void *lockbox_create_with_options(const uint8_t *key, size_t key_len, const char *cache_mode, size_t cache_len, uint64_t cache_bytes, const char *workload, size_t workload_len, const char *worker, size_t worker_len, size_t jobs);
void *lockbox_create_password(const uint8_t *password, size_t len);
void *lockbox_create_contact(const void *contact);
void *lockbox_create_with_signing_key(const uint8_t *content_key, size_t key_len, const void *signing_key);
void *lockbox_open(const uint8_t *archive, size_t archive_len, const uint8_t *key, size_t key_len);
void *lockbox_open_with_options(const uint8_t *archive, size_t archive_len, const uint8_t *key, size_t key_len, const char *cache_mode, size_t cache_len, uint64_t cache_bytes, const char *workload, size_t workload_len, const char *worker, size_t worker_len, size_t jobs);
void *lockbox_open_password(const uint8_t *archive, size_t archive_len, const uint8_t *password, size_t password_len);
void *lockbox_open_contact(const uint8_t *archive, size_t archive_len, const void *contact);
bool lockbox_add_file(void *handle, const char *path, size_t path_len, const uint8_t *data, size_t data_len, bool replace);
bool lockbox_add_file_with_permissions(void *handle, const char *path, size_t path_len, const uint8_t *data, size_t data_len, uint32_t permissions, bool replace);
RevaultBuffer lockbox_get_file(const void *handle, const char *path, size_t path_len);
bool lockbox_extract_file(const void *handle, const char *source, size_t source_len, const char *destination, size_t destination_len, bool replace);
bool lockbox_extract_directory(const void *handle, const char *destination, size_t destination_len, uint64_t max_file_bytes, uint64_t max_total_bytes, size_t max_files, bool restore_symlinks, bool restore_permissions, bool overwrite);
RevaultBuffer lockbox_stream_content(const void *handle, bool physical);
RevaultBuffer lockbox_cache_stats(const void *handle);
RevaultBuffer lockbox_import_stats(const void *handle);
bool lockbox_reset_import_stats(const void *handle);
RevaultBuffer lockbox_inspect_file(const char *path, size_t path_len);
RevaultBuffer lockbox_page_inspection(const void *handle);
RevaultBuffer lockbox_recovery_report(const void *handle);
RevaultBuffer lockbox_recovery_report_render(const void *handle, bool verbose, size_t max_entries);
RevaultBuffer lockbox_recovery_scan_path(const char *path, size_t path_len, const uint8_t *key, size_t key_len);
uint64_t lockbox_storage_len(const void *handle);
bool lockbox_set_workload_profile(void *handle, const char *profile, size_t profile_len);
bool lockbox_set_worker_policy(void *handle, const char *mode, size_t mode_len, size_t jobs);
RevaultBuffer lockbox_runtime_options(const void *handle);
bool lockbox_commit(void *handle);
bool lockbox_create_dir(void *handle, const char *path, size_t path_len, bool create_parents);
bool lockbox_delete(void *handle, const char *path, size_t path_len);
bool lockbox_remove_dir(void *handle, const char *path, size_t path_len, bool recursive);
bool lockbox_create_parent_dirs(void *handle, const char *path, size_t path_len);
bool lockbox_rename(void *handle, const char *from, size_t from_len, const char *to, size_t to_len);
RevaultBuffer lockbox_list(const void *handle, const char *path, size_t path_len, bool recursive);
RevaultBuffer lockbox_list_with_options(const void *handle, const char *path, size_t path_len, const char *glob, size_t glob_len, bool recursive, bool include_files, bool include_symlinks, bool include_directories, size_t limit);
RevaultBuffer lockbox_stat(const void *handle, const char *path, size_t path_len);
bool lockbox_set_variable(void *handle, const char *name, size_t name_len, const char *value, size_t value_len, bool secret);
RevaultBuffer lockbox_get_variable(const void *handle, const char *name, size_t name_len);
bool lockbox_delete_variable(void *handle, const char *name, size_t name_len);
bool lockbox_move_variables(void *handle, const uint8_t *moves_proto, size_t moves_len);
RevaultBuffer lockbox_list_variables(const void *handle);
RevaultBuffer lockbox_variable_sensitivity(const void *handle, const char *name, size_t name_len);
bool lockbox_add_symlink(void *handle, const char *path, size_t path_len, const char *target, size_t target_len, bool replace);
RevaultBuffer lockbox_get_symlink_target(const void *handle, const char *path, size_t path_len);
RevaultBuffer lockbox_id(const void *handle);
bool lockbox_exists(const void *handle, const char *path, size_t path_len);
bool lockbox_is_dir(const void *handle, const char *path, size_t path_len);
uint32_t lockbox_permissions(const void *handle, const char *path, size_t path_len);
bool lockbox_set_permissions(void *handle, const char *path, size_t path_len, uint32_t permissions);
RevaultBuffer lockbox_read_range(const void *handle, const char *path, size_t path_len, uint64_t offset, uint64_t len);
RevaultBuffer lockbox_recovery_scan(const uint8_t *bytes, size_t len, const uint8_t *key, size_t key_len);
void *lockbox_recovery_salvage(const uint8_t *bytes, size_t len, const uint8_t *key, size_t key_len, const void *signing_key);
uint64_t lockbox_add_password(void *handle, const uint8_t *password, size_t len);
uint64_t lockbox_add_contact(void *handle, const void *contact, const char *name, size_t name_len);
bool lockbox_delete_key(void *handle, uint64_t id);
RevaultBuffer lockbox_list_key_slots(const void *handle);
bool lockbox_set_owner_signing_key(void *handle, const void *key);
RevaultBuffer lockbox_owner_inspection(const void *handle);
RevaultBuffer lockbox_define_form(void *handle, const char *alias, size_t alias_len, const char *name, size_t name_len, const char *description, size_t description_len, const uint8_t *fields_proto, size_t fields_len);
RevaultBuffer lockbox_list_form_definitions(const void *handle);
RevaultBuffer lockbox_resolve_form(const void *handle, const char *reference, size_t reference_len);
RevaultBuffer lockbox_list_form_revisions(const void *handle, const char *type_id, size_t type_id_len);
RevaultBuffer lockbox_create_form_record(void *handle, const char *path, size_t path_len, const char *type_reference, size_t type_len, const char *name, size_t name_len);
bool lockbox_set_form_field(void *handle, const char *path, size_t path_len, const char *field, size_t field_len, const char *value, size_t value_len, bool secret);
RevaultBuffer lockbox_list_form_records(const void *handle);
RevaultBuffer lockbox_get_form_record(const void *handle, const char *path, size_t path_len);
bool lockbox_delete_form_record(void *handle, const char *path, size_t path_len);
bool lockbox_move_form_records(void *handle, const uint8_t *moves_proto, size_t moves_len);
RevaultBuffer lockbox_get_form_field(const void *handle, const char *path, size_t path_len, const char *field, size_t field_len);
RevaultBuffer lockbox_to_bytes(const void *handle);
void lockbox_free(void *handle);
bool vault_is_running(void);
bool vault_forget_all(void);
void *key_contact_generate(void);
void *key_contact_from_private(const uint8_t *bytes, size_t len);
RevaultBuffer key_contact_public(const void *handle);
RevaultBuffer key_contact_private(const void *handle);
void *key_contact_public_from_bytes(const uint8_t *bytes, size_t len);
void key_contact_public_free(void *handle);
void key_contact_free(void *handle);
void *key_contact_encrypt(const void *contact, const uint8_t *content_key, size_t key_len);
RevaultBuffer key_contact_decrypt(const void *contact, const void *wrapped);
RevaultBuffer key_contact_wrapped_public(const void *wrapped);
RevaultBuffer key_contact_wrapped_ciphertext(const void *wrapped);
RevaultBuffer key_contact_wrapped_encrypted(const void *wrapped);
void key_contact_wrapped_free(void *handle);
void *key_signing_generate(void);
void *key_signing_from_private(const uint8_t *bytes, size_t len);
RevaultBuffer key_signing_public(const void *handle);
RevaultBuffer key_signing_private(const void *handle);
void *key_signing_public_from_bytes(const uint8_t *bytes, size_t len);
void key_signing_public_free(void *handle);
void key_signing_free(void *handle);
RevaultBuffer vault_key_export_private(const void *key, const char *format, size_t format_len);
RevaultBuffer vault_key_export_public(const void *key, const char *format, size_t format_len);
void *vault_key_import_private(const uint8_t *bytes, size_t len);
void *vault_key_import_public(const uint8_t *bytes, size_t len);
RevaultBuffer vault_key_fingerprint(const void *key);
RevaultBuffer vault_key_format_hex(const uint8_t *bytes, size_t len);
RevaultBuffer vault_key_decode_hex(const char *text, size_t len);
RevaultBuffer vault_key_format_crockford(const uint8_t *bytes, size_t len);
RevaultBuffer vault_key_format_crockford_reading(const char *code, size_t len);
RevaultBuffer vault_key_decode_crockford(const char *code, size_t len);
RevaultBuffer vault_key_hex_encode(const uint8_t *bytes, size_t len);
RevaultBuffer vault_key_hex_decode(const char *text, size_t len);
void *vault_directory_open(const char *root, size_t root_len, const uint8_t *password, size_t password_len);
uint32_t vault_structure_version_current(void);
uint32_t vault_directory_probe_structure_version(const char *root, size_t root_len, const uint8_t *password, size_t password_len);
void *vault_directory_open_or_create_default(const uint8_t *password, size_t password_len);
void *vault_directory_replace_default(const uint8_t *password, size_t password_len);
bool vault_directory_change_password(const char *root, size_t root_len, const uint8_t *old_password, size_t old_len, const uint8_t *new_password, size_t new_len);
bool vault_directory_change_default_password(const uint8_t *old_password, size_t old_len, const uint8_t *new_password, size_t new_len);
void *vault_directory_replace(const char *root, size_t root_len, const uint8_t *password, size_t password_len);
void *vault_directory_open_or_create(const char *root, size_t root_len, const uint8_t *password, size_t password_len);
RevaultBuffer vault_directory_root(const void *handle);
uint32_t vault_directory_structure_version(const void *handle);
RevaultBuffer vault_directory_list_private_keys(const void *handle);
RevaultBuffer vault_directory_list_private_key_names(const void *handle);
RevaultBuffer vault_directory_list_contact_names(const void *handle);
RevaultBuffer vault_directory_list_form_aliases(const void *handle);
bool vault_directory_private_key_exists(const void *handle, const char *name, size_t name_len);
bool vault_directory_delete_private_key(const void *handle, const char *name, size_t name_len);
bool vault_directory_store_private_key(const void *handle, const char *name, size_t name_len, const void *key);
void *vault_directory_load_private_key(const void *handle, const char *name, size_t name_len);
void *vault_directory_load_private_key_generation(const void *handle, const char *name, size_t name_len, uint16_t index);
bool vault_directory_store_contact(const void *handle, const char *name, size_t name_len, const void *key);
void *vault_directory_load_contact(const void *handle, const char *name, size_t name_len);
bool vault_directory_contact_exists(const void *handle, const char *name, size_t name_len);
bool vault_directory_delete_contact(const void *handle, const char *name, size_t name_len);
RevaultBuffer vault_directory_list_contacts(const void *handle);
bool vault_directory_store_profile_email(const void *handle, const char *name, size_t name_len, const char *email, size_t email_len);
RevaultBuffer vault_directory_profile_email(const void *handle, const char *name, size_t name_len);
bool vault_directory_store_backup(const void *handle, const uint8_t *id, size_t id_len, const uint8_t *bytes, size_t len);
RevaultBuffer vault_directory_load_backup(const void *handle, const uint8_t *id, size_t id_len);
uint64_t vault_directory_backup_count(const void *handle);
bool vault_directory_restore_private_key(const void *handle, const char *name, size_t name_len, const void *key, const void *signing_key, bool overwrite);
void *vault_directory_load_owner_signing_key(const void *handle, const char *name, size_t name_len);
void *vault_directory_load_owner_signing_key_generation(const void *handle, const char *name, size_t name_len, uint16_t index);
bool vault_directory_store_contact_signing_key(const void *handle, const char *name, size_t name_len, const void *key);
void *vault_directory_load_contact_signing_key(const void *handle, const char *name, size_t name_len);
RevaultBuffer vault_directory_list_profile_generations(const void *handle, const char *name, size_t name_len);
RevaultBuffer vault_directory_rotate_private_key(const void *handle, const char *name, size_t name_len);
bool vault_directory_remember_lockbox(const void *handle, const uint8_t *id, size_t id_len, const char *path, size_t path_len);
RevaultBuffer vault_directory_list_known_lockboxes(const void *handle);
bool vault_directory_forget_lockbox(const void *handle, const char *path, size_t path_len);
bool vault_directory_remember_access_slot_label(const void *handle, const uint8_t *id, size_t id_len, uint64_t slot_id, const char *name, size_t name_len);
RevaultBuffer vault_directory_list_access_slot_labels(const void *handle, const uint8_t *id, size_t id_len);
RevaultBuffer vault_directory_find_access_slot_labels(const void *handle, const uint8_t *id, size_t id_len, const char *name, size_t name_len);
bool vault_directory_forget_access_slot_label(const void *handle, const uint8_t *id, size_t id_len, uint64_t slot_id);
RevaultBuffer vault_directory_define_form(const void *handle, const char *alias, size_t alias_len, const char *name, size_t name_len, const char *description, size_t description_len, const uint8_t *fields_proto, size_t fields_len);
RevaultBuffer vault_directory_resolve_form(const void *handle, const char *reference, size_t reference_len);
RevaultBuffer vault_directory_list_forms(const void *handle);
RevaultBuffer vault_directory_list_form_revisions(const void *handle, const char *type_id, size_t type_id_len);
size_t vault_directory_seed_forms(const void *handle);
bool vault_directory_remember_password(const void *handle, const uint8_t *id, size_t id_len, const uint8_t *password, size_t password_len);
RevaultBuffer vault_directory_remembered_password(const void *handle, const uint8_t *id, size_t id_len);
RevaultBuffer vault_backup_default(const char *path, size_t path_len, bool overwrite);
RevaultBuffer vault_restore_default(const char *path, size_t path_len, bool overwrite);
void vault_directory_free(void *handle);
void *vault_read_only_open(const char *root, size_t root_len, const uint8_t *password, size_t password_len);
void *vault_read_only_open_default(const uint8_t *password, size_t password_len);
RevaultBuffer vault_read_only_list_profile_names(const void *handle);
RevaultBuffer vault_read_only_list_contact_names(const void *handle);
RevaultBuffer vault_read_only_list_form_aliases(const void *handle);
RevaultBuffer vault_read_only_list_known_lockboxes(const void *handle);
void vault_read_only_free(void *handle);
bool vault_agent_serve(void);
bool vault_agent_verify_transport(void);
RevaultBuffer vault_agent_get(const uint8_t *id, size_t id_len);
bool vault_agent_put(const uint8_t *id, size_t id_len, const uint8_t *key, size_t key_len);
bool vault_agent_forget(const uint8_t *id, size_t id_len);
bool vault_agent_stop(void);
bool vault_agent_start(void);
RevaultBuffer vault_agent_list(void);
RevaultBuffer vault_agent_sleep_support(void);
RevaultBuffer vault_platform_status(void);
bool vault_platform_set_scope(const char *scope, size_t len);
bool vault_platform_forget_password(void);
bool vault_platform_put_password(const uint8_t *password, size_t len);
bool vault_platform_enable(void);
bool vault_platform_disable(void);
bool vault_platform_disabled(void);
RevaultBuffer vault_platform_get_password(void);
RevaultBuffer vault_default_directory(void);
RevaultBuffer vault_default_path(void);
RevaultBuffer vault_agent_log_path(void);
RevaultBuffer vault_agent_log_destination(void);
RevaultBuffer vault_agent_get_vault_unlock_key(const char *vault_id, size_t vault_id_len);
bool vault_agent_put_vault_unlock_key(const char *vault_id, size_t vault_id_len, const uint8_t *key, size_t key_len, uint64_t ttl_seconds);
bool vault_agent_forget_vault_unlock_key(const char *vault_id, size_t vault_id_len);
void *vault_agent_get_owner_signing_key(const char *vault_id, size_t vault_len, const char *profile, size_t profile_len);
bool vault_agent_put_owner_signing_key(const char *vault_id, size_t vault_len, const char *profile, size_t profile_len, const void *key, uint64_t ttl_seconds);
bool vault_agent_forget_owner_signing_key(const char *vault_id, size_t vault_len, const char *profile, size_t profile_len);
void *vault_agent_begin_activity(const char *kind, size_t len);
void vault_agent_end_activity(void *handle);
void *vault_local(void);
void *vault_create_lockbox_password(const void *vault, const char *path, size_t path_len, const uint8_t *password, size_t password_len);
void *vault_open_lockbox_password(const void *vault, const char *path, size_t path_len, const uint8_t *password, size_t password_len);
void *vault_create_lockbox_content_key(const void *vault, const char *path, size_t path_len, const uint8_t *content_key, size_t key_len, const void *signing_key);
void *vault_create_lockbox_contact(const void *vault, const char *path, size_t path_len, const void *contact, const char *name, size_t name_len, const void *signing_key);
void *vault_open_lockbox_content_key(const void *vault, const char *path, size_t path_len, const uint8_t *content_key, size_t key_len, const void *signing_key);
bool vault_cache_lockbox_password(const void *vault, const char *path, size_t path_len, const uint8_t *password, size_t password_len, uint64_t ttl_seconds);
bool vault_close_lockbox(const void *vault, const char *path, size_t path_len);
bool vault_close_all(const void *vault);
void vault_free(void *vault);
#ifdef __cplusplus
}
#endif
#endif