windows-nt/Source/XPSP1/NT/ds/security/protocols/kerberos/client2/mitutil.h
2020-09-26 16:20:57 +08:00

102 lines
2.5 KiB
C

//+-----------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (c) Microsoft Corporation 1992 - 1997
//
// File: mitutil.h
//
// Contents: Prototypes & structures for MIT KDC support
//
//
// History: 4-March-1997 Created MikeSw
//
//------------------------------------------------------------------------
#ifndef __MITUTIL_H__
#define __MITUTIL_H__
typedef struct _KERB_MIT_SERVER_LIST {
LONG ServerCount;
LONG LastServerUsed;
PUNICODE_STRING ServerNames;
} KERB_MIT_SERVER_LIST, *PKERB_MIT_SERVER_LIST;
typedef struct _KERB_MIT_REALM {
KERBEROS_LIST_ENTRY Next;
ULONG Flags;
ULONG ApReqChecksumType;
ULONG PreAuthType;
ULONG RealmNameCount;
UNICODE_STRING RealmName;
PUNICODE_STRING AlternateRealmNames;
KERB_MIT_SERVER_LIST KdcNames;
KERB_MIT_SERVER_LIST KpasswdNames;
TimeStamp LastLookup;
} KERB_MIT_REALM, *PKERB_MIT_REALM;
#define KERB_MIT_REALM_SEND_ADDRESS 0x0001
#define KERB_MIT_REALM_TCP_SUPPORTED 0x0002
#define KERB_MIT_REALM_TRUSTED_FOR_DELEGATION 0x0004
#define KERB_MIT_REALM_DOES_CANONICALIZE 0x0008
// DNS lookup flags
#define KERB_MIT_REALM_KDC_LOOKUP 0x00010000
#define KERB_MIT_REALM_KPWD_LOOKUP 0x00020000
#define DNS_LOOKUP_TIMEOUT 120
#define DNS_TCP "_tcp."
#define DNS_UDP "_udp."
#define DNS_KERBEROS "_kerberos."
#define DNS_KPASSWD "_kpasswd."
#define DNS_MSKDC "_kerberos._tcp.dc._msdcs."
#define DNS_MAX_PREFIX 128 // udp + kerberos char count
#define MAX_SRV_RECORDS 50 // maximum server records
#define KERB_DOMAINS_KEY TEXT("System\\CurrentControlSet\\Control\\Lsa\\Kerberos\\Domains")
#define KERB_DOMAIN_KDC_NAMES_VALUE TEXT("KdcNames")
#define KERB_DOMAIN_KPASSWD_NAMES_VALUE TEXT("KpasswdNames")
#define KERB_DOMAIN_ALT_NAMES_VALUE TEXT("AlternateDomainNames")
#define KERB_DOMAIN_FLAGS_VALUE TEXT("RealmFlags")
#define KERB_DOMAIN_AP_REQ_CSUM_VALUE TEXT("ApReqChecksumType")
#define KERB_DOMAIN_PREAUTH_VALUE TEXT("PreAuthType")
BOOLEAN
KerbLookupMitRealm(
IN PUNICODE_STRING RealmName,
OUT PKERB_MIT_REALM * MitRealm,
OUT PBOOLEAN UsedAlternateName
);
NTSTATUS
KerbInitializeMitRealmList(
VOID
);
VOID
KerbUninitializeMitRealmList(
VOID
);
VOID
KerbFreeServerNames(
PKERB_MIT_SERVER_LIST ServerList
);
BOOLEAN
KerbLookupMitRealmWithSrvLookup(
PUNICODE_STRING RealmName,
PKERB_MIT_REALM * MitRealm,
BOOLEAN Kpasswd,
BOOLEAN UseTcp
);
#endif // __MITUTIL_H__