1/* Copyright (c) 2012 Apple Inc. All Rights Reserved. */
2
3#ifndef _SECURITY_AUTH_SESSION_H_
4#define _SECURITY_AUTH_SESSION_H_
5
6#include "credential.h"
7#include <Security/AuthSession.h>
8#include <bsm/audit_session.h>
9
10#if defined(__cplusplus)
11extern "C" {
12#endif
13
14AUTH_WARN_RESULT AUTH_MALLOC AUTH_NONNULL_ALL AUTH_RETURNS_RETAINED
15session_t session_create(session_id_t);
16
17AUTH_NONNULL_ALL
18bool session_update(session_t);
19
20AUTH_NONNULL_ALL
21uint64_t session_get_attributes(session_t);
22
23AUTH_NONNULL_ALL
24void session_set_attributes(session_t,uint64_t flags);
25
26AUTH_NONNULL_ALL
27void session_clear_attributes(session_t,uint64_t flags);
28
29AUTH_NONNULL_ALL
30const void * session_get_key(session_t);
31
32AUTH_NONNULL_ALL
33session_id_t session_get_id(session_t);
34
35AUTH_NONNULL_ALL
36uid_t session_get_uid(session_t);
37
38AUTH_NONNULL_ALL
39CFIndex session_add_process(session_t, process_t);
40
41AUTH_NONNULL_ALL
42CFIndex session_remove_process(session_t, process_t);
43
44AUTH_NONNULL_ALL
45CFIndex session_get_process_count(session_t);
46
47AUTH_NONNULL_ALL
48void session_set_credential(session_t,credential_t);
49
50AUTH_NONNULL_ALL
51void session_credentials_purge(session_t);
52
53AUTH_NONNULL_ALL
54bool session_credentials_iterate(session_t, credential_iterator_t iter);
55
56#if defined(__cplusplus)
57}
58#endif
59
60#endif /* !_SECURITY_AUTH_SESSION_H_ */
61