
    Fc*                       d dl Z d dlZe j                            d d           dej        d<   d dlZd dlmZmZ d dl	m
Z
mZ d dlmc mc mZ d dlmZ d dlmZ d d	lmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( d dl)mc mc m*Z+ d
Z,d
Z- G d de          Z. G d de.          Z/e0dk    rd
Z,d
Z-d dl1Z1 e1j2                     dS dS )    Nz
bin/python1PYTHONUNBUFFERED)dsdbntstatus)krb5pacsecurity)KDCBaseTest)Krb5EncryptionKey)AES256_CTS_HMAC_SHA1_96ARCFOUR_HMAC_MD5	KRB_ERRORKRB_TGS_REPKDC_ERR_BADKEYVERKDC_ERR_BADMATCHKDC_ERR_ETYPE_NOSUPPKDC_ERR_GENERICKDC_ERR_MODIFIEDKDC_ERR_NOT_USKDC_ERR_POLICYKDC_ERR_PREAUTH_REQUIREDKDC_ERR_C_PRINCIPAL_UNKNOWNKDC_ERR_S_PRINCIPAL_UNKNOWNKDC_ERR_TGT_REVOKEDKRB_ERR_TKT_NYVKDC_ERR_WRONG_REALMNT_ENTERPRISE_PRINCIPALNT_PRINCIPALNT_SRV_INSTFc                   H    e Zd Z	 ddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZdS )	KdcTgsBaseTestsNc                    |                                 }|                     t          |                    d                    }|                                 }|                     t          d|d d         g          }	|r|	}
n|                     t          |g          }
|                                }|                                }|                     d          }|                     ||          }|j        }d}t          j
        |          }|r
t          |f}nt          }|                     |||	|||||||	|||d |d |	          \  }}|                     |           |                     t          |d
                    |d         }|r|                     ||           ||k    rd S n|                     ||           |d         }|                     ||d         |                                          }|                     |          }|g}|                                }|                     |||	|||||||
|||||||d          \  }}|r|                     ||           d S |                     |           |d         S )N/	name_typenameshosti  offsetetypez/forwardable,renewable,canonicalize,renewable-ok)cnamerealmsnametillclient_as_etypesexpected_error_modeexpected_crealmexpected_cnameexpected_srealmexpected_snameexpected_saltexpected_supported_etypesetypespadatakdc_optionspreauth_keyticket_decryption_keymsg-type
error-codepreauth_etype_info2r   F)r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   expect_edatarep_ticket_creds)get_usernamePrincipalName_creater   split	get_realmget_saltget_KerberosTimeTicketDecryptionKey_from_credstgs_supported_enctypes	krb5_asn1
KDCOptionsr   _test_as_exchangeassertIsNotNoneassertEqualr   assertInPasswordKey_from_etype_info2get_kvno"get_enc_timestamp_pa_data_from_keyuppercheck_error_repcheck_as_reply)selfcredsexpected_errortarget_credsr+   expected_ticket_etype	user_namer,   target_namer.   r5   r-   saltr/   r<   expected_etypesr:   initial_errorrepkdc_exchange_dict
error_codeetype_info2r;   ts_enc_padatar9   expected_realms                             @/usr/lib/python3/dist-packages/samba/tests/krb5/kdc_tgs_tests.py_as_reqzKdcTgsBaseTests._as_reqA   s#    &&((	))L090D0D * F F #//11))L17SbS9I0J * L L  	L"NN!66>I] 7 L LN !!~~$$E$22 //6K 0 M M 	 '=&  *;77 	55~FMM4M!%!7!7" -! ! &5#"7# "8 "9 "9$ 	S!!!C
O444&
 	8MM*m444^++ , ]J777'(=>778CA8=8H8HJ J ??LL!%!7!7" .* *)&5##"7% "8 "  " &  	  n5554C    !344    0FTc                 x   |du rd }n||                                 }|
du rd }
||                                 }ns|
m|                                }|dk    r|                     t          ||g          }
n4|d         dk    r
|d d         }|                     t
          d|g          }
||
}||j        g}|j        }nd }|                     ||          }| 	                    |j        j
                  }|w| 	                    |j
                  }|                     ||j                  }t          j        |j        |j        dd	          }t          |d           }| j        }| j        } d
}!n
d }d }d }d } d }!|t$          t&          f}|r
| j        }"d }#n	d }"| j        }#||j        }|                     |j        |||||	|| |"|#| j        |||||||!||||||||||          }$|                     |$d ||
||          }%|r|                     |%|           d S |                     |%t:                     |$d         S )NFkrbtgtr#   r'   $r&   r*   s   explicitarmors   tgsarmorr   )r2   r3   r4   r5   r<   generate_padata_fngenerate_fast_fngenerate_fast_armor_fncheck_error_fncheck_rep_fncheck_kdc_private_fnr1   expected_statustgt	armor_key	armor_tgtarmor_subkeypac_optionsauthenticator_subkeyr:   r7   r@   
expect_pacexpect_pac_attrsexpect_pac_attrs_pac_requestexpect_requester_sidexpected_sidexpect_claims)r,   r-   r.   r8   additional_ticketsrA   )rE   get_krbtgt_snamerB   rC   r   r   ticketsession_keyrH   	RandomKeyr+   generate_armor_keykcryptocf2keyr
   generate_simple_fastgenerate_ap_reqr   r   generic_check_kdc_errorgeneric_check_kdc_repr,   tgs_exchange_dictcrealmgeneric_check_kdc_private_generic_kdc_exchangerT   check_replyr   )&rV   rt   rX   rY   rv   r:   r3   r5   additional_ticketrm   r.   srealmuse_fastr   r8   rZ   r7   rz   r{   r|   r}   r@   r~   rs   r\   r   decryption_keysubkeyrw   explicit_armor_keyru   rn   ro   rx   rp   rq   ra   r`   s&                                         rf   _tgs_reqzKdcTgsBaseTests._tgs_req   s   * U??FF^!++--FE>>E%!%!6!6!8!8}*7799(** 55"-*F3 6 5 5EE #2#--&1#2#&6 55".%{3 6 5 5E %!&("3":!;.:NN!%!@@$9 A ; ;N  566 >>&,77L!%!8!89B9N"P "P$6$:$*J$4$/1 1I *)T::I#8%)%9"KKLI#%)"K>-/?@F 	6!9NLL!N5L! YN 22J)")"01-#9)%!%!? .+%#!'#&?%!-)E!5%'9 3 ) )< (():/3/5/406<N ) P P  	9  n5554S+...$%788rh   N)Nri   NNNNNNFTNNNTNNNFNN)__name__
__module____qualname__rg   r    rh   rf   r    r    @   s         '+i5 i5 i5 i5X    $ $#'$(#'++/ "&.2&*#"!%)E9 E9 E9 E9 E9 E9rh   r    c                       e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@d? ZAd@ ZBdA ZCdB ZDdC ZEdD ZFdE ZGdF ZHdG ZIdH ZJdI ZKdJ ZLdK ZMdL ZNdM ZOdN ZPdO ZQdP ZRdQ ZSdR ZTdS ZUdT ZVdU ZWdV ZXdW ZYdX ZZdY Z[dZ Z\d[ Z]d\ Z^d] Z_d^ Z`d_ Zad` Zbda Zcdb Zddc Zedd Zfde Zgdf Zhdg Zidh Zjdi Zkdj Zldk Zmdl Zndm Zodn Zpdo Zqdp Zrdq Zsdr Ztds Zudt Zvdu Zwdv Zxdw Zydx Zzdy Z{dz Z|d{ Z}d| Z~d} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdÄ ZdĄ Zdń ZdƄ ZdǄ ZdȄ ZdɄ Zdʄ Zd˄ Zd̄ Zd̈́ Zd΄ Zdτ ZdЄ Zdф Zd҄ Zdӄ ZdԄ ZdՄ Zdք Z	 	 	 	 	 	 	 	 	 	 	 	 ddڄZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddۄZd܄ Zd݄ Z	 	 	 ddބZ	 	 	 dd߄Zd Zd Z	 	 	 	 ddZ	 	 	 ddZ	 	 	 	 	 ddZ	 	 ddZ	 	 	 ddZ	 ddZ xZS )KdcTgsTestsc                 x    t                                                       t          | _        t          | _        d S r   )supersetUpglobal_asn1_printdo_asn1_printglobal_hexdump
do_hexdump)rV   	__class__s    rf   r   zKdcTgsTests.setUp6  s'    .(rh   c           
      l   |                                  }d}|                     ||          \  }}|                                                                }t          f}|                     t          |g          }|                     t          d|g          }|                     ||||          }	| 	                    |	           | 
                    ||	          }
|                     ||	          }|                     |||||
g          }	|                     |	           |                     ||	          }|                     |d                   }|	d         }|                     t          dg          }|                     t          d|                                g          }|                     ||||||t"          d	
          \  }	}|                     |d|	d|d           |                     t(          |	d         d|	z             |                     t"          |	d         d|	z             dS )z| Try and obtain a ticket from the TGS, but supply a cname
            that differs from that provided to the krbtgt
        	tsttktusrr#   rk   r9   r   r   Administratorr&   F)r1   r@   rep = {z}, enc_part = {}r=   z
rep = {%s}r>   N)	get_samdbcreate_accountrE   lowerr   rC   r   r   as_reqcheck_pre_authenticationget_enc_timestamp_pa_dataget_as_rep_keyrU   get_as_rep_enc_dataEncryptionKey_importhost_dns_nametgs_reqr   assertIsNonerN   r   )rV   samdbr[   uc_r-   r+   r,   r.   r`   r9   r   	enc_part2r   enc_parts                  rf   9test_tgs_req_cname_does_not_not_match_authenticator_cnamezEKdcTgsTests.test_tgs_req_cname_does_not_not_match_authenticator_cname;  sh   
   	%%eY77Q$$&& )*))"9+ * 7 7))!(E): * < < kk%u55%%c*** //C88!!"c**kk%ufXkFFC    ,,S#66	''	%(899X))""# * % % ))"5..001 * 3 3 ,,ueUFC;K49 ' ; ;h 	H-0SS(((;	= 	= 	= 	C
O\C5GHHH3	  	  	  	  	 rh   c           
         |                                  }d}|                     ||          \  }}|                                                                }t          f}|                     t          |g          }|                     t          d|g          }|                     ||||          }	| 	                    |	           | 
                    ||	          }
|                     ||	          }|                     |||||
g          }	|                     |	           |                     ||	          }|                     |d                   }|	d         }|                     t          d|                                g          }|                     |||                                ||||                                           \  }	}|                     |	           d	S )
z)Get a ticket to the ldap service
        r   r#   rk   r   r   r   ldapservice_credsN)r   r   rE   r   r   rC   r   r   r   r   r   r   rU   r   r   r   r   get_dc_credscheck_tgs_reply)rV   r   r[   r   r   r-   r+   r,   r.   r`   r9   r   r   r   s                 rf   test_ldap_service_ticketz$KdcTgsTests.test_ldap_service_ticketp  s      	%%eY77Q$$&& )*))"9+ * 7 7))!(E): * < < kk%u55%%c*** //C88!!"c**kk%ufXkFFC   ,,S#66	''	%(899X ))!5..001 * 3 3 <<5",,..&#u++--   / /a 	S!!!!!rh   c           	         |                                  }d}|                     ||          \  }}|                     |d| j        j                  \  }}|                                                                }t          t          f}|                     t          |g          }	|                     t          d|g          }
|                     |	|
||          }|                     |           |                     ||          }|                     ||          }|                     |	|
|||g          }|                     |           |d         }|                     ||          }|                     |d                   }|                     t          |g          }	|                     t          |                                g          }
|                     |	|
|                                ||||	          \  }}|                     |           |d         }|                     ||          }|                     |d
                   }|                     ||          }|                                d|}|                     |                                t3          |j                  d|d|           |                     |                                |j        d|d|           |                     |                                |j        d|d|           |                     ||j        d|d|           |                     ||j        d|d|           d S )Nr   	tsttktmac)account_typer#   rk   r   r   r   r   zauthorization-data@r   z},)r   r   AccountTypeCOMPUTERrE   r   r   r   rC   r   r   r   r   r   r   rU   r   r   rB   r   r   decode_service_ticketget_pac_dataget_objectSidrN   straccount_name
logon_namedomain_nameupnaccount_sid)rV   r   r[   r   dnmcr   r-   r+   r,   r.   r`   r9   r   r   r   r   pac_datasidr   s                       rf   3test_get_ticket_for_host_service_of_machine_accountz?KdcTgsTests.test_get_ticket_for_host_service_of_machine_account  s      	&&ui88R%%e[373C3L & N NQ$$&& )*:;))"9+ * 7 7))!(E): * < < kk%u55%%c*** //C88!!"c**kk%ufXkFFC    X,,S#66	''	%(899))"+ *   ))"??$$% * ' ' ,,5",,..&#u '  h 	S!!! X--b&99$$X.B%CDD  ++****EE2OO%&&&"ssHH-	/ 	/ 	/ 	OO"ssHH-	/ 	/ 	/ 	LLNN  "ssHH-	/ 	/ 	/ 	LL"ssHH-	/ 	/ 	/ 	  "ssHH-	/ 	/ 	/ 	/ 	/rh   c                 V   |                                  }|                                 }|                     |          }|                     |          }|                     |           |                     |||          }|                     |          }|                     |           d S r   )get_client_credsget_service_credsget_tgtget_ticket_pacrM   _make_tgs_requestrV   client_credsr   rt   pacr   s         rf   test_requestzKdcTgsTests.test_request  s    ,,....00ll<((!!#&&S!!!''mSII!!&))S!!!!!rh   c                 d   |                                  }|                                 }|                     |d          }|                     |          }|                     |           |                     |||dd          }|                     |d          }|                     |           d S )NFpac_requestr   rz   rz   )r   r   r   r   rM   r   r   r   s         rf   test_request_no_paczKdcTgsTests.test_request_no_pac  s    ,,....00ll<Ul;;!!#&&S!!!''mS49e ( M M !!&U!;;#rh   c           
         |                                  }|                     | j        j        d|i          }|                                 }|                                }|                                }| d| }|                     t          |g          }d}| 	                    ||t          |||          }	|                     |||	|t          |||           d S Nr   r   optsr   r#   canonicalize)client_accountclient_name_typer3   expected_account_namer:   )get_new_usernameget_cached_credsr   USERr   rB   rE   rC   r   r   r   r   
rV   r   r   r   r[   r-   r   r3   r:   rt   s
             rf   test_request_enterprise_canonz)KdcTgsTests.test_request_enterprise_canon  s   ##%%,,). -   ..00 --//	&&((%////22"+ 3   %ll<*8,C*81:'2  4 4 	-)4)"+# 	 	% 	% 	% 	% 	%rh   c           
         |                                  }|                     | j        j        d|i          }|                                 }|                                }|                                                                }| d| }|                     t          |g          }d}| 
                    ||t          |||          }	|                     |||	|t          |||           d S r   )r   r   r   r   r   rB   rE   r   rC   r   r   r   r   r   s
             rf   "test_request_enterprise_canon_casez.KdcTgsTests.test_request_enterprise_canon_case  s"   ##%%,,). -   ..00 --//	&&((..00%////22"+ 3   %ll<*8,C*81:'2  4 4 	-)4)"+# 	 	% 	% 	% 	% 	%rh   c           
         |                                  }|                     | j        j        d|i          }|                                 }|                                }|                                }| d| }|                     t          |g          }d}| 	                    ||t          |||          }	|                     |||	|t          |||           d S r   )r   r   r   r   r   rB   rE   rC   r   r   r   r   r   s
             rf   !test_request_enterprise_canon_macz-KdcTgsTests.test_request_enterprise_canon_mac>  s   ##%%,,)2 -   ..00 --//	&&((%////22"+ 3   %ll<*8,C*81:'2  4 4 	-)4)"+# 	 	% 	% 	% 	% 	%rh   c           
         |                                  }|                     | j        j        d|i          }|                                 }|                                }|                                                                }| d| }|                     t          |g          }d}| 
                    ||t          |||          }	|                     |||	|t          |||           d S r   )r   r   r   r   r   rB   rE   r   rC   r   r   r   r   r   s
             rf   &test_request_enterprise_canon_case_macz2KdcTgsTests.test_request_enterprise_canon_case_mac^  s"   ##%%,,)2 -   ..00 --//	&&((..00%////22"+ 3   %ll<*8,C*81:'2  4 4 	-)4)"+# 	 	% 	% 	% 	% 	%rh   c           	      ~   |                                  }|                     | j        j        d|i          }|                                 }|                                }|                                }| d| }d}|                     ||t          ||          }| 	                    ||||t          ||           d S Nr   r   r   ri   )r   r   r   r:   )
r   r   r   r   r   rB   rE   r   r   r   	rV   r   r   r   r[   r-   r   r:   rt   s	            rf    test_request_enterprise_no_canonz,KdcTgsTests.test_request_enterprise_no_canon~  s    ##%%,,). -   ..00 --//	&&((%////ll<*8,C1:'2	  4 4 	-)4"+# 	 	% 	% 	% 	% 	%rh   c           	         |                                  }|                     | j        j        d|i          }|                                 }|                                }|                                                                }| d| }d}|                     ||t          ||          }| 
                    ||||t          ||           d S r   )r   r   r   r   r   rB   rE   r   r   r   r   r   s	            rf   %test_request_enterprise_no_canon_casez1KdcTgsTests.test_request_enterprise_no_canon_case  s    ##%%,,). -   ..00 --//	&&((..00%////ll<*8,C1:'2	  4 4 	-)4"+# 	 	% 	% 	% 	% 	%rh   c           	      ~   |                                  }|                     | j        j        d|i          }|                                 }|                                }|                                }| d| }d}|                     ||t          ||          }| 	                    ||||t          ||           d S r   )
r   r   r   r   r   rB   rE   r   r   r   r   s	            rf   $test_request_enterprise_no_canon_macz0KdcTgsTests.test_request_enterprise_no_canon_mac  s    ##%%,,)2 -   ..00 --//	&&((%////ll<*8,C1:'2	  4 4 	-)4"+# 	 	% 	% 	% 	% 	%rh   c           	         |                                  }|                     | j        j        d|i          }|                                 }|                                }|                                                                }| d| }d}|                     ||t          ||          }| 
                    ||||t          ||           d S r   )r   r   r   r   r   rB   rE   r   r   r   r   r   s	            rf   )test_request_enterprise_no_canon_case_macz5KdcTgsTests.test_request_enterprise_no_canon_case_mac  s    ##%%,,)2 -   ..00 --//	&&((..00%////ll<*8,C1:'2	  4 4 	-)4"+# 	 	% 	% 	% 	% 	%rh   c                 t   |                      | j        j        ddi          }|                                 }|                     |          }|                     |          }|                     |           |                     |||          }|                     |          }|                     |           d S )Nno_auth_data_requiredTr   r   r   r   r   r   r   rM   r   r   s         rf   !test_client_no_auth_data_requiredz-KdcTgsTests.test_client_no_auth_data_required  s    ,,).)40 - 2 2 ..00ll<((!!#&&S!!!''mSII!!&))S!!!!!rh   c                 z   |                      | j        j        ddi          }|                                 }|                     |          }|                     |          }|                     |           |                     |||dd          }|                     |          }|                     |           d S )Nr	  Tr   Fr   r
  r   s         rf   (test_no_pac_client_no_auth_data_requiredz4KdcTgsTests.test_no_pac_client_no_auth_data_required  s    ,,).)40 - 2 2 ..00ll<((!!#&&S!!!''mS49d ( L L !!&))S!!!!!rh   c                 |   |                                  }|                     | j        j        ddi          }|                     |          }|                     |          }|                     |           |                     |||d          }|                     |d          }|                     |           d S )Nr	  Tr   Fr   	r   r   r   r   r   r   rM   r   r   r   s         rf   "test_service_no_auth_data_requiredz.KdcTgsTests.test_service_no_auth_data_required  s    ,,..--)2)40 . 2 2 ll<((!!#&&S!!!''mS38 ( : : !!&U!;;#rh   c                    |                                  }|                     | j        j        ddi          }|                     |d          }|                     |          }|                     |           |                     |||dd          }|                     |d          }|                     |           d S )Nr	  Tr   Fr   r   r   r  r   s         rf   )test_no_pac_service_no_auth_data_requiredz5KdcTgsTests.test_no_pac_service_no_auth_data_required  s    ,,..--)2)40 . 2 2 ll<Ul;;!!#&&S!!!''mS49e ( M M !!&U!;;#rh   c                 R   |                                  }|                     | j        j        ddi          }|                     |                     |          d          }|                     |d          }|                     |           |                     |||d           d S Nr	  Tr   exclude_pacFr   expect_error)	r   r   r   r   modified_ticketr   r   r   r   rV   r   r   rt   r   s        rf   -test_remove_pac_service_no_auth_data_requiredz9KdcTgsTests.test_remove_pac_service_no_auth_data_required)  s    ,,..--)2)40 . 2 2 ""4<<#=#=/3 # 5 5 !!#%!88#|]C,0 	 	2 	2 	2 	2 	2rh   c                 R   |                      | j        j        ddi          }|                                 }|                     |                     |          d          }|                     |d          }|                     |           |                     |||d           d S r  )	r   r   r   r   r  r   r   r   r   r  s        rf   ,test_remove_pac_client_no_auth_data_requiredz8KdcTgsTests.test_remove_pac_client_no_auth_data_required8  s    ,,).)40 - 2 2 ..00""4<<#=#=/3 # 5 5 !!#%!88#|]C,0 	 	2 	2 	2 	2 	2rh   c                 4   |                                  }|                                 }|                     |                     |          d          }|                     |d          }|                     |           |                     |||d           d S )NTr  Fr   r  )r   r   r  r   r   r   r   r  s        rf   test_remove_paczKdcTgsTests.test_remove_pacG  s    ,,....00""4<<#=#=/3 # 5 5 !!#%!88#|]C,0 	 	2 	2 	2 	2 	2rh   c                 X    |                                  }|                     |           d S r   )r   _run_upn_dns_info_ex_testrV   r   s     rf   test_upn_dns_info_ex_userz%KdcTgsTests.test_upn_dns_info_ex_userT  s-    ,,..&&|44444rh   c                 X    |                                  }|                     |           d S r   )get_mach_credsr!  rV   
mach_credss     rf   test_upn_dns_info_ex_macz$KdcTgsTests.test_upn_dns_info_ex_macX  s-    ((**
&&z22222rh   c                 v    |                      | j        j        ddi          }|                     |           d S )Nr   zupn_dns_info_test_upn0@barr   )r   r   r   r!  r"  s     rf   test_upn_dns_info_ex_upn_userz)KdcTgsTests.test_upn_dns_info_ex_upn_user\  sJ    ,,).56 - 8 8 	&&|44444rh   c                 v    |                      | j        j        ddi          }|                     |           d S )Nr   zupn_dns_info_test_upn1@barr   )r   r   r   r!  r&  s     rf   test_upn_dns_info_ex_upn_macz(KdcTgsTests.test_upn_dns_info_ex_upn_macb  sJ    **)256 + 8 8
 	&&z22222rh   c                    |                                  }|                                 }|                                }|                                }|                                }|-|                                                                }| d| }|                     ||          }|                     ||||          }	| 	                    |||	|||           d S )Nr   )r   expected_upn_namer~   )
r   r   get_dnrB   get_upnrE   r   r   r   r   )
rV   r   r   r   r   r   upn_namer-   r   rt   s
             rf   r!  z%KdcTgsTests._run_upn_dns_info_ex_testh  s    ..00    ""#0022'')) **,,2244E&0000H  ++ll<1=-5(+  - -
 	|]C5A19,/ 	 	1 	1 	1 	1 	1rh   c                     |                                  }|                     |          }|                     |d           d S Nr   rX   
_get_creds_get_tgt_run_tgsrV   rW   rt   s      rf   test_tgs_reqzKdcTgsTests.test_tgs_req  s>    !!mmE""c!,,,,,rh   c                     |                                  }|                     |d          }|                     |dddd           d S )NT	renewabler   rX   r{   r|   r}   r6  r7  
_renew_tgtr9  s      rf   test_renew_reqzKdcTgsTests.test_renew_req  sX    !!mmETm22A)-59-1 	 	3 	3 	3 	3 	3rh   c                     |                                  }|                     |d          }|                     |dddd           d S )NTinvalidr   r>  r6  r7  _validate_tgtr9  s      rf   test_validate_reqzKdcTgsTests.test_validate_req  sZ    !!mmE4m003q,08<04 	 	6 	6 	6 	6 	6rh   c                     |                                  }|                     |          }|                     ||d           d S r3  )r6  r7  	_s4u2selfr9  s      rf   test_s4u2self_reqzKdcTgsTests.test_s4u2self_req  s@    !!mmE""sE!44444rh   c                     |                                  }|                     |          }|                     ||d           d S r3  r6  r7  
_user2userr9  s      rf   test_user2user_reqzKdcTgsTests.test_user2user_req  s@    !!mmE""U155555rh   c                     |                                  }|                     |          }|                     ||d           d S r3  )r6  r7  _fastr9  s      rf   test_fast_reqzKdcTgsTests.test_fast_req  s@    !!mmE""

3a
00000rh   c                     |                                  }|                     |d          }|                     |t                     d S NTrC  r4  )r6  r7  r8  r   r9  s      rf   test_tgs_req_invalidz KdcTgsTests.test_tgs_req_invalid  sB    !!mmE4m00c/:::::rh   c                     |                                  }|                     |d          }|                     ||t                     d S rS  )r6  r7  rI  r   r9  s      rf   test_s4u2self_req_invalidz%KdcTgsTests.test_s4u2self_req_invalid  sD    !!mmE4m00sE/BBBBBrh   c                     |                                  }|                     |d          }|                     ||t                     d S rS  )r6  r7  rM  r   r9  s      rf   test_user2user_req_invalidz&KdcTgsTests.test_user2user_req_invalid  sD    !!mmE4m00U?CCCCCrh   c                     |                                  }|                     |d          }|                     ||t          |                                            d S )NTrC  rX   r5   )r6  r7  rP  r   r   r9  s      rf   test_fast_req_invalidz!KdcTgsTests.test_fast_req_invalid  s`    !!mmE4m00

3o"&"7"7"9"9 	 	; 	; 	; 	; 	;rh   c                     |                                  }|                     |d          }|                     |t                     d S )NT)remove_requester_sidr4  r6  r7  r8  r   r9  s      rf   test_tgs_req_no_requester_sidz)KdcTgsTests.test_tgs_req_no_requester_sid  sC    !!mmEm==c*=>>>>>rh   c                     |                                  }|                     |d          }|                     |ddd           d S )NT)remove_pac_attrsr   FrX   rz   r{   r5  r9  s      rf   test_tgs_req_no_pac_attrsz%KdcTgsTests.test_tgs_req_no_pac_attrs  sT    !!mmEDm99c!', 	 	. 	. 	. 	. 	.rh   c                     |                      dd          }|                     |dd          }|                     |t                     d S )NTreplication_allowedrevealed_to_rodc)	from_rodcr]  r4  r^  r9  s      rf   'test_tgs_req_from_rodc_no_requester_sidz3KdcTgsTests.test_tgs_req_from_rodc_no_requester_sid  sS    D15   7 7mmETmMMc*=>>>>>rh   c                     |                      dd          }|                     |dd          }|                     |ddd           d S )NTre  )rh  ra  r   Frb  r5  r9  s      rf   #test_tgs_req_from_rodc_no_pac_attrsz/KdcTgsTests.test_tgs_req_from_rodc_no_pac_attrs  sd    D15   7 7mmETDmIIc!', 	 	. 	. 	. 	. 	.rh   c                     |                                  }|                     |d          }|                     |t                     d S NT
remove_pacr4  r^  r9  s      rf   test_tgs_no_paczKdcTgsTests.test_tgs_no_pac  sC    !!mmEdm33c*=>>>>>rh   c                     |                                  }|                     |dd          }|                     |t                     d S )NT)r=  ro  r4  r6  r7  r@  r   r9  s      rf   test_renew_no_paczKdcTgsTests.test_renew_no_pac  sE    !!mmETdmCC,?@@@@@rh   c                     |                                  }|                     |dd          }|                     |t                     d S )NT)rD  ro  r4  r6  r7  rF  r   r9  s      rf   test_validate_no_pacz KdcTgsTests.test_validate_no_pac  sH    !!mmE4DmAA3/BCCCCCrh   c                     |                                  }|                     |d          }|                     ||t          d           d S )NTrn  FrX   r@   r6  r7  rI  r   r9  s      rf   test_s4u2self_no_pacz KdcTgsTests.test_s4u2self_no_pac  sU    !!mmEdm33sE&9$) 	 	+ 	+ 	+ 	+ 	+rh   c                     |                                  }|                     |d          }|                     ||t                     d S rm  r6  r7  rM  r   r9  s      rf   test_user2user_no_pacz!KdcTgsTests.test_user2user_no_pac  sE    !!mmEdm33U3FGGGGGrh   c                     |                                  }|                     |d          }|                     ||t          |                                            d S )NTrn  rZ  r6  r7  rP  r   r   r9  s      rf   test_fast_no_paczKdcTgsTests.test_fast_no_pac  sa    !!mmEdm33

3.A"&"7"7"9"9 	 	; 	; 	; 	; 	;rh   c                     |                                  }|                     |dd          }|                     |t                     d S NTro  allow_empty_authdatar4  r^  r9  s      rf   test_tgs_authdata_no_pacz$KdcTgsTests.test_tgs_authdata_no_pac  sE    !!mmEdmNNc*=>>>>>rh   c                     |                                  }|                     |ddd          }|                     |t                     d S )NT)r=  ro  r  r4  rr  r9  s      rf   test_renew_authdata_no_pacz&KdcTgsTests.test_renew_authdata_no_pac  sO    !!mmETd15  7 7,?@@@@@rh   c                     |                                  }|                     |ddd          }|                     |t                     d S )NT)rD  ro  r  r4  ru  r9  s      rf   test_validate_authdata_no_pacz)KdcTgsTests.test_validate_authdata_no_pac  sR    !!mmE4D15  7 73/BCCCCCrh   c                     |                                  }|                     |dd          }|                     ||t          d           d S )NTr  Frx  ry  r9  s      rf   test_s4u2self_authdata_no_pacz)KdcTgsTests.test_s4u2self_authdata_no_pac  sW    !!mmEdmNNsE&9$) 	 	+ 	+ 	+ 	+ 	+rh   c                     |                                  }|                     |dd          }|                     ||t                     d S r  r|  r9  s      rf   test_user2user_authdata_no_pacz*KdcTgsTests.test_user2user_authdata_no_pac  sG    !!mmEdmNNU3FGGGGGrh   c                     |                                  }|                     |dd          }|                     ||t          |                                            d S )NTr  rZ  r  r9  s      rf   test_fast_authdata_no_pacz%KdcTgsTests.test_fast_authdata_no_pac  sc    !!mmEdmNN

3.A"&"7"7"9"9 	 	; 	; 	; 	; 	;rh   c                     |                                  }|                                 }|                     ||          }|                     |t                     d S Nnew_ridr4  r6  _get_existing_ridr7  r8  r   rV   rW   existing_ridrt   s       rf   test_tgs_sid_mismatch_existingz*KdcTgsTests.test_tgs_sid_mismatch_existing  sT    !!--//mmE<m88c*=>>>>>rh   c                     |                                  }|                                 }|                     |d|          }|                     |t                     d S NT)r=  r  r4  r6  r  r7  r@  r   r  s       rf    test_renew_sid_mismatch_existingz,KdcTgsTests.test_renew_sid_mismatch_existing!  sV    !!--//mmET<mHH,?@@@@@rh   c                     |                                  }|                                 }|                     |d|          }|                     |t                     d S NT)rD  r  r4  r6  r  r7  rF  r   r  s       rf   #test_validate_sid_mismatch_existingz/KdcTgsTests.test_validate_sid_mismatch_existing'  sY    !!--//mmE4mFF3/BCCCCCrh   c                     |                                  }|                                 }|                     ||          }|                     ||t                     d S r  r6  r  r7  rI  r   r  s       rf   #test_s4u2self_sid_mismatch_existingz/KdcTgsTests.test_s4u2self_sid_mismatch_existing-  sc    !!--//mmE<m88sE&9 	 	; 	; 	; 	; 	;rh   c                     |                                  }|                                 }|                     ||          }|                     ||t                     d S r  r6  r  r7  rM  r   r  s       rf   $test_user2user_sid_mismatch_existingz0KdcTgsTests.test_user2user_sid_mismatch_existing4  sc    !!--//mmE<m88U': 	 	< 	< 	< 	< 	<rh   c                     |                                  }|                                 }|                     ||          }|                     ||t          |                                            d S Nr  rZ  r6  r  r7  rP  r   r   r  s       rf   test_fast_sid_mismatch_existingz+KdcTgsTests.test_fast_sid_mismatch_existing;  sr    !!--//mmE<m88

3"5"&"7"7"9"9 	 	; 	; 	; 	; 	;rh   c                     |                                  }|                                 }|                     ||d          }|                     |t                     d S NF)r  can_modify_logon_infor4  r  r  s       rf   $test_requester_sid_mismatch_existingz0KdcTgsTests.test_requester_sid_mismatch_existingC  s^    !!--//mmE<27  9 9c*=>>>>>rh   c                     |                                  }|                                 }|                     ||d          }|                     |d           d S NF)r  can_modify_requester_sidr   r4  r6  r  r7  r8  r  s       rf   %test_logon_info_sid_mismatch_existingz1KdcTgsTests.test_logon_info_sid_mismatch_existingJ  s]    !!--//mmE<5:  < <c!,,,,,rh   c                     |                                  }|                                 }|                     ||d          }|                     |t                     d S NT)r  r]  r4  r  r  s       rf   *test_logon_info_only_sid_mismatch_existingz6KdcTgsTests.test_logon_info_only_sid_mismatch_existingQ  s^    !!--//mmE<15  7 7c*=>>>>>rh   c                     |                                  }|                                 }|                     ||          }|                     |t                     d S r  r6  _get_non_existent_ridr7  r8  r   rV   rW   nonexistent_ridrt   s       rf   !test_tgs_sid_mismatch_nonexistingz-KdcTgsTests.test_tgs_sid_mismatch_nonexistingY  sT    !!4466mmE?m;;c*=>>>>>rh   c                     |                                  }|                                 }|                     |d|          }|                     |t                     d S r  r6  r  r7  r@  r   r  s       rf   #test_renew_sid_mismatch_nonexistingz/KdcTgsTests.test_renew_sid_mismatch_nonexisting_  s^    !!4466mmET$3  5 5,?@@@@@rh   c                     |                                  }|                                 }|                     |d|          }|                     |t                     d S r  r6  r  r7  rF  r   r  s       rf   &test_validate_sid_mismatch_nonexistingz2KdcTgsTests.test_validate_sid_mismatch_nonexistingf  sa    !!4466mmE4$3  5 53/BCCCCCrh   c                     |                                  }|                                 }|                     ||          }|                     ||t                     d S r  r6  r  r7  rI  r   r  s       rf   &test_s4u2self_sid_mismatch_nonexistingz2KdcTgsTests.test_s4u2self_sid_mismatch_nonexistingm  sc    !!4466mmE?m;;sE&9 	 	; 	; 	; 	; 	;rh   c                     |                                  }|                                 }|                     ||          }|                     ||t                     d S r  r6  r  r7  rM  r   r  s       rf   'test_user2user_sid_mismatch_nonexistingz3KdcTgsTests.test_user2user_sid_mismatch_nonexistingt  sc    !!4466mmE?m;;U': 	 	< 	< 	< 	< 	<rh   c                     |                                  }|                                 }|                     ||          }|                     ||t          |                                            d S r  r6  r  r7  rP  r   r   r  s       rf   "test_fast_sid_mismatch_nonexistingz.KdcTgsTests.test_fast_sid_mismatch_nonexisting{  sr    !!4466mmE?m;;

3"5"&"7"7"9"9 	 	; 	; 	; 	; 	;rh   c                     |                                  }|                                 }|                     ||d          }|                     |t                     d S r  r  r  s       rf   'test_requester_sid_mismatch_nonexistingz3KdcTgsTests.test_requester_sid_mismatch_nonexisting  s^    !!4466mmE?27  9 9c*=>>>>>rh   c                     |                                  }|                                 }|                     ||d          }|                     |d           d S r  r6  r  r7  r8  r  s       rf   (test_logon_info_sid_mismatch_nonexistingz4KdcTgsTests.test_logon_info_sid_mismatch_nonexisting  s]    !!4466mmE?5:  < <c!,,,,,rh   c                     |                                  }|                                 }|                     ||d          }|                     |t                     d S r  r  r  s       rf   -test_logon_info_only_sid_mismatch_nonexistingz9KdcTgsTests.test_logon_info_only_sid_mismatch_nonexisting  s^    !!4466mmE?15  7 7c*=>>>>>rh   c                     |                      dd          }|                     |d          }|                     |d           d S NTre  rh  r   r4  r5  r9  s      rf   test_tgs_rodc_revealedz"KdcTgsTests.test_tgs_rodc_revealed  sP    D15   7 7mmETm22c!,,,,,rh   c                     |                      dd          }|                     |dd          }|                     |ddd           d S )NTre  r=  rh  r   FrX   r{   r}   r?  r9  s      rf   test_renew_rodc_revealedz$KdcTgsTests.test_renew_rodc_revealed  se    D15   7 7mmETTmBBA).-1 	 	3 	3 	3 	3 	3rh   c                     |                      dd          }|                     |dd          }|                     |ddd           d S )NTre  rD  rh  r   Fr  rE  r9  s      rf   test_validate_rodc_revealedz'KdcTgsTests.test_validate_rodc_revealed  sg    D15   7 7mmE44m@@3q,104 	 	6 	6 	6 	6 	6rh   c                     |                      dd          }|                     |d          }|                     ||t                     d S NTre  r  r4  )r6  r7  rI  r   r9  s      rf   test_s4u2self_rodc_revealedz'KdcTgsTests.test_s4u2self_rodc_revealed  se    D15   7 7mmETm22sE&A 	 	C 	C 	C 	C 	Crh   c                     |                      dd          }|                     |d          }|                     ||d           d S r  rL  r9  s      rf   test_user2user_rodc_revealedz(KdcTgsTests.test_user2user_rodc_revealed  sR    D15   7 7mmETm22U155555rh   c                     |                      dd          }|                     dd          }|                     |d|          }|                     |t                     d S NTre  rh  r  r4  r  r  s       rf   #test_tgs_rodc_sid_mismatch_existingz/KdcTgsTests.test_tgs_rodc_sid_mismatch_existing  st    D15   7 7--$?C . E EmmET<mHHc*=>>>>>rh   c                     |                      dd          }|                     dd          }|                     |dd|          }|                     |t                     d S NTre  )r=  rh  r  r4  r  r  s       rf   %test_renew_rodc_sid_mismatch_existingz1KdcTgsTests.test_renew_rodc_sid_mismatch_existing  s~    D15   7 7--$?C . E EmmETT$0  2 2,?@@@@@rh   c                     |                      dd          }|                     dd          }|                     |dd|          }|                     |t                     d S NTre  )rD  rh  r  r4  r  r  s       rf   (test_validate_rodc_sid_mismatch_existingz4KdcTgsTests.test_validate_rodc_sid_mismatch_existing  s    D15   7 7--$8< . > >mmE44$0  2 23/BCCCCCrh   c                     |                      dd          }|                     dd          }|                     |d|          }|                     ||t                     d S r  r  r  s       rf   (test_s4u2self_rodc_sid_mismatch_existingz4KdcTgsTests.test_s4u2self_rodc_sid_mismatch_existing  sv    D15   7 7--$?C . E EmmET<mHHsE2EFFFFFrh   c                     |                      dd          }|                     dd          }|                     |d|          }|                     ||t                     d S r  r  r  s       rf   )test_user2user_rodc_sid_mismatch_existingz5KdcTgsTests.test_user2user_rodc_sid_mismatch_existing  s    D15   7 7--$?C . E EmmET<mHHU': 	 	< 	< 	< 	< 	<rh   c                     |                      dd          }|                     dd          }|                     |d|          }|                     ||t          |                                            d S NTre  r  rZ  r  r  s       rf   $test_fast_rodc_sid_mismatch_existingz0KdcTgsTests.test_fast_rodc_sid_mismatch_existing  s    D15   7 7--$?C . E EmmET<mHH

3"5"&"7"7"9"9 	 	; 	; 	; 	; 	;rh   c                     |                      dd          }|                     dd          }|                     |d|d          }|                     |t                     d S NTre  F)rh  r  r  r4  r  r  s       rf   -test_tgs_rodc_requester_sid_mismatch_existingz9KdcTgsTests.test_tgs_rodc_requester_sid_mismatch_existing  s~    D15   7 7--$?C . E EmmET<27  9 9c*=>>>>>rh   c                     |                      dd          }|                     dd          }|                     |d|d          }|                     |d           d S NTre  F)rh  r  r  r   r4  r  r  s       rf   .test_tgs_rodc_logon_info_sid_mismatch_existingz:KdcTgsTests.test_tgs_rodc_logon_info_sid_mismatch_existing  s}    D15   7 7--$?C . E EmmET<5:  < <c!,,,,,rh   c                     |                      dd          }|                     dd          }|                     |d|d          }|                     |t                     d S NTre  )rh  r  r]  r4  r  r  s       rf   3test_tgs_rodc_logon_info_only_sid_mismatch_existingz?KdcTgsTests.test_tgs_rodc_logon_info_only_sid_mismatch_existing  s~    D15   7 7--$?C . E EmmET<15  7 7c*=>>>>>rh   c                     |                      dd          }|                                 }|                     |d|          }|                     |t                     d S r  r  r  s       rf   &test_tgs_rodc_sid_mismatch_nonexistingz2KdcTgsTests.test_tgs_rodc_sid_mismatch_nonexisting  sd    D15   7 74466mmET?mKKc*=>>>>>rh   c                     |                      dd          }|                                 }|                     |dd|          }|                     |t                     d S r  r  r  s       rf   (test_renew_rodc_sid_mismatch_nonexistingz4KdcTgsTests.test_renew_rodc_sid_mismatch_nonexisting  sn    D15   7 74466mmETT$3  5 5,?@@@@@rh   c                     |                      dd          }|                                 }|                     |dd|          }|                     |t                     d S r  r  r  s       rf   +test_validate_rodc_sid_mismatch_nonexistingz7KdcTgsTests.test_validate_rodc_sid_mismatch_nonexisting!  sq    D15   7 74466mmE44$3  5 53/BCCCCCrh   c                     |                      dd          }|                                 }|                     |d|          }|                     ||t                     d S r  r  r  s       rf   +test_s4u2self_rodc_sid_mismatch_nonexistingz7KdcTgsTests.test_s4u2self_rodc_sid_mismatch_nonexisting)  sf    D15   7 74466mmET?mKKsE2EFFFFFrh   c                     |                      dd          }|                                 }|                     |d|          }|                     ||t                     d S r  r  r  s       rf   ,test_user2user_rodc_sid_mismatch_nonexistingz8KdcTgsTests.test_user2user_rodc_sid_mismatch_nonexisting0  ss    D15   7 74466mmET?mKKU': 	 	< 	< 	< 	< 	<rh   c                     |                      dd          }|                                 }|                     |d|          }|                     ||t          |                                            d S r  r  r  s       rf   'test_fast_rodc_sid_mismatch_nonexistingz3KdcTgsTests.test_fast_rodc_sid_mismatch_nonexisting8  s    D15   7 74466mmET?mKK

3"5"&"7"7"9"9 	 	; 	; 	; 	; 	;rh   c                     |                      dd          }|                                 }|                     |d|d          }|                     |t                     d S r  r  r  s       rf   0test_tgs_rodc_requester_sid_mismatch_nonexistingz<KdcTgsTests.test_tgs_rodc_requester_sid_mismatch_nonexistingA  sn    D15   7 74466mmET?27  9 9c*=>>>>>rh   c                     |                      dd          }|                                 }|                     |d|d          }|                     |d           d S r  r  r  s       rf   1test_tgs_rodc_logon_info_sid_mismatch_nonexistingz=KdcTgsTests.test_tgs_rodc_logon_info_sid_mismatch_nonexistingI  sm    D15   7 74466mmET?5:  < <c!,,,,,rh   c                     |                      dd          }|                                 }|                     |d|d          }|                     |t                     d S r  r  r  s       rf   6test_tgs_rodc_logon_info_only_sid_mismatch_nonexistingzBKdcTgsTests.test_tgs_rodc_logon_info_only_sid_mismatch_nonexistingQ  sn    D15   7 74466mmET?15  7 7c*=>>>>>rh   c                     |                      d          }|                     |d          }|                     |t                     d S NTrf  r  r4  r^  r9  s      rf   test_tgs_rodc_not_revealedz&KdcTgsTests.test_tgs_rodc_not_revealed[  sG    D99mmETm22c*=>>>>>rh   c                     |                      d          }|                     |dd          }|                     |t                     d S )NTr  r  r4  rr  r9  s      rf   test_renew_rodc_not_revealedz(KdcTgsTests.test_renew_rodc_not_revealeda  sI    D99mmETTmBB,?@@@@@rh   c                     |                      d          }|                     |dd          }|                     |t                     d S )NTr  r  r4  ru  r9  s      rf   test_validate_rodc_not_revealedz+KdcTgsTests.test_validate_rodc_not_revealedf  sL    D99mmE44m@@3/BCCCCCrh   c                     |                      d          }|                     |d          }|                     ||t                     d S r  ry  r9  s      rf   test_s4u2self_rodc_not_revealedz+KdcTgsTests.test_s4u2self_rodc_not_revealedk  sI    D99mmETm22sE2EFFFFFrh   c                     |                      d          }|                     |d          }|                     ||t                     d S r  r|  r9  s      rf    test_user2user_rodc_not_revealedz,KdcTgsTests.test_user2user_rodc_not_revealedp  sI    D99mmETm22U3FGGGGGrh   c                     |                      dd          }|                     |d          }|                                  |                     |t                     d S r  )r6  r7  _remove_rodc_partial_secretsr8  r   r9  s      rf    test_tgs_rodc_no_partial_secretsz,KdcTgsTests.test_tgs_rodc_no_partial_secretsw  sb    D15   7 7mmETm22))+++c.99999rh   c                     |                      dd          }|                     |dd          }|                                  |                     |t                     d S NTre  r  r4  )r6  r7  r  r@  r   r9  s      rf   "test_renew_rodc_no_partial_secretsz.KdcTgsTests.test_renew_rodc_no_partial_secrets~  sd    D15   7 7mmETTmBB))+++N;;;;;rh   c                     |                      dd          }|                     |dd          }|                                  |                     |t                     d S NTre  r  r4  )r6  r7  r  rF  r   r9  s      rf   %test_validate_rodc_no_partial_secretsz1KdcTgsTests.test_validate_rodc_no_partial_secrets  sg    D15   7 7mmE44m@@))+++3~>>>>>rh   c                     |                      dd          }|                     |d          }|                                  |                     ||t                     d S r  )r6  r7  r  rI  r   r9  s      rf   %test_s4u2self_rodc_no_partial_secretsz1KdcTgsTests.test_s4u2self_rodc_no_partial_secrets  sd    D15   7 7mmETm22))+++sE.AAAAArh   c                     |                      dd          }|                     |d          }|                                  |                     ||t                     d S r  )r6  r7  r  rM  r   r9  s      rf   &test_user2user_rodc_no_partial_secretsz2KdcTgsTests.test_user2user_rodc_no_partial_secrets  sd    D15   7 7mmETm22))+++U>BBBBBrh   c                     |                      dd          }|                     |d          }|                                  |                     ||t          |                                            d S NTre  r  rZ  )r6  r7  r  rP  r   r   r9  s      rf   !test_fast_rodc_no_partial_secretsz-KdcTgsTests.test_fast_rodc_no_partial_secrets  s    D15   7 7mmETm22))+++

3n"&"7"7"9"9 	 	; 	; 	; 	; 	;rh   c                     |                      dd          }|                     |d          }|                                  |                     |t                     d S r  )r6  r7  _remove_rodc_krbtgt_linkr8  r   r9  s      rf   test_tgs_rodc_no_krbtgt_linkz(KdcTgsTests.test_tgs_rodc_no_krbtgt_link  sb    D15   7 7mmETm22%%'''c.99999rh   c                     |                      dd          }|                     |dd          }|                                  |                     |t                     d S r  )r6  r7  r,  r@  r   r9  s      rf   test_renew_rodc_no_krbtgt_linkz*KdcTgsTests.test_renew_rodc_no_krbtgt_link  sd    D15   7 7mmETTmBB%%'''N;;;;;rh   c                     |                      dd          }|                     |dd          }|                                  |                     |t                     d S r"  )r6  r7  r,  rF  r   r9  s      rf   !test_validate_rodc_no_krbtgt_linkz-KdcTgsTests.test_validate_rodc_no_krbtgt_link  sg    D15   7 7mmE44m@@%%'''3~>>>>>rh   c                     |                      dd          }|                     |d          }|                                  |                     ||t                     d S r  )r6  r7  r,  rI  r   r9  s      rf   !test_s4u2self_rodc_no_krbtgt_linkz-KdcTgsTests.test_s4u2self_rodc_no_krbtgt_link  sd    D15   7 7mmETm22%%'''sE.AAAAArh   c                     |                      dd          }|                     |d          }|                                  |                     ||t                     d S r  )r6  r7  r,  rM  r   r9  s      rf   "test_user2user_rodc_no_krbtgt_linkz.KdcTgsTests.test_user2user_rodc_no_krbtgt_link  sd    D15   7 7mmETm22%%'''U>BBBBBrh   c                     |                      dd          }|                     |d          }|                                  |                     ||t          |                                            d S r)  )r6  r7  r,  rP  r   r   r9  s      rf   test_fast_rodc_no_krbtgt_linkz)KdcTgsTests.test_fast_rodc_no_krbtgt_link  s    D15   7 7mmETm22%%'''

3n"&"7"7"9"9 	 	; 	; 	; 	; 	;rh   c                     |                      d          }|                     |d          }|                     |t                     d S NTrg  r  r4  r^  r9  s      rf   test_tgs_rodc_not_allowedz%KdcTgsTests.test_tgs_rodc_not_allowed  sG    66mmETm22c*=>>>>>rh   c                     |                      d          }|                     |dd          }|                     |t                     d S )NTr:  r  r4  rr  r9  s      rf   test_renew_rodc_not_allowedz'KdcTgsTests.test_renew_rodc_not_allowed  sI    66mmETTmBB,?@@@@@rh   c                     |                      d          }|                     |dd          }|                     |t                     d S )NTr:  r  r4  ru  r9  s      rf   test_validate_rodc_not_allowedz*KdcTgsTests.test_validate_rodc_not_allowed  sL    66mmE44m@@3/BCCCCCrh   c                     |                      d          }|                     |d          }|                     ||t                     d S r9  ry  r9  s      rf   test_s4u2self_rodc_not_allowedz*KdcTgsTests.test_s4u2self_rodc_not_allowed  sI    66mmETm22sE2EFFFFFrh   c                     |                      d          }|                     |d          }|                     ||t                     d S r9  r|  r9  s      rf   test_user2user_rodc_not_allowedz+KdcTgsTests.test_user2user_rodc_not_allowed  sI    66mmETm22U3FGGGGGrh   c                     |                      d          }|                     |d          }|                     ||t          |                                            d S )NTr:  r  rZ  r  r9  s      rf   test_fast_rodc_not_allowedz&KdcTgsTests.test_fast_rodc_not_allowed  se    66mmETm22

3.A"&"7"7"9"9 	 	; 	; 	; 	; 	;rh   c                     |                      dd          }|                     |d          }|                     |t                     d S NTreplication_deniedrg  r  r4  r^  r9  s      rf   test_tgs_rodc_deniedz KdcTgsTests.test_tgs_rodc_denied  sQ    415   7 7mmETm22c*=>>>>>rh   c                     |                      dd          }|                     |dd          }|                     |t                     d S )NTrH  r  r4  rr  r9  s      rf   test_renew_rodc_deniedz"KdcTgsTests.test_renew_rodc_denied  sS    415   7 7mmETTmBB,?@@@@@rh   c                     |                      dd          }|                     |dd          }|                     |t                     d S )NTrH  r  r4  ru  r9  s      rf   test_validate_rodc_deniedz%KdcTgsTests.test_validate_rodc_denied  sV    415   7 7mmE44m@@3/BCCCCCrh   c                     |                      dd          }|                     |d          }|                     ||t                     d S rG  ry  r9  s      rf   test_s4u2self_rodc_deniedz%KdcTgsTests.test_s4u2self_rodc_denied  sS    415   7 7mmETm22sE2EFFFFFrh   c                     |                      dd          }|                     |d          }|                     ||t                     d S rG  r|  r9  s      rf   test_user2user_rodc_deniedz&KdcTgsTests.test_user2user_rodc_denied
  sS    415   7 7mmETm22U3FGGGGGrh   c                     |                      dd          }|                     |d          }|                     ||t          |                                            d S )NTrH  r  rZ  r  r9  s      rf   test_fast_rodc_deniedz!KdcTgsTests.test_fast_rodc_denied  so    415   7 7mmETm22

3.A"&"7"7"9"9 	 	; 	; 	; 	; 	;rh   c                     |                      ddd          }|                     |d          }|                     |t                     d S NTrf  rI  rg  r  r4  r^  r9  s      rf   test_tgs_rodc_allowed_deniedz(KdcTgsTests.test_tgs_rodc_allowed_denied  sV    D3715   7 7 mmETm22c*=>>>>>rh   c                     |                      ddd          }|                     |dd          }|                     |t                     d S )NTrW  r  r4  rr  r9  s      rf   test_renew_rodc_allowed_deniedz*KdcTgsTests.test_renew_rodc_allowed_denied   sX    D3715   7 7 mmETTmBB,?@@@@@rh   c                     |                      ddd          }|                     |dd          }|                     |t                     d S )NTrW  r  r4  ru  r9  s      rf   !test_validate_rodc_allowed_deniedz-KdcTgsTests.test_validate_rodc_allowed_denied'  s[    D3715   7 7 mmE44m@@3/BCCCCCrh   c                     |                      ddd          }|                     |d          }|                     ||t                     d S rV  ry  r9  s      rf   !test_s4u2self_rodc_allowed_deniedz-KdcTgsTests.test_s4u2self_rodc_allowed_denied.  sX    D3715   7 7 mmETm22sE2EFFFFFrh   c                     |                      ddd          }|                     |d          }|                     ||t                     d S rV  r|  r9  s      rf   "test_user2user_rodc_allowed_deniedz.KdcTgsTests.test_user2user_rodc_allowed_denied5  sX    D3715   7 7 mmETm22U3FGGGGGrh   c                     |                      ddd          }|                     |d          }|                     ||t          |                                            d S )NTrW  r  rZ  r  r9  s      rf   test_fast_rodc_allowed_deniedz)KdcTgsTests.test_fast_rodc_allowed_denied<  st    D3715   7 7 mmETm22

3.A"&"7"7"9"9 	 	; 	; 	; 	; 	;rh   c                     |                                  }|                     |t          j        j                  }|                     |t          t          fdt          j	                   d S Nr*   T)rX   r@   rs   )
r6  r7  r   EnctypeRC4r8  r   r   r    NT_STATUS_INSUFFICIENT_RESOURCESr9  s      rf   test_tgs_rc4zKdcTgsTests.test_tgs_rc4E  sj    !!mmE)<m==c?+<+>#'&.&O 	 	Q 	Q 	Q 	Q 	Qrh   c                     |                                  }|                     |dt          j        j                  }|                     |t          t          fddd           d S )NT)r=  r+   r>  )r6  r7  r   re  rf  r@  r   r   r9  s      rf   test_renew_rc4zKdcTgsTests.test_renew_rc4M  sh    !!mmET9LmMM_->-@)-59-1	 	 	3 	3 	3 	3 	3rh   c                     |                                  }|                     |dt          j        j                  }|                     |t          t          fddd           d S )NT)rD  r+   r>  )r6  r7  r   re  rf  rF  r   r   r9  s      rf   test_validate_rc4zKdcTgsTests.test_validate_rc4V  sj    !!mmE4w7JmKK30A0C,08<04	 	 	6 	6 	6 	6 	6rh   c                     |                                  }|                     |t          j        j                  }|                     ||t          t          fdt          j	                   d S rd  )
r6  r7  r   re  rf  rI  r   r   r   rg  r9  s      rf   test_s4u2self_rc4zKdcTgsTests.test_s4u2self_rc4_  sm    !!mmE)<m==sE?3D3F$('/'P 	 	R 	R 	R 	R 	Rrh   c                     |                                  }|                     |t          j        j                  }|                     ||t                     d S )Nr*   r4  )r6  r7  r   re  rf  rM  r   r9  s      rf   test_user2user_rc4zKdcTgsTests.test_user2user_rc4g  sJ    !!mmE)<m==U3GHHHHHrh   c                     |                                  }|                     |t          j        j                  }|                     ||t          | j                   d S )Nr*   rx  )r6  r7  r   re  rf  rP  r   expect_padata_outerr9  s      rf   test_fast_rc4zKdcTgsTests.test_fast_rc4l  s\    !!mmE)<m==

3o $ 8 	 	: 	: 	: 	: 	:rh   c                     |                                  }|                     |          }|                                }|                     t          d|g          }|                     |||t                     d S )Nr&   r#   r.   rX   )r6  r7  rB   rC   r   rM  r   rV   rW   rt   r[   r.   s        rf   "test_user2user_matching_sname_hostz.KdcTgsTests.test_user2user_matching_sname_hosts  s    !!mmE""&&((	))L170C * E E 	U%'B 	 	D 	D 	D 	D 	Drh   c                     |                                  }|                     |          }|                                }|                     t          |g          }|                     |||d           d S )Nr#   r   ru  )r6  r7  rB   rC   r   rM  rv  s        rf   %test_user2user_matching_sname_no_hostz1KdcTgsTests.test_user2user_matching_sname_no_host~  sv    !!mmE""&&((	))L1: * = = 	U%BBBBBrh   c                    |                                  }|                     |          }|                                 }|                                }|                     t
          |g          }|                     |||t                     d S )Nr#   ru  )r6  r7  _get_mach_credsrB   rC   r   rM  r   )rV   rW   rt   other_credsr[   r.   s         rf   test_user2user_wrong_snamez&KdcTgsTests.test_user2user_wrong_sname  s    !!mmE""**,,,,..	))L1: * = = 	U%'7 	 	9 	9 	9 	9 	9rh   c                    |                                  }d| }|                     | j        j        d|i          }|                     |          }|                     t          d|g          }|                     |||d           d S )Nzhost/spnr   r&   r#   r   ru  )r   r   r   r   r7  rC   r   rM  )rV   
other_namer  rW   rt   r.   s         rf   test_user2user_other_snamez&KdcTgsTests.test_user2user_other_sname  s    **,,
"j""%%)2 &   mmE""))L170D * F F 	U%BBBBBrh   c                     |                                  }|                     |          }|                                 }|                     |||t                     d S )Nru  )r6  r7  r   rM  r   rV   rW   rt   r.   s       rf   !test_user2user_wrong_sname_krbtgtz-KdcTgsTests.test_user2user_wrong_sname_krbtgt  sa    !!mmE""%%''U%'7 	 	9 	9 	9 	9 	9rh   c                     |                                  }|                     |          }|                     ||dt          t          f           d S )NzOTHER.REALM)r   rX   )r6  r7  rM  r   r   r9  s      rf   test_user2user_wrong_srealmz'KdcTgsTests.test_user2user_wrong_srealm  s^    !!mmE""U=(;(C(E 	 	F 	F 	F 	F 	Frh   c                    |                                  }|                     |          }|                                                    d          }|                     ||          }|                     ||d           d S )Nutf-8r   r4  )r6  r7  rE   encode_modify_tgtrM  )rV   rW   rt   r-   s       rf    test_user2user_tgt_correct_realmz,KdcTgsTests.test_user2user_tgt_correct_realm  s    !!mmE""!!((11sE**U'( 	 	* 	* 	* 	* 	*rh   c                     |                                  }|                     |          }|                     |d          }|                     ||d           d S )Ns   OTHER.REALMr   r4  )r6  r7  r  rM  r9  s      rf   test_user2user_tgt_wrong_realmz*KdcTgsTests.test_user2user_tgt_wrong_realm  sc    !!mmE""sN33U'( 	 	* 	* 	* 	* 	*rh   c                 B   |                                  }|                     |          }|                                }|                    d          }|                     t
          |g          }|                     ||          }|                     ||d           d S )Nr  r#   r,   r   r4  )r6  r7  rB   r  rC   r   r  rM  rV   rW   rt   r[   r,   s        rf    test_user2user_tgt_correct_cnamez,KdcTgsTests.test_user2user_tgt_correct_cname  s    !!mmE""&&((	$$W--	))L1: * = = s%00U155555rh   c                    |                                  }|                                 }| d|                                 }|                     | j        j        d|i          }|                     |          }|                     t          |	                    d          g          }| 
                    ||          }|                     ||d           d S )	Nr   r   r   r  r#   r  r   r4  )r   r   domain_dns_namer   r   r   r7  rC   r   r  r  rM  )rV   r   r  r   rW   rt   r,   s          rf   test_user2user_tgt_other_cnamez*KdcTgsTests.test_user2user_tgt_other_cname  s      **,,
77e335577%%)2 &   mmE""))L1;1B1B71K1K0L * N N s%00U155555rh   c                 \   |                                  }|                     |          }|                                }|                    d          }|                     t
          d|g          }|                     ||          }|                     ||t          t          f           d S )Nr  s   hostr#   r  r4  )
r6  r7  rB   r  rC   r   r  rM  r   r   r  s        rf   test_user2user_tgt_cname_hostz)KdcTgsTests.test_user2user_tgt_cname_host  s    !!mmE""&&((	$$W--	))L18)0D * F F s%00U(;(C(E 	 	F 	F 	F 	F 	Frh   c                     |                                  }|                     |          }|                     t          ddg          }|                     |||t
                     d S )Nr&   non_existent_userr#   ru  )r6  r7  rC   r   rM  r   r  s       rf   !test_user2user_non_existent_snamez-KdcTgsTests.test_user2user_non_existent_sname  s~    !!mmE""))L179L0M * O O 	U%'B 	 	D 	D 	D 	D 	Drh   c                     |                                  }|                     |          }|                     ||dt          t          f           d S )NFru  )r6  r7  rM  r   r   r9  s      rf   test_user2user_no_snamez#KdcTgsTests.test_user2user_no_sname  s^    !!mmE""U%(7(C(E 	 	F 	F 	F 	F 	Frh   c                     |                                  }|                     |          }|                                 }|                     ||          }|                     |t
          t          f           d S Nr4  )r6  r7  r   get_service_ticketr8  r   r   rV   rW   rt   r   service_tickets        rf   test_tgs_service_ticketz#KdcTgsTests.test_tgs_service_ticket  s|    !!mmE""..0000mDDn&4n%E 	 	G 	G 	G 	G 	Grh   c                 B   |                                  }|                     |          }|                                 }|                     ||          }|                     || j        |                                           }|                     |t                     d S N)	modify_fnchecksum_keysr4  )	r6  r7  r   r  r  _modify_renewableget_krbtgt_checksum_keyr@  r   r  s        rf   test_renew_service_ticketz%KdcTgsTests.test_renew_service_ticket  s    !!mmE""..0000mDD--,6688 . : :
 	'5 	 	7 	7 	7 	7 	7rh   c                 B   |                                  }|                     |          }|                                 }|                     ||          }|                     || j        |                                           }|                     |t                     d S r  )	r6  r7  r   r  r  _modify_invalidr  rF  r   r  s        rf   test_validate_service_ticketz(KdcTgsTests.test_validate_service_ticket  s    !!mmE""..0000mDD--*6688 . : :
 	>*8 	 	: 	: 	: 	: 	:rh   c                     |                                  }|                     |          }|                                 }|                     ||          }|                     ||t
          t          f           d S r  )r6  r7  r   r  rI  r   r   r  s        rf   test_s4u2self_service_ticketz(KdcTgsTests.test_s4u2self_service_ticket-  s~    !!mmE""..0000mDD~u'5~&F 	 	H 	H 	H 	H 	Hrh   c                     |                                  }|                     |          }|                                 }|                     ||          }|                     ||t
          t          f           d S r  )r6  r7  r   r  rM  r   r   r  s        rf   test_user2user_service_ticketz)KdcTgsTests.test_user2user_service_ticket7  s~    !!mmE""..0000mDD(8.'I 	 	K 	K 	K 	K 	Krh   c                     |                                  }|                     |          }|                                 }|                     ||          }|                     ||t
          t          f           d S r  )r6  r7  r   r  rP  r   r   r  s        rf   test_fast_service_ticketz$KdcTgsTests.test_fast_service_ticketB  s    !!mmE""..0000mDD

>5#1#>#@ 	 	A 	A 	A 	A 	Arh   c                 b    |                                  }|                     |d ddd            d S NTr   rz   r{   r|   r6  r   rV   rW   s     rf   test_pac_attrs_nonezKdcTgsTests.test_pac_attrs_noneM  C    !!U $&*26 	 	8 	8 	8 	8 	8rh   c                 b    |                                  }|                     |dddd           d S )NFTr  r  r  s     rf   test_pac_attrs_falsez KdcTgsTests.test_pac_attrs_falseT  sC    !!U $&*27 	 	9 	9 	9 	9 	9rh   c                 b    |                                  }|                     |dddd           d S r  r  r  s     rf   test_pac_attrs_truezKdcTgsTests.test_pac_attrs_true[  r  rh   c                     |                                  }|                     |d ddd           }|                     |d          }|                     |dddd d           d S NTr  r<  r   rX   rz   r{   r|   r}   r6  r   r  r@  r9  s      rf   test_pac_attrs_renew_nonez%KdcTgsTests.test_pac_attrs_renew_noneb      !!ll5d&*,08<  > > sd33A#')-59-1	 	 	3 	3 	3 	3 	3rh   c                     |                                  }|                     |dddd          }|                     |d          }|                     |ddddd           d S )NFTr  r<  r   r  r  r9  s      rf   test_pac_attrs_renew_falsez&KdcTgsTests.test_pac_attrs_renew_falsep  s    !!ll5e&*,08=  ? ? sd33A#')-5:-1	 	 	3 	3 	3 	3 	3rh   c                     |                                  }|                     |dddd          }|                     |d          }|                     |ddddd           d S r  r  r9  s      rf   test_pac_attrs_renew_truez%KdcTgsTests.test_pac_attrs_renew_true~  r  rh   c                     |                      dd          }|                     |d ddd           }|                     |dd          }|                     |dddd           d S NTre  r  rh  r=  r   FrX   rz   r{   r}   r  r9  s      rf   test_pac_attrs_rodc_renew_nonez*KdcTgsTests.test_pac_attrs_rodc_renew_none      D15   7 7ll5d&*,08<  > > sddCCA#').-1 	 	3 	3 	3 	3 	3rh   c                     |                      dd          }|                     |dddd          }|                     |dd          }|                     |dddd           d S )NTre  Fr  r  r   r  r  r9  s      rf   test_pac_attrs_rodc_renew_falsez+KdcTgsTests.test_pac_attrs_rodc_renew_false  s    D15   7 7ll5e&*,08=  ? ? sddCCA#').-1 	 	3 	3 	3 	3 	3rh   c                     |                      dd          }|                     |dddd          }|                     |dd          }|                     |dddd           d S r  r  r9  s      rf   test_pac_attrs_rodc_renew_truez*KdcTgsTests.test_pac_attrs_rodc_renew_true  r  rh   c                     |                                  }|                     |d ddd           }|                     |dd          }|                     |dddd           d S NTr  r=  ra  r   Fr  r  r9  s      rf   !test_pac_attrs_missing_renew_nonez-KdcTgsTests.test_pac_attrs_missing_renew_none      !!ll5d&*,08<  > > sd04  6 6 	A#').-1 	 	3 	3 	3 	3 	3rh   c                     |                                  }|                     |dddd          }|                     |dd          }|                     |dddd           d S )NFTr  r  r   r  r  r9  s      rf   "test_pac_attrs_missing_renew_falsez.KdcTgsTests.test_pac_attrs_missing_renew_false  s    !!ll5e&*,08=  ? ? sd04  6 6 	A#').-1 	 	3 	3 	3 	3 	3rh   c                     |                                  }|                     |dddd          }|                     |dd          }|                     |dddd           d S r  r  r9  s      rf   !test_pac_attrs_missing_renew_truez-KdcTgsTests.test_pac_attrs_missing_renew_true  r  rh   c                     |                      dd          }|                     |d ddd           }|                     |ddd          }|                     |dddd           d S NTre  r  rh  r=  ra  r   Fr  r  r9  s      rf   &test_pac_attrs_missing_rodc_renew_nonez2KdcTgsTests.test_pac_attrs_missing_rodc_renew_none      D15   7 7ll5d&*,08<  > > sdd04  6 6 	A#').-1 	 	3 	3 	3 	3 	3rh   c                     |                      dd          }|                     |dddd          }|                     |ddd          }|                     |dddd           d S )NTre  Fr  r  r   r  r  r9  s      rf   'test_pac_attrs_missing_rodc_renew_falsez3KdcTgsTests.test_pac_attrs_missing_rodc_renew_false  s    D15   7 7ll5e&*,08=  ? ? sdd04  6 6 	A#').-1 	 	3 	3 	3 	3 	3rh   c                     |                      dd          }|                     |dddd          }|                     |ddd          }|                     |dddd           d S r  r  r9  s      rf   &test_pac_attrs_missing_rodc_renew_truez2KdcTgsTests.test_pac_attrs_missing_rodc_renew_true  r  rh   c                     |                                  }|                     |d ddd           }|                     |ddd           d S NTr  r   Frb  r6  r   r8  r9  s      rf   test_tgs_pac_attrs_nonez#KdcTgsTests.test_tgs_pac_attrs_none  f    !!ll5d&*,08<  > >
 	c!', 	 	. 	. 	. 	. 	.rh   c                     |                                  }|                     |dddd          }|                     |ddd           d S )NFTr  r   rb  r  r9  s      rf   test_tgs_pac_attrs_falsez$KdcTgsTests.test_tgs_pac_attrs_false  sf    !!ll5e&*,08=  ? ?
 	c!', 	 	. 	. 	. 	. 	.rh   c                     |                                  }|                     |dddd          }|                     |ddd           d S r  r  r9  s      rf   test_tgs_pac_attrs_truez#KdcTgsTests.test_tgs_pac_attrs_true!  r  rh   c                     |                                  }|                                 }|                     ||                                          }|                     |d d|d           d S )NTr   rz   r~   r}   )r6  r   r   r/  r   )rV   rW   r   r   s       rf   test_as_requester_sidz!KdcTgsTests.test_as_requester_sid+  so    !!    77U $"%*. 	 	0 	0 	0 	0 	0rh   c                    |                                  }|                                 }|                     ||                                          }|                     |d d|d          }|                     |ddd           d S )NTr  r   F)rX   rz   r}   )r6  r   r   r/  r   r8  rV   rW   r   r   rt   s        rf   test_tgs_requester_sidz"KdcTgsTests.test_tgs_requester_sid6  s    !!    77ll5d&*(+04  6 6
 	c!+0 	 	2 	2 	2 	2 	2rh   c           	      @   |                                  }|                                 }|                     ||                                          }|                     |d d|d          }|                     |d          }|                     |dddd |d           d S )NTr  r<  r   rX   rz   r{   r|   r~   r}   r6  r   r   r/  r   r  r@  r  s        rf   test_tgs_requester_sid_renewz(KdcTgsTests.test_tgs_requester_sid_renewD  s    !!    77ll5d&*(+04  6 6 sd33A$)-59%(-1	 	 	3 	3 	3 	3 	3rh   c                 F   |                      dd          }|                                 }|                     ||                                          }|                     |d d|d          }|                     |dd          }|                     |ddd|d           d S )NTre  r  r  r   FrX   rz   r{   r~   r}   r  r  s        rf   !test_tgs_requester_sid_rodc_renewz-KdcTgsTests.test_tgs_requester_sid_rodc_renewV  s    D15   7 7     77ll5d&*(+04  6 6 sddCCA$).%(-1 	 	3 	3 	3 	3 	3rh   c                 B   |                                  }|                                 }|                     ||                                          }|                     |d d|d          }|                     |dd          }|                     |t                     d S )NTr  )r=  r]  r4  r6  r   r   r/  r   r  r@  r   r  s        rf   $test_tgs_requester_sid_missing_renewz0KdcTgsTests.test_tgs_requester_sid_missing_renewh  s    !!    77ll5d&*(+04  6 6 sd48  : : 	,?@@@@@rh   c                 J   |                      dd          }|                                 }|                     ||                                          }|                     |d d|d          }|                     |ddd          }|                     |t                     d S )NTre  r  )rh  r=  r]  r4  r  r  s        rf   )test_tgs_requester_sid_missing_rodc_renewz5KdcTgsTests.test_tgs_requester_sid_missing_rodc_reneww  s    D15   7 7     77ll5d&*(+04  6 6 sdd48  : : 	,?@@@@@rh   c           	      @   |                                  }|                                 }|                     ||                                          }|                     |d d|d          }|                     |d          }|                     |dddd |d           d S )NTr  rC  r   r  r6  r   r   r/  r   r  rF  r  s        rf   test_tgs_requester_sid_validatez+KdcTgsTests.test_tgs_requester_sid_validate  s    !!    77ll5d&*(+04  6 6 sD113qT,08<(+04	 	 	6 	6 	6 	6 	6rh   c                 F   |                      dd          }|                                 }|                     ||                                          }|                     |d d|d          }|                     |dd          }|                     |ddd|d           d S )NTre  r  )rh  rD  r   Fr  r  r  s        rf   $test_tgs_requester_sid_rodc_validatez0KdcTgsTests.test_tgs_requester_sid_rodc_validate  s    D15   7 7     77ll5d&*(+04  6 6 sdDAA3qT,1(+04 	 	6 	6 	6 	6 	6rh   c                 B   |                                  }|                                 }|                     ||                                          }|                     |d d|d          }|                     |dd          }|                     |t                     d S )NTr  )rD  r]  r4  r6  r   r   r/  r   r  rF  r   r  s        rf   'test_tgs_requester_sid_missing_validatez3KdcTgsTests.test_tgs_requester_sid_missing_validate  s    !!    77ll5d&*(+04  6 6 sD48  : : 	3/BCCCCCrh   c                 J   |                      dd          }|                                 }|                     ||                                          }|                     |d d|d          }|                     |ddd          }|                     |t                     d S )NTre  r  )rh  rD  r]  r4  r  r  s        rf   ,test_tgs_requester_sid_missing_rodc_validatez8KdcTgsTests.test_tgs_requester_sid_missing_rodc_validate  s    D15   7 7     77ll5d&*(+04  6 6 sdD48  : : 	3/BCCCCCrh   c                     |                                  }|                     |d           }|                     |dd          }|                     |          }|                     |           d S Nr   r   TrX   rz   r6  r   r8  r   rM   rV   rW   rt   r   r   s        rf   test_tgs_pac_request_nonez%KdcTgsTests.test_tgs_pac_request_none  j    !!ll5dl33s1FF!!&))S!!!!!rh   c                     |                                  }|                     |dd           }|                     |dd          }|                     |d          }|                     |           d S )NFr   r   r
  r   )r6  r   r8  r   r   r  s        rf   test_tgs_pac_request_falsez&KdcTgsTests.test_tgs_pac_request_false  sq    !!ll5elEEs1GG!!&U!;;#rh   c                     |                                  }|                     |d          }|                     |dd          }|                     |          }|                     |           d S NTr   r   r
  r  r  s        rf   test_tgs_pac_request_truez%KdcTgsTests.test_tgs_pac_request_true  r  rh   c                 D   |                                  }|                     |d           }|                     |d          }|                     |dd dd d          }|                     |dd          }|                     |          }|                     |           d S )Nr   Tr<  r   r  r
  r6  r   r  r@  r8  r   rM   r  s        rf   test_renew_pac_request_nonez'KdcTgsTests.test_renew_pac_request_none      !!ll5dl33sd33ooc!/3;?37  9 9
 s1FF!!&))S!!!!!rh   c                 J   |                                  }|                     |dd           }|                     |d          }|                     |dd ddd          }|                     |dd          }|                     |d          }|                     |           d S )	NFr   Tr<  r   r  r
  r   )r6  r   r  r@  r8  r   r   r  s        rf   test_renew_pac_request_falsez(KdcTgsTests.test_renew_pac_request_false  s    !!ll5elEEsd33ooc!/3;@37  9 9
 s1GG!!&U!;;#rh   c                 D   |                                  }|                     |d          }|                     |d          }|                     |dd ddd          }|                     |dd          }|                     |          }|                     |           d S )NTr   r<  r   r  r
  r  r  s        rf   test_renew_pac_request_truez'KdcTgsTests.test_renew_pac_request_true	  r  rh   c                 J   |                      dd          }|                     |d           }|                     |dd          }|                     |dd dd          }|                     |dd          }|                     |          }|                     |           d S 	NTre  r   r  r   Fr  r
  r  r  s        rf    test_rodc_renew_pac_request_nonez,KdcTgsTests.test_rodc_renew_pac_request_none	      D15   7 7ll5dl33sddCCooc!/437  9 9 s1FF!!&))S!!!!!rh   c                 L   |                      dd          }|                     |dd           }|                     |dd          }|                     |dd dd          }|                     |dd          }|                     |          }|                     |           d S )	NTre  Fr   r  r   r  r
  r  r  s        rf   !test_rodc_renew_pac_request_falsez-KdcTgsTests.test_rodc_renew_pac_request_false!	  s    D15   7 7ll5elEEsddCCooc!/437  9 9 s1FF!!&))S!!!!!rh   c                 J   |                      dd          }|                     |d          }|                     |dd          }|                     |dd dd          }|                     |dd          }|                     |          }|                     |           d S r  r  r  s        rf    test_rodc_renew_pac_request_truez,KdcTgsTests.test_rodc_renew_pac_request_true0	  r  rh   c                 D   |                                  }|                     |d           }|                     |d          }|                     |dd dd d          }|                     |dd          }|                     |          }|                     |           d S )Nr   TrC  r   r  r
  r6  r   r  rF  r8  r   rM   r  s        rf   test_validate_pac_request_nonez*KdcTgsTests.test_validate_pac_request_none?	      !!ll5dl33sD11  Q426>B6: ! < <
 s1FF!!&))S!!!!!rh   c                 J   |                                  }|                     |dd           }|                     |d          }|                     |dd ddd          }|                     |dd          }|                     |d          }|                     |           d S )	NFr   TrC  r   r  r
  r   )r6  r   r  rF  r8  r   r   r  s        rf   test_validate_pac_request_falsez+KdcTgsTests.test_validate_pac_request_falseN	  s    !!ll5elEEsD11  Q426>C6: ! < <
 s1GG!!&U!;;#rh   c                 D   |                                  }|                     |d          }|                     |d          }|                     |dd ddd          }|                     |dd          }|                     |          }|                     |           d S )NTr   rC  r   r  r
  r%  r  s        rf   test_validate_pac_request_truez*KdcTgsTests.test_validate_pac_request_true]	  r'  rh   c                 J   |                      dd          }|                     |d           }|                     |dd          }|                     |dd dd          }|                     |dd          }|                     |          }|                     |           d S 	NTre  r   r  r   Fr  r
  r%  r  s        rf   #test_rodc_validate_pac_request_nonez/KdcTgsTests.test_rodc_validate_pac_request_nonel	      D15   7 7ll5dl33sDDAA  Q4276: ! < < s1FF!!&))S!!!!!rh   c                 L   |                      dd          }|                     |dd           }|                     |dd          }|                     |dd dd          }|                     |dd          }|                     |          }|                     |           d S )	NTre  Fr   r  r   r  r
  r%  r  s        rf   $test_rodc_validate_pac_request_falsez0KdcTgsTests.test_rodc_validate_pac_request_false{	  s    D15   7 7ll5elEEsDDAA  Q4276: ! < < s1FF!!&))S!!!!!rh   c                 J   |                      dd          }|                     |d          }|                     |dd          }|                     |dd dd          }|                     |dd          }|                     |          }|                     |           d S r-  r%  r  s        rf   #test_rodc_validate_pac_request_truez/KdcTgsTests.test_rodc_validate_pac_request_true	  r/  rh   c                     |                                  }|                     |d           }|                     ||dd          }|                     |          }|                     |           d S r	  r6  r   rI  r   rM   r  s        rf   test_s4u2self_pac_request_nonez*KdcTgsTests.test_s4u2self_pac_request_none	  l    !!ll5dl33U1NN!!&))S!!!!!rh   c                     |                                  }|                     |dd           }|                     ||dd          }|                     |          }|                     |           d S )NFr   r   Tr
  r5  r  s        rf   test_s4u2self_pac_request_falsez+KdcTgsTests.test_s4u2self_pac_request_false	  sn    !!ll5elEEU1NN!!&))S!!!!!rh   c                     |                                  }|                     |d          }|                     ||dd          }|                     |          }|                     |           d S r  r5  r  s        rf   test_s4u2self_pac_request_truez*KdcTgsTests.test_s4u2self_pac_request_true	  r7  rh   c                     |                                  }|                     |d           }|                     ||dd          }|                     |          }|                     |           d S r	  r6  r   rM  r   rM   r  s        rf   test_user2user_pac_request_nonez+KdcTgsTests.test_user2user_pac_request_none	  l    !!ll5dl33eA$OO!!&))S!!!!!rh   c                     |                                  }|                     |dd           }|                     ||dd          }|                     |d          }|                     |           d S )NFr   r   Tr
  r   r=  r  s        rf    test_user2user_pac_request_falsez,KdcTgsTests.test_user2user_pac_request_false	  s}    !!ll5elEEeA,0 ! 2 2 !!&T!::S!!!!!rh   c                     |                                  }|                     |d          }|                     ||dd          }|                     |          }|                     |           d S r  r=  r  s        rf   test_user2user_pac_request_truez+KdcTgsTests.test_user2user_pac_request_true	  r?  rh   c                 6   |                                  }|                     |          }|                                 }|                     |d           }|                     ||d|d          }|                     |          }|                     |           d S )Nr   r   TrX   user_tgtrz   r6  r   r{  rM  r   rM   rV   rW   rt   
user_credsrF  r   r   s          rf   $test_user2user_user_pac_request_nonez0KdcTgsTests.test_user2user_user_pac_request_none	      !!ll5!!))++
<<
<==eA*2t ! E E !!&))S!!!!!rh   c                 <   |                                  }|                     |          }|                                 }|                     |dd           }|                     ||d|d          }|                     |d          }|                     |           d S )NFr   r   rE  r   )r6  r   r{  rM  r   r   rH  s          rf   %test_user2user_user_pac_request_falsez1KdcTgsTests.test_user2user_user_pac_request_false	  s    !!ll5!!))++
<<
$<OOeA*2u ! F F !!&U!;;#rh   c                 6   |                                  }|                     |          }|                                 }|                     |d          }|                     ||d|d          }|                     |          }|                     |           d S )NTr   r   rE  rG  rH  s          rf   $test_user2user_user_pac_request_truez0KdcTgsTests.test_user2user_user_pac_request_true	  rK  rh   c                     |                                  }|                     |d           }|                     ||dd          }|                     |          }|                     |           d S r	  r6  r   rP  r   rM   r  s        rf   test_fast_pac_request_nonez&KdcTgsTests.test_fast_pac_request_none	  l    !!ll5dl33CqTJJ!!&))S!!!!!rh   c                     |                                  }|                     |d          }|                     ||dd          }|                     |d          }|                     |           d S )NFr   r   Tr
  r   rQ  r  s        rf   test_fast_pac_request_falsez'KdcTgsTests.test_fast_pac_request_false 
  s{    !!ll5el44Cq'+  - - !!&T!::S!!!!!rh   c                     |                                  }|                     |d          }|                     ||dd          }|                     |          }|                     |           d S r  rQ  r  s        rf   test_fast_pac_request_truez&KdcTgsTests.test_fast_pac_request_true

  rS  rh   c                    |                      dd          }|                     |d           }|                     |d          }|                     |dd          }|                     |          }|                     |           d S NTre  r   r  r   r
  r6  r   r  r8  r   rM   r  s        rf   test_tgs_rodc_pac_request_nonez*KdcTgsTests.test_tgs_rodc_pac_request_none
      D15   7 7ll5dl33sd33s1FF!!&))S!!!!!rh   c                    |                      dd          }|                     |dd           }|                     |d          }|                     |dd          }|                     |          }|                     |           d S )NTre  Fr   r  r   r
  rZ  r  s        rf   test_tgs_rodc_pac_request_falsez+KdcTgsTests.test_tgs_rodc_pac_request_false
  s    D15   7 7ll5elEEsd33s1FF!!&))S!!!!!rh   c                    |                      dd          }|                     |d          }|                     |d          }|                     |dd          }|                     |          }|                     |           d S rY  rZ  r  s        rf   test_tgs_rodc_pac_request_truez*KdcTgsTests.test_tgs_rodc_pac_request_true)
  r\  rh   c                    |                      | j        j        d          }|                     |          }|                                 }|                                 }t          j        |                                          }t          j	        |t          j
        d          |d<   |                    |           |                     |t          t          f           d S )NF)r   	use_cachesAMAccountNamer4  )r   r   r   r   r   r   ldbMessager/  MessageElementFLAG_MOD_REPLACEmodifyr8  r   r   )rV   rW   rt   new_namer   msgs         rf   test_tgs_renamezKdcTgsTests.test_tgs_rename4
  s    %%43C3H05 & 7 7ll5!! ((**  k%,,..)) # 28363G3C!E !E 	Sc+>+F+H 	I 	I 	I 	I 	Irh   c                 l    |                      |dd          }|                     d          }||d<   |S )Nr=  Tvaluei@~ r(   z
renew-tillmodify_ticket_flagrG   )rV   r   
renew_tills      rf   r  zKdcTgsTests._modify_renewableF
  sC    **8[*MM **-*@@
!+rh   c                 l    |                      |dd          }|                     d          }||d<   |S )NrD  Trm  ir(   	starttimero  )rV   r   	past_times      rf   r  zKdcTgsTests._modify_invalidP
  sC    **8Yd*KK )))@@	 )rh   FNTc                     |                      |o|           |r|                     |           |                     |          }|                     |||||||||	|
|||          S )N)rt   r=  rD  rh  r  ro  r  r  r  ra  r]  r+   cksum_etype)assertFalser   r   r  )rV   r   r=  rD  rh  r  ro  r  r  r  ra  r]  r+   rv  rt   s                  rf   r7  zKdcTgsTests._get_tgtZ
  s     	.w/// 	'g&&&ll<((!!5"7%=-!5#   % % 	%rh   c           
         	
 |r                                  }n                                 }sr
 fdnd                      ||          }|rd }n-||k    r|}n                     ||          }t          j        |i}|r j        n|r j        nd 		fd}n}fd}n}                     ||||||| |          S )Nc                 :   | j         }|D ]}|j        t          j        k    r"
r|j        j        }
|j        j        _        :|j        t          j        k    r|r&| xj	        dz  c_	        |
                    |           w
Q	rO|j        }                                }|                                }| d
 }t          j        |          |_        |j        t          j        k    r'r%| xj	        dz  c_	        |
                    |           	|| _         | S )N   -)bufferstyper   PAC_TYPE_LOGON_INFOinfoinfo3baseridPAC_TYPE_REQUESTER_SIDnum_buffersremover   get_domain_sidr   dom_sidr   PAC_TYPE_ATTRIBUTES_INFO)r   pac_buffers
pac_buffer
logon_inforequester_sidr   
domain_sidnew_sidr  r  r  ra  r]  rV   s           rf   change_sid_fnz.KdcTgsTests._modify_tgt.<locals>.change_sid_fn
  s1   !k"- ; ;J!'*EEE".3H.)3)=J8?J,15#G,JJJ/ JOOq0OO'..z::::$05M0,6OM$(NN$4$4E).)=)=)?)?J)3&?&?g&?&?G080@0I0IM-#G,LLL+ ;OOq0OO'..z:::)
rh   c                 >     |           } | d<   | d<   | S )Nr,   r   r   )r   r,   r   flags_modify_fns    rf   r  z*KdcTgsTests._modify_tgt.<locals>.modify_fn
  s=    "..x88H$(-HW%%)/HX&rh   c                      |           } | j         D ]D}|j        t          j        k    r-|j        }d         d                             d          |_        E| S )Nzname-stringr   r  )r|  r}  r   PAC_TYPE_LOGON_NAMEr  decoder   )r   r  r  r  r,   s      rf   modify_pac_fnz.KdcTgsTests._modify_tgt.<locals>.modify_pac_fn
  so     ,'-,,C"%+ E EJ!'*EEE%/_
 "-03::7CC #/ 
rh   )new_ticket_keyr  r  r  r  update_pac_checksumsr  )get_mock_rodc_krbtgt_credsget_krbtgt_credsrH   r   PAC_TYPE_KDC_CHECKSUMr  r  r  )rV   rt   r=  rD  rh  r  ro  r  r,   r   r  r  ra  r]  r+   rv  krbtgt_creds
krbtgt_keyr  	cksum_keyr  r  r  r  s   `    `  ``````        @@rf   r  zKdcTgsTests._modify_tgt~
  s      	3::<<LL0022L"6:J          < !M889>@ @
  
	 MM##&		 ??@KM M	 -yM  	#"4OO 	#"2OO"O 2
  
  
  
  
  
  
  
  (I       *M##%'"!5%/' $ ) ) 	)rh   c                    |                                  |                                 t          j        j                  fd}|                     |           j        t          j         z  }t          j	                    }|_
        t          j        t          |          t          j        d          |d<                       |           d S )Nc                      t          j                    } | _        t          j        t	          j                  t           j        d          | d<                       |            d S )NuserAccountControl)rd  re  r   rf  r   r  rg  rh  rj  rodc_ctxrodc_dnr   s    rf   add_rodc_partial_secretszJKdcTgsTests._remove_rodc_partial_secrets.<locals>.add_rodc_partial_secrets
  s^    +--CCF(+(:H/00$$)& )&C$% LLrh   r  )r   get_mock_rodc_ctxrd  Dnacct_dn
addCleanupr  r   UF_PARTIAL_SECRETS_ACCOUNTre  r   rf  r   rg  rh  )rV   r  uacrj  r  r  r   s       @@@rf   r  z(KdcTgsTests._remove_rodc_partial_secrets
  s      ))++& 011	 	 	 	 	 	 	 	0111)T-L,LLkmm$'$6HH  %" %" ! 	Srh   c                 l   |                                  |                                 t          j        j                  fd}|                     |           t          j                    }|_        t          j        g t          j	        d          |d<   
                    |           d S )Nc                      t          j                    } | _        t          j        j        t           j        d          | d<                       |            d S )NmsDS-KrbTgtLink)rd  re  r   rf  new_krbtgt_dnFLAG_MOD_ADDrh  r  s    rf   add_rodc_krbtgt_linkzBKdcTgsTests._remove_rodc_krbtgt_link.<locals>.add_rodc_krbtgt_link  sV    +--CCF%(%7& !&# &#C!" LLrh   r  )r   r  rd  r  r  r  re  r   rf  FLAG_MOD_DELETErh  )rV   r  rj  r  r  r   s      @@@rf   r,  z$KdcTgsTests._remove_rodc_krbtgt_link  s      ))++& 011	 	 	 	 	 	 	 	,---kmm!$!3" " 	Srh   c                 N    |                      | j        j        |||dd          S )Nr   allowed_replication_mockdenied_replication_mockrevealed_to_mock_rodcidr   r   r   r   )rV   rf  rI  rg  s       rf   r6  zKdcTgsTests._get_creds'  s@     $$)2,?+=)9	  %   	rh   c                     |                      | j        j        |||dd          }|                                 }|                                }|                     ||          }t          |                    dd          d                   }|S )Nrz  r  r   r{  )r   r   r   r   r/  r   intrsplit)	rV   rf  rI  rg  r|  r   other_dn	other_sid	other_rids	            rf   r  zKdcTgsTests._get_existing_rid4  s     ++)2,?+=)9	  ,     %%''&&uh77		((a00344	rh   c                 N    |                      | j        j        ddddd          S )NTF   r  r   r  rV   s    rf   r{  zKdcTgsTests._get_mach_credsJ  s>    $$)2,0+0)-	  %   	rh   c                     dS )Ni?r   r  s    rf   r  z!KdcTgsTests._get_non_existent_ridT  s    }rh   c
                 h    |                                  }
|                     |||
|||||||	
  
        S )N)rz   r{   r|   r}   r~   r@   rs   )r   r   )rV   rt   rX   rz   r{   r|   r}   r~   r@   rs   rY   s              rf   r8  zKdcTgsTests._run_tgsW  sL     --//}}!-)E!5%%+  - - 	-rh   c                     |                                  }t          t          j        d                    }	|                     ||||	|||||	  	        S )Nrenewr:   rz   r{   r|   r}   r~   r  r   rJ   rK   r   
rV   rt   rX   rz   r{   r|   r}   r~   r  r:   s
             rf   r@  zKdcTgsTests._renew_tgth  sa     ,,..).w7788}}#!-)E!5%  ' ' 	'rh   c                     |                                  }t          t          j        d                    }	|                     ||||	|||||	  	        S )Nvalidater  r  r  s
             rf   rF  zKdcTgsTests._validate_tgtx  sa    
 ,,..).z::;;}}#!-)E!5%  ' ' 	'rh   c                    
                                   }|                                }                     t          |g          
|                                 
fd}	                     ||
|	d|||	  	        S )Nr#   c                 J                         j        d           }|g|fS )N)namer-   tgt_session_keyctype)PA_S4U2Self_creater   )_kdc_exchange_dict_callback_dictreq_bodyr9   rV   rt   
user_cname
user_realms       rf   generate_s4u2self_padataz7KdcTgsTests._s4u2self.<locals>.generate_s4u2self_padata  s<     ,,  #	 -  F 8X%%rh   F)r3   rm   r   r@   rs   rz   )r{  rB   rC   r   rE   r   )rV   rt   	tgt_credsrX   rz   r@   rs   rI  r[   r  r  r  s   ``        @@rf   rI  zKdcTgsTests._s4u2self  s    ))++
++--	..6?[ / B B
))++
		& 		& 		& 		& 		& 		& 		& 		& }}S.),60H+0|-<(2  4 4 	4rh   c	                     |)|                                  }	|                     |	          }t          t          j        d                    }
|                     ||||
|||||	  	        S )Nzenc-tkt-in-skey)r:   r   r.   r   rz   rs   )r{  r   r   rJ   rK   r   )rV   rt   r  rX   r.   r   rF  rz   rs   rI  r:   s              rf   rM  zKdcTgsTests._user2user  sx     --//J||J//H)./@AABB}}X~y)4/2#($*(2-<  > > 	>rh   c           	          |                                  }|                     |          }|                                 }	|                     |||	||||          S )N)rv   r5   rz   r@   )r{  r   r   r   )
rV   rv   armor_tgt_credsrX   r5   rz   r@   rI  rF  rY   s
             rf   rP  zKdcTgsTests._fast  sb    ))++
<<
++--//}}X~|'0,:(2*6	  8 8 	8rh   )FFFNFFTTFFNN)FFFNFFNNTTFFNN)FFF)TNNNNFN)TNNNN)TFN)NNNTN)NTF)r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r#  r(  r*  r,  r!  r:  rA  rG  rJ  rN  rQ  rT  rV  rX  r[  r_  rc  ri  rk  rp  rs  rv  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r
  r  r  r  r  r  r  r  r  r   r#  r%  r'  r*  r-  r/  r1  r3  r5  r7  r;  r=  r?  rA  rC  rE  rJ  rL  rN  rP  rR  rT  rX  rZ  r\  r^  r`  rb  rh  rj  rl  rn  rp  rs  rw  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r!  r#  r&  r)  r+  r.  r1  r3  r6  r9  r;  r>  rA  rC  rJ  rM  rO  rR  rU  rW  r[  r^  r`  rk  r  r  r7  r  r  r,  r6  r  r{  r  r8  r@  rF  rI  rM  rP  __classcell__)r   s   @rf   r   r   4  s&       ) ) ) ) )
3  3  3 j'" '" '"RF/ F/ F/P" " "  % % %@% % %@% % %@% % %@% % %4% % %4% % %4% % %4" " " " " ""  "  "2 2 22 2 22 2 25 5 53 3 35 5 53 3 31 1 10- - -
3 3 36 6 65 5 5
6 6 6
1 1 1
; ; ;
C C C
D D D
; ; ;? ? ?. . .? ? ?. . .? ? ?
A A A
D D D
+ + +H H H
; ; ;? ? ?
A A AD D D+ + +H H H
; ; ;? ? ?A A AD D D; ; ;< < <; ; ;? ? ?- - -? ? ?? ? ?A A AD D D; ; ;< < <; ; ;? ? ?- - -? ? ?- - -3 3 36 6 6C C C6 6 6? ? ?A A AD D DG G G< < <; ; ;? ? ?- - -? ? ?? ? ?A A AD D DG G G< < <; ; ;? ? ?- - -? ? ?? ? ?A A A
D D D
G G G
H H H: : :< < <? ? ?B B BC C C; ; ;: : :< < <? ? ?B B BC C C; ; ;? ? ?
A A A
D D D
G G G
H H H
; ; ;? ? ?A A AD D DG G GH H H; ; ;? ? ?A A AD D DG G GH H H; ; ;Q Q Q3 3 36 6 6R R RI I I
: : :	D 	D 	DC C C
9 
9 
9C C C9 9 9F F F* * ** * *6 6 66 6 6$F F FD D DF F FG G G7 7 7: : :H H HK K K	A 	A 	A8 8 89 9 98 8 83 3 33 3 33 3 33 3 33 3 33 3 33 3 33 3 33 3 33 3 33 3 33 3 3. . .. . .. . .	0 	0 	02 2 23 3 3$3 3 3$A A AA A A 6 6 6$6 6 6$D D DD D D " " "  " " "" " "  " " "" " "" " "" " "" " "  " " "" " "" " "" " "" " "" " "" " "" " "" " "" " "" " "  " " "" " "" " "" " "	" 	" 	"	" 	" 	"	" 	" 	"I I I$     ! !&+'+*."'&+!"% "% "% "%L $!# $).*.-1%*). $s) s) s) s)j  6  4 (-&+$)    /4-2+0   ,     8<EI9=59- - - -" :>GK;?' ' ' '  =A'+37+/#'	' ' ' '  DH6:4 4 4 46 @D:>#'> > > >" BG8 8 8 8 8 8 8 8rh   r   __main__)3sysospathinsertenvironrd  sambar   r   samba.dcerpcr   r   samba.tests.krb5.kcryptotestskrb5r   samba.tests.krb5.kdc_base_testr	   samba.tests.krb5.raw_testcaser
   "samba.tests.krb5.rfc4120_constantsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   samba.tests.krb5.rfc4120_pyasn1rfc4120_pyasn1rJ   r   r   r    r   r   unittestmainr   rh   rf   <module>r     sm  ( 


 				 <      !$
  



                 * * * * * * * * + * * * * * * * * * * * 6 6 6 6 6 6 ; ; ; ; ; ;                                           , 4 3 3 3 3 3 3 3 3 3 3 3 q9 q9 q9 q9 q9k q9 q9 q9hJ*8 J*8 J*8 J*8 J*8/ J*8 J*8 J*8ZT zNOOOHMOOOOO	 rh   