99 lines
3.3 KiB
C
99 lines
3.3 KiB
C
|
//+-----------------------------------------------------------------------
|
||
|
//
|
||
|
// Microsoft Windows
|
||
|
//
|
||
|
// Copyright (c) Microsoft Corporation 2000
|
||
|
//
|
||
|
// File: cred.h
|
||
|
//
|
||
|
// Contents: declarations, constants for credential manager
|
||
|
//
|
||
|
//
|
||
|
// History: KDamour 15Mar00 Created
|
||
|
//
|
||
|
//------------------------------------------------------------------------
|
||
|
|
||
|
#ifndef NTDIGEST_CRED_H
|
||
|
#define NTDIGEST_CRED_H
|
||
|
|
||
|
#define SSP_TOKEN_ACCESS (READ_CONTROL |\
|
||
|
WRITE_DAC |\
|
||
|
TOKEN_DUPLICATE |\
|
||
|
TOKEN_IMPERSONATE |\
|
||
|
TOKEN_QUERY |\
|
||
|
TOKEN_QUERY_SOURCE |\
|
||
|
TOKEN_ADJUST_PRIVILEGES |\
|
||
|
TOKEN_ADJUST_GROUPS |\
|
||
|
TOKEN_ADJUST_DEFAULT)
|
||
|
|
||
|
// Values for UseFlags
|
||
|
#define DIGEST_CRED_INBOUND SECPKG_CRED_INBOUND
|
||
|
#define DIGEST_CRED_OUTBOUND SECPKG_CRED_OUTBOUND
|
||
|
#define DIGEST_CRED_MATCH_FLAGS (DIGEST_CRED_INBOUND | DIGEST_CRED_OUTBOUND)
|
||
|
#define DIGEST_CRED_NULLSESSION SECPKG_CRED_RESERVED
|
||
|
|
||
|
|
||
|
// Supplimental Credential format (provide a specified username, realm, password)
|
||
|
// to
|
||
|
|
||
|
// Initializes the credential manager package
|
||
|
NTSTATUS CredHandlerInit(VOID);
|
||
|
|
||
|
// Inserts a credential into the linked list
|
||
|
NTSTATUS CredHandlerInsertCred(IN PDIGEST_CREDENTIAL pDigestCred);
|
||
|
|
||
|
// Initialize the Credential Structure
|
||
|
NTSTATUS CredentialInit(IN PDIGEST_CREDENTIAL pDigestCred);
|
||
|
|
||
|
// Initialize the Credential Structure
|
||
|
NTSTATUS CredentialFree(IN PDIGEST_CREDENTIAL pDigestCred);
|
||
|
|
||
|
// This routine checks to see if the Credential Handle is from a currently
|
||
|
// active client, and references the Credential if it is valid.
|
||
|
// No need to specify UseFlags since we have a reference to the Credential
|
||
|
NTSTATUS CredHandlerHandleToPtr(
|
||
|
IN ULONG_PTR CredentialHandle,
|
||
|
IN BOOLEAN DereferenceCredential,
|
||
|
OUT PDIGEST_CREDENTIAL * UserCredential);
|
||
|
|
||
|
// Locate a Credential based on the LogonId & ProcessID
|
||
|
NTSTATUS CredHandlerLocatePtr(
|
||
|
IN PLUID pLogonId,
|
||
|
IN ULONG CredentialUseFlags,
|
||
|
OUT PDIGEST_CREDENTIAL * UserCredential);
|
||
|
|
||
|
// Releases the Credential by decreasing reference counter
|
||
|
NTSTATUS CredHandlerRelease(PDIGEST_CREDENTIAL pCredential);
|
||
|
|
||
|
// Set the unicode string password in the credential
|
||
|
NTSTATUS CredHandlerPasswdSet(
|
||
|
IN OUT PDIGEST_CREDENTIAL pCredential,
|
||
|
IN PUNICODE_STRING pustrPasswd);
|
||
|
|
||
|
// Get the unicode string password in the credential
|
||
|
NTSTATUS CredHandlerPasswdGet(
|
||
|
IN PDIGEST_CREDENTIAL pCredential,
|
||
|
OUT PUNICODE_STRING pustrPasswd);
|
||
|
|
||
|
NTSTATUS SspGetToken (OUT PHANDLE ReturnedTokenHandle);
|
||
|
|
||
|
SECURITY_STATUS SspDuplicateToken(
|
||
|
IN HANDLE OriginalToken,
|
||
|
IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
|
||
|
OUT PHANDLE DuplicatedToken);
|
||
|
|
||
|
// Print out the credential information
|
||
|
NTSTATUS CredPrint(PDIGEST_CREDENTIAL pCredential);
|
||
|
|
||
|
// Extract the authz information from supplied buffer
|
||
|
NTSTATUS CredAuthzData(
|
||
|
IN PVOID pAuthorizationData,
|
||
|
IN PSECPKG_CALL_INFO pCallInfo,
|
||
|
IN OUT PULONG NewCredentialUseFlags,
|
||
|
IN OUT PUNICODE_STRING pUserName,
|
||
|
IN OUT PUNICODE_STRING pDomainName,
|
||
|
IN OUT PUNICODE_STRING pPassword);
|
||
|
|
||
|
#endif // NTDIGEST_CRED_H
|
||
|
|