Source code of Windows XP (NT5)
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.
|
|
//+-----------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (c) Microsoft Corporation 1992 - 1996
//
// File: kerbcred.h
//
// Contents: structures for kerberos primary and supplemental credentials
//
//
// History: 20-Aug-1996 MikeSw Created
//
//------------------------------------------------------------------------
#ifndef __KERBCRED_H__
#define __KERBCRED_H__
//
// Kerberos primary credentials store keys suitable for different
// encryption types.
//
#ifndef _KRB5_Module_H_
typedef struct _KERB_RPC_OCTET_STRING { unsigned long length; #ifdef MIDL_PASS
[size_is(length)] #endif // MIDL_PASS
unsigned char *value; } KERB_RPC_OCTET_STRING;
typedef struct _KERB_ENCRYPTION_KEY { long keytype; KERB_RPC_OCTET_STRING keyvalue; } KERB_ENCRYPTION_KEY; #endif // _KRB5_Module_H_
typedef struct _KERB_KEY_DATA { UNICODE_STRING Salt; KERB_ENCRYPTION_KEY Key; } KERB_KEY_DATA, *PKERB_KEY_DATA;
typedef struct _KERB_STORED_CREDENTIAL { USHORT Revision; USHORT Flags; USHORT CredentialCount; USHORT OldCredentialCount; UNICODE_STRING DefaultSalt; #ifdef MIDL_PASS
[size_is(CredentialCount + OldCredentialCount)] KERB_KEY_DATA Credentials[*]; #else
KERB_KEY_DATA Credentials[ANYSIZE_ARRAY]; #endif // MIDL_PASS
} KERB_STORED_CREDENTIAL, *PKERB_STORED_CREDENTIAL;
#define KERB_PRIMARY_CRED_OWF_ONLY 2
#define KERB_PRIMARY_CRED_REVISION 3
//
// Flags for setting account keys
//
#define KERB_SET_KEYS_REPLACE 0x1
//
// KERB_STORED_CREDENTIALS are stored in the DS (blob), so
// they've got to be stored in 32 bit format, for W2k and
// 32bit DC compatibility. 7/6/2000 - TS
//
#define KERB_KEY_DATA32_SIZE 20
#define KERB_STORED_CREDENTIAL32_SIZE 16
#pragma pack(4)
typedef struct _KERB_ENCRYPTION_KEY32 { LONG keytype; ULONG keyvaluelength; // KERB_RPC_OCTET_STRING32
ULONG keyvaluevalue; } KERB_ENCRYPTION_KEY32;
typedef struct _KERB_KEY_DATA32 { UNICODE_STRING32 Salt; KERB_ENCRYPTION_KEY32 Key; // KERB_ENCRYPTION_KEY32
} KERB_KEY_DATA32, *PKERB_KEY_DATA32;
typedef struct _KERB_STORED_CREDENTIAL32 { USHORT Revision; USHORT Flags; USHORT CredentialCount; USHORT OldCredentialCount; UNICODE_STRING32 DefaultSalt; #ifdef MIDL_PASS
[size_is(CredentialCount + OldCredentialCount)] KERB_KEY_DATA32 Credentials[*]; // KERB_KEY_DATA32
#else
KERB_KEY_DATA32 Credentials[ANYSIZE_ARRAY]; #endif // MIDL_PASS
} KERB_STORED_CREDENTIAL32, *PKERB_STORED_CREDENTIAL32;
#pragma pack()
#ifdef _WIN64
NTSTATUS KdcPack32BitStoredCredential( IN PKERB_STORED_CREDENTIAL Cred64, OUT PKERB_STORED_CREDENTIAL32 * ppCred32, OUT PULONG pCredSize );
NTSTATUS KdcUnpack32BitStoredCredential( IN PKERB_STORED_CREDENTIAL32 Cred32, IN OUT PKERB_STORED_CREDENTIAL * ppCred64, IN OUT PULONG CredLength ); #endif // WIN64
#endif // __KERBCRED_H__
|