]> git.saurik.com Git - apple/security.git/blob - securityd/securityd_service/securityd_service/securityd_service_client.h
fff45d0d228b9dc65d1ae4eafe0adc49e61ade39
[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_save(service_context_t *context);
33 int service_client_kb_unlock(service_context_t *context, const void * secret, int secret_len);
34 int service_client_kb_lock(service_context_t *context);
35 int service_client_kb_change_secret(service_context_t *context, const void * secret, int secret_len, const void * new_secret, int new_secret_len);
36 int service_client_kb_is_locked(service_context_t *context, bool *locked, bool *no_pin);
37 int service_client_kb_reset(service_context_t *context, const void * secret, int secret_len);
38
39 int service_client_stash_set_key(service_context_t *context, const void * key, int key_len);
40 int service_client_stash_load_key(service_context_t *context, const void * key, int key_len);
41 int service_client_stash_get_key(service_context_t *context, void ** key, int * key_len);
42
43 #if defined(__cplusplus)
44 }
45 #endif
46
47 #endif // __SECURITYD_SERVICE_CLIENT_H