]> git.saurik.com Git - apple/security.git/blob - securityd/securityd_service/securityd_service/securityd_service_client.h
c0d8667dcf3060f215f72732b6ef5b7553614a0c
[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 #include <libaks.h>
14
15 enum {
16 KB_Success = 0,
17 KB_GeneralError,
18 KB_BagNotFound,
19 KB_BagError,
20 KB_BagNotLoaded,
21 KB_BagExists,
22 KB_InvalidSession
23 };
24
25 typedef struct {
26 au_asid_t s_id;
27 uid_t s_uid;
28 audit_token_t procToken;
29 } service_context_t;
30
31 int service_client_kb_create(service_context_t *context, const void * secret, int secret_len);
32 int service_client_kb_load(service_context_t *context);
33 int service_client_kb_load_uid(uid_t uid);
34 int service_client_kb_unload(service_context_t *context);
35 int service_client_kb_save(service_context_t *context);
36 int service_client_kb_unlock(service_context_t *context, const void * secret, int secret_len);
37 int service_client_kb_lock(service_context_t *context);
38 int service_client_kb_change_secret(service_context_t *context, const void * secret, int secret_len, const void * new_secret, int new_secret_len);
39 int service_client_kb_is_locked(service_context_t *context, bool *locked, bool *no_pin);
40 int service_client_kb_reset(service_context_t *context, const void * secret, int secret_len);
41 int service_client_kb_wrap_key(service_context_t *context, const void *key, int key_size, keyclass_t key_class, void **wrapped_key, int *wrapped_key_size, keyclass_t *wrapped_key_class);
42 int service_client_kb_unwrap_key(service_context_t *context, const void *wrapped_key, int wrapped_key_size, keyclass_t wrapped_key_class, void **key, int *key_size);
43
44 int service_client_stash_set_key(service_context_t *context, const void * key, int key_len);
45 int service_client_stash_load_key(service_context_t *context, const void * key, int key_len);
46 int service_client_stash_get_key(service_context_t *context, void ** key, int * key_len);
47
48 #if defined(__cplusplus)
49 }
50 #endif
51
52 #endif // __SECURITYD_SERVICE_CLIENT_H