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.
130 lines
2.9 KiB
130 lines
2.9 KiB
//+-----------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (c) Microsoft Corporation 1992 - 1996
|
|
//
|
|
// File: credmgr.h
|
|
//
|
|
// Contents: Structures and prototyps for Kerberos credential list
|
|
//
|
|
//
|
|
// History: 17-April-1996 Created MikeSw
|
|
//
|
|
//------------------------------------------------------------------------
|
|
|
|
#ifndef __CREDMGR_H__
|
|
#define __CREDMGR_H__
|
|
|
|
//
|
|
// All global variables declared as EXTERN will be allocated in the file
|
|
// that defines CREDMGR_ALLOCATE
|
|
//
|
|
#ifdef EXTERN
|
|
#undef EXTERN
|
|
#endif
|
|
|
|
#ifdef CREDMGR_ALLOCATE
|
|
#define EXTERN
|
|
#else
|
|
#define EXTERN extern
|
|
#endif
|
|
|
|
EXTERN KERBEROS_LIST KerbCredentialList;
|
|
EXTERN BOOLEAN KerberosCredentialsInitialized;
|
|
|
|
|
|
#define KerbGetCredentialHandle(_Credential_) ((LSA_SEC_HANDLE)(_Credential_))
|
|
|
|
|
|
NTSTATUS
|
|
KerbInitCredentialList(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
KerbFreeCredentialList(
|
|
VOID
|
|
);
|
|
|
|
|
|
NTSTATUS
|
|
KerbAllocateCredential(
|
|
PKERB_CREDENTIAL * NewCredential
|
|
);
|
|
|
|
NTSTATUS
|
|
KerbInsertCredential(
|
|
IN PKERB_CREDENTIAL Credential
|
|
);
|
|
|
|
|
|
NTSTATUS
|
|
KerbReferenceCredential(
|
|
IN LSA_SEC_HANDLE CredentialHandle,
|
|
IN ULONG Flags,
|
|
IN BOOLEAN RemoveFromList,
|
|
OUT PKERB_CREDENTIAL * Credential
|
|
);
|
|
|
|
|
|
VOID
|
|
KerbDereferenceCredential(
|
|
IN PKERB_CREDENTIAL Credential
|
|
);
|
|
|
|
|
|
VOID
|
|
KerbPurgeCredentials(
|
|
IN PLIST_ENTRY CredentialList
|
|
);
|
|
|
|
NTSTATUS
|
|
KerbCreateCredential(
|
|
IN PLUID LogonId,
|
|
IN PKERB_LOGON_SESSION LogonSession,
|
|
IN ULONG CredentialUseFlags,
|
|
IN PKERB_PRIMARY_CREDENTIAL * SuppliedCredentials,
|
|
IN ULONG CredentialFlags,
|
|
IN PUNICODE_STRING CredentialName,
|
|
OUT PKERB_CREDENTIAL * NewCredential,
|
|
OUT PTimeStamp ExpirationTime
|
|
);
|
|
|
|
VOID
|
|
KerbFreePrimaryCredentials(
|
|
IN PKERB_PRIMARY_CREDENTIAL Credentials,
|
|
IN BOOLEAN FreeBaseStructure
|
|
);
|
|
|
|
NTSTATUS
|
|
KerbGetTicketForCredential(
|
|
IN OPTIONAL PKERB_LOGON_SESSION LogonSession,
|
|
IN PKERB_CREDENTIAL Credential,
|
|
IN OPTIONAL PKERB_CREDMAN_CRED CredManCredentials,
|
|
IN OPTIONAL PUNICODE_STRING SuppRealm
|
|
);
|
|
//
|
|
// Credential flags
|
|
//
|
|
|
|
#define KERB_CRED_INBOUND SECPKG_CRED_INBOUND
|
|
#define KERB_CRED_OUTBOUND SECPKG_CRED_OUTBOUND
|
|
#define KERB_CRED_BOTH SECPKG_CRED_BOTH
|
|
#define KERB_CRED_TGT_AVAIL 0x80000000
|
|
#define KERB_CRED_NO_PAC 0x40000000
|
|
#define KERB_CRED_RESTRICTED 0x10000000
|
|
|
|
|
|
#define KERB_CRED_S4U_REQUIRED 0x01000000
|
|
#define KERB_CRED_LOCATE_ONLY 0x04000000 // Don't update the supplied credentials. Used for S4UToSelf location only.
|
|
#define KERB_CRED_LOCAL_ACCOUNT 0x08000000 // set on local accounts so Cred Man may be used
|
|
|
|
|
|
#define KERB_CRED_NULL_SESSION 0x20000000
|
|
#define KERB_CRED_LS_DEFAULT 0x00100000
|
|
|
|
|
|
|
|
#define KERB_CRED_MATCH_FLAGS (KERB_CRED_INBOUND | KERB_CRED_OUTBOUND | KERB_CRED_NULL_SESSION | KERB_CRED_NO_PAC)
|
|
#endif // __CREDMGR_H__
|