X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/72a12576750f52947eb043106ba5c12c0d07decf..b1ab9ed8d0e0f1c3b66d7daa8fd5564444c56195:/libsecurity_utilities/lib/ktracecodes.h diff --git a/libsecurity_utilities/lib/ktracecodes.h b/libsecurity_utilities/lib/ktracecodes.h new file mode 100644 index 00000000..e967dbaf --- /dev/null +++ b/libsecurity_utilities/lib/ktracecodes.h @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2003-2004 Apple Computer, Inc. All Rights Reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + + +#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_ */