 3504622156
			
		
	
	3504622156
	
	
	
		
			
			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;
 | |
| 
 |