2006-01-19 00:34:21 +01:00
|
|
|
/***********************************************************************
|
|
|
|
*
|
|
|
|
* Copyright (C) 2005-2006 Novell, Inc.
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; version 2.1
|
|
|
|
* of the License.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Library General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free
|
|
|
|
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
|
*
|
|
|
|
* To contact Novell about this file by physical or electronic mail,
|
|
|
|
* you may find current contact information at www.novell.com.
|
|
|
|
*
|
|
|
|
***********************************************************************/
|
|
|
|
|
2005-10-11 21:51:00 +02:00
|
|
|
#ifndef _SECRETSTOREDEF_
|
|
|
|
#define _SECRETSTOREDEF_
|
|
|
|
|
|
|
|
|
|
|
|
//===[ Header files specific to this module ]==============================
|
|
|
|
#include <ncpltype.h>
|
|
|
|
#include <cppsup.h>
|
|
|
|
#include <nscmdef.h>
|
|
|
|
|
|
|
|
//===[ Manifest constants ]==============================
|
|
|
|
|
|
|
|
// {A118B15C-66A3-46ba-BA3B-D45FBBF0C5DA}
|
|
|
|
DEFINE_GUID(CLSID_SecretStoreClientService,
|
|
|
|
0xa118b15c,
|
|
|
|
0x66a3,
|
|
|
|
0x46ba,
|
|
|
|
0xba, 0x3b, 0xd4, 0x5f, 0xbb, 0xf0, 0xc5, 0xda);
|
|
|
|
|
|
|
|
// {6DF6121E-C823-43dd-9D1C-7B89056CC4AE}
|
|
|
|
DEFINE_GUID(IID_SSCS,
|
|
|
|
0x6df6121e,
|
|
|
|
0xc823,
|
|
|
|
0x43dd,
|
|
|
|
0x9d, 0x1c, 0x7b, 0x89, 0x5, 0x6c, 0xc4, 0xae);
|
|
|
|
|
|
|
|
|
|
|
|
//===[ Structure Definitions ]==============================
|
|
|
|
|
|
|
|
//===[ Function Prototypes ]==============================
|
|
|
|
|
|
|
|
// {54BFEBE2-F726-44d9-AEDE-E9252FA99549}
|
|
|
|
DEFINE_GUID(IID_VerifyAccessSS_1,
|
|
|
|
0x2d4c7faa,
|
|
|
|
0x8e3c,
|
|
|
|
0x4c70,
|
|
|
|
0x87, 0xa7, 0xc8, 0x7d, 0xad, 0x80, 0x2a, 0xd);
|
|
|
|
|
|
|
|
/*
|
|
|
|
0x54bfebe2,
|
|
|
|
0xf726,
|
|
|
|
0x44d9,
|
|
|
|
0xae, 0xde, 0xe9, 0x25, 0x2f, 0xa9, 0x95, 0x49);
|
|
|
|
*/
|
|
|
|
|
|
|
|
#undef NICM_INTERFACE
|
|
|
|
#define NICM_INTERFACE IVerifiedAccessSS
|
|
|
|
|
|
|
|
|
|
|
|
NICM_DECLARE_INHERITTED_INTERFACE(IVerifiedAccessSS, NICM_IUnknown)
|
|
|
|
{
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(QueryInterface) (
|
|
|
|
IN THISPTR
|
|
|
|
IN const GUID *pIId,
|
|
|
|
OUT void **ppvObj
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT UINT32 NICM_STDMETHOD
|
|
|
|
(AddRef) (
|
|
|
|
IN THISPTRONLY
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT UINT32 NICM_STDMETHOD
|
|
|
|
(Release) (
|
|
|
|
IN THISPTRONLY
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(QuerySecureInterface) (
|
|
|
|
IN THISPTR
|
|
|
|
IN HMODULE hModule,
|
|
|
|
IN const GUID *pIId,
|
|
|
|
OUT void **ppvObj
|
|
|
|
) PURE;
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef IVerifiedAccessSS FAR *PIVerifiedAccessSS;
|
|
|
|
|
|
|
|
|
|
|
|
#undef NICM_INTERFACE
|
|
|
|
#define NICM_INTERFACE ISecretStore
|
|
|
|
|
|
|
|
NICM_DECLARE_INHERITTED_INTERFACE(ISecretStore, NICM_IUnknown)
|
|
|
|
{
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(QueryInterface) (
|
|
|
|
IN THISPTR
|
|
|
|
IN const GUID *pIId,
|
|
|
|
OUT void **ppvObj
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT UINT32 NICM_STDMETHOD
|
|
|
|
(AddRef) (
|
|
|
|
IN THISPTRONLY
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT UINT32 NICM_STDMETHOD
|
|
|
|
(Release) (
|
|
|
|
IN THISPTRONLY
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(CacheOpenSecretStore)
|
|
|
|
(
|
|
|
|
IN THISPTR
|
|
|
|
IN PVOID secretStoreID,
|
|
|
|
IN ULONG ssFlags,
|
|
|
|
OUT PVOID ssHandle,
|
|
|
|
IN OUT PVOID reserved
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(CacheCloseSecretStore)
|
|
|
|
(
|
|
|
|
IN THISPTR
|
|
|
|
IN PVOID ssHandle,
|
|
|
|
IN ULONG ssFlags,
|
|
|
|
IN OUT PVOID reserved
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(CacheRemoveSecretStore)
|
|
|
|
(
|
|
|
|
IN THISPTR
|
|
|
|
IN PVOID ssHandle,
|
|
|
|
IN ULONG ssFlags,
|
|
|
|
IN OUT PVOID reserved
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(CacheRemoveSecret) (
|
|
|
|
IN THISPTR
|
|
|
|
IN SCHANDLE hSC,
|
|
|
|
IN ULONG ssFlags,
|
|
|
|
IN SSCS_KEYCHAIN_ID_T *keyChainID,
|
|
|
|
IN SSCS_SECRET_ID_T *secretID,
|
|
|
|
IN SSCS_PASSWORD_T *epPassword,
|
|
|
|
IN PVOID reserved
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(CacheReadSecret) (
|
|
|
|
IN THISPTR
|
|
|
|
IN SCHANDLE hSC,
|
|
|
|
IN ULONG ssFlags,
|
|
|
|
IN SSCS_KEYCHAIN_ID_T *keyChainID,
|
|
|
|
IN SSCS_SECRET_ID_T *secretID,
|
|
|
|
IN OUT SSCS_SECRET_T *secretData,
|
|
|
|
IN SSCS_PASSWORD_T *epPassword,
|
|
|
|
IN OUT void *bytesRequired,
|
|
|
|
IN OUT void *reserved
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(CacheWriteSecret) (
|
|
|
|
IN THISPTR
|
|
|
|
IN SCHANDLE hSC,
|
|
|
|
IN ULONG ssFlags,
|
|
|
|
IN SSCS_KEYCHAIN_ID_T *keyChainID,
|
|
|
|
IN SSCS_SECRET_ID_T *secretID,
|
|
|
|
IN SSCS_SECRET_T *secretData,
|
|
|
|
IN SSCS_PASSWORD_T *epPassword,
|
|
|
|
IN void *reserved
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(CacheEnumerateSecretIDs) (
|
|
|
|
IN THISPTR
|
|
|
|
IN SCHANDLE hSC,
|
|
|
|
IN ULONG ssFlags,
|
|
|
|
IN SSCS_KEYCHAIN_ID_T *keyChainID,
|
|
|
|
IN SSCS_SRCH_KEY_T *searchKey,
|
|
|
|
IN OUT SSCS_SECRET_ID_LIST_T *secretIDList,
|
|
|
|
IN OUT VOID *reserved
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(CacheEnumerateKeyChainIDs) (
|
|
|
|
IN THISPTR
|
|
|
|
IN SCHANDLE hSC,
|
|
|
|
IN ULONG ssflags,
|
|
|
|
IN SSCS_SRCH_KEY_T *searchKey,
|
|
|
|
IN OUT SSCS_KEYCHAIN_ID_LIST_T *kcIDList,
|
|
|
|
IN OUT VOID *reserved
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(CacheAddKeyChain) (
|
|
|
|
IN THISPTR
|
|
|
|
IN SCHANDLE hSC,
|
|
|
|
IN ULONG ssFlags,
|
|
|
|
IN SSCS_KEYCHAIN_ID_T *keyChainID,
|
|
|
|
IN OUT PVOID reserved
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(CacheRemoveKeyChain) (
|
|
|
|
IN THISPTR
|
|
|
|
IN SCHANDLE hSC,
|
|
|
|
IN ULONG ssFlags,
|
|
|
|
IN SSCS_KEYCHAIN_ID_T *keyChainID,
|
|
|
|
IN OUT PVOID reserved
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(CacheGetSecretStoreInfo) (
|
|
|
|
IN THISPTR
|
|
|
|
IN SCHANDLE hSC,
|
|
|
|
IN ULONG ssFlags,
|
|
|
|
IN SSCS_SECRETSTORE_INFO_T *ssInfo,
|
|
|
|
IN OUT PVOID reserved
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(CacheGetKeychainInfo) (
|
|
|
|
IN THISPTR
|
|
|
|
IN SCHANDLE hSC,
|
|
|
|
IN ULONG ssFlags,
|
|
|
|
IN SSCS_KEYCHAIN_ID_T *keyChainID,
|
|
|
|
IN SSCS_KEYCHAIN_INFO_T *kcInfo,
|
|
|
|
IN OUT PVOID reserved
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(LockCache ) (
|
|
|
|
IN THISPTR
|
|
|
|
IN SCHANDLE hSC,
|
|
|
|
IN ULONG ssFlags,
|
|
|
|
IN OUT PVOID reserved
|
|
|
|
) PURE;
|
|
|
|
|
|
|
|
VIRT NCSTATUS NICM_STDMETHOD
|
|
|
|
(UnLockCache ) (
|
|
|
|
IN THISPTR
|
|
|
|
IN SCHANDLE hSC,
|
|
|
|
IN ULONG ssFlags,
|
|
|
|
IN SSCS_PASSCODE_T *passcode,
|
|
|
|
IN OUT PVOID reserved
|
|
|
|
) PURE;
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef ISecretStore FAR *PISecretStore;
|
|
|
|
|
|
|
|
#endif // _SECRETSTOREDEF_
|
|
|
|
|
|
|
|
//=========================================================================
|
|
|
|
//=========================================================================
|
|
|
|
|