xref: /xnu-10002.81.5/EXTERNAL_HEADERS/CoreEntitlements/EntitlementsPriv.h (revision 5e3eaea39dcf651e66cb99ba7d70e32cc4a99587)
1 //
2 //  EntitlementsPriv.h
3 //  CoreEntitlements
4 //
5 
6 
7 #ifndef CORE_ENTITLEMENTS_ENTS_PRIV_H
8 #define CORE_ENTITLEMENTS_ENTS_PRIV_H
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 #include <CoreEntitlements/Entitlements.h>
15 #include <CoreEntitlements/der_vm.h>
16 
17 #ifndef CORE_ENTITLEMENTS_I_KNOW_WHAT_IM_DOING
18 #error This is a private API, please consult with the Trusted Execution team before using this. Misusing these functions will lead to security issues.
19 #endif
20 
21 __ptrcheck_abi_assume_single();
22 
23 struct CEQueryContext {
24     der_vm_context_t der_context;
25     bool managed;
26 };
27 
28 
29 CEError_t CEAcquireUnmanagedContext(const CERuntime_t rt, CEValidationResult validationResult, struct CEQueryContext* ctx);
30 
31 /*!
32  * @function CEConjureContextFromDER
33  * @brief Conjures up an object from thin air that you can query. Don't use it.
34  * @note It does no validation.
35  */
36 struct CEQueryContext CEConjureContextFromDER(der_vm_context_t der_context);
37 
38 CEQueryOperation_t* CECreateStringOpInplace(CEQueryOperation_t* storage, CEQueryOpOpcode_t op, const char *__counted_by(len) data, size_t len);
39 CEQueryOperation_t* CECreateNumericOpInplace(CEQueryOperation_t* storage, CEQueryOpOpcode_t op, int64_t param);
40 
41 #ifdef __cplusplus
42 }
43 #endif
44 
45 #endif
46