summaryrefslogtreecommitdiffstats
path: root/src/windows
diff options
context:
space:
mode:
Diffstat (limited to 'src/windows')
-rw-r--r--src/windows/identity/apiversion.txt730
-rw-r--r--src/windows/identity/plugins/krb5/krb5identpro.c11
-rw-r--r--src/windows/identity/ui/cfg_identities_wnd.c3
-rw-r--r--src/windows/identity/uilib/khnewcred.h6
4 files changed, 387 insertions, 363 deletions
diff --git a/src/windows/identity/apiversion.txt b/src/windows/identity/apiversion.txt
index 5ca2ccba0..5f07d46f2 100644
--- a/src/windows/identity/apiversion.txt
+++ b/src/windows/identity/apiversion.txt
@@ -1,363 +1,367 @@
-# 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.
-
-
-# This file documents the versions of the API for NetIDMgr. The
-# syntax of the file is:
-#
-# Version=<api-version number>
-# AppVersion=<netidmgr-version>
-# Date=<release date> | NOTRELEASED
-# # <comments>
-# <symbol-name>
-# # comment
-# Schema:<path-to-schema>
-# # comment
-
-
-#----------------------------------------------------------------
-Version=1
-AppVersion=0.1.0.0
-Date=NOTRELEASED
-# Original Khimaira API.
-
-#----------------------------------------------------------------
-Version=2
-AppVersion=0.1.1.0
-Date=Nov 01, 2005
-# Alpha 1 release of NetIDMgr, along with KFW 3.0.0 beta
-
-#----------------------------------------------------------------
-Version=3
-AppVersion=0.1.2.0
-Date=Nov 30, 2005
-# Alpha 2 release of NetIDMgr, along with KFW 3.0.0 beta 2
-
-#----------------------------------------------------------------
-Version=4
-AppVersion=1.0.0.0
-Date=Dec 05, 2005
-# Released with KfW 3.0.0
-
-#----------------------------------------------------------------
-Version=5
-AppVersion=1.1.0.0
-Date=(TBD)
-# Released with KFW 3.1.0
-
-+khui_alert_show_modal(),KMSG_ALERT_SHOW_MODAL, KHUI_ALERT_FLAG_MODAL
-# Support for modal alert boxes
-
-+KHUI_PACTION_YES, KHUI_PACTION_NO, KHUI_PACTION_YESALL, KHUI_PACTION_NOALL, KHUI_PACTION_KEEP, KHUI_PACTION_REMOVE, KHUI_PACTION_DISCARD
-# Additional pseudo actions
-
-!tag_khui_action, khui_action
-# Membership extension for supporting custom actions. Type changes
-# from 'int' to khm_int32.
-
-+khui_action_create(), khui_action_get_data(), khui_action_delete()
-# Support for creating custom actions
-
-!kmq_msg_subscription, tag_kmq_msg_subscription
-# Add 'magic' field.
-
-+KHUI_MENU_NONE
-# New identifier for unspecified menu commands.
-
-+khui_menu_insert_action(), khui_menu_get_action(), khui_menu_get_size(), khui_menu_remove_action()
-# Functions for manipulating custom menus
-
-+khui_menu_insert_paction()
-# Exported, but not exposed as an API. For inserting actions by
-# reference in to menus.
-
--khui_menu_add_action(), khui_menu_add_paction()
-# Removed deprecated functions. Temporarily provided as macros. The
-# replacements are khui_menu_insert_action() and
-# khui_menu_insert_paction() respectively.
-
-+kmq_create_hwnd_subscription()
-# Ad-hoc subscriptions can now be obtained for Win32 windows.
-
--khui_create_gloabl_accel_table()
-# Exported but no longer exposed.
-
--khui_action_list_length()
-# Exported but no longer exposed.
-
-+kmm_enable_plugin()
-# New API for enabling or disabling plugins
-
-!kmm_plugin_info
-# Added 'flags' field.
-
-+KCDB_ATTR_FLAG_TRANSIENT
-# New flag for transient attributes.
-
-+kherr_get_prev_event(), kherr_get_last_event()
-# For more efficient traversal of the event lists for use by error context handlers.
-
-+KHERR_RF_COMMIT
-# Flag for error events to signal that the error event has been committed.
-
-+khui_action_trigger()
-# Function for triggerring an action.
-
-+khui_action_set_hwnd()
-# internal API. Should not be used by anyone. Basically sets the HWND that should receive event notifications from the UI library.
-
-+KEPT_PTR
-# error library data type for pointers
-
-+_cptr
-# type cast macro for pointer types
-
-!khc_open_space
-# name parameter is now a const string
-
-!KCDB_ATTRNAME_ISSUE
-# Fixed typo
-
-!kherr_val
-# is now an inline function instead of a macro
-
-!kherr_param
-# is now a structure instead of an integer type
-
-+KEPT_NONE
-# new constant signifying a NULL parameter
-
-!_int32, _uint32, _int64, _uint64, _cstr, _tstr, _cptr
-# appropriate typecasts added
-
-+vnull
-# macro to insert a NULL parameter
-
-!_report_cs0, _report_cs1, _report_cs2, _report_cs3
-!_report_sr0, _report_sr1, _report_sr2, _report_sr3
-!_report_mr0, _report_mr1, _report_mr2, _report_mr3
-!_report_ts0, _report_ts1, _report_ts2, _report_ts3
-# modified to use _vnull() instead of 0 for NULL parameters
-
-+KCONF_FLAG_WRITEIFMOD
-# new flag for khc_open_space() indicating that the specified handle should only write to a configuration space if the value read from the handle is different from the value being written
-
-+KCONF_FLAG_IFMODCI
-# indicates that the string comparison function used for KCONF_FLAG_WRITEIFMOD should be case insensitive.
-
-!khc_write_int32(), khc_write_int64(), khc_write_string(), khc_write_multi_string()
-# Change of behavior. If the configuration handle has KCONF_FLAG_WRITEIFMOD flag set, only writes if the value being written to is different from the value being read.
-
-!khc_read_string(), khc_read_multi_string(), khc_read_int32(), khc_read_int64(), khc_read_binary(), khc_write_string(), khc_write_int32(), khc_write_int64(), khc_write_binary(), khc_get_type(), khc_value_exists(), khc_remove_value()
-# The value name parameter is now a constant pointer
-
-!khc_load_schema(), khc_unload_schema()
-# The schema pointer is now a constant pointer
-
--Schema:NetIDMgr\PluginManager\Modules\<module name>\Flags
--Schema:NetIDMgr\PluginManager\Plugins\<plugin name>\Flags
-# Deprecated. Replaced by separate values for each of the bits in Flags. This allows each setting to be deployed independently via GPO.
-
-+Schema:NetIDMgr\PluginManager\Modules\<module name>\Disabled
-+Schema:NetIDMgr\PluginManager\Plugins\<plugin name>\Disabled
-# If non-zero, the corresponding module or plug-in is disabled.
-
-!kcdb_identity_set_attrib(), kcdb_identity_get_attrib(), kcdb_identity_get_attrib_string()
-# Attribute name parameter is now a const pointer to a wchar_t string
-
-!kcdb_cred_create()
-# Name parameter is now a const pointer to a wchar_t string
-
-!kcdb_cred_set_attrib(), kcdb_cred_get_attrib()
-!kcdb_cred_get_attrib_string(), kcdb_creds_comp_attrib()
-# Attribute name parameter is now a const pointer to a wchar_t string
-
-!kcdb_type_get_id()
-# Name parameter is now a const pointer to a wchar_t string
-
-!kcdb_type_register()
-# type parameter is now a const pointer
-
-!kcdb_attrib_get_id()
-# Name parameter is now a const pointer
-
-!kcdb_attrib_register()
-# attrib parameter is now a const pointer
-
-!kcdb_credtype_register()
-# type parameter is now a const pointer
-
-!kcdb_credtype_get_id()
-# name parameter is now a const pointer
-
-!kcdb_buf_get_attrib(), kcdb_buf_get_attrib_string(), kcbd_buf_set_attrib()
-# attr_name is now a const pointer
-
-+KCDB_OP_DELCONFIG
-# notification that the configuration information for an identity is to be removed.
-
-
-#----------------------------------------------------------------
-Version=7
-AppVersion=1.1.9.0
-Date=Feb 16, 2007
-# Released with KFW 3.2 Alpha 1
-
-+KHUI_ACTION_UICB
-# Internal action to dispatch a UI callback
-
-+WMNC_UPDATE_LAYOUT
-# Used to update the layout and size of the dialogs during a new
-# credentials operation.
-
-- NCDLG_TAB_HEIGHT, NCDLG_TAB_WIDTH
-# No longer used
-
-- NCDLG_BBAR_WIDTH
-# Moved to internal header file
-
-+ KCDB_IDENT_FLAG_UNKNOWN
-# Used to indicate that an authority could not be contacted to
-# determine the validity of an identity.
-
-+ khui_refresh_actions()
-# Force a refresh of the application menus and toolbars.
-
-+ khui_action_lock()
-+ khui_action_unlock()
-# Synchronization of action and menu operations.
-
-! khui_alert
-# Structure definition is now internal
-
-! khui_action
-# Structure definition is now internal
-
-+ khui_alert_set_type()
-+ khui_alert_set_ctx()
-+ khui_alert_get_response()
-# Additional functions to setup an alert.
-
-! kmq_message
-# Added field "aborted"
-
-+ kmq_abort_call()
-+ kmq_is_call_aborted()
-# Added placeholders
-
-! kmq_message_ref
-! kmq_queue
-! kmq_msg_subscription
-! kmq_msg_type
-# Structure definition now internal
-
-! KMQ_MSG_TYPE_MAX
-! KMQ_MAXCCH_TYPE_NAME
-! KMQ_MAXCB_TYPE_NAME
-! KMQ_MSG_SUB_MAGIC
-! KMQ_RCPTTYPE_CB
-! KMQ_RCPTTYPE_HWND
-! KMQ_QUEUE_FLAG_DELETED
-# Macros not internal
-
-#----------------------------------------------------------------
-Version=8
-AppVersion=1.1.10.0
-Date=(TBD)
-# Released with (TBD)
-
-! hash_add(), hash_del(), hash_lookup(), hash_exist()
-# 'key' parameter is now (const void *)
-
-! struct tag_has_bin, hash_bin
-# 'key' member is now (const void *)
-
-
-+WMNC_UPDATE_LAYOUT
-# Used to update the layout and size of the dialogs during a new
-# credentials operation.
-
-- NCDLG_TAB_HEIGHT, NCDLG_TAB_WIDTH
-# No longer used
-
-- NCDLG_BBAR_WIDTH
-# Moved to internal header file
-
-+ KCDB_IDENT_FLAG_UNKNOWN
-# Used to indicate that an authority could not be contacted to
-# determine the validity of an identity.
-
-+ khui_refresh_actions()
-# Force a refresh of the application menus and toolbars.
-
-+ khui_action_lock()
-+ khui_action_unlock()
-# Synchronization of action and menu operations.
-
-! khui_alert
-# Structure definition is now internal
-
-! khui_action
-# Structure definition is now internal
-
-+ khui_alert_set_type()
-+ khui_alert_set_ctx()
-+ khui_alert_get_response()
-# Additional functions to setup an alert.
-
-! kmq_message
-# Added field "aborted"
-
-+ kmq_abort_call()
-+ kmq_is_call_aborted()
-# Added placeholders
-
-! kmq_message_ref
-! kmq_queue
-! kmq_msg_subscription
-! kmq_msg_type
-# Structure definition now internal
-
-! KMQ_MSG_TYPE_MAX
-! KMQ_MAXCCH_TYPE_NAME
-! KMQ_MAXCB_TYPE_NAME
-! KMQ_MSG_SUB_MAGIC
-! KMQ_RCPTTYPE_CB
-! KMQ_RCPTTYPE_HWND
-! KMQ_QUEUE_FLAG_DELETED
-# Macros not internal
-
-! khc_value_exists()
-# Behavior change with respect to shadowed handles. If a value
-# doesn't exist in the top level handle, then each shadowed handle
-# will be tried in turn until the value is found.
-
-#----------------------------------------------------------------
-Version=9
-AppVersion=1.3.0.0
-Date=(TBD)
-# Released with (TBD)
-
-+ KHERR_CTX_NEWCHILD
-+ KHERR_CTX_FOLDCHILD
-# Added to kherr.h to support additional notifications
+# 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.
+
+
+# This file documents the versions of the API for NetIDMgr. The
+# syntax of the file is:
+#
+# Version=<api-version number>
+# AppVersion=<netidmgr-version>
+# Date=<release date> | NOTRELEASED
+# # <comments>
+# <symbol-name>
+# # comment
+# Schema:<path-to-schema>
+# # comment
+
+
+#----------------------------------------------------------------
+Version=1
+AppVersion=0.1.0.0
+Date=NOTRELEASED
+# Original Khimaira API.
+
+#----------------------------------------------------------------
+Version=2
+AppVersion=0.1.1.0
+Date=Nov 01, 2005
+# Alpha 1 release of NetIDMgr, along with KFW 3.0.0 beta
+
+#----------------------------------------------------------------
+Version=3
+AppVersion=0.1.2.0
+Date=Nov 30, 2005
+# Alpha 2 release of NetIDMgr, along with KFW 3.0.0 beta 2
+
+#----------------------------------------------------------------
+Version=4
+AppVersion=1.0.0.0
+Date=Dec 05, 2005
+# Released with KfW 3.0.0
+
+#----------------------------------------------------------------
+Version=5
+AppVersion=1.1.0.0
+Date=(TBD)
+# Released with KFW 3.1.0
+
++khui_alert_show_modal(),KMSG_ALERT_SHOW_MODAL, KHUI_ALERT_FLAG_MODAL
+# Support for modal alert boxes
+
++KHUI_PACTION_YES, KHUI_PACTION_NO, KHUI_PACTION_YESALL, KHUI_PACTION_NOALL, KHUI_PACTION_KEEP, KHUI_PACTION_REMOVE, KHUI_PACTION_DISCARD
+# Additional pseudo actions
+
+!tag_khui_action, khui_action
+# Membership extension for supporting custom actions. Type changes
+# from 'int' to khm_int32.
+
++khui_action_create(), khui_action_get_data(), khui_action_delete()
+# Support for creating custom actions
+
+!kmq_msg_subscription, tag_kmq_msg_subscription
+# Add 'magic' field.
+
++KHUI_MENU_NONE
+# New identifier for unspecified menu commands.
+
++khui_menu_insert_action(), khui_menu_get_action(), khui_menu_get_size(), khui_menu_remove_action()
+# Functions for manipulating custom menus
+
++khui_menu_insert_paction()
+# Exported, but not exposed as an API. For inserting actions by
+# reference in to menus.
+
+-khui_menu_add_action(), khui_menu_add_paction()
+# Removed deprecated functions. Temporarily provided as macros. The
+# replacements are khui_menu_insert_action() and
+# khui_menu_insert_paction() respectively.
+
++kmq_create_hwnd_subscription()
+# Ad-hoc subscriptions can now be obtained for Win32 windows.
+
+-khui_create_gloabl_accel_table()
+# Exported but no longer exposed.
+
+-khui_action_list_length()
+# Exported but no longer exposed.
+
++kmm_enable_plugin()
+# New API for enabling or disabling plugins
+
+!kmm_plugin_info
+# Added 'flags' field.
+
++KCDB_ATTR_FLAG_TRANSIENT
+# New flag for transient attributes.
+
++kherr_get_prev_event(), kherr_get_last_event()
+# For more efficient traversal of the event lists for use by error context handlers.
+
++KHERR_RF_COMMIT
+# Flag for error events to signal that the error event has been committed.
+
++khui_action_trigger()
+# Function for triggerring an action.
+
++khui_action_set_hwnd()
+# internal API. Should not be used by anyone. Basically sets the HWND that should receive event notifications from the UI library.
+
++KEPT_PTR
+# error library data type for pointers
+
++_cptr
+# type cast macro for pointer types
+
+!khc_open_space
+# name parameter is now a const string
+
+!KCDB_ATTRNAME_ISSUE
+# Fixed typo
+
+!kherr_val
+# is now an inline function instead of a macro
+
+!kherr_param
+# is now a structure instead of an integer type
+
++KEPT_NONE
+# new constant signifying a NULL parameter
+
+!_int32, _uint32, _int64, _uint64, _cstr, _tstr, _cptr
+# appropriate typecasts added
+
++vnull
+# macro to insert a NULL parameter
+
+!_report_cs0, _report_cs1, _report_cs2, _report_cs3
+!_report_sr0, _report_sr1, _report_sr2, _report_sr3
+!_report_mr0, _report_mr1, _report_mr2, _report_mr3
+!_report_ts0, _report_ts1, _report_ts2, _report_ts3
+# modified to use _vnull() instead of 0 for NULL parameters
+
++KCONF_FLAG_WRITEIFMOD
+# new flag for khc_open_space() indicating that the specified handle should only write to a configuration space if the value read from the handle is different from the value being written
+
++KCONF_FLAG_IFMODCI
+# indicates that the string comparison function used for KCONF_FLAG_WRITEIFMOD should be case insensitive.
+
+!khc_write_int32(), khc_write_int64(), khc_write_string(), khc_write_multi_string()
+# Change of behavior. If the configuration handle has KCONF_FLAG_WRITEIFMOD flag set, only writes if the value being written to is different from the value being read.
+
+!khc_read_string(), khc_read_multi_string(), khc_read_int32(), khc_read_int64(), khc_read_binary(), khc_write_string(), khc_write_int32(), khc_write_int64(), khc_write_binary(), khc_get_type(), khc_value_exists(), khc_remove_value()
+# The value name parameter is now a constant pointer
+
+!khc_load_schema(), khc_unload_schema()
+# The schema pointer is now a constant pointer
+
+-Schema:NetIDMgr\PluginManager\Modules\<module name>\Flags
+-Schema:NetIDMgr\PluginManager\Plugins\<plugin name>\Flags
+# Deprecated. Replaced by separate values for each of the bits in Flags. This allows each setting to be deployed independently via GPO.
+
++Schema:NetIDMgr\PluginManager\Modules\<module name>\Disabled
++Schema:NetIDMgr\PluginManager\Plugins\<plugin name>\Disabled
+# If non-zero, the corresponding module or plug-in is disabled.
+
+!kcdb_identity_set_attrib(), kcdb_identity_get_attrib(), kcdb_identity_get_attrib_string()
+# Attribute name parameter is now a const pointer to a wchar_t string
+
+!kcdb_cred_create()
+# Name parameter is now a const pointer to a wchar_t string
+
+!kcdb_cred_set_attrib(), kcdb_cred_get_attrib()
+!kcdb_cred_get_attrib_string(), kcdb_creds_comp_attrib()
+# Attribute name parameter is now a const pointer to a wchar_t string
+
+!kcdb_type_get_id()
+# Name parameter is now a const pointer to a wchar_t string
+
+!kcdb_type_register()
+# type parameter is now a const pointer
+
+!kcdb_attrib_get_id()
+# Name parameter is now a const pointer
+
+!kcdb_attrib_register()
+# attrib parameter is now a const pointer
+
+!kcdb_credtype_register()
+# type parameter is now a const pointer
+
+!kcdb_credtype_get_id()
+# name parameter is now a const pointer
+
+!kcdb_buf_get_attrib(), kcdb_buf_get_attrib_string(), kcbd_buf_set_attrib()
+# attr_name is now a const pointer
+
++KCDB_OP_DELCONFIG
+# notification that the configuration information for an identity is to be removed.
+
+
+#----------------------------------------------------------------
+Version=7
+AppVersion=1.1.9.0
+Date=Feb 16, 2007
+# Released with KFW 3.2 Alpha 1
+
++KHUI_ACTION_UICB
+# Internal action to dispatch a UI callback
+
++WMNC_UPDATE_LAYOUT
+# Used to update the layout and size of the dialogs during a new
+# credentials operation.
+
+- NCDLG_TAB_HEIGHT, NCDLG_TAB_WIDTH
+# No longer used
+
+- NCDLG_BBAR_WIDTH
+# Moved to internal header file
+
++ KCDB_IDENT_FLAG_UNKNOWN
+# Used to indicate that an authority could not be contacted to
+# determine the validity of an identity.
+
++ khui_refresh_actions()
+# Force a refresh of the application menus and toolbars.
+
++ khui_action_lock()
++ khui_action_unlock()
+# Synchronization of action and menu operations.
+
+! khui_alert
+# Structure definition is now internal
+
+! khui_action
+# Structure definition is now internal
+
++ khui_alert_set_type()
++ khui_alert_set_ctx()
++ khui_alert_get_response()
+# Additional functions to setup an alert.
+
+! kmq_message
+# Added field "aborted"
+
++ kmq_abort_call()
++ kmq_is_call_aborted()
+# Added placeholders
+
+! kmq_message_ref
+! kmq_queue
+! kmq_msg_subscription
+! kmq_msg_type
+# Structure definition now internal
+
+! KMQ_MSG_TYPE_MAX
+! KMQ_MAXCCH_TYPE_NAME
+! KMQ_MAXCB_TYPE_NAME
+! KMQ_MSG_SUB_MAGIC
+! KMQ_RCPTTYPE_CB
+! KMQ_RCPTTYPE_HWND
+! KMQ_QUEUE_FLAG_DELETED
+# Macros not internal
+
+#----------------------------------------------------------------
+Version=8
+AppVersion=1.1.10.0
+Date=(TBD)
+# Released with (TBD)
+
+! hash_add(), hash_del(), hash_lookup(), hash_exist()
+# 'key' parameter is now (const void *)
+
+! struct tag_has_bin, hash_bin
+# 'key' member is now (const void *)
+
+
++WMNC_UPDATE_LAYOUT
+# Used to update the layout and size of the dialogs during a new
+# credentials operation.
+
+- NCDLG_TAB_HEIGHT, NCDLG_TAB_WIDTH
+# No longer used
+
+- NCDLG_BBAR_WIDTH
+# Moved to internal header file
+
++ KCDB_IDENT_FLAG_UNKNOWN
+# Used to indicate that an authority could not be contacted to
+# determine the validity of an identity.
+
++ khui_refresh_actions()
+# Force a refresh of the application menus and toolbars.
+
++ khui_action_lock()
++ khui_action_unlock()
+# Synchronization of action and menu operations.
+
+! khui_alert
+# Structure definition is now internal
+
+! khui_action
+# Structure definition is now internal
+
++ khui_alert_set_type()
++ khui_alert_set_ctx()
++ khui_alert_get_response()
+# Additional functions to setup an alert.
+
+! kmq_message
+# Added field "aborted"
+
++ kmq_abort_call()
++ kmq_is_call_aborted()
+# Added placeholders
+
+! kmq_message_ref
+! kmq_queue
+! kmq_msg_subscription
+! kmq_msg_type
+# Structure definition now internal
+
+! KMQ_MSG_TYPE_MAX
+! KMQ_MAXCCH_TYPE_NAME
+! KMQ_MAXCB_TYPE_NAME
+! KMQ_MSG_SUB_MAGIC
+! KMQ_RCPTTYPE_CB
+! KMQ_RCPTTYPE_HWND
+! KMQ_QUEUE_FLAG_DELETED
+# Macros not internal
+
+! khc_value_exists()
+# Behavior change with respect to shadowed handles. If a value
+# doesn't exist in the top level handle, then each shadowed handle
+# will be tried in turn until the value is found.
+
+#----------------------------------------------------------------
+Version=9
+AppVersion=1.3.0.0
+Date=(TBD)
+# Released with (TBD)
+
++ KHERR_CTX_NEWCHILD
++ KHERR_CTX_FOLDCHILD
+# Added to kherr.h to support additional notifications
+
++ WMNC_IDENT_PREPROCESS
+# Preprocess the identity selector controls before fetching the
+# selected identity
diff --git a/src/windows/identity/plugins/krb5/krb5identpro.c b/src/windows/identity/plugins/krb5/krb5identpro.c
index 4d1120f39..db1422f01 100644
--- a/src/windows/identity/plugins/krb5/krb5identpro.c
+++ b/src/windows/identity/plugins/krb5/krb5identpro.c
@@ -722,6 +722,17 @@ ui_cb(khui_new_creds * nc,
case WMNC_IDENT_WMSG:
return handle_wnd_msg(nc, hwnd, uMsg, wParam, lParam);
+ case WMNC_IDENT_PREPROCESS:
+ {
+#ifdef DEBUG
+ assert(d != NULL);
+#endif
+ if (d) {
+ set_identity_from_ui(nc, d);
+ }
+ }
+ return TRUE;
+
case WMNC_IDENT_EXIT:
{
#ifdef DEBUG
diff --git a/src/windows/identity/ui/cfg_identities_wnd.c b/src/windows/identity/ui/cfg_identities_wnd.c
index 46efe242b..02eb44212 100644
--- a/src/windows/identity/ui/cfg_identities_wnd.c
+++ b/src/windows/identity/ui/cfg_identities_wnd.c
@@ -982,6 +982,9 @@ khm_cfg_add_ident_proc(HWND hwnd,
if (!d || !d->nc)
break;
+ if (d->nc->ident_cb)
+ d->nc->ident_cb(d->nc, WMNC_IDENT_PREPROCESS, NULL, 0, 0, 0);
+
/* check if there was an identity selected */
if (d->nc->n_identities == 0 ||
d->nc->identities[0] == NULL) {
diff --git a/src/windows/identity/uilib/khnewcred.h b/src/windows/identity/uilib/khnewcred.h
index 6349fc727..db70b41f8 100644
--- a/src/windows/identity/uilib/khnewcred.h
+++ b/src/windows/identity/uilib/khnewcred.h
@@ -329,6 +329,12 @@ enum khui_wm_nc_ident_notify {
WMNC_IDENT_EXIT,
/*!< Terminate a credentials acquisition dialog. Sent just before
the dialog is terminated. */
+
+ WMNC_IDENT_PREPROCESS,
+ /*!< The identity is about to be fetched from the \a
+ ::khui_new_creds structure. The callback is expected to ensure
+ that the primary identity listed in that structure is
+ consistent with the user selection. */
};
/*! \name Standard credtext link IDs