]> git.saurik.com Git - apple/security.git/blob - securityd/securityd_service/securityd_service/securityd_service_client.h
393f6a4d649d7ba2a961a5368729e580c52a4c75
[apple/security.git] / securityd / securityd_service / securityd_service / securityd_service_client.h
1 /* Copyright (c) 2013-2014 Apple Inc. All Rights Reserved. */
2
3 #ifndef __SECURITYD_SERVICE_CLIENT_H
4 #define __SECURITYD_SERVICE_CLIENT_H
5
6 #if defined(__cplusplus)
7 extern "C" {
8 #endif
9
10 #include <bsm/audit.h>
11 #include <mach/message.h>
12 #include <stdbool.h>
13
14 enum {
15 KB_Success = 0,
16 KB_GeneralError,
17 KB_BagNotFound,
18 KB_BagError,
19 KB_BagNotLoaded,
20 KB_BagExists,
21 KB_InvalidSession
22 };
23
24 typedef struct {
25 au_asid_t s_id;
26 uid_t s_uid;
27 audit_token_t procToken;
28 } service_context_t;
29
30 int service_client_kb_create(service_context_t *context, const void * secret, int secret_len);
31 int service_client_kb_load(service_context_t *context);
32 int service_client_kb_unload(service_context_t *context);
33 int service_client_kb_save(service_context_t *context);
34 int service_client_kb_unlock(service_context_t *context, const void * secret, int secret_len);
35 int service_client_kb_lock(service_context_t *context);
36 int service_client_kb_change_secret(service_context_t *context, const void * secret, int secret_len, const void * new_secret, int new_secret_len);
37 int service_client_kb_is_locked(service_context_t *context, bool *locked, bool *no_pin);
38 int service_client_kb_reset(service_context_t *context, const void * secret, int secret_len);
39
40 int service_client_stash_set_key(service_context_t *context, const void * key, int key_len);
41 int service_client_stash_load_key(service_context_t *context, const void * key, int key_len);
42 int service_client_stash_get_key(service_context_t *context, void ** key, int * key_len);
43
44 #if defined(__cplusplus)
45 }
46 #endif
47
48 #endif // __SECURITYD_SERVICE_CLIENT_H