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