1918 lines
49 KiB
C
1918 lines
49 KiB
C
|
#include <windows.h>
|
||
|
#include <string.h>
|
||
|
#include <bh.h>
|
||
|
#include <netmon.h>
|
||
|
|
||
|
|
||
|
#define FORMAT_BUFFER_SIZE 80
|
||
|
|
||
|
// Variables used in kerbparser.c to check
|
||
|
// for continuation packets.
|
||
|
HPROTOCOL hTCP = NULL;
|
||
|
HPROTOCOL hUDP = NULL;
|
||
|
|
||
|
|
||
|
// Begin Definitions for Encryption types
|
||
|
// Leaving the negative values out until I can figure out
|
||
|
// why some are labeled negative and some positive.
|
||
|
/*
|
||
|
#define KERB_ETYPE_RC4_MD4 -128
|
||
|
#define KERB_ETYPE_RC4_PLAIN2 -129
|
||
|
#define KERB_ETYPE_RC4_LM -130
|
||
|
#define KERB_ETYPE_RC4_SHA -131
|
||
|
#define KERB_ETYPE_DES_PLAIN -132
|
||
|
*/
|
||
|
|
||
|
#define KERB_ETYPE_RC4_HMAC_OLD 0x7B //-133
|
||
|
#define KERB_ETYPE_RC4_PLAIN_OLD 0x7A //-134
|
||
|
#define KERB_ETYPE_RC4_HMAC_OLD_EXP 0x79 //-135
|
||
|
#define KERB_ETYPE_RC4_PLAIN_OLD_EXP 0x78 //-136
|
||
|
#define KERB_ETYPE_RC4_PLAIN 0x77 //-140
|
||
|
#define KERB_ETYPE_RC4_PLAIN_EXP 0x76 //-141
|
||
|
|
||
|
#define KERB_ETYPE_NULL 0
|
||
|
#define KERB_ETYPE_DES_CBC_CRC 1
|
||
|
#define KERB_ETYPE_DES_CBC_MD4 2
|
||
|
#define KERB_ETYPE_DES_CBC_MD5 3
|
||
|
|
||
|
#define KERB_ETYPE_DSA_SHA1_CMS 9
|
||
|
#define KERB_ETYPE_RSA_MD5_CMS 10
|
||
|
#define KERB_ETYPE_RSA_SHA1_CMS 11
|
||
|
#define KERB_ETYPE_RC2_CBC_ENV 12
|
||
|
#define KERB_ETYPE_RSA_ENV 13
|
||
|
#define KERB_ETYPE_RSA_ES_OEAP_ENV 14
|
||
|
#define KERB_ETYPE_DES_EDE3_CBC_ENV 15
|
||
|
|
||
|
#define KERB_ETYPE_DES_CBC_MD5_NT 20
|
||
|
#define KERB_ETYPE_RC4_HMAC_NT 23
|
||
|
#define KERB_ETYPE_RC4_HMAC_NT_EXP 24
|
||
|
|
||
|
#define KERB_ETYPE_OLD_RC4_MD4 128
|
||
|
#define KERB_ETYPE_OLD_RC4_PLAIN 129
|
||
|
#define KERB_ETYPE_OLD_RC4_LM 130
|
||
|
#define KERB_ETYPE_OLD_RC4_SHA 131
|
||
|
#define KERB_ETYPE_OLD_DES_PLAIN 132
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/* These are in kerbcon.h as well but there is a conflict
|
||
|
with the ones listed above. Worry about it later.
|
||
|
#define KERB_ETYPE_DSA_SIGN 8
|
||
|
#define KERB_ETYPE_RSA_PRIV 9
|
||
|
#define KERB_ETYPE_RSA_PUB 10
|
||
|
#define KERB_ETYPE_RSA_PUB_MD5 11
|
||
|
#define KERB_ETYPE_RSA_PUB_SHA1 12
|
||
|
#define KERB_ETYPE_PKCS7_PUB 13
|
||
|
*/
|
||
|
// In use types
|
||
|
|
||
|
|
||
|
|
||
|
// End Definition of encryption types
|
||
|
|
||
|
|
||
|
#define ASN1_KRB_AS_REQ 0x0A
|
||
|
#define ASN1_KRB_AS_REP 0x0B
|
||
|
#define ASN1_KRB_TGS_REQ 0x0C
|
||
|
#define ASN1_KRB_TGS_REP 0x0D
|
||
|
#define ASN1_KRB_AP_REQ 0x0E
|
||
|
#define ASN1_KRB_AP_REP 0x0F
|
||
|
#define ASN1_KRB_SAFE 0x14
|
||
|
#define ASN1_KRB_PRIV 0x15
|
||
|
#define ASN1_KRB_CRED 0x16
|
||
|
#define ASN1_KRB_ERROR 0x1E
|
||
|
|
||
|
#define UNIVERSAL 0x00
|
||
|
#define APPLICATION 0x40
|
||
|
#define CONTEXT_SPECIFIC 0x80
|
||
|
#define PRIVATE 0xC0
|
||
|
|
||
|
|
||
|
// Creating this function to change the format of GeneralizedTime
|
||
|
LPBYTE DispSumTime(HFRAME hFrame, LPBYTE TempFrame, int ClassValue, int OffSet, DWORD TypeVal);
|
||
|
|
||
|
|
||
|
LPBYTE TempFrame, TempFramePadata, TempFrameReq, TempFrameReq2;
|
||
|
DWORD TypeVal, TypeVal2, TypeVal3;
|
||
|
|
||
|
#define TIME_FORMAT_STRING "%c%c/%c%c/%c%c%c%c %c%c:%c%c:%c%c UTC Time Zone"
|
||
|
#define TIME_FORMAT_SIZE sizeof("00/00/0000 00:00:00 UTC Time Zone")
|
||
|
#define MAX_SERVER_NAME_SEGMENTS 100
|
||
|
|
||
|
LPPROTOCOLINFO ProtoInfo;
|
||
|
BOOL TestForUDP;
|
||
|
|
||
|
//char test[1];
|
||
|
char MsgType[ sizeof "Didn't recognize" ]/*, MsgType2[24]*/;
|
||
|
//char PrinName[32];
|
||
|
|
||
|
|
||
|
BYTE LongSize, TempStore, TempStoreEF;
|
||
|
int x, OffSet, lValue, ClassValue;
|
||
|
WORD TempLen;
|
||
|
|
||
|
// Definitions for KDC-REP
|
||
|
BYTE TempRepCname, TempRepGString, TempReqPadata, TempReq;
|
||
|
int lValueRepMsg, lValueCname, lValuePadata, lValueReq;
|
||
|
|
||
|
// Following enum is for the variables of KDC-REP
|
||
|
enum{
|
||
|
PvnoKdcRep = 0,
|
||
|
MsgTypeKdcRep,
|
||
|
PaDataKdcRep,
|
||
|
CrealmKdcRep,
|
||
|
CnameKdcRep,
|
||
|
TicketKdcRep,
|
||
|
EncpartKdcRep
|
||
|
};
|
||
|
|
||
|
|
||
|
// End definitions for KDC-REP
|
||
|
// Following enum is for Variables of ticket
|
||
|
enum{
|
||
|
tktvno = 0,
|
||
|
realm,
|
||
|
sname,
|
||
|
encpart
|
||
|
};
|
||
|
|
||
|
enum{
|
||
|
app1 = 1
|
||
|
};
|
||
|
|
||
|
enum{
|
||
|
PVNO =1,
|
||
|
MSGTYPE,
|
||
|
PADATA,
|
||
|
REQBODY
|
||
|
};
|
||
|
|
||
|
enum{
|
||
|
nametype = 0,
|
||
|
namestring
|
||
|
};
|
||
|
|
||
|
// Set values for Principal Name types
|
||
|
enum{
|
||
|
NT_UKNOWN = 0,
|
||
|
NT_PRINCIPAL,
|
||
|
NT_SRV_INST,
|
||
|
NT_SRV_HST,
|
||
|
NT_SRV_XHST,
|
||
|
NT_UID,
|
||
|
NT_X500_PRINCIPAL
|
||
|
};
|
||
|
|
||
|
// Enum to set the Tag values for KRB-ERROR
|
||
|
enum{
|
||
|
PvnoErr = 0,
|
||
|
MsgtypeErr,
|
||
|
CtimeErr,
|
||
|
CusecErr,
|
||
|
StimeErr,
|
||
|
SusecErr,
|
||
|
ErrorcodeErr,
|
||
|
CrealmErr,
|
||
|
CnameErr,
|
||
|
RealmErr,
|
||
|
SnameErr,
|
||
|
EtextErr,
|
||
|
EdataErr
|
||
|
};
|
||
|
|
||
|
// Enum to assign values to Kerberos Errors
|
||
|
enum{
|
||
|
KDC_ERR_NONE = 0, // 0
|
||
|
KDC_ERR_NAME_EXP, // 1
|
||
|
KDC_ERR_SERVICE_EXP, // 2
|
||
|
KDC_ERR_BAD_PVNO, // 3
|
||
|
KDC_ERR_C_OLD_MAST_KVNO, // 4
|
||
|
KDC_ERR_S_OLD_MAST_KVNO, // 5
|
||
|
KDC_ERR_C_PRINCIPAL_UNKNOWN, // 6
|
||
|
KDC_ERR_S_PRINCIPAL_UNKNOWN, // 7
|
||
|
KDC_ERR_PRINCIPAL_NOT_UNIQUE, // 8
|
||
|
KDC_ERR_NULL_KEY, // 9
|
||
|
KDC_ERR_CANNOT_POSTDATE, // 10
|
||
|
KDC_ERR_NEVER_VALID, // 11
|
||
|
KDC_ERR_POLICY, // 12
|
||
|
KDC_ERR_BADOPTION, // 13
|
||
|
KDC_ERR_ETYPE_NOSUPP, // 14
|
||
|
KDC_ERR_SUMTYPE_NOSUPP, // 15
|
||
|
KDC_ERR_PADATA_TYPE_NOSUPP, // 16
|
||
|
KDC_ERR_TRTYPE_NOSUPP, // 17
|
||
|
KDC_ERR_CLIENT_REVOKED, // 18
|
||
|
KDC_ERR_SERVICE_REVOKED, // 19
|
||
|
KDC_ERR_TGT_REVOKED, // 20
|
||
|
KDC_ERR_CLIENT_NOTYET, // 21
|
||
|
KDC_ERR_SERVICE_NOTYET, // 22
|
||
|
KDC_ERR_KEY_EXPIRED, // 23
|
||
|
KDC_ERR_PREAUTH_FAILED, // 24
|
||
|
KDC_ERR_PREAUTH_REQUIRED, // 25
|
||
|
KDC_ERR_SERVER_NOMATCH, // 26
|
||
|
KDC_ERR_MUST_USE_USER2USER, // 27
|
||
|
KDC_ERR_PATH_NOT_ACCEPTED, // 28
|
||
|
KDC_ERR_SVC_UNAVAILABLE, // 29
|
||
|
KRB_AP_ERR_BAD_INTEGRITY = 31, // 31
|
||
|
KRB_AP_ERR_TKT_EXPIRED, // 32
|
||
|
KRB_AP_ERR_TKT_NYV, // 33
|
||
|
KRB_AP_ERR_REPEAT, // 34
|
||
|
KRB_AP_ERR_NOT_US, // 35
|
||
|
KRB_AP_ERR_BADMATCH, // 36
|
||
|
KRB_AP_ERR_SKEW, // 37
|
||
|
KRB_AP_ERR_BADADDR, // 38
|
||
|
KRB_AP_ERR_BADVERSION, // 39
|
||
|
KRB_AP_ERR_MSG_TYPE, // 40
|
||
|
KRB_AP_ERR_MODIFIED, // 41
|
||
|
KRB_AP_ERR_BADORDER, // 42
|
||
|
KRB_AP_ERR_BADKEYVER = 44, // 44
|
||
|
KRB_AP_ERR_NOKEY, // 45
|
||
|
KRB_AP_ERR_MUT_FAIL, // 46
|
||
|
KRB_AP_ERR_BADDIRECTION, // 47
|
||
|
KRB_AP_ERR_METHOD, // 48
|
||
|
KRB_AP_ERR_BADSEQ, // 49
|
||
|
KRB_AP_ERR_INAPP_CKSUM, // 50
|
||
|
KRB_AP_PATH_NOT_ACCEPTED, // 51
|
||
|
KRB_ERR_RESPONSE_TOO_BIG, // 52
|
||
|
KRB_ERR_GENERIC = 60, // 60
|
||
|
KRB_ERR_FIELD_TOOLONG, // 61
|
||
|
KDC_ERROR_CLIENT_NOT_TRUSTED, // 62
|
||
|
KDC_ERROR_KDC_NOT_TRUSTED, // 63
|
||
|
KDC_ERROR_INVALID_SIG, // 64
|
||
|
KDC_ERROR_KEY_TOO_WEAK, // 65
|
||
|
KDC_ERR_CERTIFICATE_MISMATCH, // 66
|
||
|
KDC_AP_ERROR_NO_TGT, // 67
|
||
|
KDC_ERR_WRONG_REALM, // 68
|
||
|
KDC_AP_ERR_USER_TO_USER_REQURED, // 69
|
||
|
KDC_ERR_CANT_VERIFY_CERTIFICATE, // 70
|
||
|
KDC_ERR_INVALID_CERTIFICATE, // 71
|
||
|
KDC_ERR_REVOKED_CERTIFICATE, // 72
|
||
|
KDC_ERR_REVOCATION_STATUS_UNKNOWN, //73
|
||
|
KDC_ERR_REVOCATION_STATUS_UNAVAILABLE, // 74
|
||
|
KDC_ERR_CLIENT_NAME_MISMATCH, // 75
|
||
|
KDC_ERR_KDC_NAME_MISMATCH // 76
|
||
|
};
|
||
|
// End Enum for error codes
|
||
|
|
||
|
// Values of padata type
|
||
|
enum{
|
||
|
PA_TGS_REQ = 1,
|
||
|
PA_ENC_TIMESTAMP, // 2
|
||
|
PA_PW_SALT, // 3
|
||
|
Reserved, // 4
|
||
|
PA_ENC_UNIX_TIME, // 5
|
||
|
PA_SANDIA_SECUREID, // 6
|
||
|
PA_SESAME, // 7
|
||
|
PA_OSF_DCE, // 8
|
||
|
PA_CYBERSAFE_SECUREID, // 9
|
||
|
PA_AFS3_SALT, // 0x0A
|
||
|
PA_ETYPE_INFO, // 0x0B
|
||
|
SAM_CHALLENGE, // 0x0C
|
||
|
SAM_RESPONSE, // 0x0D
|
||
|
PA_PK_AS_REQ, // 0x0E
|
||
|
PA_PK_AS_REP, // 0x0F
|
||
|
PA_PK_AS_SIGN, // 0x10
|
||
|
PA_PK_KEY_REQ, // 0x11
|
||
|
PA_PK_KEY_REP, // 0x12
|
||
|
PA_USE_SPECIFIELD_KVNO, // 0x13
|
||
|
SAM_REDIRECT, // 0x14
|
||
|
PA_GET_FROM_TYPED_DATA // 0x15
|
||
|
};
|
||
|
|
||
|
enum{
|
||
|
kdcoptions = 0,
|
||
|
cnamebody,
|
||
|
realmbody,
|
||
|
snamebody,
|
||
|
frombody,
|
||
|
tillbody,
|
||
|
rtimebody,
|
||
|
noncebody,
|
||
|
etypebody,
|
||
|
addressesbody,
|
||
|
encauthdatabody,
|
||
|
addtixbody
|
||
|
};
|
||
|
|
||
|
enum{
|
||
|
addrtype = 0,
|
||
|
address
|
||
|
};
|
||
|
|
||
|
enum{
|
||
|
etype = 0,
|
||
|
kvno,
|
||
|
cipher
|
||
|
};
|
||
|
|
||
|
enum{
|
||
|
PvnoApReq = 0,
|
||
|
MsgTypeApReq,
|
||
|
ApOptionsApReq,
|
||
|
TicketApReq,
|
||
|
AuthenticatorApReq
|
||
|
};
|
||
|
|
||
|
enum { ticket = 1};
|
||
|
|
||
|
enum{
|
||
|
Tixtkt_vno = 0,
|
||
|
TixRealm,
|
||
|
TixSname,
|
||
|
TixEnc_part
|
||
|
};
|
||
|
|
||
|
enum{
|
||
|
methodtype = 0,
|
||
|
methoddata
|
||
|
};
|
||
|
|
||
|
|
||
|
// kf 8/10 Rem the ifdef and trying to prevent global variables
|
||
|
// Using this statement to prevent multiple definitions
|
||
|
//#ifdef MAINPROG
|
||
|
// Defining these here while troubleshooting a report Access Violation
|
||
|
// Need to define the values locally and do away with as many of the
|
||
|
// Global variables as possible.
|
||
|
|
||
|
//KF 10/15 CHANGING TO LABELED_BIT IN ORDER TO TRY AND PHASE OUT
|
||
|
// QUAL_BITFIELDS AND USE QUAL_FLAGS. THERE ARE APPROX 15 BITFIELD
|
||
|
// USED IN KERBEROSDATABASE. I WILL COMMENT THERE WHERE I CHANGED TO FLAGS
|
||
|
// BUT I WILL NOT COMMENT THE LABLELS ANY MORE. ALL LABELED_BYTES HAVE BEEN
|
||
|
// CHANGED TO LABELED_BIT
|
||
|
//LABELED_BYTE ClassTag[] = {
|
||
|
LABELED_BYTE ClassTag[] = {
|
||
|
{0xC0, NULL},
|
||
|
{UNIVERSAL, "Class Tag (Universal)"},
|
||
|
{APPLICATION, "Class Tag (Application)"},
|
||
|
{CONTEXT_SPECIFIC, "Class Tag (Context Specific)"},
|
||
|
{PRIVATE, "Class Tag (Private)"},
|
||
|
};
|
||
|
|
||
|
|
||
|
SET ClassTagSet = { (sizeof(ClassTag)/sizeof(LABELED_BYTE)), ClassTag };
|
||
|
|
||
|
|
||
|
|
||
|
LABELED_BIT PC[] = {
|
||
|
{ 5, "P/C (Primitive)", "P/C (Constructed)"},
|
||
|
};
|
||
|
|
||
|
SET PCSet = { sizeof(PC)/sizeof(LABELED_BIT), PC };
|
||
|
|
||
|
|
||
|
LABELED_BYTE KrbMsgType[] = {
|
||
|
{0x1F, NULL},
|
||
|
{ASN1_KRB_AS_REQ, "KRB_AS_REQ"},
|
||
|
{ASN1_KRB_AS_REP, "KRB_AS_REP"},
|
||
|
{ASN1_KRB_TGS_REQ, "KRB_TGS_REQ"},
|
||
|
{ASN1_KRB_TGS_REP, "KRB_TGS_REP"},
|
||
|
{ASN1_KRB_AP_REQ, "KRB_AP_REQ"},
|
||
|
{ASN1_KRB_AP_REP, "KRB_AP_REP"},
|
||
|
{ASN1_KRB_SAFE, "KRB_SAFE"},
|
||
|
{ASN1_KRB_PRIV, "KRB_PRIV"},
|
||
|
{ASN1_KRB_CRED, "KRB_CRED"},
|
||
|
{ASN1_KRB_ERROR, "KRB_ERROR"}
|
||
|
};
|
||
|
|
||
|
SET KrbMsgTypeSet = { (sizeof(KrbMsgType)/sizeof(LABELED_BYTE)), KrbMsgType };
|
||
|
|
||
|
LABELED_BIT Length[] = {
|
||
|
{ 7, "Short Form", "Long Form"},
|
||
|
};
|
||
|
|
||
|
SET LengthSet = { sizeof(Length)/sizeof(LABELED_BIT), Length };
|
||
|
|
||
|
LABELED_BYTE UniversalTag[] = {
|
||
|
{0x1F, NULL},
|
||
|
{0x01, "BOOLEAN"},
|
||
|
{0x02, "INTEGER"},
|
||
|
{0x03, "BIT STRING"},
|
||
|
{0x04, "OCTET STRING"},
|
||
|
{0x05, "NULL"},
|
||
|
{0x06, "OBJECT IDENTIFIER"},
|
||
|
{0x07, "ObjectDescriptor"},
|
||
|
{0x08, "EXTERNAL"},
|
||
|
{0x09, "REAL"},
|
||
|
{0x0A, "ENUMERATED"},
|
||
|
{0x10, "SEQUENCE/SEQUENCE OF"},
|
||
|
{0x11, "SET/SET OF"},
|
||
|
{0x12, "NumericString"},
|
||
|
{0x13, "PrintableString"},
|
||
|
{0x14, "T61String"},
|
||
|
{0x15, "VideotexString"},
|
||
|
{0x16, "IA5String"},
|
||
|
{0x17, "UTCTime"},
|
||
|
{0x18, "GeneralizedTime"},
|
||
|
{0x19, "GraphicString"},
|
||
|
{0x1A, "VisibleString"},
|
||
|
{0x1B, "GeneralString"}
|
||
|
};
|
||
|
|
||
|
SET UniversalTagSet = { sizeof(UniversalTag)/sizeof(LABELED_BYTE), UniversalTag };
|
||
|
|
||
|
|
||
|
LABELED_BYTE KdcReqTag[] = {
|
||
|
{0x1F, NULL},
|
||
|
{PVNO, "Protocol Version 5 (pvno[1])"},
|
||
|
{MSGTYPE, "Kerberos Message Type (msg-type[2])"},
|
||
|
{PADATA, "Pre-Authentication Data (padata[3])"},
|
||
|
{REQBODY, "KDC-Req-Body (req-body[4])"}
|
||
|
};
|
||
|
|
||
|
SET KdcReqTagSet = { sizeof(KdcReqTag)/sizeof(LABELED_BYTE), KdcReqTag };
|
||
|
|
||
|
|
||
|
LABELED_BYTE PaDataTag[] = {
|
||
|
{0x1F, NULL},
|
||
|
{0x01, "padata-type[1]"},
|
||
|
{0x02, "padata-value[2]"}
|
||
|
};
|
||
|
|
||
|
SET PaDataTagSet = { sizeof(PaDataTag)/sizeof(LABELED_BYTE), PaDataTag };
|
||
|
|
||
|
// For kdcrep packet
|
||
|
LABELED_BYTE KdcRepTag[] = {
|
||
|
{0x1F, NULL},
|
||
|
{PvnoKdcRep, "Protocol Version 5 (pvno[0])"},
|
||
|
{MsgTypeKdcRep, "Kerberos Message Type (msg-type[1])"},
|
||
|
{PaDataKdcRep, "Pre-Auth (padata[2])"},
|
||
|
{CrealmKdcRep, "Realm (crealm[3])"},
|
||
|
{CnameKdcRep, "Principal ID (cname[4])"},
|
||
|
{TicketKdcRep, "Ticket (ticket[5])"},
|
||
|
{EncpartKdcRep, "CipherText (enc-part[6])"}
|
||
|
};
|
||
|
|
||
|
SET KdcRepTagSet = {sizeof(KdcRepTag)/sizeof(LABELED_BYTE), KdcRepTag};
|
||
|
|
||
|
LABELED_BYTE PrincipalName[] = {
|
||
|
{0x1F, NULL},
|
||
|
{nametype, "Name Type (name-type[0])"},
|
||
|
{namestring, "Name String (name-string[1])"}
|
||
|
};
|
||
|
|
||
|
SET PrincipalNameSet = {sizeof(PrincipalName)/sizeof(LABELED_BYTE), PrincipalName};
|
||
|
|
||
|
LABELED_BYTE PrincNameType[] = {
|
||
|
{0x1F, NULL},
|
||
|
{NT_UKNOWN, "NT_UNKNOWN (Name Type not Known)"},
|
||
|
{NT_PRINCIPAL, "NT_PRINCIPAL (Name of Principal)"},
|
||
|
{NT_SRV_INST, "NT_SRV_INST (Service & other unique Instance)"},
|
||
|
{NT_SRV_HST, "NT_SRV_HST (Serv with Host Name as Instance)"},
|
||
|
{NT_SRV_XHST, "NT_SRV_XHST (Service with Host as remaining components)"},
|
||
|
{NT_UID, "NT_UID (Unique ID)"},
|
||
|
{NT_X500_PRINCIPAL, "NT_X500_PRINCIPAL (Encoded X.509 Distinguished Name)"}
|
||
|
};
|
||
|
|
||
|
SET PrincNameTypeSet = {sizeof(PrincNameType)/sizeof(LABELED_BYTE), PrincNameType};
|
||
|
|
||
|
LABELED_BYTE KrbTicket[] = {
|
||
|
{0x1F, NULL},
|
||
|
{tktvno, "Ticket Version (tkt-vno[0])"},
|
||
|
{realm, "Realm (realm[1])"},
|
||
|
{sname, "Server ID (sname[2])"},
|
||
|
{encpart, "Cipher Text (enc-part[3])"}
|
||
|
};
|
||
|
|
||
|
SET KrbTicketSet = {sizeof(KrbTicket)/sizeof(LABELED_BYTE), KrbTicket};
|
||
|
|
||
|
LABELED_BYTE KrbTixApp1 [] = {
|
||
|
{0x1F, NULL},
|
||
|
{app1, "Ticket ::= [APPLICATION 1]"}
|
||
|
};
|
||
|
|
||
|
SET KrbTixApp1Set = {sizeof(KrbTixApp1)/sizeof(LABELED_BYTE), KrbTixApp1};
|
||
|
|
||
|
LABELED_BYTE KrbErrTag [] = {
|
||
|
{0x1F, NULL},
|
||
|
{PvnoErr, "Protocol Version (pvno[0])"},
|
||
|
{MsgtypeErr, "Message Type (msg-type[1])"},
|
||
|
{CtimeErr, "Client Current Time (ctime[2])"},
|
||
|
{CusecErr, "MicroSec on Client (cusec[3])"},
|
||
|
{StimeErr, "Server Current Time (stime[4])"},
|
||
|
{SusecErr, "MicroSec on Server (susec[5])"},
|
||
|
{ErrorcodeErr, "Error Code (error-code[6])"},
|
||
|
{CrealmErr, "Client Realm (crealm[7])"},
|
||
|
{CnameErr, "Client Name (cname[8])"},
|
||
|
{RealmErr, "Correct Realm (realm[9])"},
|
||
|
{SnameErr, "Server Name (sname[10])"},
|
||
|
{EtextErr, "Addtional Error Info (etext[11])"},
|
||
|
{EdataErr, "Error Handling Data (edata[12])"}
|
||
|
};
|
||
|
|
||
|
SET KrbErrTagSet = {sizeof(KrbErrTag)/sizeof(LABELED_BYTE), KrbErrTag};
|
||
|
|
||
|
LABELED_BYTE KrbErrCode [] = {
|
||
|
{0xFF, NULL},
|
||
|
{KDC_ERR_NONE, "No error"}, // 0
|
||
|
{KDC_ERR_NAME_EXP, "Client's entry in database has expired"}, // 1
|
||
|
{KDC_ERR_SERVICE_EXP, "Server's entry in database has expired"},// 2
|
||
|
{KDC_ERR_BAD_PVNO, "Requested protocol ver. number not supported"}, // 3
|
||
|
{KDC_ERR_C_OLD_MAST_KVNO, "Client's key encrypted in old master key"}, // 4
|
||
|
{KDC_ERR_S_OLD_MAST_KVNO, "Server's key encrypted in old master key"}, //5
|
||
|
{KDC_ERR_C_PRINCIPAL_UNKNOWN, "Client not found in Kerberos database"},//6
|
||
|
{KDC_ERR_S_PRINCIPAL_UNKNOWN, "Server not found in Kerberos database"},//7
|
||
|
{KDC_ERR_PRINCIPAL_NOT_UNIQUE, "Multiple principal entries in database"},//8
|
||
|
{KDC_ERR_NULL_KEY, "The client or server has a null key"},//9
|
||
|
{KDC_ERR_CANNOT_POSTDATE, "Ticket not eligible for postdating"},//10
|
||
|
{KDC_ERR_NEVER_VALID, "Requested start time is later than end time"},//11
|
||
|
{KDC_ERR_POLICY, "KDC policy rejects request"}, //12
|
||
|
{KDC_ERR_BADOPTION, "KDC cannot accommodate requested option"}, //13
|
||
|
{KDC_ERR_ETYPE_NOSUPP, "KDC has no support for encryption type"}, //14
|
||
|
{KDC_ERR_SUMTYPE_NOSUPP, "KDC has no support for checksum type"}, //15
|
||
|
{KDC_ERR_PADATA_TYPE_NOSUPP, "KDC has no support for padata type"}, //16
|
||
|
{KDC_ERR_TRTYPE_NOSUPP, "KDC has no support for transited type"}, //17
|
||
|
{KDC_ERR_CLIENT_REVOKED, "Clients credentials have been revoked"}, //18
|
||
|
{KDC_ERR_SERVICE_REVOKED, "Credentials for server have been revoked"}, //19
|
||
|
{KDC_ERR_TGT_REVOKED, "TGT has been revoked"}, //20
|
||
|
{KDC_ERR_CLIENT_NOTYET, "Client not yet valid try again later"}, //21
|
||
|
{KDC_ERR_SERVICE_NOTYET, "Server not yet valid try again later"}, //22
|
||
|
{KDC_ERR_KEY_EXPIRED, "Password has expired change password to reset"}, //23
|
||
|
{KDC_ERR_PREAUTH_FAILED, "Pre-authentication information was invalid"}, //24
|
||
|
{KDC_ERR_PREAUTH_REQUIRED, "Additional preauthentication required"}, //25
|
||
|
{KDC_ERR_SERVER_NOMATCH, "Requested Server and ticket don't match"}, // 26
|
||
|
{KDC_ERR_MUST_USE_USER2USER, "Server principal valid for user2user only"}, // 27
|
||
|
{KDC_ERR_PATH_NOT_ACCEPTED, "KDC Policy rejects transited patth"}, //28
|
||
|
{KDC_ERR_SVC_UNAVAILABLE, "A service is not available"}, // 29
|
||
|
{KRB_AP_ERR_BAD_INTEGRITY, "Integrity check on decrypted field failed"}, //31
|
||
|
{KRB_AP_ERR_TKT_EXPIRED, "Ticket expired"}, //32
|
||
|
{KRB_AP_ERR_TKT_NYV, "Ticket not yet valid"}, //33
|
||
|
{KRB_AP_ERR_REPEAT, "Request is a replay"}, //34
|
||
|
{KRB_AP_ERR_NOT_US, "The ticket isn't for us"}, //35
|
||
|
{KRB_AP_ERR_BADMATCH, "Ticket and authenticator don't match"}, //36
|
||
|
{KRB_AP_ERR_SKEW, "Clock skew too great"}, // 37
|
||
|
{KRB_AP_ERR_BADADDR, "Incorrect net address"}, // 38
|
||
|
{KRB_AP_ERR_BADVERSION, "Protocol version mismatch"}, // 39
|
||
|
{KRB_AP_ERR_MSG_TYPE, "Invalid msg type"}, // 40
|
||
|
{KRB_AP_ERR_MODIFIED, "Message stream modified"}, //41
|
||
|
{KRB_AP_ERR_BADORDER, "Message out of order"}, //42
|
||
|
{KRB_AP_ERR_BADKEYVER, "Specified version of key is not available"}, //44
|
||
|
{KRB_AP_ERR_NOKEY, "Service key not available"}, //45
|
||
|
{KRB_AP_ERR_MUT_FAIL, "Mutual authentication failed"}, // 46
|
||
|
{KRB_AP_ERR_BADDIRECTION, "Incorrect message direction"}, // 47
|
||
|
{KRB_AP_ERR_METHOD, "Alternative authentication method required"}, // 48
|
||
|
{KRB_AP_ERR_BADSEQ, "Incorrect sequence number in message"}, // 49
|
||
|
{KRB_AP_ERR_INAPP_CKSUM, "Inappropriate type of checksum in message"}, // 50
|
||
|
{KRB_AP_PATH_NOT_ACCEPTED, "Policy rejects transited path"}, // 51
|
||
|
{KRB_ERR_RESPONSE_TOO_BIG, "Response too big for UDP, retry with TCP"}, // 52
|
||
|
{KRB_ERR_GENERIC, "Generic error"}, // 60
|
||
|
{KRB_ERR_FIELD_TOOLONG, "Field is too long for this implementation"}, // 61
|
||
|
{KDC_ERROR_CLIENT_NOT_TRUSTED, "Client is not trusted"}, // 62
|
||
|
{KDC_ERROR_KDC_NOT_TRUSTED, "KDC is not trusted"}, // 63
|
||
|
{KDC_ERROR_INVALID_SIG, "Invalid signature"}, // 64
|
||
|
{KDC_ERROR_KEY_TOO_WEAK, "Key is too weak"}, // 65
|
||
|
{KDC_ERR_CERTIFICATE_MISMATCH, "Certificate does not match"}, // 66
|
||
|
{KDC_AP_ERROR_NO_TGT, "No TGT"}, // 67
|
||
|
{KDC_ERR_WRONG_REALM, "Wrong realm"}, // 68
|
||
|
{KDC_AP_ERR_USER_TO_USER_REQURED, "User to User required"}, // 69
|
||
|
{KDC_ERR_CANT_VERIFY_CERTIFICATE, "Can't verify certificate"}, // 70
|
||
|
{KDC_ERR_INVALID_CERTIFICATE, "Invalid certificate"}, // 71
|
||
|
{KDC_ERR_REVOKED_CERTIFICATE, "Revoked certificate"}, // 72
|
||
|
{KDC_ERR_REVOCATION_STATUS_UNKNOWN, "Revocation status unknown"}, //73
|
||
|
{KDC_ERR_REVOCATION_STATUS_UNAVAILABLE, "Revocation status unavailable"}, // 74
|
||
|
{KDC_ERR_CLIENT_NAME_MISMATCH, "Client name mismatch"}, //75
|
||
|
{KDC_ERR_KDC_NAME_MISMATCH, "KDC name mismatch"} // 76
|
||
|
};
|
||
|
|
||
|
SET KrbErrCodeSet = {sizeof(KrbErrCode)/sizeof(LABELED_BYTE), KrbErrCode};
|
||
|
|
||
|
LABELED_BYTE PadataTypeVal [] = {
|
||
|
{0xFF, NULL},
|
||
|
{PA_TGS_REQ, "PA-TGS-REQ"},
|
||
|
{PA_ENC_TIMESTAMP, "PA-ENC-TIMESTAMP"},
|
||
|
{PA_PW_SALT, "PA-PW-SALT"},
|
||
|
{Reserved, "Reserved Value"},
|
||
|
{PA_ENC_UNIX_TIME, "PA-END-UNIX-TIME"},
|
||
|
{PA_SANDIA_SECUREID, "PA-SANDIA-SECUREID"},
|
||
|
{PA_AFS3_SALT, "PA-AFS3-SALT"},
|
||
|
{PA_ETYPE_INFO, "PA-ETYPE-INFO"},
|
||
|
{SAM_CHALLENGE, "SAM-CHALLENGE"},
|
||
|
{SAM_RESPONSE, "SAM-RESPONSE"},
|
||
|
{PA_PK_AS_REQ, "PA-PK-AS-REP"},
|
||
|
{PA_PK_AS_REP, "PA-PK-AS-REP"},
|
||
|
{PA_PK_AS_SIGN, "PA-PK-AS-SIGN"},
|
||
|
{PA_PK_KEY_REQ, "PA-PK-KEY-REQ"},
|
||
|
{PA_PK_KEY_REP, "PA-PK-KEY-REP"},
|
||
|
{PA_USE_SPECIFIELD_KVNO, "PA-USE-SPECIFIELD-KVNO"},
|
||
|
{SAM_REDIRECT, "SAM-REDIRECT"},
|
||
|
{PA_GET_FROM_TYPED_DATA, "PA-GET-FROM-TYPED-DATA"}
|
||
|
};
|
||
|
|
||
|
SET PadataTypeValSet = {sizeof(PadataTypeVal)/sizeof(LABELED_BYTE), PadataTypeVal};
|
||
|
|
||
|
LABELED_BYTE KdcReqBody [] = {
|
||
|
{0x1F, NULL},
|
||
|
{kdcoptions, "Ticket Flags (kdc-options[0])"},
|
||
|
{cnamebody, "Client Name (cname[1])"},
|
||
|
{realmbody, "Realm (realm[2])"},
|
||
|
{snamebody, "Server Name (sname[3])"},
|
||
|
{frombody, "Start Time (from[4])"},
|
||
|
{tillbody, "Expiration date (till[5])"},
|
||
|
{rtimebody, "Requested renew till (rtime[6])"},
|
||
|
{noncebody, "Random Number (nonce[7])"},
|
||
|
{etypebody, "Encryption Alg. (etype[8])"},
|
||
|
{addressesbody, "Addresses (addresses[9])"},
|
||
|
{encauthdatabody, "Cipher Text (enc-authorization-data[10])"},
|
||
|
{addtixbody, "Additional Tix (additional-ticketsp[11])"}
|
||
|
};
|
||
|
|
||
|
SET KdcReqBodySet = {sizeof(KdcReqBody)/sizeof(LABELED_BYTE), KdcReqBody};
|
||
|
|
||
|
|
||
|
LABELED_BYTE HostAddresses [] = {
|
||
|
{0x1F, NULL},
|
||
|
{addrtype, "Type of Address (addr-type[0])"},
|
||
|
{address, "Addresses (address[1])"}
|
||
|
};
|
||
|
|
||
|
SET HostAddressesSet = {sizeof(HostAddresses)/sizeof(LABELED_BYTE), HostAddresses};
|
||
|
|
||
|
// KDC-Options
|
||
|
LABELED_BIT KdcOptionFlags[] =
|
||
|
{ {31, "Reserved (Bit 0)", // 0 bit = Reserved,
|
||
|
"Reserved (Bit 0)"
|
||
|
},
|
||
|
|
||
|
{30, "Forwardable Bit Not Set (Bit 1)", // 1 bit = Fowardable
|
||
|
"Forwardable Bit Set (Bit 1)"
|
||
|
},
|
||
|
|
||
|
{29, "Forwarded Bit Not Set (Bit 2)", // 2 bit = Forwarded
|
||
|
"Fowarded Bit Set (Bit 2)"
|
||
|
},
|
||
|
|
||
|
{28, "Proxiable Bit Not Set (Bit 3)", // 3 bit = Proxiable
|
||
|
"Proxiable Bit Set (Bit 3)"
|
||
|
},
|
||
|
|
||
|
{27, "Proxy Bit Not Set (Bit 4)", // 4 bit = Proxy
|
||
|
"Proxy Bit Set (Bit 4)"
|
||
|
},
|
||
|
|
||
|
{26, "Allow-PostDate Bit Not Set (Bit 5)", // 5 bit = Allow-Postdate
|
||
|
"May-Postdate Bit Set (Bit 5)"
|
||
|
},
|
||
|
|
||
|
{25, "PostDated Bit Not Set (Bit 6)", // 6 bit = Postdated
|
||
|
"Postdated Bit Set (Bit 6)"
|
||
|
},
|
||
|
|
||
|
{24, "Unused (Bit 7)", // 7 bit = Unused
|
||
|
"Unused (Bit 7) "
|
||
|
},
|
||
|
|
||
|
{23, "Renewable Bit Not Set (Bit 8)", // 8 bit = Renewable
|
||
|
"Renewable Bit Set (Bit 8)"
|
||
|
},
|
||
|
|
||
|
{22, "Unused (Bit 9)", // 9 bit = Reserved
|
||
|
"Unused (Bit 9)"
|
||
|
},
|
||
|
|
||
|
{21, "Unused (Bit 10)", // 10 bit = Reserved
|
||
|
"Unused (Bit 10)"
|
||
|
},
|
||
|
|
||
|
{20, "Unused (Bit 11)", // 11 bit = Reserved
|
||
|
"Unused (Bit 11)"
|
||
|
},
|
||
|
|
||
|
{19, "Unused (Bit 12)", // 12 bit = Reserved
|
||
|
"Unused (Bit 12)"
|
||
|
},
|
||
|
|
||
|
{18, "Unused (Bit 13)", // 13 bit = Reserved
|
||
|
"Unused (Bit 13)"
|
||
|
},
|
||
|
|
||
|
{17, "Request-Anonymous Bit Not Set (Bit 14)", // 14 bit = Reserved
|
||
|
"Request-Anonymous Bit Set (Bit 14)"
|
||
|
},
|
||
|
|
||
|
{16, "Name-Canonicalize Bit Not Set (Bit 15)", // 15 bit = Reserved
|
||
|
"Name-Canonicalize Bit Set (Bit 15)"
|
||
|
},
|
||
|
|
||
|
{15, "Reserved (Bit 16)", // 16 bit = Reserved
|
||
|
"Reserved (Bit 16)"
|
||
|
},
|
||
|
|
||
|
{14, "Reserved (Bit 17)", // 17 bit = Reserved
|
||
|
"Reserved (Bit 17)"
|
||
|
},
|
||
|
|
||
|
{13, "Reserved (Bit 18)", // 18 bit = Reserved
|
||
|
"Reserved (Bit 18)"
|
||
|
},
|
||
|
|
||
|
{12, "Reserved (Bit 19)", // 19 bit = Reserved
|
||
|
"Reserved (Bit 19)"
|
||
|
},
|
||
|
|
||
|
{11, "Reserved (Bit 20)", // 20 bit = Reserved
|
||
|
"Reserved (Bit 20)"
|
||
|
},
|
||
|
|
||
|
{10, "Reserved (Bit 21)", // 21 bit = Reserved
|
||
|
"Reserved (Bit 21)"
|
||
|
},
|
||
|
|
||
|
{9, "Reserved (Bit 22)", // 22 bit = Reserved
|
||
|
"Reserved (Bit 22)"
|
||
|
},
|
||
|
|
||
|
{8, "Reserved (Bit 23)", // 23 bit = Reserved
|
||
|
"Reserved (Bit 23)"
|
||
|
},
|
||
|
|
||
|
{7, "Reserved (Bit 24)", // 24 bit = Reserved
|
||
|
"Reserved (Bit 24)"
|
||
|
},
|
||
|
|
||
|
{6, "Reserved (Bit 25)", // 25 bit = Reserved
|
||
|
"Reserved (Bit 25)"
|
||
|
},
|
||
|
|
||
|
{5, "Disable-Transited-Check Bit Not Set (Bit 26)", // 26 bit = Reserved
|
||
|
"Disable-Transited-Check Bit Set (Bit 26)"
|
||
|
},
|
||
|
|
||
|
{4, "Renewable-OK Bit Not Set (Bit 27)", // 27 bit = Renewable-OK
|
||
|
"Renewable-OK Bit Set (Bit 27)"
|
||
|
},
|
||
|
|
||
|
{3, "Enc-Tkt-In-Skey Bit Not Set (Bit 28)", // 28 bit = Enc-Tkt-In-Skey
|
||
|
"Enc-Tkt-In-Skey Bit Not Set (Bit 28)"
|
||
|
},
|
||
|
|
||
|
{2, "Reserved (Bit 29)", // 29 bit = Reserved
|
||
|
"Reserved (Bit 29)"
|
||
|
},
|
||
|
|
||
|
{1, "Renew Bit Not Set (Bit 30)", // 30 bit = Renew
|
||
|
"Renew Bit Set (Bit 30)"
|
||
|
},
|
||
|
|
||
|
{0, "Validate Bit Not Set (Bit 31)", // 31 bit = Validate
|
||
|
"Validate Bit Set (Bit 31)"
|
||
|
}
|
||
|
};
|
||
|
|
||
|
SET KdcOptionFlagsSet = {sizeof(KdcOptionFlags)/sizeof(LABELED_BIT), KdcOptionFlags};
|
||
|
|
||
|
LABELED_BYTE EncryptionType [] = {
|
||
|
{0xFF, NULL},
|
||
|
{KERB_ETYPE_RC4_HMAC_OLD, "RC4-HMAC-OLD"},
|
||
|
{KERB_ETYPE_RC4_PLAIN_OLD, "RC4-PLAIN-OLD"},
|
||
|
{KERB_ETYPE_RC4_HMAC_OLD_EXP, "RC4-HMAC-OLD-EXP"},
|
||
|
{KERB_ETYPE_RC4_PLAIN_OLD_EXP, "RC4-PLAIN-OLD-EXP"},
|
||
|
{KERB_ETYPE_RC4_PLAIN, "RC4-PLAIN"},
|
||
|
{KERB_ETYPE_RC4_PLAIN_EXP, "RC4-PLAIN-EXP"},
|
||
|
{KERB_ETYPE_NULL, "NULL"},
|
||
|
{KERB_ETYPE_DES_CBC_CRC, "DES-CBC-CRC"},
|
||
|
{KERB_ETYPE_DES_CBC_MD4, "DES-CBC-MD4"},
|
||
|
{KERB_ETYPE_DES_CBC_MD5, "DES-CBC-MD5"},
|
||
|
{KERB_ETYPE_DSA_SHA1_CMS, "DSA-SHA1-CMS"},
|
||
|
{KERB_ETYPE_RSA_MD5_CMS, "RSA-MD5-CMS"},
|
||
|
{KERB_ETYPE_RSA_SHA1_CMS, "RSA-SHA1-CMS"},
|
||
|
{KERB_ETYPE_RC2_CBC_ENV, "RC2-CBC-ENV"},
|
||
|
{KERB_ETYPE_RSA_ENV, "RSA-ENV"},
|
||
|
{KERB_ETYPE_RSA_ES_OEAP_ENV, "RSA-ES-OEAP-ENV"},
|
||
|
{KERB_ETYPE_DES_EDE3_CBC_ENV, "DES-EDE3-CBC-ENV"},
|
||
|
{KERB_ETYPE_DES_CBC_MD5_NT, "DES-CBC-MD5-NT"},
|
||
|
{KERB_ETYPE_RC4_HMAC_NT, "RC4-HMAC-NT"},
|
||
|
{KERB_ETYPE_RC4_HMAC_NT_EXP, "RC4-HMAC-NT-EXP"},
|
||
|
{KERB_ETYPE_OLD_RC4_MD4, "RC4-MD4-OLD"},
|
||
|
{KERB_ETYPE_OLD_RC4_PLAIN, "RC4-PLAIN-OLD"},
|
||
|
{KERB_ETYPE_OLD_RC4_LM, "RC4-LM-OLD"},
|
||
|
{KERB_ETYPE_OLD_RC4_SHA, "RC4-SHA-OLD"},
|
||
|
{KERB_ETYPE_OLD_DES_PLAIN, "DES-PLAIN-OLD"}
|
||
|
};
|
||
|
|
||
|
SET EncryptionTypeSet = {sizeof(EncryptionType)/sizeof(LABELED_BYTE), EncryptionType};
|
||
|
|
||
|
|
||
|
LABELED_BYTE EncryptedData[] ={
|
||
|
{0x1F, NULL},
|
||
|
{etype, "Encryption Type (etype[0])"},
|
||
|
{kvno, "Key Version Number (kvno[1])"},
|
||
|
{cipher, "Enciphered Text (cipher[2]"}
|
||
|
};
|
||
|
|
||
|
SET EncryptedDataSet = {sizeof(EncryptedData)/sizeof(LABELED_BYTE), EncryptedData};
|
||
|
|
||
|
LABELED_BYTE KrbApReq[] = {
|
||
|
{0x1F, NULL},
|
||
|
{PvnoApReq, "Protocol Version (pvno[0])"},
|
||
|
{MsgTypeApReq, "Message Type (msg-type[1])"},
|
||
|
{ApOptionsApReq, "AP Options (ap-options[2])"},
|
||
|
{TicketApReq, "Ticket (ticket[3])"},
|
||
|
{AuthenticatorApReq, "Authenticator (authenticator[4])"}
|
||
|
};
|
||
|
|
||
|
SET KrbApReqSet = {sizeof(KrbApReq)/sizeof(LABELED_BYTE), KrbApReq};
|
||
|
|
||
|
// AP-Options
|
||
|
LABELED_BIT ApOptionFlags[] =
|
||
|
{ {31, "Reserved (Bit 0)", // 0 bit = Reserved,
|
||
|
"Reserved (Bit 0)"
|
||
|
},
|
||
|
|
||
|
{30, "Use-Session-Key Bit Not Set(Bit 1)", // 1 bit = Use-Session-Key
|
||
|
"Use-Session-Key Bit Set (Bit 1)"
|
||
|
},
|
||
|
|
||
|
{29, "Mutual-Required Bit Not Set (Bit 2)", // 2 bit = Mutual-Required
|
||
|
"Mutual-Required Bit Set (Bit 2)"
|
||
|
},
|
||
|
|
||
|
{28, "Reserved (Bit 3)", // 3 bit = Reserved
|
||
|
"Reserved(Bit 3)"
|
||
|
},
|
||
|
|
||
|
{27, "Reserved (Bit 4)", // 4 bit = Reserved
|
||
|
"Reserved (Bit 4)"
|
||
|
},
|
||
|
|
||
|
{26, "Reserved (Bit 5)", // 5 bit = Reserved
|
||
|
"Reserved (Bit 5)"
|
||
|
},
|
||
|
|
||
|
{25, "Reserved (Bit 6)", // 6 bit = Reserved
|
||
|
"Reserved (Bit 6)"
|
||
|
},
|
||
|
|
||
|
{24, "Reserved (Bit 7)", // 7 bit = Reserved
|
||
|
"Reserved (Bit 7)"
|
||
|
},
|
||
|
|
||
|
{23, "Reserved (Bit 8)", // 8 bit = Reserved
|
||
|
"Reserved (Bit 8)"
|
||
|
},
|
||
|
|
||
|
{22, "Reserved (Bit 9)", // 9 bit = Reserved
|
||
|
"Reserved (Bit 9)"
|
||
|
},
|
||
|
|
||
|
{21, "Reserved (Bit 10)", // 10 bit = Reserved
|
||
|
"Reserved (Bit 10)"
|
||
|
},
|
||
|
|
||
|
{20, "Reserved (Bit 11)", // 11 bit = Reserved
|
||
|
"Reserved (Bit 11)"
|
||
|
},
|
||
|
|
||
|
{19, "Reserved (Bit 12)", // 12 bit = Reserved
|
||
|
"Reserved (Bit 12)"
|
||
|
},
|
||
|
|
||
|
{18, "Reserved (Bit 13)", // 13 bit = Reserved
|
||
|
"Reserved (Bit 13)"
|
||
|
},
|
||
|
|
||
|
{17, "Reserved (Bit 14)", // 14 bit = Reserved
|
||
|
"Reserved (Bit 14)"
|
||
|
},
|
||
|
|
||
|
{16, "Reserved (Bit 15)", // 15 bit = Reserved
|
||
|
"Reserved (Bit 15)"
|
||
|
},
|
||
|
|
||
|
{15, "Reserved (Bit 16)", // 16 bit = Reserved
|
||
|
"Reserved (Bit 16)"
|
||
|
},
|
||
|
|
||
|
{14, "Reserved (Bit 17)", // 17 bit = Reserved
|
||
|
"Reserved (Bit 17)"
|
||
|
},
|
||
|
|
||
|
{13, "Reserved (Bit 18)", // 18 bit = Reserved
|
||
|
"Reserved (Bit 18)"
|
||
|
},
|
||
|
|
||
|
{12, "Reserved (Bit 19)", // 19 bit = Reserved
|
||
|
"Reserved (Bit 19)"
|
||
|
},
|
||
|
|
||
|
{11, "Reserved (Bit 20)", // 20 bit = Reserved
|
||
|
"Reserved (Bit 20)"
|
||
|
},
|
||
|
|
||
|
{10, "Reserved (Bit 21)", // 21 bit = Reserved
|
||
|
"Reserved (Bit 21)"
|
||
|
},
|
||
|
|
||
|
{9, "Reserved (Bit 22)", // 22 bit = Reserved
|
||
|
"Reserved (Bit 22)"
|
||
|
},
|
||
|
|
||
|
{8, "Reserved (Bit 23)", // 23 bit = Reserved
|
||
|
"Reserved (Bit 23)"
|
||
|
},
|
||
|
|
||
|
{7, "Reserved (Bit 24)", // 24 bit = Reserved
|
||
|
"Reserved (Bit 24)"
|
||
|
},
|
||
|
|
||
|
{6, "Reserved (Bit 25)", // 25 bit = Reserved
|
||
|
"Reserved (Bit 25)"
|
||
|
},
|
||
|
|
||
|
{5, "Reserved (Bit 26)", // 26 bit = Reserved
|
||
|
"Reserved (Bit 26)"
|
||
|
},
|
||
|
|
||
|
{4, "Reserved (Bit 27)", // 27 bit = Renewable-OK
|
||
|
"Reserved (Bit 27)"
|
||
|
},
|
||
|
|
||
|
{3, "Reserved (Bit 28)", // 28 bit = Enc-Tkt-In-Skey
|
||
|
"Reserved (Bit 28)"
|
||
|
},
|
||
|
|
||
|
{2, "Reserved (Bit 29)", // 29 bit = Reserved
|
||
|
"Reserved (Bit 29)"
|
||
|
},
|
||
|
|
||
|
{1, "Reserved(Bit 30)", // 30 bit = Renew
|
||
|
"Reserved (Bit 30)"
|
||
|
},
|
||
|
|
||
|
{0, "Reserved (Bit 31)", // 31 bit = Reserved
|
||
|
"Reserved (Bit 31)"
|
||
|
}
|
||
|
};
|
||
|
|
||
|
SET ApOptionFlagsSet = {sizeof(ApOptionFlags)/sizeof(LABELED_BIT), ApOptionFlags};
|
||
|
|
||
|
LABELED_BYTE ApTicket[] = {
|
||
|
{0x1F, NULL},
|
||
|
{ticket, "AP Ticket"}
|
||
|
};
|
||
|
|
||
|
SET ApTicketSet = {sizeof(ApTicket)/sizeof(LABELED_BYTE), ApTicket};
|
||
|
|
||
|
LABELED_BYTE TicketStruct[] = {
|
||
|
{0x1F, NULL},
|
||
|
{Tixtkt_vno, "Ticket Version Number (tkt-vno[0])"},
|
||
|
{TixRealm, "Issuing Realm (realm[1])"},
|
||
|
{TixSname, "Server (sname[2])"},
|
||
|
{TixEnc_part, "Cipher Encoding (enc-part[3])"}
|
||
|
};
|
||
|
|
||
|
SET TicketStructSet = {sizeof(TicketStruct)/sizeof(LABELED_BYTE), TicketStruct};
|
||
|
|
||
|
LABELED_BYTE MethodDataType[] = {
|
||
|
{0x1F, NULL},
|
||
|
{methodtype, "Req. Alt. Method (method-type[0])"},
|
||
|
{methoddata, "Req. Alt. Info (method-data[1])"}
|
||
|
};
|
||
|
|
||
|
SET MethodDataSet = { (sizeof(MethodDataType)/sizeof(LABELED_BYTE)), MethodDataType};
|
||
|
|
||
|
//=============================================================================
|
||
|
// Kerberos database.
|
||
|
//=============================================================================
|
||
|
|
||
|
//KF 10/19/99 NEED TO GO THROUGH AND WEED OUT DUPLICATE NODES. ALSO
|
||
|
// NEED TO RENAME THE DUPLICATES WHICH ARE NEEDED BECAUSE OF DIFFERENT
|
||
|
// DATATYPE LABELS.
|
||
|
|
||
|
PROPERTYINFO KerberosDatabase[] =
|
||
|
{
|
||
|
{ // KerberosSummary 0x00
|
||
|
// Global Variable,description for all Kerberos Message Types
|
||
|
0,0,
|
||
|
MsgType,
|
||
|
"Kerberos Packet",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // KerberosIDSummary 0x01
|
||
|
// Global Variable, used in identifying the Identifier Octet for Kerberos frames
|
||
|
0,0,
|
||
|
"Message Type",
|
||
|
"Display Message Type",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // KerberosClassTag 0x02
|
||
|
// Global Variable used to display ASN.1 Class tag of initial Identifier octet
|
||
|
0,0,
|
||
|
"Class Tag",
|
||
|
"Display Class Tag",
|
||
|
PROP_TYPE_BYTE,
|
||
|
//PROP_QUAL_FLAGS,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&ClassTagSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // PCIdentifier 0x03
|
||
|
// Global Variable, used to determine method of encoding used.
|
||
|
0,0,
|
||
|
"P/C",
|
||
|
"Display Primitive/Constructed",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_FLAGS,
|
||
|
&PCSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // ASN1UnivTag 0x04
|
||
|
// Global Variable, probably needs to be renamed. This takes the last 5 bits
|
||
|
// of the Initial Identifier Octet and prints out the message type of the packet
|
||
|
0,0,
|
||
|
"Contents",
|
||
|
"Display Contents",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&UniversalTagSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // LengthSummary 0x05
|
||
|
|
||
|
0,0,
|
||
|
"Length Summary",
|
||
|
"Display Length Summary",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
|
||
|
{ // LengthFlag 0x06
|
||
|
// Global Variable, Used in determining if the ASN.1 length octet is short or long form
|
||
|
0,0,
|
||
|
"Length Flag",
|
||
|
"Display Length Flag",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_FLAGS,
|
||
|
&LengthSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // LengthBits 0x07
|
||
|
// Global Variable, used for labeling
|
||
|
0,0,
|
||
|
"Number of Octets (Size)",
|
||
|
"Display Number of Octets (Size)",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // LongLength1 0x08
|
||
|
// Global Variable, used for labeling values spanning multiple octets
|
||
|
0,0,
|
||
|
"Size (BSW)",
|
||
|
"Display Size (Long)",
|
||
|
PROP_TYPE_BYTESWAPPED_WORD,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // LongLength2 0x09
|
||
|
// Not sure about this one but looks to be for labeling
|
||
|
0,0,
|
||
|
"Size (B)",
|
||
|
"Display Size (short)",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // ASNIdentifier 0x0A
|
||
|
// Global, used for labeling of ASN.1 Identifier Octets
|
||
|
0,0,
|
||
|
"Identifier",
|
||
|
"Display Identifier Octet",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
|
||
|
{ // UniversalTagID 0x0B
|
||
|
//Global, Used for displaying ASN.1 Universal Class Tags
|
||
|
0,0,
|
||
|
"Tag Number",
|
||
|
"Display Tag Number (Bitfield)",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&UniversalTagSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // KdcReqTagID 0x0C
|
||
|
0,0,
|
||
|
"KERB_KDC_REQ Type",
|
||
|
"Dipslay KERB_KDC_REQ Summary",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&KdcReqTagSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // KdcReqSeq 0x0D
|
||
|
0,0,
|
||
|
"Tag Number (BF)",
|
||
|
"Display Tag Number",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&KdcReqTagSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // KdcReqSeqLength 0x0E
|
||
|
// Global, however only used to represent the body of kdc-req packets
|
||
|
0,0,
|
||
|
"Length",
|
||
|
"Length",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // ASN1UnivTagSumID 0x0F
|
||
|
// This points to the Universal Class Tags
|
||
|
//Used to display summary
|
||
|
0,0,
|
||
|
"Univ. Class Tag",
|
||
|
"Universal Class Tag",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&UniversalTagSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // KdcContentsValue 0x10
|
||
|
// Global label
|
||
|
0,0,
|
||
|
"Value",
|
||
|
"Value",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // PaDataSummary 0x11
|
||
|
// Global Displays values for the PADATA type
|
||
|
0,0,
|
||
|
"PA-DATA Type",
|
||
|
"PA-DATA Summary",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&PaDataTagSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // PaDataSeq 0x12
|
||
|
0,0,
|
||
|
"Tag Number",
|
||
|
"Tag Number",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&PaDataTagSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // DispString 0x13
|
||
|
0,0,
|
||
|
"Value",
|
||
|
"Value",
|
||
|
PROP_TYPE_STRING,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //KerberosIdentifier 0x14
|
||
|
0,0,
|
||
|
"KRB MSG-Type Identifier",
|
||
|
"Displays Kerberos Message Type",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
//PROP_QUAL_FLAGS,
|
||
|
&KrbMsgTypeSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // lblTagNumber 0x15
|
||
|
// Created this as a lable
|
||
|
0,0,
|
||
|
"Tag Number",
|
||
|
"Display Explicit Tags",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&KdcRepTagSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //KdcRepTagID 0x16
|
||
|
0,0,
|
||
|
"KERB_KDC_REP Tag",
|
||
|
"Struct of KDC-REP packet",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&KdcRepTagSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // KrbPrincipalNamelSet 0x17
|
||
|
0, 0,
|
||
|
"Principal Name",
|
||
|
"PrincipalName Structure",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&PrincipalNameSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // KrbPrincNameType 0x18
|
||
|
0, 0,
|
||
|
"Name Type",
|
||
|
"Principal Name Type",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&PrincNameTypeSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //KrbPrincipalNamelBitF 0x19
|
||
|
0, 0,
|
||
|
"Name Type",
|
||
|
"Principal Name Type",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&PrincipalNameSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // KrbTicketID 0x1A
|
||
|
0,0,
|
||
|
"Kerberos Ticket",
|
||
|
"Kerberos Ticket",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&KrbTicketSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // KrbTixApp1ID 0x1B
|
||
|
0, 0,
|
||
|
"Ticket Identifier",
|
||
|
"Tag for Ticket",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&KrbTixApp1Set,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // KrbErrTagID 0x1C
|
||
|
// Global Displays values for the KRB-ERR type
|
||
|
0,0,
|
||
|
"KRB-ERROR",
|
||
|
"KRB-ERROR Packet",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&KrbErrTagSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // DispTimeID 0x1D
|
||
|
0,0,
|
||
|
"Micro Sec",
|
||
|
"Micro Seconds",
|
||
|
PROP_TYPE_BYTESWAPPED_DWORD,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //KrbErrTagSumID 0x1E
|
||
|
// Used in the inital display of KRB-ERROR
|
||
|
0,0,
|
||
|
"KRB-ERROR",
|
||
|
"Kerberos Error",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&KrbErrTagSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
|
||
|
{ //KrbTixAppSumID 0x1F
|
||
|
//Used in summary displays of Explicit Application Tags
|
||
|
0,0,
|
||
|
"Explicit Tag",
|
||
|
"Explicit Tags",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&KrbTixApp1Set,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //KrbTicketSumID 0x20
|
||
|
// Used in summary displays of Ticket Variables
|
||
|
0,0,
|
||
|
"KRB-Ticket",
|
||
|
"Kerberos Ticket",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&KrbTicketSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //KrbErrCodeID 0x21
|
||
|
//Used to display Kerberos Error Codes
|
||
|
0,0,
|
||
|
"Kerberos Error",
|
||
|
"Kerberos Error",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&KrbErrCodeSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //KrbMsgTypeID 0x22
|
||
|
|
||
|
0,0,
|
||
|
"Contents",
|
||
|
"Display Contents Octet",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&KrbMsgTypeSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //PadataTypeValID 0x23
|
||
|
0,0,
|
||
|
"padata-type",
|
||
|
"Value of padata-type",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&PadataTypeValSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //CipherTextDisp 0x24
|
||
|
// Changed display from Cipher Text to Length. Could possibly get rid of this
|
||
|
// Leaving it in place in case we need to break down padata.
|
||
|
0, 0,
|
||
|
"Length",
|
||
|
"Display Cipher Text",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //FragUdpID 0x25
|
||
|
0,0,
|
||
|
"Fragmented Kerberos cont.",
|
||
|
"Display Fragmented Kerberos Packets",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //KdcReqBodyID 0x26
|
||
|
0,0,
|
||
|
"KDC-Req-Body",
|
||
|
"KDC Req Body",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&KdcReqBodySet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //KdcReqBodyBitF 0x27
|
||
|
0,0,
|
||
|
"KDC-Req-Body",
|
||
|
"KDC Req Body",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&KdcReqBodySet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //HostAddressesID 0x28
|
||
|
0,0,
|
||
|
"Addresses",
|
||
|
"Addresses",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&HostAddressesSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //HostAddressesBitF 0x29
|
||
|
0,0,
|
||
|
"Addresses",
|
||
|
"Addresses",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&HostAddressesSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // DispStringCliName 0x2A
|
||
|
0,0,
|
||
|
"Client Name",
|
||
|
"Display Client Name",
|
||
|
PROP_TYPE_STRING,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispStringRealmName 0x2B
|
||
|
0,0,
|
||
|
"Realm Name",
|
||
|
"Display Realm Name",
|
||
|
PROP_TYPE_STRING,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispStringServerName 0x2C
|
||
|
0,0,
|
||
|
"Server Name",
|
||
|
"Display Server Name",
|
||
|
PROP_TYPE_STRING,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispStringTixFlag 0x2D
|
||
|
0,0,
|
||
|
"Ticket Flags",
|
||
|
"Display Ticket Flags",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispStringExpDate 0x2E
|
||
|
0,0,
|
||
|
"Expiration Date",
|
||
|
"Display Expiration Date",
|
||
|
PROP_TYPE_STRING,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispStringPostDate 0x2F
|
||
|
0,0,
|
||
|
"Post Date",
|
||
|
"Display Post Date",
|
||
|
PROP_TYPE_STRING,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispStringRenewTill 0x30
|
||
|
0,0,
|
||
|
"Renew Till",
|
||
|
"Display Renew Till Time",
|
||
|
PROP_TYPE_STRING,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispSumRandomNumber 0x31
|
||
|
0,0,
|
||
|
"Random Number",
|
||
|
"Display Random Number",
|
||
|
PROP_TYPE_BYTESWAPPED_DWORD,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispSumEtype 0x32
|
||
|
0,0,
|
||
|
"Encryption Type",
|
||
|
"Display Encryption Type",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispStringAddresses 0x33
|
||
|
0,0,
|
||
|
"Client Host Address",
|
||
|
"Display Random Number",
|
||
|
PROP_TYPE_STRING,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispSummary 0x34
|
||
|
0,0,
|
||
|
"Summary (ASN.1)",
|
||
|
"Display ASN.1 Summary",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispStringCliRealm 0x35
|
||
|
0,0,
|
||
|
"Client Realm",
|
||
|
"Display Client's Realm",
|
||
|
PROP_TYPE_STRING,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispProtocolVer 0x36
|
||
|
0,0,
|
||
|
"Kerberos Protocol Version",
|
||
|
"Display Kerberos Protocol Version",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispKerbMsgType 0x37
|
||
|
0,0,
|
||
|
"Kerberos Message Type",
|
||
|
"Display Kerberos Message Type",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&KrbMsgTypeSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispSumPreAuth 0x38
|
||
|
0,0,
|
||
|
"Pre-Authentication Data",
|
||
|
"Display Pre-Authentication Date",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispSumReqBody 0x39
|
||
|
0,0,
|
||
|
"KDC Request Body",
|
||
|
"Display KDC Request Body",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispSumKerbTix 0x3A
|
||
|
0,0,
|
||
|
"Kerberos Ticket",
|
||
|
"Display Kerberos Ticket",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispSumTixVer 0x3B
|
||
|
0,0,
|
||
|
"Ticket Version",
|
||
|
"Display Ticket Version",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispCipherText 0x3C
|
||
|
0,0,
|
||
|
"Cipher Text",
|
||
|
"Display Text",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispStringCliTime 0x3D
|
||
|
0,0,
|
||
|
"Current Client Time",
|
||
|
"Display Client's Current Time",
|
||
|
PROP_TYPE_STRING,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispSumCuSec 0x3E
|
||
|
0,0,
|
||
|
"MicroSec Of Client",
|
||
|
"Display Microseconds of Client",
|
||
|
PROP_TYPE_BYTESWAPPED_DWORD,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispStringSrvTime 0x3F
|
||
|
0,0,
|
||
|
"Current Server Time",
|
||
|
"Display Server's Current Time",
|
||
|
PROP_TYPE_STRING,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispSumSuSec 0x40
|
||
|
0,0,
|
||
|
"MicroSec Of Server",
|
||
|
"Display Microseconds of Server",
|
||
|
PROP_TYPE_BYTESWAPPED_DWORD,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispSumKerbErr 0x41
|
||
|
0,0,
|
||
|
"Kerberos Error",
|
||
|
"Display Kerberos Error",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&KrbErrCodeSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispStringErrorText 0x42
|
||
|
0,0,
|
||
|
"Error Text",
|
||
|
"Display Error Text",
|
||
|
PROP_TYPE_STRING,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispStringErrorData 0x43
|
||
|
0,0,
|
||
|
"Error Data",
|
||
|
"Display Error Data",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // DispFlagKdcOptions 0x44
|
||
|
0,0,
|
||
|
"KDC-Option Flags",
|
||
|
"Specifies KDC-Option Flags",
|
||
|
PROP_TYPE_BYTESWAPPED_DWORD,
|
||
|
PROP_QUAL_FLAGS,
|
||
|
&KdcOptionFlagsSet,
|
||
|
80 * 32,
|
||
|
FormatPropertyInstance },
|
||
|
|
||
|
{ //DispStringServNameGS 0x45
|
||
|
0,0,
|
||
|
"Server Name",
|
||
|
"Displays General Strings",
|
||
|
PROP_TYPE_STRING,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispSumEtype2 0x46
|
||
|
0,0,
|
||
|
"Encryption Type",
|
||
|
"Display Encryption Type",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&EncryptionTypeSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //EncryptedDataTag 0x47
|
||
|
0,0,
|
||
|
"Encrypted Data",
|
||
|
"Display Encrypted Data",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&EncryptedDataSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //EncryptedDataTagBitF 0x48
|
||
|
0,0,
|
||
|
"Encrypted Data",
|
||
|
"Encrypted Data",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&EncryptedDataSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //KrbApReqID 0x49
|
||
|
0,0,
|
||
|
"Kerb-AP-Req",
|
||
|
"Display AP-Req",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&KrbApReqSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //KrbApReqBitF 0x4A
|
||
|
0,0,
|
||
|
"Kerb-AP-Req",
|
||
|
"Display AP Req ASN.1",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&KrbApReqSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispApOptionsSum 0x4B
|
||
|
0,0,
|
||
|
"AP Options",
|
||
|
"Display AP Option Flags",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispFlagApOptions 0x4C
|
||
|
0,0,
|
||
|
"AP-Option Flags",
|
||
|
"Specifies AP-Option Flags",
|
||
|
PROP_TYPE_BYTESWAPPED_DWORD,
|
||
|
PROP_QUAL_FLAGS,
|
||
|
&ApOptionFlagsSet,
|
||
|
80 * 32,
|
||
|
FormatPropertyInstance },
|
||
|
|
||
|
{ //DispSumTicket 0x4D
|
||
|
0,0,
|
||
|
"Ticket",
|
||
|
"Display Ticket",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //ApTicketID 0x4E
|
||
|
0,0,
|
||
|
"Kerb-Ticket",
|
||
|
"Display Ticket",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&ApTicketSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //ApTicketBitF 0x4F
|
||
|
0,0,
|
||
|
"Kerb-Ticket",
|
||
|
"Display Ticket",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&ApTicketSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //TicketStructID 0x50
|
||
|
0,0,
|
||
|
"Kerb-Ticket",
|
||
|
"Display Ticket",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&TicketStructSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //TicketStructBitF 0x51
|
||
|
0,0,
|
||
|
"Kerb-Ticket",
|
||
|
"Display Ticket",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&TicketStructSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //KerberosDefaultlbl 0x52
|
||
|
// Kerberos continuation packets
|
||
|
0,0,
|
||
|
"Kerberos Packet (Cont.) Use the Coalescer to view contents",
|
||
|
"Display Kerberos Continuation Packets",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // PaDataSummaryMulti 0x53
|
||
|
// Global Displays values for the PADATA type if integer is multiple octets
|
||
|
0,0,
|
||
|
"PA-DATA Type",
|
||
|
"PA-DATA Summary",
|
||
|
PROP_TYPE_BYTESWAPPED_WORD,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&PaDataTagSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // Certificatelbl 0x54
|
||
|
// Because I couldn't find the ASN.1 layout for the certificates
|
||
|
// Present in AS-Req and Rep's, I'm labeling the bits for now
|
||
|
0,0,
|
||
|
"Certificate Data",
|
||
|
"Certificate Data Label",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ //DispEncryptionOptions 0x55
|
||
|
0,0,
|
||
|
"Supported Encryption Types",
|
||
|
"Available Encryption Type",
|
||
|
PROP_TYPE_SUMMARY,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // MethodDataSummary 0x56
|
||
|
// Global Displays values for the PADATA type if integer is multiple octets
|
||
|
0,0,
|
||
|
"Method-Data Type",
|
||
|
"Method-Data Type Summary",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_SET,
|
||
|
&MethodDataSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // MethodDataBitF 0x57
|
||
|
// Global Displays values for the PADATA type if integer is multiple octets
|
||
|
0,0,
|
||
|
"Method-Data ",
|
||
|
"Method-Data Display",
|
||
|
PROP_TYPE_BYTE,
|
||
|
PROP_QUAL_LABELED_BITFIELD,
|
||
|
&MethodDataSet,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance},
|
||
|
|
||
|
{ // DispReqAddInfo 0x58
|
||
|
0,0,
|
||
|
"Required Additional Info",
|
||
|
"Req Add Info Summary",
|
||
|
PROP_TYPE_STRING,
|
||
|
PROP_QUAL_NONE,
|
||
|
0,
|
||
|
FORMAT_BUFFER_SIZE,
|
||
|
FormatPropertyInstance}
|
||
|
|
||
|
|
||
|
|
||
|
};
|
||
|
|
||
|
DWORD nKerberosProperties = ((sizeof KerberosDatabase) / PROPERTYINFO_SIZE);
|
||
|
|