summaryrefslogtreecommitdiffstats
path: root/src/windows/identity/doc
diff options
context:
space:
mode:
Diffstat (limited to 'src/windows/identity/doc')
-rw-r--r--src/windows/identity/doc/Makefile71
-rw-r--r--src/windows/identity/doc/cred_aquisition.h325
-rw-r--r--src/windows/identity/doc/cred_data_types.h264
-rw-r--r--src/windows/identity/doc/cred_main.h36
-rw-r--r--src/windows/identity/doc/cred_msgs.h123
-rw-r--r--src/windows/identity/doc/cred_prop_pages.h180
-rw-r--r--src/windows/identity/doc/doxyfile.cfg1259
-rw-r--r--src/windows/identity/doc/footer.html21
-rw-r--r--src/windows/identity/doc/header.html6
-rw-r--r--src/windows/identity/doc/images/credview-select-outline.jpgbin16084 -> 0 bytes
-rw-r--r--src/windows/identity/doc/images/khimaira_logo.pngbin3970 -> 0 bytes
-rw-r--r--src/windows/identity/doc/images/khimaira_logo_small.pngbin3970 -> 0 bytes
-rw-r--r--src/windows/identity/doc/images/modules_plugins_krb5.pngbin22193 -> 0 bytes
-rw-r--r--src/windows/identity/doc/main_page.h174
-rwxr-xr-xsrc/windows/identity/doc/netidmgr.docbin2042368 -> 0 bytes
-rwxr-xr-xsrc/windows/identity/doc/netidmgr.pdfbin1565851 -> 0 bytes
-rw-r--r--src/windows/identity/doc/plugin_framework.h241
-rw-r--r--src/windows/identity/doc/plugin_locale.h107
-rw-r--r--src/windows/identity/doc/plugin_main.h113
-rw-r--r--src/windows/identity/doc/plugin_structure.h55
-rw-r--r--src/windows/identity/doc/stylesheet.css387
-rw-r--r--src/windows/identity/doc/ui_actions.h30
-rw-r--r--src/windows/identity/doc/ui_context.h188
-rw-r--r--src/windows/identity/doc/ui_main.h36
-rw-r--r--src/windows/identity/doc/ui_menus.h30
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&nbsp;<a href="http://www.doxygen.org/index.html">Doxygen</a> $doxygenversion<br>
- &copy; 2004-2007 Massachusetts Institute of Technology.<br>
- &copy; 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
deleted file mode 100644
index d06ca9f88..000000000
--- a/src/windows/identity/doc/images/credview-select-outline.jpg
+++ /dev/null
Binary files differ
diff --git a/src/windows/identity/doc/images/khimaira_logo.png b/src/windows/identity/doc/images/khimaira_logo.png
deleted file mode 100644
index 26c338007..000000000
--- a/src/windows/identity/doc/images/khimaira_logo.png
+++ /dev/null
Binary files differ
diff --git a/src/windows/identity/doc/images/khimaira_logo_small.png b/src/windows/identity/doc/images/khimaira_logo_small.png
deleted file mode 100644
index 26c338007..000000000
--- a/src/windows/identity/doc/images/khimaira_logo_small.png
+++ /dev/null
Binary files differ
diff --git a/src/windows/identity/doc/images/modules_plugins_krb5.png b/src/windows/identity/doc/images/modules_plugins_krb5.png
deleted file mode 100644
index 127e89e8d..000000000
--- a/src/windows/identity/doc/images/modules_plugins_krb5.png
+++ /dev/null
Binary files differ
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
-
- &copy; 2004-2007 Massachusetts Institute of Technology
-
- &copy; 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 &copy; 2004,2005,2006,2007 Massachusetts Institute of Technology
-
- Copyright &copy; 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
deleted file mode 100755
index 6e2c9a37f..000000000
--- a/src/windows/identity/doc/netidmgr.doc
+++ /dev/null
Binary files differ
diff --git a/src/windows/identity/doc/netidmgr.pdf b/src/windows/identity/doc/netidmgr.pdf
deleted file mode 100755
index a5b22a965..000000000
--- a/src/windows/identity/doc/netidmgr.pdf
+++ /dev/null
Binary files differ
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
-
- */