windows-nt/Source/XPSP1/NT/inetsrv/iis/inc/iiscblob.h

102 lines
1.8 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
/*++
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_