You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
2.4 KiB
111 lines
2.4 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows NT Security
|
|
// Copyright (C) Microsoft Corporation, 1997 - 1999
|
|
//
|
|
// File: async.h
|
|
//
|
|
// Contents: Async Parameter Management definitions
|
|
//
|
|
// History: 05-Aug-97 kirtd Created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
#if !defined(__ASYNC_H__)
|
|
#define __ASYNC_H__
|
|
|
|
//
|
|
// CCryptAsyncHandle. Async parameter handle class, a list of OID
|
|
// specified parameters.
|
|
//
|
|
|
|
typedef struct _CRYPT_ASYNC_PARAM {
|
|
|
|
LPSTR pszOid;
|
|
LPVOID pvParam;
|
|
PFN_CRYPT_ASYNC_PARAM_FREE_FUNC pfnFree;
|
|
struct _CRYPT_ASYNC_PARAM* pPrev;
|
|
struct _CRYPT_ASYNC_PARAM* pNext;
|
|
|
|
} CRYPT_ASYNC_PARAM, *PCRYPT_ASYNC_PARAM;
|
|
|
|
class CCryptAsyncHandle
|
|
{
|
|
public:
|
|
|
|
//
|
|
// Construction
|
|
//
|
|
|
|
CCryptAsyncHandle (DWORD dwFlags);
|
|
~CCryptAsyncHandle ();
|
|
|
|
//
|
|
// Management methods
|
|
//
|
|
|
|
BOOL SetAsyncParam (
|
|
LPSTR pszParamOid,
|
|
LPVOID pvParam,
|
|
PFN_CRYPT_ASYNC_PARAM_FREE_FUNC pfnFree
|
|
);
|
|
|
|
BOOL GetAsyncParam (
|
|
LPSTR pszParamOid,
|
|
LPVOID* ppvParam,
|
|
PFN_CRYPT_ASYNC_PARAM_FREE_FUNC* ppfnFree
|
|
);
|
|
|
|
private:
|
|
|
|
//
|
|
// Lock
|
|
//
|
|
|
|
CRITICAL_SECTION m_AsyncLock;
|
|
|
|
//
|
|
// Parameter lists
|
|
//
|
|
|
|
PCRYPT_ASYNC_PARAM m_pConstOidList;
|
|
PCRYPT_ASYNC_PARAM m_pStrOidList;
|
|
|
|
//
|
|
// Private methods
|
|
//
|
|
|
|
BOOL AllocAsyncParam (
|
|
LPSTR pszParamOid,
|
|
BOOL fConstOid,
|
|
LPVOID pvParam,
|
|
PFN_CRYPT_ASYNC_PARAM_FREE_FUNC pfnFree,
|
|
PCRYPT_ASYNC_PARAM* ppParam
|
|
);
|
|
|
|
VOID FreeAsyncParam (
|
|
PCRYPT_ASYNC_PARAM pParam,
|
|
BOOL fConstOid
|
|
);
|
|
|
|
VOID AddAsyncParam (
|
|
PCRYPT_ASYNC_PARAM pParam,
|
|
BOOL fConstOid
|
|
);
|
|
|
|
VOID RemoveAsyncParam (
|
|
PCRYPT_ASYNC_PARAM pParam
|
|
);
|
|
|
|
PCRYPT_ASYNC_PARAM FindAsyncParam (
|
|
LPSTR pszParamOid,
|
|
BOOL fConstOid
|
|
);
|
|
|
|
VOID FreeOidList (
|
|
PCRYPT_ASYNC_PARAM pOidList,
|
|
BOOL fConstOidList
|
|
);
|
|
};
|
|
|
|
#endif
|
|
|