// internal key headers stuff

// header structure for the key request data.
// the first version of Keyring just saved the raw request data
// in the object. Now, however, we wish to store additional data
// A typical example is a key request that was sent to an online
// authority, but the response was delayed. We need to mark it
// somewhere so we know to go back to the authority and see if it
// is ready at a later date. In some ways, it would make sense to
// store that in the certificate pointer, but the key services
// assume that that is an actual certificate. The request pointer,
// however, is stored by the services, but its content is private
// to the keyring application. Thus, that is where it goes.

// 5/19/97 Boydm - changed string from dll path to interface GUID - set to version x0101


#define REQUEST_HEADER_K2B2VERSION  0x0101

#define REQUEST_HEADER_IDENTIFIER	'RHDR'
#define REQUEST_HEADER_CURVERSION	0x0101



typedef struct _KeyRequestHeader
	{
	DWORD	Identifier;				// must be 'RHDR'
	DWORD	Version;				// version of header record
	DWORD	cbSizeOfHeader;			// byte count of header. Afterwards is the request.
	DWORD	cbRequestSize;			// size of the request that follows
	BOOL	fReqSentToOnlineCA;
    LONG    longRequestID;
	BOOL	fWaitingForApproval;
	char	chCA[MAX_PATH];
	} KeyRequestHeader, *LPREQUEST_HEADER;