#ifndef _KTRACE_CODES_H_ #define _KTRACE_CODES_H_ #include #include /* we format as follows (not really done this way because bitfields are compiler dependent): struct DebugCode { int DebugClass : 8; int SubClass : 8; int SecurityAppClass : 4; int SecurityCodeClass : 10; int FunctionQualifier : 2; }; */ // Define the following as macros to keep objective c happy. // define app class constants #define APP_DEBUG_CLASS 0x40 // define the sub class for security #define SECURITY_SUB_CLASS 0xAA // define the app classes used by security #define APP_CLASS_SFAUTHORIZATION 0 #define APP_CLASS_SECURITY_AGENT 1 #define APP_CLASS_AUTHORIZATION 2 #define APP_CLASS_SECURITY_SERVER 3 #define APP_CLASS_ADHOC 4 // define function qualifiers #define FUNCTION_START DBG_FUNC_START #define FUNCTION_END DBG_FUNC_END #define FUNCTION_TIMEPOINT DBG_FUNC_NONE // define SFAuthorization code class #define CODE_CLASS_SFAUTHORIZATION_BUTTON_PRESSED 0 #define CODE_CLASS_SFAUTHORIZATION_AUTHORIZATION 1 // define SecurityAgent code class #define CODE_CLASS_SECURITY_AGENT_START 0 #define CODE_CLASS_SECURITY_AGENT_STARTED_BY_SECURITY_SERVER 1 #define CODE_CLASS_SECURITY_AGENT_BEFORE_MECHANISM_INVOKE 2 #define CODE_CLASS_SECURITY_AGENT_CONFIRM_ACCESS 3 // define Authorization code classes #define CODE_CLASS_AUTHORIZATION_CREATE 0 #define CODE_CLASS_AUTHORIZATION_COPY_RIGHTS 1 #define CODE_CLASS_AUTHORIZATION_COPY_INFO 2 // define SecurityServer code classes #define CODE_CLASS_SECURITY_SERVER_INITIALIZE 0 // define adhoc code classes (may change by need) #define CODE_CLASS_ADHOC_FINDGENERICPASSWORD_BEGIN 0 #define CODE_CLASS_ADHOC_UCSP_CLIENT_BEGIN 1 #define CODE_CLASS_ADHOC_UCSP_SERVER_DECRYPT_BEGIN 2 #define CODE_CLASS_ADHOC_UCSP_QUERYKEYCHAINACCESS_BEGIN 3 // define SecurityServer code classes #define TRACECODE(_debugclass, _subclass, _appclass, _codeclass, _functionqualifier) \ ((_debugclass << 24) | (_subclass << 16) | (_appclass << 12) | (_codeclass << 2) | (_functionqualifier)) /* * Trace code allocations. */ enum { kSecTraceSFAuthorizationButtonPressedStart = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_SFAUTHORIZATION, CODE_CLASS_SFAUTHORIZATION_BUTTON_PRESSED, FUNCTION_START), kSecTraceSFAuthorizationAuthorizationStart = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_SFAUTHORIZATION, CODE_CLASS_SFAUTHORIZATION_AUTHORIZATION, FUNCTION_START), kSecTraceSFAuthorizationAuthorizationEnd = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_SFAUTHORIZATION, CODE_CLASS_SFAUTHORIZATION_AUTHORIZATION, FUNCTION_END), kSecTraceSFAuthorizationButtonPressedEnd = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_SFAUTHORIZATION, CODE_CLASS_SFAUTHORIZATION_BUTTON_PRESSED, FUNCTION_END), kSecTraceSecurityAgentStart = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_SECURITY_AGENT, CODE_CLASS_SECURITY_AGENT_START, FUNCTION_TIMEPOINT), kSecTraceSecurityAgentStartedBySecurityServer = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_SECURITY_AGENT, CODE_CLASS_SECURITY_AGENT_STARTED_BY_SECURITY_SERVER, FUNCTION_TIMEPOINT), kSecTraceSecurityAgentBeforeMechanismInvoke = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_SECURITY_AGENT, CODE_CLASS_SECURITY_AGENT_BEFORE_MECHANISM_INVOKE, FUNCTION_TIMEPOINT), kSecTraceSecurityAgentConfimAccess = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_SECURITY_AGENT, CODE_CLASS_SECURITY_AGENT_CONFIRM_ACCESS, FUNCTION_TIMEPOINT), kSecTraceAuthorizationCreateStart = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_AUTHORIZATION, CODE_CLASS_AUTHORIZATION_CREATE, FUNCTION_START), kSecTraceAuthorizationCreateEnd = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_AUTHORIZATION, CODE_CLASS_AUTHORIZATION_CREATE, FUNCTION_END), kSecTraceAuthorizationCopyRightsStart = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_AUTHORIZATION, CODE_CLASS_AUTHORIZATION_COPY_RIGHTS, FUNCTION_START), kSecTraceAuthorizationCopyRightsEnd = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_AUTHORIZATION, CODE_CLASS_AUTHORIZATION_COPY_RIGHTS, FUNCTION_END), kSecTraceAuthorizationCopyInfoStart = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_AUTHORIZATION, CODE_CLASS_AUTHORIZATION_COPY_INFO, FUNCTION_START), kSecTraceAuthorizationCopyInfoEnd = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_AUTHORIZATION, CODE_CLASS_AUTHORIZATION_COPY_INFO, FUNCTION_END), kSecTraceSecurityServerStart = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_SECURITY_SERVER, CODE_CLASS_SECURITY_SERVER_INITIALIZE, FUNCTION_START), kSecTraceSecurityServerInitialized = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_SECURITY_SERVER, CODE_CLASS_SECURITY_SERVER_INITIALIZE, FUNCTION_END), kSecTraceSecurityFrameworkSecKeychainFindGenericPasswordBegin = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_ADHOC, CODE_CLASS_ADHOC_FINDGENERICPASSWORD_BEGIN, FUNCTION_TIMEPOINT), kSecTraceUCSPClientDecryptBegin = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_ADHOC, CODE_CLASS_ADHOC_UCSP_CLIENT_BEGIN, FUNCTION_TIMEPOINT), kSecTraceUCSPServerDecryptBegin = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_ADHOC, CODE_CLASS_ADHOC_UCSP_SERVER_DECRYPT_BEGIN, FUNCTION_TIMEPOINT), kSecTraceSecurityServerQueryKeychainAccess = TRACECODE (APP_DEBUG_CLASS, SECURITY_SUB_CLASS, APP_CLASS_ADHOC, CODE_CLASS_ADHOC_UCSP_QUERYKEYCHAINACCESS_BEGIN, FUNCTION_TIMEPOINT) }; #endif /* _KTRACE_CODES_H_ */