|
|
//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1997 - 1999 // // File: pstrpc.idl // // Description: // // This file describes the DPAPI ICryptProtect interface, which // is a local-only RPC interface used by the CryptProtectData and // CryptUnprotectData functions. The server-side handlers for this // interface live in the lsass.exe process. // //--------------------------------------------------------------------------
import "unknwn.idl"; import "basetsd.h";
typedef struct _SSCRYPTPROTECTDATA_PROMPTSTRUCT { DWORD cbSize; DWORD dwPromptFlags; // DWORD_PTR hwndApp; // LPCWSTR szPrompt; } SSCRYPTPROTECTDATA_PROMPTSTRUCT, *PSSCRYPTPROTECTDATA_PROMPTSTRUCT;
//////////////////////////// // Interfaces
[ uuid(11220835-5b26-4d94-ae86-c3e475a809de), version(1.0), pointer_default(unique) ] interface ICryptProtect {
DWORD SSCryptProtectData( [in] handle_t h,
[out][size_is(,*pcbOut)] BYTE** ppbOut, [out] DWORD* pcbOut,
[in][size_is(cbIn)] BYTE* pbIn, // in encr data [in] DWORD cbIn, // in encr cb
[in] LPCWSTR szDataDescr,
[in, unique][size_is(cbOptionalEntropy)] BYTE* pbOptionalEntropy, [in] DWORD cbOptionalEntropy,
[in, unique] PSSCRYPTPROTECTDATA_PROMPTSTRUCT pPromptStruct, [in] DWORD dwFlags, [in, unique][size_is(cbOptionalPassword)] BYTE* pbOptionalPassword, [in] DWORD cbOptionalPassword );
DWORD SSCryptUnprotectData( [in] handle_t h,
[out][size_is(,*pcbOut)] BYTE** ppbOut, [out] DWORD* pcbOut,
[in][size_is(cbIn)] BYTE* pbIn, // in encr data [in] DWORD cbIn, // in encr cb
[in,out,ptr] LPWSTR* ppszDataDescr,
[in, unique][size_is(cbOptionalEntropy)] BYTE* pbOptionalEntropy, [in] DWORD cbOptionalEntropy,
[in, unique] PSSCRYPTPROTECTDATA_PROMPTSTRUCT pPromptStruct, [in] DWORD dwFlags, [in, unique][size_is(cbOptionalPassword)] BYTE* pbOptionalPassword, [in] DWORD cbOptionalPassword );
}
|