diff options
Diffstat (limited to 'src/windows/identity/doc')
25 files changed, 0 insertions, 3646 deletions
diff --git a/src/windows/identity/doc/Makefile b/src/windows/identity/doc/Makefile deleted file mode 100644 index db40d0f65..000000000 --- a/src/windows/identity/doc/Makefile +++ /dev/null @@ -1,71 +0,0 @@ -# -# Copyright (c) 2004 Massachusetts Institute of Technology -# Copyright (c) 2007 Secure Endpoints Inc. -# -# Permission is hereby granted, free of charge, to any person -# obtaining a copy of this software and associated documentation files -# (the "Software"), to deal in the Software without restriction, -# including without limitation the rights to use, copy, modify, merge, -# publish, distribute, sublicense, and/or sell copies of the Software, -# and to permit persons to whom the Software is furnished to do so, -# subject to the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - - -MODULE=doc -!include <../config/Makefile.w32> - -all: mkdirs docs - -docs: - $(DOXYGEN) << -@INCLUDE = doxyfile.cfg - -PROJECT_NUMBER = "$(KHIMAIRA_VERSION)" - -OUTPUT_DIRECTORY = "$(DOCDIR)" - -STRIP_FROM_PATH = "$(SRC)" - -INTERNAL_DOCS = NO - -WARN_LOGFILE = "$(OBJ)\doxywarnings.txt" - -INPUT = "$(SRC)\include" -INPUT += "$(SRC)\kconfig" -INPUT += "$(SRC)\kcreddb" -INPUT += "$(SRC)\kmq" -INPUT += "$(SRC)\ui" -INPUT += "$(SRC)\uilib" -INPUT += "$(SRC)\util" -INPUT += "$(SRC)\doc" -INPUT += "$(SRC)\kmm" -INPUT += "$(SRC)\kherr" -!ifdef BUILD_AFS -INPUT += "$(SRC)\plugins\afs" - -ALIASES = "apiversion=$(NETIDMGR_VERSION_API)" -!endif - -IMAGE_PATH = "$(SRC)\doc\images" - -INCLUDE_PATH = "$(INCDIR)" "$(SRC)\include" - -CHM_FILE = "$(DOCDIR)\netiddev.chm" -<< - -$(HHC) $(DOCDIR)\html\index.hhp - -clean:: - if exist "$(DOCDIR)/html" $(RMDIR) /s /q "$(DOCDIR)\html" - if exist "$(DOCDIR)" $(RM) "$(DOCDIR)\*.*" diff --git a/src/windows/identity/doc/cred_aquisition.h b/src/windows/identity/doc/cred_aquisition.h deleted file mode 100644 index 0161f74f1..000000000 --- a/src/windows/identity/doc/cred_aquisition.h +++ /dev/null @@ -1,325 +0,0 @@ -/* - * Copyright (c) 2005 Massachusetts Institute of Technology - * Copyright (c) 2007 Secure Endpoints Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* $Id$ */ - -/*! \page cred_acq Managed credential acquisition - - Credential providers and identity providers must participate in - managed credential acquisition in order to respond to the user's - requests to obtain new credentials for an identity or to renew - credentials for an existing identity. - - There are two major processes that result in managed credential - acuqisition. One is the acquisition of credentials, while the - other is credential renewal. During a renewal, existing - credentials are used to obtain new credentials which expire later - than the existing credential. Typically, the identity provider - performs the task of obtaining renewed initial credentials while - the other credential providers obtain new credentials based on - these initial credentials. - - \section cred_acq_new New Credentials - - When a user initiates the process of initial credential - acquisition, Network Identity Manager broadcasts a - <::KMSG_CRED,::KMSG_CRED_NEW_CREDS> message. Credential providers - which need to participate in the credential acquisition should - respond to this message as detailed in \ref cred_acq_handle. - - \section cred_acq_renew Renew Credentials - - Network Identity Manager broadcasts a - <::KMSG_CRED,::KMSG_CRED_RENEW_CREDS> message to initiate the - process of renewing credentials. This may be triggered - automatically or by a user action. Credential providers which - need to participate in the renewal should respond to this message - as detailed in \ref cred_acq_handle. - - The following pages provide detailed information: - - - \subpage cred_acq_new_resp - - \subpage cred_acq_dlgproc - */ - -/*! \page cred_acq_new_resp Handling new credentials acquisition - - The process of acquiring credentials happens as follows: - - - Network Identity Manager creates a ::khui_new_creds object and a - credentials acquisition window. - - - <::KMSG_CRED,::KMSG_CRED_RENEW_CREDS> or - <::KMSG_CRED,::KMSG_CRED_NEW_CREDS> is sent to all the - credentials providers. - - - The credential providers create the panels (where appropriate) - for customizing their respective credential types. The type, - panel and any dependency information is populated into a - ::khui_new_creds_by_type structure and added to the - ::khui_new_creds structure. (See khui_cw_add_type()). - - - <::KMSG_CRED, ::KMSG_CRED_DIALOG_PRESTART> is sent to all the - credentials providers. - - - <::KMSG_CRED, ::KMSG_CRED_DIALOG_START> is sent to all the - credentials providers. - - - The dialog for obtaining credentials is displayed. - Notifications between the main dialog and the individual panels - are done through ::KHUI_WM_NC_NOTIFY messages to the dialog - procedures. - - - Once the dialog processing is done, a ::WMNC_DIALOG_PREPROCESS - message is sent to the dialog procedure. - - - Network Identity Manager posts - <::KMSG_CRED,::KMSG_CRED_DIALOG_PROCESS> message to all the - credentials providers. Each provider should check if the user - cancelled the dialog or indicated that the new credentials - should be obtained and act accordingly. The \c result field of - the ::khui_new_creds structure will be set to either - ::KHUI_NC_RESULT_PROCESS or ::KHUI_NC_RESULT_CANCEL to indicate - whether the user wishes to acquire credentials or cancel the - operation. - - - Once all the plug-ins have processed the <::KMSG_CRED, - ::KMSG_CRED_DIALOG_PROCESS> message, the application checks - whether the new credentials dialog should continue processing, - or whether the dialog should be closed. If the dialog should - continue processing, then the dialog returns to the state it was - in prior to the ::WMNC_DIALOG_PREPROCESS message was sent. If - the dialog should be closed, then a <::KMSG_CRED, - ::KMSG_CRED_END> message is sent. - - - A <::KMSG_CRED, ::KMSG_CRED_END> message signals the end of the - credentials acquisition process. Each credentials provider is - responsible for removing the ::khui_new_creds_by_type structre - from the ::khui_new_creds structure and freeing up any resources - it allocated earlier in preparation for obtaining new - credentials. - - \section cred_acq_handle Responding to credential acquisition messages - - \subsection cred_acq_handle_init <::KMSG_CRED,::KMSG_CRED_NEW_CREDS> and <::KMSG_CRED,::KMSG_CRED_RENEW_CREDS> Messages - - The credential acquisition messages are - <::KMSG_CRED,::KMSG_CRED_NEW_CREDS> and <::KMSG_CRED, - ::KMSG_CRED_RENEW_CREDS>. They are structured as follows: - - - \b type : ::KMSG_CRED - - \b subtype: ::KMSG_CRED_NEW_CREDS or ::KMSG_CRED_RENEW_CREDS - - \b uparam : 0 (unused) - - \b vparam : a pointer to a ::khui_new_creds structure. - - The \a vparam parameter of the message, as shown above, is a - pointer to a ::khui_new_creds structure. You can use the \a - subtype field of this structure to determine whether this is a new - credentials acquisition or a renewal. - - In response to this message, a credentials provider is expected to - provide a configuration panel which the user can use to customize - how the credentials of this type are to be obtained. The panel is - described by the ::khui_new_creds_by_type structure. - - \subsubsection cred_acq_panel_spec Specifying the credentials type panel - - The credentials type panel is used by the user to customize how - credentials of the specified type are to be obtained. The - ::khui_new_creds_by_type structure that describes the panel can be - used to specify a number of parameters that guide how the panel is - to be displayed in the new credentials acquisition dialog. - - The \a name field defines a localized string that will be - displayed in the tab control that houses the panel. If it is \a - NULL, then the name of the credentials type is used. Optionally, - an icon can be specified in the \a icon field which will appear - alongside the name. A tooltip may be provided in the \a tooltip - field which will be displayed when the user hovers the mouse over - the tab. - - In order to assert that the tab appears at a specific position in - the list of tabs, you can specify a positive number in the \a - ordinal field. Zero does not count as a valid ordinal. The - panels with positive ordinals are arranged first in increasing - order of ordinal (conflicts are resolved by sorting along the \a - name). Then the panels without a positive ordianl are arranged - behind these in increasing order of \a name. - - Currently, the credentials provider must specify a dialog template - that will be used to create the embedded dialog for configuring - new credentials for the type. This is done by setting the - khui_new_creds_by_type::h_module, khui_new_creds_by_type::dlg_proc - and khui_new_creds_by_type::dlg_template fields. - - Following is example code which suggests how this could be done: - - \code - // Message handling code for KMSG_CRED_NEW_CREDS or - // KMSG_CRED_INIT_CREDS - ... - khui_new_creds * c; - khui_new_creds_by_type * t; - - c = (khui_new_creds *) vparam; - t = PMALLOC(sizeof(*t)); - ZeroMemory(t, sizeof(*t)); - - t->type = my_cred_type; - - // set look and feel params - t->ordinal = 3; // third in line - t->name = L"My panel name"; - t->icon = LoadIcon(my_hInstance, MAKEINTRESOURCE(IDI_PANEL_ICON)); - t->tooltip = L"Configure credentials of my type"; - - // specify the dialog template to use - t->h_module = my_hInstance; - t->dlg_proc = my_dialog_procedure; - t->dlg_template = MAKEINTRESOURCE(IDD_NEW_CREDS); - - if(KHM_FAILED(khui_cw_add_type(c,t))) { - // handle error - } - \endcode - - It is important to note that the ::khui_new_creds_by_type pointer - that is passed into khui_cw_add_type() points to an allocated - block of memory which should remain in memory until - <::KMSG_CRED,::KMSG_CRED_END> message is received. - - For information on how the dialog procedure should be written, see - \ref cred_acq_dlgproc . - -*/ - -/*! \page cred_acq_dlgproc Writing the dialog procedure for a cred type panel - - Once each credentials provider has had a chance to add a - credentials type panel for the new credentials dialog, the - application will attempt to create all the dialog panels. It will - use the dialog template and the dialog procedure specified in the - \c dlg_proc and \c dlg_template members of the - ::khui_new_creds_by_type structure. - - The credentials type panel will be an ordinary dialog that is - created as a child of the new credentials window. Therefore, the - dialog template should have the WS_CHILD style and the - WS_EX_CONTROLPARENT extended style set so that the main dialog - procedure can correctly navigate the child dialog. - - \section cred_acq_dlgmsg Handling Messages - - \subsection cred_acq_dlg_WM_INITDIALOG WM_INITDIALOG - - When the application creates a credentials type panel dialog, it - passes a pointer to the ::khui_new_creds structure as the \c - LPARAM parameter. This can be used to query for the credentials - type panel for the plug-in, as follows: - - \code - - // Handler for WM_INITDIALOG: - // HWND hwnd, WPARAM wParam and LPARAM lParam - - khui_new_creds * nc = NULL; - khui_new_creds_by_type * nct = NULL; - - // We can define and use a structure like the following to - // maintain the data that will be used to drive the dialog user - // interface and to store credentials type settings: - struct nc_dialog_data * d = NULL; - - nc = (khui_new_creds *) lParam; - - // Now we can use nc to query for our credentials type structure - khui_cw_find_type(nc, credtype_id, &nct); - - assert(nct); - - // The dialog data structure should live until we receive - // WM_DESTROY. - d = malloc(sizeof(*d)); - ZeroMemory(d, sizeof(*d)); - - d->nc = nc; - d->nct = nct; - - // Store it as our user data for the dialog. - SetWindowLongPtr(hwnd, DWLP_USER, (LPARAM) d); - - // The aux member of the khui_new_creds_by_type structure is - // reserved for use by the credentials provider. We can use it to - // store our dialog data. This way, the dialog procedure and the - // plug-in thread can both access it and use it to store - // credential options for use when obtaining credentials. The - // dialog and the dialog data exist until KMSG_CRED_END is sent. - nct->aux = (LPARAM) d; - - // We should return FALSE here to indicate that we don't want to - // set keyboard focus to this dialog yet. The application will - // attempt to create all the credentials type panels as well as - // the other child dialogs used for the new credentials opeartion. - return FALSE; - - \endcode - - \subsection cred_acq_dlg_WM_NC_NOTIFY WM_NC_NOTIFY - - ::WM_NC_NOTIFY is a special window message that Network Identity - Manager uses to communicate with credentials type panels. The - messages are listed in the ::khui_wm_nc_notifications enumeration. - The format of the message is as follows: - - - uMsg : KHUI_WM_NC_NOTIFY - - HIWORD(wParam) : one of ::khui_wm_nc_notifications - - LPARAM : pointer to the ::khui_new_creds structure (except where noted) - - The ::WM_NC_NOTIFY notifications that a credentials provider is - expected to handle are the following: - - - ::WMNC_IDENTITY_CHANGE - - \copydoc WMNC_IDENTITY_CHANGE - - - ::WMNC_DIALOG_MOVE - - \copydoc WMNC_DIALOG_MOVE - - - ::WMNC_UPDATE_CREDTEXT - - \copydoc WMNC_UPDATE_CREDTEXT - - - ::WMNC_CREDTEXT_LINK - - \copydoc WMNC_CREDTEXT_LINK - - - ::WMNC_DIALOG_PREPROCESS - - \copydoc WMNC_DIALOG_PREPROCESS - - \section cred_acq_other Other notes - -*/ diff --git a/src/windows/identity/doc/cred_data_types.h b/src/windows/identity/doc/cred_data_types.h deleted file mode 100644 index b02edf22b..000000000 --- a/src/windows/identity/doc/cred_data_types.h +++ /dev/null @@ -1,264 +0,0 @@ -/* - * Copyright (c) 2005 Massachusetts Institute of Technology - * Copyright (c) 2007 Secure Endpoints Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* $Id$ */ - -/*! \page cred_data_types Data types in Network Identity Manager - - Network Identity Manager's Credentials Database supports several - useful data types. In addition, plug-ins can define custom data - types. Only a few operations are expected of these data types - since the core KCDB delegates fine grained operations to other - entities that understand the underlying format. - - A field in a credential can have any one of these data types, but - it must have some data type. Each value can be at most \a - KCDB_TYPE_MAXCB bytes in length regardless of the data type. - - Some data types have a fixed size (such as \a Int32), while others - are variable size. The required memory for each field in a - credential is allocated as needed. - - \section kcdb_pg_dt Data types - - Descriptions of individual data types are below. - - \subsection kcdb_pg_idt Individual data types - - \subsubsection kcdb_pg_idt_v Void - - Type identifier : ::KCDB_TYPE_VOID - - The Void data type is used to indicate that the associated object - does not contain any data. - - \subsubsection kcdb_pg_idt_s String - - Type identifier : ::KCDB_TYPE_STRING - - A unicode string that is terminated with a unicode NULL (L'\\0'). - By default, the type has the following flags: - - \a KCDB_TYPE_FLAG_CB_AUTO - - This is because, as long as the string is terminated with a unicode NULL, - the length of the string, and therefore it's size in bytes, can be inferred - from the data itself. - - \subsubsection kcdb_pg_idt_d Date - - Type identifier : ::KCDB_TYPE_DATE - - Dates and times in Network Identity Manager are stored in \a - FILETIME structures. Utility functions are provided for - converting from other formats such as \a time_t. - - \subsubsection kcdb_pg_idt_i Interval - - Type identifier : ::KCDB_TYPE_INTERVAL - - Stores an interval of time. Stored as a 64-bit signed integer. The - string representation of this data type is different from the \a - Date data type and designates an interval of time. - - The special value _I64_MAX (which is defined in limits.h as - 0x7fffffffffffffff, or in other words, the largest positive value - that can be stored in a 64-bit signed integer) is used to - represent an interval of unknown length. - - The string representations of a data value of Interval type are - defined as follows for English (US): - - - "(Unknown)" if the value is _I64_MAX - - - "(Expired)" if the value is less than zero - - - "%d days %d hours" if the value is greater than 24 hours - - - "%d hours %d mins" if the value is greater than 1 hour - - - "%d mins %d secs" if the value is greater than 1 minute - - - "%d seconds" otherwise - - \subsubsection kcdb_pg_idt_i32 Int32 - - Type identifier : ::KCDB_TYPE_INT32 - - A signed 32-bit integer. - - \subsubsection kcdb_pg_idt_i64 Int64 - - Type identifier : ::KCDB_TYPE_INT64 - - A signed 64-bit integer. - - \subsubsection kcdb_pg_idt_da Data - - Type identifier : ::KCDB_TYPE_DATA - - Raw data. Can contain a byte stream. This data type can be used - by plug-ins to associate raw data with a credential. However, - there is no built-in string representation for this data type. As - such, this is not meant to be used for storing anything that has - to be displayed to the user verbatim. - - \section kcdb_pg_cust Custom data types - - \subsection kcdb_pg_cb Custom data type call backs - - Custom data types in the Network Identity Manager Credentials - Database are defined using \a kcdb_type structures that must - include several callback functions. The expected behavior of - these callback functions is documented below. - - \subsubsection kcdb_pg_cb_ts toString - - \code - khm_int32 toString( - const void * data, - khm_int32 cb_data, - wchar_t *buffer, - khm_int32 *pcb_buffer, - khm_int32 flags); - \endcode - - Produce the localized string representation of the object pointed to by - \a data. The size of the data block is specified by the \a cb_data - parameter. If the data type specified the \a KCDB_TYPE_FLAG_CB_AUTO flag - then \a cb_data can be \a KCDB_CBSIZE_AUTO, in which case the size of the - data block is to be inferred. - - \a toString should assume that the block of data pointed to by \a data is - valid for this data type. - - The \a pcb_buffer parameter is always a valid pointer to an \a khm_int32 - variable. - - The \a buffer parameter is a pointer to a \a wchar_t buffer which is to - receive the unicode string representing the object. \a buffer may be - \a NULL, in which case the required size of the buffer should be returned - in \a pcb_buffer. In this case, the function should return - \a KHM_ERROR_TOO_LONG. - - If the \a buffer parameter is not \a NULL and the \a pcb_buffer specifies - that the buffer is large enough to hold the string representation, the - function should copy the string representation to the buffer, set the - \a pcb_buffer to the number of bytes that were copied including the - terminating \a NULL, and return \a KHM_ERROR_SUCCESS. - - If the \a buffer parameter is not \a NULL and the \a pcb_buffer specifies - a buffer that is not large enough, the function should set \a pcb_buffer - to the required size (including the terminating \a NULL) and then return - \a KHM_ERROR_TOO_LONG. - - \subsubsection kcdb_pg_cb_cmp comp - - \code - khm_int32 comp( - const void * data1, - khm_int32 cb_data1, - const void * data2, - khm_int32 cb_d2); - \endcode - - Compares two objects and returns a value indicating the relative ordering. - - Since the KCDB does not interpret any data type, it relies on a loose - definition of what a relative ordering is. It is left up to each data - type callback to interpret what 'ascending' and 'descending' mean. - - The return value \a r should be as follows: - - \a r < 0 : if \a data1 < \a data2 - - \a r > 0 : if \a data1 > \a data2 - - \a r = 0 : if \a data1 = \a data2 or no relative ordering can be determined - for the two objects \a data1 and \a data2. - - The function should assume that both objects are valid for this data type. - - The size specifiers \a cb_data1 and \a cb_data2 can (either or both) be - \a KCDB_CBSIZE_AUTO if the data type specified \a KCDB_TYPE_FLAG_CB_AUTO - flag. - - \subsubsection kcdb_pg_cb_dup dup - - \code - khm_int32 dup( - const void * d_src, - khm_int32 cb_src, - void * d_dst, - khm_int32 * pcb_dst); - \endcode - - Duplicate an object. The object pointed to by \a d_src is to be copied to - the buffer pointed to by \a d_dst. The function is to assume that \a d_src - object is valid. The size specifier \a cb_src may be \a KCDB_CBSIZE_AUTO - if \a KCDB_TYPE_FLAG_CB_AUTO was specified for the data type. - - If \a d_dst pointer is \a NULL, then the required buffer size should be - returned in \a pcb_dst. In this case, the function itself should return - \a KHM_ERROR_TOO_LONG. The same behavior should occur if \a d_dst is non - \a NULL and \a pcb_dst indicates that the buffer is not sufficient. - - If \a d_dst is not \a NULL and \a pcb_dst indicates that the buffer is - sufficient, then a copy of the object in \a d_src should be placed in - \a d_dst. The function shold return \a KHM_ERROR_SUCCESS and set - \a pcb_dst to the number of bytes that were copied. - - This callback will only be called when the credentials database is - retrieving objects from the outside. Once it receives an object it may be - copied or moved as required. Hence the object should not assume to reside - in a specific location of memory. Also, \a dup is not intended to perform - such functions as reference counting which require knowledge of a precise - number of instances of an object, as the credentials database may copy - the object simply by copying the block of memory. - - Note that whenever \a pcb_dst is to be set, it MUST be set to a valid byte - count. It can not be assigned \a KCDB_CBSIZE_AUTO even if the data type - supports it. The \a pcb_dst parameter is used internally to allocate - memory for the object. - - \subsubsection kcdb_pg_cb_iv isValid - - \code - khm_boolean isValid( - const void * data, - khm_int32 cb_data); - \endcode - - Checks if the object pointed to by the \a data pointer is a valid object - for this data type. If the data type specified the \a KCDB_TYPE_CB_AUTO - flag, then the \a cb_data parameter may be \a KCDB_CBSIZE_AUTO, in which - the size of the object should be inferred from the data. - - The function should be able to determine the validity of the object and - return \a TRUE if it is valid. Return \a FALSE if it isn't, or if the - size of the object can not be inferred from the given data, or if the - inferred size exceeds \a KCDB_TYPE_MAXCB. - -*/ diff --git a/src/windows/identity/doc/cred_main.h b/src/windows/identity/doc/cred_main.h deleted file mode 100644 index cbd88bbcb..000000000 --- a/src/windows/identity/doc/cred_main.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2005 Massachusetts Institute of Technology - * Copyright (c) 2007 Secure Endpoints Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* $Id$ */ - -/*! \page cred Credentials Providers - - \section cred_contents Contents - - - \subpage cred_data_types - - \subpage cred_msgs - - \subpage cred_acq - - \subpage cred_prop_pages -*/ diff --git a/src/windows/identity/doc/cred_msgs.h b/src/windows/identity/doc/cred_msgs.h deleted file mode 100644 index a60b883d2..000000000 --- a/src/windows/identity/doc/cred_msgs.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright (c) 2005 Massachusetts Institute of Technology - * Copyright (c) 2007 Secure Endpoints Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* $Id$ */ - -/*! \page cred_msgs Handling credentials provider messages - -A credentials provider plug-in receives a number of messages during the -course of execution. This section describes the appropriate ways of -handling these messages. - - - \ref pi_credmsg_system - - \ref pi_credmsg_cred - - \ref pi_credmsg_list - - \ref pi_credmsg_credacq - - \ref pi_credmsg_destroy - - \ref pi_credmsg_import - - \ref pi_credmsg_prop - -\section pi_credmsg_system System mesages - -There are only two system messages that a credentials provider needs -to handle. Both of these are explained elsewhere as they deal with -initialization and uninitialization of the plug-in. See the following -two sections for details on handling these messages. - -- <::KMSG_SYSTEM,::KMSG_SYSTEM_INIT> \ref pi_pt_cred_init -- <::KMSG_SYSTEM,::KMSG_SYSTEM_EXIT> \ref pi_pt_cred_exit - -\section pi_credmsg_cred Credential messages - -\subsection pi_credmsg_list Listing Credentials - -When the Network Identity Manager application needs to refresh the -list of credentials that credentials providers are aware of, it sends -out a <::KMSG_CRED, ::KMSG_CRED_REFRESH> message. - -Each credentials provider is expected to populate a credential set -with the credentials that it is aware of and call -kcdb_credset_collect() or kcdb_credset_collect_filtered() to merge the -credentials into the root credentials set. - -In addition to responding to <::KMSG_CRED, ::KMSG_CRED_REFRESH>, each -credentials provider is expected to list and merge their credentials -during the following events: - -- When the plug-in is initialized, during <::KMSG_SYSTEM, ::KMSG_SYSTEM_INIT> - -- When the plug-in obtains new credentials during the new credentials - acquisition sequence and whenever the plug-in becomes aware of new - credentials. - -\subsection pi_credmsg_credacq Credential Acquisition Message Sequence - -The aquisition of new or renewed credentials is conducted via a -sequence of messages. Details of handling this sequence is explained -in the section \ref cred_acq . - -\subsection pi_credmsg_destroy Destroying Credentials - -When a request is received to destroy credentials, Network Identity -Manager sends out a <::KMSG_CRED, ::KMSG_CRED_DESTROY_CRED> message. -The \c vparam member of the message will point to a -::khui_action_context structure that describes which credentials are -being destroyed. The plug-in is expected to destroy any credentials -that were provided by the plug-in which are included in the user -interface context. - -\see \ref khui_context_using - -\subsection pi_credmsg_import Importing Credentials - -The import action is typically used to request that plug-ins import -any relevant credentials from the Windows LSA cache. This typically -only applies to plug-ins that provide Kerberos credentials and is not -discussed in detail. - -\subsection pi_credmsg_prop Property Pages - -Credentials providers are also expected to participate in the user -interface when the user makes a request to view the properties of a -credential or identity. - - - <::KMSG_CRED, ::KMSG_CRED_PP_BEGIN> - - <::KMSG_CRED, ::KMSG_CRED_PP_PRECREATE> - - <::KMSG_CRED, ::KMSG_CRED_PP_END> - - <::KMSG_CRED, ::KMSG_CRED_PP_DESTROY> - -Details about handling this sequence of messages is discussed in \ref -cred_prop_pages . - -\subsection pi_credmsg_addrchange Address Change Notification - -When the Network Identity Manager detects that that IP address of the -machine has changed, it will issue a <::KMSG_CRED, -::KMSG_CRED_ADDR_CHANGE>. Handling this notification is optional and -is only necessary for credentials providers which are affected by IP -address changes. This is just a notification and the plug-in is not -expected to take any special action. - -*/ diff --git a/src/windows/identity/doc/cred_prop_pages.h b/src/windows/identity/doc/cred_prop_pages.h deleted file mode 100644 index 19426237b..000000000 --- a/src/windows/identity/doc/cred_prop_pages.h +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright (c) 2005 Massachusetts Institute of Technology - * Copyright (c) 2007 Secure Endpoints Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* $Id$ */ - -/*! \page cred_prop_pages Property Pages for Credentials - - This section describes the logistics of property pages. When a - user selects the 'Properties' option from a menu (either the File - menu or a context menu), then a KHUI_ACTION_PROPERTIES action is - triggered. This is handled by the credentials window and triggers - the launch of a property sheet if there is a valid context to - extract properties from. - - Sequence of actions: - - - KHUI_ACTION_PROPERTIES action is triggered. - - - The main window dispatches the action to the credentials window. - - - If there is a valid context, then the credentials window calls - khui_ps_create_sheet() to create an empty property sheet - structure of type ::khui_property_sheet. The \a ctx member of - the structure is populated with the property context obtained - through khui_context_get(). - - In addition to the \c ctx member, depending on the scope of the - context, other fields of the ::khui_property_sheet structure - could also be set: - - - For ::KHUI_SCOPE_IDENT, the \c identity field will be set to - the selected identity. - - - For ::KHUI_SCOPE_CREDTYPE, the \c identity field will be set to - the selected identity, and the \c credtype field will be set to - the selected credential type. - - - For ::KHUI_SCOPE_CRED, in addition to the \c identity and \c - credtype fields being set as above, the \c cred field will be - set to a handle to the credential. - - - A global message is broadcast of type - <::KMSG_CRED,::KMSG_CRED_PP_BEGIN> with the parameter blob that - is a pointer to the ::khui_property_sheet structure. - - - Subscribers to <::KMSG_CRED> messages handle the message, check - the ::khui_property_sheet structure and determine whether or - not and what type property pages to add to the property sheet. - New property sheets are added by calling khui_ps_add_page(). - - The following code shows how this message might be handled. - - \code - - // Message handler code for KMSG_CRED_PP_BEGIN - - khui_property_sheet * ps; - PROPSHEETPAGE * psp; // from prsht.h - - if (ps->credtype == credtype_id && - ps->cred) { - - // We have been requested to show a property sheet for one of - // our credentials. - - // The PROPSHEETPAGE structure has to exist until we remove the - // property sheet page when we are handling KMSG_CRED_PP_END. - - psp = malloc(sizeof(*psp)); - ZeroMemory(p, sizeof(*psp)); - - psp->dwSize = sizeof(*psp); - psp->dwFlags = 0; - - // hResModule is the handle to the resource module - psp->hInstance = hResModule; - - // IDD_PP_CRED is the dialog template for our property page - psp->pszTemplate = MAKEINTRESOURCE(IDD_PP_CRED); - - // pp_cred_dlg_proc is the message handler for our property - // page. See the Platform SDK for details. - psp->pfnDlgProc = pp_cred_dlg_proc; - - // We can pass the khui_property_sheet structure as the - // lParam for the message handler so it knows the scope of - // the property sheet. - psp->lParam = (LPARAM) ps; - - // Finally, add a property page for our credential type - // stored in credtype_id. Note that only one property page - // can be added per credential type. - - khui_ps_add_page(ps, credtype_id, 0, psp, NULL); - - return KHM_ERROR_SUCCESS; - } - - \endcode - - - Once all the plug-ins have had a chance to add their property - sheets, a <::KMSG_CRED,::KMSG_CRED_PP_PRECREATE> message is - broadcast. This is a chance for the property page providers to - do any processing before the property page is created. - - - The property sheet is created and made visible with a call to - khui_ps_show_sheet(). - - - The Network Identity Manager message loop takes over. Further - interaction including notifications of 'Ok','Cancel','Apply' and - other property sheet related actions are handled through WIN32 - messages to the window procedure of the property sheet and the - message handlers for the individual property pages. - - - Once the user closes the property sheet, a - <::KMSG_CRED,::KMSG_CRED_PP_END> message is sent to all - subscribers. Individual subscribers who added pages to the - property sheet must free up any associated resources at this - point. - - Continuing our example from above, the following code could be - used to handle this message: - - \code - - // Handler for KMSG_CRED_PP_END - - khui_property_page * p = NULL; - - // If a property sheet was added by us, this call would get - // a handle to the property page structure. - - if (KHM_SUCCEEDED(khui_ps_find_page(ps, credtype_id, &p))) { - - // It is safe to assume that the property page window has - // been destroyed by the time we receive KMSG_CRED_PP_END. - // So we can free the PROPSHEETPAGE structure we allocated - // above. - - if (p->p_page) - free(p->p_page); - p->p_page = NULL; - - // The property page structure we added will automatically - // be removed and freed by the application. - } - - return KHM_ERROR_SUCCESS; - \endcode - - - All the ::khui_property_page structures that were allocated as - well as the ::khui_property_sheet structure are freed up with a - call to khui_ps_destroy_sheet(). - -\note The maximum number of property sheets that can be open at one -time is currently set to 256. Each property sheet can have a maximum -of 16 property pages. - */ diff --git a/src/windows/identity/doc/doxyfile.cfg b/src/windows/identity/doc/doxyfile.cfg deleted file mode 100644 index 7bb3092fe..000000000 --- a/src/windows/identity/doc/doxyfile.cfg +++ /dev/null @@ -1,1259 +0,0 @@ -# Doxyfile 1.5.2 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file that -# follow. The default is UTF-8 which is also the encoding used for all text before -# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into -# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of -# possible encodings. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = "Network Identity Manager" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, -# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, -# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, -# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = NO - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like the Qt-style comments (thus requiring an -# explicit @brief command for a brief description. - -JAVADOC_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the DETAILS_AT_TOP tag is set to YES then Doxygen -# will output the detailed description near the top, like JavaDoc. -# If set to NO, the detailed description appears after the member -# documentation. - -DETAILS_AT_TOP = YES - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for Java. -# For instance, namespaces will be presented as packages, qualified scopes -# will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to -# include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. - -CPP_CLI_SUPPORT = NO - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = YES - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. The default is NO. - -SHOW_DIRECTORIES = NO - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from the -# version control system). Doxygen will invoke the program by executing (via -# popen()) the command <command> <input-file>, where <command> is the value of -# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. - -FILE_VERSION_FILTER = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be abled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = - -# This tag can be used to specify the character encoding of the source files that -# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default -# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding. -# See http://www.gnu.org/software/libiconv for the list of possible encodings. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx -# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py - -FILE_PATTERNS = - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or -# directories that are symbolic links (a Unix filesystem feature) are excluded -# from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the output. -# The symbol name can be a fully qualified name, a word, or if the wildcard * is used, -# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command <filter> <input-file>, where <filter> -# is the value of the INPUT_FILTER tag, and <input-file> is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER -# is applied to all files. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES (the default) -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = YES - -# If the REFERENCES_RELATION tag is set to YES (the default) -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = YES - -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. Otherwise they will link to the documentstion. - -REFERENCES_LINK_SOURCE = YES - -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = YES - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = header.html - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = footer.html - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = stylesheet.css - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = YES - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = YES - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# This tag can be used to set the number of enum values (range [1..20]) -# that doxygen will group on one line in the generated HTML documentation. - -ENUM_VALUES_PER_LINE = 4 - -# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be -# generated containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are -# probably better off using the HTML help feature. - -GENERATE_TREEVIEW = YES - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = NO - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4wide - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = NO - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = NO - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_DEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. - -PREDEFINED = _WIN32 \ - UNICODE \ - _UNICODE - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all function-like macros that are alone -# on a line, have an all uppercase name, and do not end with a semicolon. Such -# function macros are typically used for boiler-plate code, and will confuse -# the parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option is superseded by the HAVE_DOT option below. This is only a -# fallback. It is recommended to install and use dot, since it yields more -# powerful graphs. - -CLASS_DIAGRAMS = YES - -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to -# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to -# specify the directory where the mscgen tool resides. If left empty the tool is assumed to -# be found in the default search path. - -MSCGEN_PATH = - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = NO - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies - -GROUP_GRAPHS = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will -# generate a call dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will -# generate a caller dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable caller graphs for selected -# functions only using the \callergraph command. - -CALLER_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. - -DIRECTORY_GRAPH = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, jpg, or gif -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found in the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of -# nodes that will be shown in the graph. If the number of nodes in a graph -# becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen will always -# show the root nodes and its direct children regardless of this setting. - -DOT_GRAPH_MAX_NODES = 50 - -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, which results in a white background. -# Warning: Depending on the platform used, enabling this option may lead to -# badly anti-aliased labels on the edges of a graph (i.e. they become hard to -# read). - -DOT_TRANSPARENT = NO - -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. - -DOT_MULTI_TARGETS = NO - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- - -# The SEARCHENGINE tag specifies whether or not a search engine should be -# used. If set to NO the values of all tags below this one will be ignored. - -SEARCHENGINE = NO diff --git a/src/windows/identity/doc/footer.html b/src/windows/identity/doc/footer.html deleted file mode 100644 index 6383e6a57..000000000 --- a/src/windows/identity/doc/footer.html +++ /dev/null @@ -1,21 +0,0 @@ -<hr size="1"> - -<table width="100%" border="0"> - <tr> - <td> - <address style="align:right;"> - <small>Generated on $datetime for $projectname $projectnumber by <a href="http://www.doxygen.org/index.html">Doxygen</a> $doxygenversion<br> - © 2004-2007 Massachusetts Institute of Technology.<br> - © 2005-2007 Secure Endpoints Inc.<br> - Contact <a href="mailto:khimaira@mit.edu">khimaira@mit.edu</a><br> - </small> - </address> - </td> - <td width="100" align="right"> - <img src="khimaira_logo_small.png" border="0"> - </td> - </tr> -</table> - -</body> -</html> diff --git a/src/windows/identity/doc/header.html b/src/windows/identity/doc/header.html deleted file mode 100644 index b85d6a1e7..000000000 --- a/src/windows/identity/doc/header.html +++ /dev/null @@ -1,6 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> -<title>$title</title> -<link href="$relpath$stylesheet.css" rel="stylesheet" type="text/css"> -<link href="$relpath$tabs.css" rel="stylesheet" type="text/css"> -</head><body> diff --git a/src/windows/identity/doc/images/credview-select-outline.jpg b/src/windows/identity/doc/images/credview-select-outline.jpg Binary files differdeleted file mode 100644 index d06ca9f88..000000000 --- a/src/windows/identity/doc/images/credview-select-outline.jpg +++ /dev/null diff --git a/src/windows/identity/doc/images/khimaira_logo.png b/src/windows/identity/doc/images/khimaira_logo.png Binary files differdeleted file mode 100644 index 26c338007..000000000 --- a/src/windows/identity/doc/images/khimaira_logo.png +++ /dev/null diff --git a/src/windows/identity/doc/images/khimaira_logo_small.png b/src/windows/identity/doc/images/khimaira_logo_small.png Binary files differdeleted file mode 100644 index 26c338007..000000000 --- a/src/windows/identity/doc/images/khimaira_logo_small.png +++ /dev/null diff --git a/src/windows/identity/doc/images/modules_plugins_krb5.png b/src/windows/identity/doc/images/modules_plugins_krb5.png Binary files differdeleted file mode 100644 index 127e89e8d..000000000 --- a/src/windows/identity/doc/images/modules_plugins_krb5.png +++ /dev/null diff --git a/src/windows/identity/doc/main_page.h b/src/windows/identity/doc/main_page.h deleted file mode 100644 index dc7d1e3cc..000000000 --- a/src/windows/identity/doc/main_page.h +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 2005 Massachusetts Institute of Technology - * Copyright (c) 2007 Secure Endpoints Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* $Id$ */ - -/*! \mainpage Network Identity Manager - - \image html khimaira_logo.png - - \section main_dev Documentation for Developers - - Network Identity Manager is a credentials manager, which is - capable of managing Kerberos v5, Kerberos v4, Andrew File System, - and Kerberized Certificate Authority credentials. This document - describes the API that is implemented by the Khimaira framework - upon which Network Identity Manager is based. - - See the following sections for more information : - - \subpage license - - \subpage bugs - - \subpage releases - - © 2004-2007 Massachusetts Institute of Technology - - © 2005-2007 Secure Endpoints Inc. -*/ - -/*! - \page license License agreement and credits - - Network Identity Manager is distributed under the MIT License. - - \section license_l MIT License - - Copyright © 2004,2005,2006,2007 Massachusetts Institute of Technology - - Copyright © 2005,2006,2007 Secure Endpoints Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, copy, - modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - \section license_credits Credits - - Network Identity Manager was developed at the Massachusetts Institute of - Technology in partnership with Secure Endpoints Inc. - - <a href="http://web.mit.edu/is">Information Services and - Technology</a> at <a href="http://web.mit.edu">Massachusetts - Institute of Technology</a> - - <a href="http://www.secure-endpoints.com">Secure Endpoints Inc.</a> -*/ - -/*! \page bugs Reporting bugs - - Network Identity Manager bugs can be reported to - <a href="mailto:kfw-bugs@mit.edu">kfw-bugs@mit.edu</a> or - <a href="mailto:netidmgr@secure-endpoints.com">netidmgr@secure-endpoints.com</a> - - When reporting bugs, please include as much information as - possible to help reproduce the problem. - - \image html khimaira_logo_small.png -*/ - -/*! \page releases Prior releases - - The following is a list of releases of Network Identity Manager. - Whenever there is an addition to the API or a significant change - in behavior, the API version is incremented. A plug-in that is - developed against a particular version of the API will be - compatible with any release of Network Identity Manager that - implements that version of the API. - - The Network Identity Manager version number is set as the file and - product version of <tt>nidmgr32.dll</tt>. - - The API version refers to the version of the API exposed by - <tt>nidmgr32.dll</tt>. A plug-in that was built against a - particular API version will be compatible with any version of - Network Identity Manager whose API version is the same. - - - <b>1.3.0.0</b> Kerberos for Windows 3.2 <em>August 15, 2007</em>\n - API version : <b>9</b> - - - <b>1.2.0.2</b> Kerberos for Windows 3.2 Beta 2 <em>Apr 11, 2007</em>\n - API version : <b>8</b> - - - <b>1.2.0.1</b> <em>Apr 06, 2007</em>\n - API version : <b>8</b> - - - <b>1.2.0.0</b> Kerberos for Windows 3.2 Beta 1 <em>Mar 29, 2007</em>\n - API version : <b>8</b> - - - <b>1.1.11.0</b> <em>Mar 20, 2007</em>\n - API version : <b>8</b> - - - <b>1.1.10.0</b> <em>Feb 28, 2007</em>\n - API version : <b>8</b> - - - <b>1.1.9.0</b> <em>Jan 20, 2007</em>\n - API version : <b>7</b> - - - <b>1.1.8.0</b> Kerberos for Windows 3.1 Final <em>Nov 22, 2006</em>\n - API version : <b>6</b> - - - <b>1.1.6.0</b> Kerberos for Windows 3.1 Beta 4 <em>Nov 17, 2006</em>\n - API version : <b>6</b> - - - <b>1.1.4.0</b> Kerberos for Windows 3.1 Beta 3 <em>Nov 08, 2006</em>\n - API version : <b>6</b> - - - <b>1.1.2.0</b> <em>Oct 09, 2006</em>\n - API version : <b>6</b> - - - <b>1.1.0.2</b> <em>Sep 21, 2006</em>\n - API version : <b>6</b> - - - <b>1.1.0.1</b> <em>Jul 19, 2006</em>\n - API version : <b>5</b> - - - <b>1.1.0.0</b> <em>Mar 08, 2006</em>\n - API version : <b>5</b> - - - <b>1.0.0.0</b> Kerberos for Windows 3.0 <em>Dec 05, 2005</em>\n - API version : <b>4</b> - - - <b>0.1.2.0</b> Second Alpha release <em>Nov 30, 2005</em>\n - API version : <b>3</b>\n - Released along with Kerberos for Windows 3.0 beta 2. - - - <b>0.1.1</b> First Alpha release <em>Nov 01, 2005</em>\n - Released along with Kerberos for Windows 3.0 beta. - -*/ diff --git a/src/windows/identity/doc/netidmgr.doc b/src/windows/identity/doc/netidmgr.doc Binary files differdeleted file mode 100755 index 6e2c9a37f..000000000 --- a/src/windows/identity/doc/netidmgr.doc +++ /dev/null diff --git a/src/windows/identity/doc/netidmgr.pdf b/src/windows/identity/doc/netidmgr.pdf Binary files differdeleted file mode 100755 index a5b22a965..000000000 --- a/src/windows/identity/doc/netidmgr.pdf +++ /dev/null diff --git a/src/windows/identity/doc/plugin_framework.h b/src/windows/identity/doc/plugin_framework.h deleted file mode 100644 index 84ad71c17..000000000 --- a/src/windows/identity/doc/plugin_framework.h +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright (c) 2005 Massachusetts Institute of Technology - * Copyright (c) 2007 Secure Endpoints Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* $Id$ */ - -/*! -\page pi_framework Plug-in Framework - -\section pi_fw_pnm Introduction to Plug-ins, Modules and Messages - -\subsection pi_fw_pnm_p Plug-ins - -A plug-in is a package that implements a defined API that will perform -credentials management or related tasks on behalf of Network Identity -Manager. - -The Network Identity Manager architecture is message based. The core -of each plug-in is a message handler. The plug-in integrates with the -application by subscribing to, and handling specific types of -messages. - -The plug-in message handler runs in its own thread and receive -asynchronous messages. There are exceptions, such as when one plug-in -requires another plug-in to handle a specific message before it can -handle the message. In addition, during certain operations that -require user interaction, each plug-in can delegate code that will run -in the main application thread (the user interface thread) to process -window messages. - -\subsection pi_fw_pnw_m Modules - -One or more plug-ins can be bundled together into a module. A module -is a dynamically loadable library which exports a specific set of -callbacks. Currently, the only two required callbacks for a module -are : - -- init_module(), and -- exit_module() - -For more information about how a module is structured, see \ref -pi_structure . - -\subsection pi_fw_pnm_msg Messages and Message Queues - -An integral part of this framework is the messaging system. Most of -the communication between the Network Identity Manager application and -plug-ins is conducted through passing messages. - -A message has a type and subtype and is denoted in this documentation -as \< \e message_type, \e message_subtype\>. For example, when a -plug-in is loaded, the first message it receives is \< ::KMSG_SYSTEM, -::KMSG_SYSTEM_INIT \>. - -Each thread in the application, specially threads that were created -for individual plug-in messages handlers, has an associated message -queue that stores and manages all the messages that have been sent to -subscribers in that thread. - -The most common recipient of a message is a message callback function -(see ::kmq_callback_t ). The message handler for a plug-in is one such -example. A message callback function receives the message type, -subtype and two optional parameters for the message. - -Any acceptable recipient can subscribe to broadcast messages of any -type. Once subscribed, whenever a message of that type is broadcast, -the message will get queued on the corresponding message queue. Then, -one of the dispatch functions can dispatch the message to the correct -callback function. (see ::kmq_dispatch). - -Next \subpage pi_fw_pm ... - -*/ - -/*! - -\page pi_fw_pm Module Manager - -The Module Manager is tasked with loading and unloading modules as -well as managing the plug-in message processing. - -When a module is successfully loaded, it registers one or more -plug-ins. The Module Manager creates a new thread for each of these -plug-ins. Then the initialization message to the plug-in is sent and -the message dispatch loop is started in this new thread. Having each -plug-in in a separate thread prevents one plug-in from "hanging" other -plug-ins and the user interface. - -\note For compatibility with future versions of Network Identity -Manager, a plug-in should not depend on the fact that it is running in -its own thread. - -Read more : -- \ref pi_structure - -\section pi_fw_pm_load Module Load Sequence - -When kmm_load_module() is called to load a specific module, the -following sequence of events occur: - -<ul> - - <li> - The registration information for the module is located on the - registry key \c - \\Software\\MIT\\NetIDMgr\\PluginManager\\Modules\\[ModuleName]. \see - \ref config - </li> - - <li> The module will not be loaded if one of the following conditions are - true: - - <ul> - <li> - The \c Disabled value is defined and non-zero. - </li> - - <li> - The \c FailureCount value is defined and exceeds the maximum - failure count. By default, the maximum failure count is three, - although it can be set by adding the registry value \c - ModuleMaxFailureCount in registry key \c - Software\\MIT\\NetIDMgr\\PluginManager\\Modules . - </li> - </ul> - </li> - - <li> - The \c ImagePath value from the registration information is used to - locate the module binary. If it is not an absolute path, then the - binary is located using the standard system search path starting - from the directory in which Network Identity Manager binaries are - located. - </li> - - <li> - The binary is loaded into the address space of Network Identity - Manager along with any dependencies not already loaded. - </li> - - <li> - If the Network Identity Manager core binary is signed, then the - signature is checked against the system and user certificate stores. - If this fails, the module is unloaded. See \ref pi_fw_pm_unload. - </li> - - <li> - The init_module() entry point for the loaded module is called. If - this function returns an error or if no plug-ins are registered, - then the module is immediately unloaded. See \ref pi_fw_pm_unload. - - <ul> - <li> - During processing of init_module(), if any localized resource - libraries are specified using kmm_set_locale_info(), then one of the - localized libraries will be loaded. See \ref pi_localization - </li> - - <li> - During processing of init_module(), the module registers all the - plug-ins that it is implementing by calling kmm_provide_plugin() - for each. - </li> - </ul> - </li> - - <li> - Once init_module() returns, each plug-in is initialized. The method - by which a plug-in is initialized depends on the plug-in type. The - initialization code for the plug-in may indicate that it didn't - initialize properly, in which case the plug-in is immediately - unregistered. No further calls are made to the plug-in. - </li> - - <li> - If no plug-in is successfully loaded, the module is unloaded. See - \ref pi_fw_pm_unload. - </li> -</ul> - - During normal operation, any registered plug-ins for a module can be - unloaded explicitly, or the plug-in itself may signal that it should - be unloaded. If at anytime, all the plug-ins for the module are - unloaded, then the module itself is also unloaded unless the \c - NoUnload registry value is set in the module key. - -\section pi_fw_pm_unload Unload sequence - -<ul> - <li> - For each of the plug-ins that are registered for a module, the exit - code is invoked. The method by which this happens depends on the - plug-in type. The plug-in is not given a chance to veto the - decision to unload. Each plug-in is responsible for performing - cleanup tasks, freeing resources and unsubscribing from any message - classes that it has subscribed to. - </li> - - <li> - Once all the plug-ins have been unloaded, the exit_module() entry - point is called for the module. - </li> - - <li> - If any localized resource libraries were loaded for the module, they - are unloaded. - </li> - - <li> - The module is unloaded. - </li> -</ul> - -The following diagram illustrates the relationship between modules and -plug-ins as implemented in the Kerberos 5 plug-in distributed with -Network Identity Manager. - -\image html modules_plugins_krb5.png - - */ diff --git a/src/windows/identity/doc/plugin_locale.h b/src/windows/identity/doc/plugin_locale.h deleted file mode 100644 index e6d1e1ef0..000000000 --- a/src/windows/identity/doc/plugin_locale.h +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (c) 2005 Massachusetts Institute of Technology - * Copyright (c) 2007 Secure Endpoints Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* $Id$ */ - -/*! -\page pi_localization Localization - -If a module requires localized resources, it can register the -localized resource libraries with the module manager when it receives -the init_module() callback. Note that you can only register localized -resource libraries during init_module(). - -The localized resource library is global to a module. Each plug-in is -not allowed to define its own localization library, although it is -free to load and use any library as it sees fit. The module manager -does not manage these libraries for the plug-in. - -\section pi_loc_spec Specification of localized resources - -In order to register localized resource libraries, a module calls -kmm_set_locale_info(). The \a locales parameter to the function holds -a pointer to an array of ::kmm_module_locale records. Each record -specifies one language code and a filename of a library that holds the -language resources for that language. - -It is recommended that you use the LOCALE_DEF convenience macro when -defining locale records for use with kmm_set_locale_info(). This will -ensure that future changes in the API will only minimally affect your -code. For example: - -\code -kmm_module_locale my_locales[] = { -LOCALE_DEF(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US), L"english.dll", KMM_MLOC_FLAG_DEFAULT), -LOCALE_DEF(MAKELANGID(LANG_DUTCH,SUBLANG_DUTCH), L"dutch.dll", 0), -LOCALE_DEF(MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_MODERN), L"spanish.dll", 0) -}; - -int n_locales = sizeof(my_locales)/sizeof(my_locales[0]); - -... - -kmm_set_locale_info(h_module, my_locales, n_locales); - -... -\endcode - -See kmm_set_locale_info() and ::kmm_module_locale for more info. - -\section pi_loc_how Selection of localized resource library - -The module manager searches the array of ::kmm_module_locale objects -passed into the kmm_set_locale_info() function for one that matches -the current user locale (as opposed to the current system locale). A -record matches the locale if it has the same language ID. - -If a match is found, that library is selected. Otherwise, the list is -searched for one that is compatible with the current user locale. A -locale record is compatible with the user locale if the primary -language matches. - -If a match is still not found, the first record in the locale array -that has the ::KMM_MLOC_FLAG_DEFAULT flag set will be selected. - -If a match is still not found, then the kmm_set_locale_info() will -return ::KHM_ERROR_NOT_FOUND. - -\section pi_loc_usage Using localization - -The following convenience macros are available for using a module -handle to load resources from the corresponding resource library. -However, for performance reasons, it is advisable to obtain a handle -to the resource library loaded by the module manager using -kmm_get_resource_module() and then use it to access resources using -the regular WIN32 API. - -- ::kmm_LoadAccelerators -- ::kmm_LoadBitmap -- ::kmm_LoadCursor -- ::kmm_LoadIcon -- ::kmm_LoadImage -- ::kmm_LoadMenu -- ::kmm_LoadString - -*/ diff --git a/src/windows/identity/doc/plugin_main.h b/src/windows/identity/doc/plugin_main.h deleted file mode 100644 index bde85558d..000000000 --- a/src/windows/identity/doc/plugin_main.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (c) 2005 Massachusetts Institute of Technology - * Copyright (c) 2007 Secure Endpoints Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* $Id$ */ - -/*! - -\page plug-ins Network Identity Manager Modules and Plug-ins - - The Network Identity Manager application does not include any - ability to manage any specific type of credential. Instead it - exposes a framework on which plug-ins can be implemented to manage - credentials. - - Plug-ins and localization are handled by the Network Identity - Manager Module Manager API. - - The following sections describe plug-ins in detail: - - - \subpage pi_framework - - \subpage pi_pt - - \subpage pi_structure - - \subpage pi_localization -*/ - -/*! \page pi_pt Plug-in Types - -The types of plug-ins that are currently supported by Network Identity -Manager are : - -\section pi_pt_cred Credential Provider - -A credential provider plug-in essentially acts as an interface between -Network Identity Manager and some entity which defines the credentials -for the purpose of managing those credentials. - -There can be more than one credential provider in a module. - -\subsection pi_pt_cred_comm Communication - -Communication between Network Identity Manager and a credential -provider occurs through a message processor. When registering a -credential provider, the module initialization code in init_module() -specifies ::KHM_PITYPE_CRED as the \a type member and sets \a msg_proc -member to a valid message processor in the ::khm_plugin record. - -\subsection pi_pt_cred_init Initialization - -Once init_module() has completed, the module manager sends a -<::KMSG_SYSTEM,::KMSG_SYSTEM_INIT> message to the message processor. - -For credential provider plug-ins, <::KMSG_SYSTEM,::KMSG_SYSTEM_INIT> is -guaranteed to be the first message it receives. - -The callback function should return KHM_ERROR_SUCCESS if it -initializes properly or some other value otherwise. If the return -value signals an error, then the plug-in is assumed to have failed -initialization and is immediately unloaded. - -The message processor is automatically subscribed to the following -message types: -- ::KMSG_SYSTEM -- ::KMSG_KCDB - -Although a plug-in can use the <::KMSG_SYSTEM,::KMSG_SYSTEM_INIT> -message enumerate existing credentials in the system, it should not -obtain new credentials. This is because other plug-ins that may depend -on the new credential messages may not be loaded at this time. See the -section on \ref cred_msgs for more information. - -\subsection pi_pt_cred_exit Uninitialization - -When the plug-in is to be removed, the module manager sends a -<::KMSG_SYSTEM,::KMSG_SYSTEM_EXIT> to the message processor. The -plug-in must perform any necessary shutdown operations, free up -resources and unsubscribe from any messages that it has subscribed to. - -This message is guaranteed to be the last message received by a -credentials manager plug-in if the plug-in unsubsribes from all -additional message classes that it subsribed to. - -The message types that the message processor is automatically -subscribed to (See \ref pi_pt_cred_init) do not have to be -unsubscribed from as they are automatically removed. - -\subsection pi_pt_cred_other Other Notes - -Since credential managers may receive privileged information, the -signature requirements for credential managers are specially strict. - -*/ diff --git a/src/windows/identity/doc/plugin_structure.h b/src/windows/identity/doc/plugin_structure.h deleted file mode 100644 index 68cee13e7..000000000 --- a/src/windows/identity/doc/plugin_structure.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2005 Massachusetts Institute of Technology - * Copyright (c) 2007 Secure Endpoints Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* $Id$ */ - -/*! - -\page pi_structure Structure of a module - -A Network Identity Manager module is a dynamically loadable library -with a specific set of exported symbols. Each export symbol and -general notes about writing a plug-in module are documented below. - -\section pi_str_reg Registration and Version Information - -[TODO] - -\section pi_str_init Initialization - -Do not use DllMain or other system specific callback routines to -perform intilization tasks other than creating mutexes, initializing -thread local storage and other tasks that must be performed at that -stage. Specifically, do not call any Network Identity Manager API functions from -within DllMain. - -\section pi_str_cb Callbacks - -The callbacks that must be implemented by a module are: - -- init_module() -- exit_module() - - */ diff --git a/src/windows/identity/doc/stylesheet.css b/src/windows/identity/doc/stylesheet.css deleted file mode 100644 index f1183ee37..000000000 --- a/src/windows/identity/doc/stylesheet.css +++ /dev/null @@ -1,387 +0,0 @@ -BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { - font-family: Geneva, Arial, Helvetica, sans-serif; -} -BODY,TD { - font-size: 90%; -} -H1 { - text-align: center; - font-size: 160%; - border-bottom: 1px solid #88b7c8; - margin-bottom: 1em; - padding-top: 0.5em; - padding-bottom: 0.5em; - background-color: #e8eef2; -} -H2 { - margin-top: 1em; - font-size: 120%; - padding: 0.5em; - background-color: #f0f0f0; - border-bottom: 1px solid #888888; -} -H3 { - font-size: 100%; -} - -H4 { - font-size: 100%; -} - -CAPTION { font-weight: bold } -DIV.qindex { - width: 100%; - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 140%; -} -DIV.nav { - width: 100%; - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 140%; -} -DIV.navtab { - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} -TD.navtab { - font-size: 70%; -} -A.qindex { - text-decoration: none; - font-weight: bold; - color: #1A419D; -} -A.qindex:visited { - text-decoration: none; - font-weight: bold; - color: #1A419D -} -A.qindex:hover { - text-decoration: none; - background-color: #ddddff; -} -A.qindexHL { - text-decoration: none; - font-weight: bold; - background-color: #6666cc; - color: #ffffff; - border: 1px double #9295C2; -} -A.qindexHL:hover { - text-decoration: none; - background-color: #6666cc; - color: #ffffff; -} -A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } -A.el { text-decoration: none; font-weight: bold } -A.elRef { font-weight: bold } -A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} -A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} -A.codeRef:link { font-weight: normal; color: #0000FF} -A.codeRef:visited { font-weight: normal; color: #0000FF} -A:hover { text-decoration: none; background-color: #f2f2ff } -DL.el { margin-left: -1cm } -.fragment { - font-family: monospace, fixed; - font-size: 95%; -} -PRE.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; - margin-top: 4px; - margin-bottom: 4px; - margin-left: 2px; - margin-right: 8px; - padding-left: 6px; - padding-right: 6px; - padding-top: 4px; - padding-bottom: 4px; -} -DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } - -DIV.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; -} -DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } -BODY { - background: white; - color: black; - margin-right: 20px; - margin-left: 20px; -} -TD.indexkey { - background-color: #e8eef2; - font-weight: bold; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TD.indexvalue { - background-color: #e8eef2; - font-style: italic; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TR.memlist { - background-color: #f0f0f0; -} -P.formulaDsp { text-align: center; } -IMG.formulaDsp { } -IMG.formulaInl { vertical-align: middle; } -SPAN.keyword { color: #008000 } -SPAN.keywordtype { color: #604020 } -SPAN.keywordflow { color: #e08000 } -SPAN.comment { color: #800000 } -SPAN.preprocessor { color: #806020 } -SPAN.stringliteral { color: #002080 } -SPAN.charliteral { color: #008080 } -.mdescLeft { - padding: 0px 8px 4px 8px; - font-size: 80%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.mdescRight { - padding: 0px 8px 4px 8px; - font-size: 80%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.memItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplParams { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - color: #606060; - background-color: #FAFAFA; - font-size: 80%; -} -.search { color: #003399; - font-weight: bold; -} -FORM.search { - margin-bottom: 0px; - margin-top: 0px; -} -INPUT.search { font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -TD.tiny { font-size: 75%; -} -a { - color: #1A41A8; -} -a:visited { - color: #2A3798; -} -.dirtab { padding: 4px; - border-collapse: collapse; - border: 1px solid #84b0c7; -} -TH.dirtab { background: #e8eef2; - font-weight: bold; -} -HR { height: 1px; - border: none; - border-top: 1px solid black; - border-color: #88b7c8; -} - -/* Style for detailed member documentation */ -.memtemplate { - font-size: 80%; - color: #606060; - font-weight: normal; -} -.memnav { - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} -.memitem { - padding: 4px; - background-color: #eef3f5; - border-width: 1px; - border-style: solid; - border-color: #dedeee; - -moz-border-radius: 8px 8px 8px 8px; -} -.memname { - white-space: nowrap; - font-weight: bold; -} -.memdoc{ - padding-left: 10px; -} -.memproto { - background-color: #d5e1e8; - width: 100%; - border-width: 1px; - border-style: solid; - border-color: #84b0c7; - font-weight: bold; - -moz-border-radius: 8px 8px 8px 8px; -} -.paramkey { - text-align: right; -} -.paramtype { - white-space: nowrap; -} -.paramname { - color: #602020; - font-style: italic; - white-space: nowrap; -} -/* End Styling for detailed member documentation */ - -/* for the tree view */ -.ftvtree { - font-family: sans-serif; - margin:0.5em; -} -.directory { font-size: 9pt; font-weight: bold; } -.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } -.directory > h3 { margin-top: 0; } -.directory p { margin: 0px; white-space: nowrap; } -.directory div { display: none; margin: 0px; } -.directory img { vertical-align: -30%; } - -DL.note { - background-color: #eeeeee; - width: 100%; - border-width: 1px; - border-style: solid; - border-color: #bbbbbb; - -moz-border-radius: 4px 4px 4px 4px; -} - -DL.note DT { - font-size: 75%; -} - diff --git a/src/windows/identity/doc/ui_actions.h b/src/windows/identity/doc/ui_actions.h deleted file mode 100644 index 04f9aa6f2..000000000 --- a/src/windows/identity/doc/ui_actions.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2005 Massachusetts Institute of Technology - * Copyright (c) 2007 Secure Endpoints Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* $Id$ */ - -/*! \page khui_actions Actions - - */ diff --git a/src/windows/identity/doc/ui_context.h b/src/windows/identity/doc/ui_context.h deleted file mode 100644 index f5f4e037e..000000000 --- a/src/windows/identity/doc/ui_context.h +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Copyright (c) 2005 Massachusetts Institute of Technology - * Copyright (c) 2007 Secure Endpoints Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* $Id$ */ - -/*! \page khui_context Contexts - - \section khui_context_contents Contents - - - \ref khui_context_intro "Introduction" - - \subpage khui_context_using - - \section khui_context_intro Introduction - - Several ::KMSG_CRED messages and many messages depend on the - selections that the user has made on the user interface. The UI - context functions and data structures provide access to this - information. - - The Network Identity Manager user interface presents an outline view of all the - credentials that were provided by credentials providers. This - view consists of headers representing the outline levels and rows - representing individual credentials. - - Users can make multiple selections of credentials or headers from - this view. If all the credentials and subheaders under a - particular outline level are selected, then the header itself is - automatically selected. There may be multiple disjointed - selections of headers and credentials. - - In addition, the current cursor position also acts as a selector. - The credential or header under the cursor may not actually be - selected. The cursor is not the mouse pointer, but the focus - rectangle that may be moved either using the keyboard or by - clicking on a credential or header. - - Thus there are two independent groups of selections: - - - Credentials and headers which are in a selected state at some - specific point in time (the <b>current selection</b>). - - - The current credential or selection which the cursor is on (the - <b>cursor selection</b>). - - There are a few notes on how credentials are selected: - - - An "empty" header (a header that does not contain any credential - rows) does not appear in a UI context. However they can appear - as the current cursor context. - - - At its current implementation, cursor selections of identity, - credential type, and individual credentials are treated as - special cases since they are the most common. - - How the UI context is used when processing a specific action or - message depends on the action or message. If an action operates - on a group of credentials, then the current selection may be used, - and on the other hand if an action or message relates to just one - credential, identity or credential type is invoked, then the - cursor selection is invoked. - - For example, double-clicking a credential, or right clicking and - selecting 'Properties' from the context menu launches the property - window for a credential. This operates on the cursor selection - since that reflects where the user double clicked. However, - choosing 'Destroy' from the context menu invokes a command that - can be applied to a group of credential, and hence uses the - current selection. - - Next: \ref khui_context_using "Using Contexts" - */ - -/*! \page khui_context_using Using Contexts - - \section khui_context_using_1 Obtaining the context - - Typically, messages sent by actions that rely on UI context will - obtain and store the context in a location that is accessible to - the handlers of the message. - - If a plug-in needs to obtain the UI context, it should do so by - calling khui_context_get() and passing in a pointer to a - ::khui_action_context structure. - - Once obtained, the contents of the ::khui_action_context structure - should be considered read-only. When the plug-in is done with the - structure, it should call ::khui_context_release(). This cleans - up any additional memory allocated for storing the context as well - as releasing all the objects that were referenced from the - context. - - \section khui_context_sel_ctx Selection context - - The selection context is specified in the ::khui_action_context - structure in the \a sel_creds and \a n_sel_creds fields. These - combined provide an array of handles to credentials which are - selected. - - \note If \a n_sel_creds is zero, then \a sel_creds may be NULL. - - \section khui_context_cur_ctx Cursor context - - The scope of the cursor context is specified in the \a scope field - of the ::khui_action_context strucutre. The scope can be one of: - - - ::KHUI_SCOPE_NONE - - ::KHUI_SCOPE_IDENT - - ::KHUI_SCOPE_CREDTYPE - - ::KHUI_SCOPE_GROUP - - ::KHUI_SCOPE_CRED - - Depending on the scope, several other members of the strucre may - also be set. - - In general, the cursor context can be a single credential or an - entire outline level. Unlike the selection context, since this - specifies a single point of selection it can not be disjointed. - - The contents of the \a identity, \a cred_type, \a cred, \a headers - and \a n_headers are described in the documentation of each of the - scope values above. - - \subsection khui_context_sel_ctx_grp KHUI_SCOPE_GROUP - - The ::KHUI_SCOPE_GROUP scope is the generic scope which describes - a cursor selection that can not be simplified into any other - scope. - - In this case, the selection is described by an array of - ::khui_header elements each of which specify a criterion for - narrowing down the selection of credentials. The ::khui_header - structure specifies an attribute in the \a attr_id field and a - value in the \a data and \a cb_data fields. The credentials that - are selected are those in the root credential set whose repective - attributes contain the values specified in each of the - ::khui_header elements. - - For example, the following selection: - - \image html credview-select-outline.jpg - - will result in the following header specification: - - \code - ctx.n_headers = 3; - - ctx.headers[0].attr_id = KCDB_ATTR_LOCATION; - ctx.headers[0].data = L"grailauth@KHMTEST"; - ctx.headers[0].cb_data = sizeof(L"grailauth@KHMTEST"); - - ctx.headers[1].attr_id = KCDB_ATTR_ID; - ctx.headers[1].data = &handle_to_identity; - ctx.headers[1].cb_data = sizeof(khm_handle); - - ctx.headers[2].attr_id = KCDB_ATTR_TYPE; - ctx.headers[2].data = &kerberos_5_credtype; - ctx.headers[2].cb_data = sizeof(khm_int32); - \endcode - - \note The attribute that is used to specify the header is not the - display attribute, but the canonical attribute. For example, - in the above, the second header was actually - KCDB_ATTR_ID_NAME. But KCDB_ATTR_ID was used since that is - the canonical source for KCDB_ATTR_ID_NAME. See ::kcdb_attrib - for more information on canonical attributes. -*/ diff --git a/src/windows/identity/doc/ui_main.h b/src/windows/identity/doc/ui_main.h deleted file mode 100644 index ae6700847..000000000 --- a/src/windows/identity/doc/ui_main.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2005 Massachusetts Institute of Technology - * Copyright (c) 2007 Secure Endpoints Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* $Id$ */ - -/*! \page khui User Interface Topics - - \section khui_contents Contents - - - \subpage khui_actions - - \subpage khui_menus - - \subpage khui_context - - \subpage khui_htwnd - */ diff --git a/src/windows/identity/doc/ui_menus.h b/src/windows/identity/doc/ui_menus.h deleted file mode 100644 index e46ee0840..000000000 --- a/src/windows/identity/doc/ui_menus.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2005 Massachusetts Institute of Technology - * Copyright (c) 2007 Secure Endpoints Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* $Id$ */ - -/*! \page khui_menus Menus - - */ |