/*++ Copyright (c) 1997 Microsoft Corporation Module Name: iiscblob.h Abstract: This include file contains the definition of the IIS_CRYPTO_BLOB structure and associated constants. Author: Keith Moore (keithmo) 25-Feb-1997 Revision History: --*/ #ifndef _IISCBLOB_H_ #define _IISCBLOB_H_ #ifndef _IIS_CRYPTO_BLOB_DEFINED #define _IIS_CRYPTO_BLOB_DEFINED #ifdef __cplusplus extern "C" { #endif // __cplusplus // // Structure signatures for the various blob types. // #define SALT_BLOB_SIGNATURE ((DWORD)'bScI') #define KEY_BLOB_SIGNATURE ((DWORD)'bKcI') #define PUBLIC_KEY_BLOB_SIGNATURE ((DWORD)'bPcI') #define DATA_BLOB_SIGNATURE ((DWORD)'bDcI') #define HASH_BLOB_SIGNATURE ((DWORD)'bHcI') #define CLEARTEXT_BLOB_SIGNATURE ((DWORD)'bCcI') // // A crypto blob. Note that this is just the header for the blob. // The details of the blob internals are private to the IIS Crypto // package. // typedef struct _IIS_CRYPTO_BLOB { // // The structure signature for this blob. // DWORD BlobSignature; // // The total length of this blob, NOT including this header. // DWORD BlobDataLength; #if defined(MIDL_PASS) // // Define the raw data so that MIDL can marshal correctly. // [size_is(BlobDataLength)] unsigned char BlobData[*]; #endif // MIDL_PASS } IIS_CRYPTO_BLOB; #if defined(MIDL_PASS) // BUGBUG: Hackety Hack: midl doesn't know about __unaligned, so we don't // tell it. At some point, midl should be fixed to know about it. Also, // we should ultimately stop using __unaligned typedef IIS_CRYPTO_BLOB *PIIS_CRYPTO_BLOB; #else typedef IIS_CRYPTO_BLOB UNALIGNED64 *PIIS_CRYPTO_BLOB; #endif // MIDL_PASS #ifdef __cplusplus } // extern "C" #endif // __cplusplus #endif // _IIS_CRYPTO_BLOB_DEFINED #endif // _IISCBLOB_H_