
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@304 ec53bebd-3082-4978-b11e-865c3cabbd6b
139 lines
2.2 KiB
C
139 lines
2.2 KiB
C
#include <der.h>
|
|
#include <time.h>
|
|
|
|
/*
|
|
* Message types.
|
|
*/
|
|
|
|
enum {
|
|
KRB_AS_REQ = 10,
|
|
KRB_AS_REP = 11,
|
|
KRB_TGS_REQ = 12,
|
|
KRB_TGS_REP = 13,
|
|
KRB_AP_REQ = 14,
|
|
KRB_AP_REP = 15,
|
|
KRB_SAFE = 20,
|
|
KRB_PRIV = 21,
|
|
KRB_CRED = 22,
|
|
KRB_ENCASREPPART = 25,
|
|
KRB_ENCKDCREPPART = 26,
|
|
KRB_ERROR = 30
|
|
};
|
|
|
|
/*
|
|
* Application
|
|
*/
|
|
|
|
enum {
|
|
APPL_TICKET = 1
|
|
};
|
|
|
|
struct KdcOptions {
|
|
unsigned
|
|
reserved : 1,
|
|
forwardable : 1,
|
|
forwarded : 1,
|
|
proxiable : 1,
|
|
proxy : 1,
|
|
allow_postdate : 1,
|
|
postdated : 1,
|
|
unused7 : 1,
|
|
renewable : 1,
|
|
unused9 : 1,
|
|
unused10 : 1,
|
|
unused11 : 1,
|
|
renewable_ok : 1,
|
|
enc_tkt_in_skey : 1,
|
|
renew : 1,
|
|
validate : 1;
|
|
};
|
|
|
|
typedef struct KdcOptions KdcOptions;
|
|
|
|
struct Kdc_Req {
|
|
int pvno;
|
|
int msg_type;
|
|
KdcOptions kdc_options;
|
|
krb5_principal cname;
|
|
krb5_realm realm;
|
|
krb5_principal sname;
|
|
krb5_time till;
|
|
int nonce;
|
|
unsigned num_etypes;
|
|
krb5_enctype *etypes;
|
|
krb5_addresses addrs;
|
|
};
|
|
|
|
typedef struct Kdc_Req Kdc_Req;
|
|
|
|
typedef Kdc_Req As_Req;
|
|
|
|
struct EncryptedData {
|
|
int etype;
|
|
int *kvno;
|
|
krb5_data cipher;
|
|
};
|
|
|
|
typedef struct EncryptedData EncryptedData;
|
|
|
|
struct LastReq {
|
|
int number;
|
|
struct {
|
|
int lr_type;
|
|
krb5_time lr_value;
|
|
} *values;
|
|
};
|
|
|
|
typedef struct LastReq LastReq;
|
|
|
|
struct TicketFlags {
|
|
unsigned forwardable:1,
|
|
forwarded:1,
|
|
proxiable:1,
|
|
proxy:1,
|
|
may_postdate:1,
|
|
postdated:1,
|
|
invalid:1,
|
|
renewable:1,
|
|
initial:1,
|
|
pre_authent:1,
|
|
hw_authent:1;
|
|
};
|
|
|
|
typedef struct TicketFlags TicketFlags;
|
|
|
|
struct EncKdcRepPart {
|
|
krb5_keyblock key;
|
|
LastReq req;
|
|
int nonce;
|
|
krb5_time *key_expiration;
|
|
TicketFlags flags;
|
|
krb5_time authtime;
|
|
krb5_time *starttime;
|
|
krb5_time endtime;
|
|
krb5_time *renew_till;
|
|
krb5_realm srealm;
|
|
krb5_principal sname;
|
|
krb5_addresses caddr;
|
|
};
|
|
|
|
typedef struct EncKdcRepPart EncKdcRepPart;
|
|
|
|
typedef EncKdcRepPart EncASRepPart;
|
|
typedef EncKdcRepPart EncTGSRepPart;
|
|
|
|
struct krb5_kdc_rep {
|
|
int pvno;
|
|
int msg_type;
|
|
krb5_realm realm;
|
|
krb5_principal cname;
|
|
krb5_ticket ticket;
|
|
EncryptedData enc_part;
|
|
EncASRepPart enc_part2;
|
|
};
|
|
|
|
typedef krb5_kdc_rep As_Rep;
|
|
|
|
typedef krb5_kdc_rep Tgs_Rep;
|
|
|