|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: SIPObj.hxx (base)
//
// Contents: Microsoft SIP Provider
//
// History: 15-Feb-1997 pberkman created
//
//--------------------------------------------------------------------------
#ifndef SIPOBJ_HXX
#define SIPOBJ_HXX
#include "global.hxx"
class SIPObject_ { public: SIPObject_(DWORD id); virtual ~SIPObject_(void);
virtual BOOL GetSignedDataMsg(SIP_SUBJECTINFO *pSI,DWORD dwIdx, DWORD *pdwDLen,BYTE *pbData, DWORD *pdwEncodeType); virtual BOOL PutSignedDataMsg(SIP_SUBJECTINFO *pSI,DWORD *dwIdx, DWORD dwDLen,BYTE *pbData, DWORD dwEncodeType); virtual BOOL RemoveSignedDataMsg(SIP_SUBJECTINFO *pSI,DWORD dwIdx) { return(FALSE); } virtual BOOL CreateIndirectData(SIP_SUBJECTINFO *pSI,DWORD *pdwDLen, SIP_INDIRECT_DATA *psData); virtual BOOL VerifyIndirectData(SIP_SUBJECTINFO *pSI, SIP_INDIRECT_DATA *psData);
virtual char *GetDataObjectID(void) { return(NULL); } virtual char *GetDataOIDHint(void) { return(NULL); }
void set_CertVersion(DWORD dwNewCertVersion); DWORD get_CertVersion(void) { return(uCertVersion); }
protected: HANDLE hFile; BOOL fUseFileMap; BYTE *pbFileMap; DWORD cbFileMap; HANDLE hMappedFile; DWORD dwFileAccess; HCRYPTPROV hProv; BOOL bCloseFile; BOOL fSizeFileOnly; UINT uSubjectForm; DWORD uCertVersion; void *SIPNew(DWORD cbytes);
virtual DWORD GetDigestFlags(SIP_SUBJECTINFO *pSI) { return(0); }
virtual void *GetMyStructure(SIP_SUBJECTINFO *pSI) { return(NULL); } virtual DWORD GetMyStructureSize(void) { return(0); }
virtual BOOL PutMessageInFile(SIP_SUBJECTINFO *pSI, WIN_CERTIFICATE *pWinCert,DWORD *pdwIndex) { return(FALSE); }
virtual BOOL GetMessageFromFile(SIP_SUBJECTINFO *pSI, WIN_CERTIFICATE *pWinCert,DWORD dwIndex, DWORD *pcbCert) { return(FALSE); }
virtual BOOL GetDigestStream(DIGEST_DATA *pDigestData, DIGEST_FUNCTION pfnCallBack, DWORD dwFlags) { return(FALSE); }
virtual BOOL FileHandleFromSubject(SIP_SUBJECTINFO *pSubject, DWORD dwAccess = GENERIC_READ, DWORD dwShared = FILE_SHARE_READ);
BYTE *DigestFile(HCRYPTPROV hProv, DWORD dwFlags, // allocates digest
char *pszAlgObjId, DWORD *cbDigest); // delete it after use!!!
BOOL OpenFile(LPCWSTR wFileName, DWORD dwAccess, DWORD dwShared); void AllocateAndFillCryptBitBlob(CRYPT_BIT_BLOB *bb,DWORD Flags, DWORD cUnusedBits); void DestroyCryptBitBlob(CRYPT_BIT_BLOB *bb); DWORD CryptBitBlobToFlags(CRYPT_BIT_BLOB *bb); BOOL LoadDefaultProvider(void); BOOL SeekAndReadFile(DWORD lFileOffset, BYTE *pb, DWORD cb); BOOL SeekAndWriteFile(DWORD lFileOffset,BYTE *pb, DWORD cb); BOOL MapFile(void); BOOL UnmapFile(void); };
#endif // SIPOBJ_HXX
|