HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //usr/lib64/python3.6/site-packages/gssapi/tests/__pycache__/test_raw.cpython-36.pyc
3

�O[���@s>ddlZddlZddlZddlZddlZddlZddljZ	ddl
jjZddl
jZddlZejrlddlmZnddlmZdZej�jd�ZedeZGdd�dej�ZGdd	�d	e�ZGd
d�dej�ZGdd
�d
e�Z Gdd�de�Z!Gdd�de�Z"ddd�ddd�ddd�ddd�ddd�d�Z#Gdd�dej�Z$dS) �N)�Setshostzutf-8�/csHeZdZe�fdd��Zedd��Zedd��Ze�fdd��Z�ZS)	�_GSSAPIKerberosTestCasecsjtt|�j�tjd�}|jj|dgd�|j�|jjj	d�dj
d�|_|jjj	d�dj
d�|_
dS)NzUTF-8z-k)�flags�@r)�superr�
setUpClass�SERVICE_PRINCIPAL�decode�realm�kinit�	_init_env�
user_princ�split�encode�
USER_PRINCZadmin_princ�ADMIN_PRINC)�cls�	svc_princ)�	__class__�� /usr/lib64/python3.6/test_raw.pyrs
z"_GSSAPIKerberosTestCase.setUpClasscCs6tjtj�|_x"|jjj�D]\}}|tj|<qWdS)N)�copy�deepcopy�os�environ�
_saved_envr�env�items)r�k�vrrrr
&sz!_GSSAPIKerberosTestCase._init_envcCsDx8tjtj�D](}||jkr.|j|tj|<qtj|=qWd|_dS)N)rrrrr)rrrrr�_restore_env,s

z$_GSSAPIKerberosTestCase._restore_envcstt|�j�|j�dS)N)rr�
tearDownClassr!)r)rrrr"6sz%_GSSAPIKerberosTestCase.tearDownClass)	�__name__�
__module__�__qualname__�classmethodrr
r!r"�
__classcell__rr)rrrs
rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	j
d
d�dd��Ze	j
d
d�dd��Ze	j
d
d�e	j
dd�dd���Z
e	j
d
d�e	jdd�dd���Ze	j
d
d�e	jdd�dd���Ze	j
d
d�e	jdd�dd���Zdd �Zd!d"�Zd#d$�Ze	j
d%d&�d'd(��Zd)d*�Zd+d,�Ze	j
d-d.�d/d0��Ze	j
d-d.�d1d2��Ze	j
d-d.�e	jd3d4�d5d6���Ze	j
d7d8�d9d:��Ze	j
d;d<�d=d>��Zd?d@�ZdAdB�ZdCdD�Z dEdF�Z!dGdH�Z"dIdJ�Z#e	j
dKdL�dMdN��Z$e	j
dOdP�dQdR��Z%e	j
dSdT�dUdV��Z&e	j
dSdT�dWdX��Z'e	j
dYdZ�d[d\��Z(e	j
d]d^�e	j
d-d.�e	jd_d`�dadb����Z)e	j
d]d^�dcdd��Z*e	j
d]d^�dedf��Z+e	j
d]d^�e	j
dKdg�dhdi���Z,e	j
d]d^�e	j
dKdg�djdk���Z-e	j
dldm�e	jdndo�dpdq���Z.e	j
dldm�drds��Z/dtS)u�TestBaseUtilitiescCs|jjtjd�dgd�dS)NzUTF-8z-k)r)rrr	r
)�selfrrr�setUp=szTestBaseUtilities.setUpcCs4tj�}|j�|jt�|j�|jtjj�dS)N)	�gb�indicate_mechs�shouldnt_be_none�should_be_a�set�shouldnt_be_empty�should_include�MechType�kerberos)r)�mechsrrr�test_indicate_mechs@s

z%TestBaseUtilities.test_indicate_mechscCs,tjt�}|j�|jtj�tj|�dS)N)r+�import_name�TARGET_SERVICE_NAMEr-r.�Name�release_name)r)�
imported_namerrr�test_import_nameIs
z"TestBaseUtilities.test_import_namecCs^tj|jtjj�}tj|tjj�}|j�|j	tj
�tj|�}|j�|j	t�|j
�dS)N)r+r6r�NameType�kerberos_principal�canonicalize_namer2r3r-r.r8Zexport_name�bytesr0)r)r:Zcanonicalized_name�
exported_namerrr�test_canonicalize_export_nameQs



z/TestBaseUtilities.test_canonicalize_export_namecCs0tjt�}tj|�}|j�tj||�j�dS)N)r+r6r7Zduplicate_namer-�compare_name�should_be_true)r)Z	orig_name�new_namerrr�test_duplicate_nameas

z%TestBaseUtilities.test_duplicate_namecCs`tjttjj�}tj|�}|j�|\}}|j�|jt�|j	t�|j�|j	tjj�dS)N)
r+r6r7r<�hostbased_serviceZdisplay_namer-r.r?�	should_be)r)r:Z
displ_respZdisplayed_nameZout_typerrr�test_display_namehs



z#TestBaseUtilities.test_display_nameZrfc6680zRFC 6680cCs:tjttjj�}tj|�}|j�|jj�|j	j
�dS)N)r+r6r7r<rF�inquire_namer-�is_mech_name�should_be_false�mechZshould_be_none)r)�	base_name�inquire_resrrr�test_inquire_name_not_mech_name{s


z1TestBaseUtilities.test_inquire_name_not_mech_namecCs^tjttjj�}tj|tjj�}tj|�}|j	�|j
j�|jj
tj�|jjtjj�dS)N)r+r6r7r<rFr>r2r3rIr-rJrCrLr.�OIDrG)r)rM�	mech_namerNrrr�test_inquire_name_mech_name�s


z-TestBaseUtilities.test_inquire_name_mech_nameZrfc6680_comp_oidzRFC 6680 (COMPOSITE_EXPORT OID)cCsTtjttjj�}tj|tjj�}tj|�}|j	t
�tj|tjj�}|j	tj�dS)N)
r+r6r7r<rFr>r2r3�export_name_compositer.r?Zcomposite_exportr8)r)rM�
canon_namer@r:rrr�*test_import_export_name_composite_no_attrs�s




z<TestBaseUtilities.test_import_export_name_composite_no_attrsZauthdataZgreet_clientcCs`tjttjj�}tj|tjj�}tj|ddg�tj	|�}|j
�|jjt
�|jjdg�dS)Nsurn:greet:greetings
some greeting)r+r6r7r<rFr>r2r3�set_name_attributerIr-�attrsr.�listrG)r)rMrTrNrrr�test_inquire_name_with_attrs�s

z.TestBaseUtilities.test_inquire_name_with_attrscCs�tjttjj�}tj|tjj�}tj|ddgdd�tj	|d�}|j
�|jjt
�|jjdg�|jjt
�|jj|j�|jj�|jj�tj|d�dS)Nsurn:greet:greetingssome other valT)�complete)r+r6r7r<rFr>r2r3rV�get_name_attributer-�valuesr.rXrGZdisplay_valuesrZrCZ
authenticatedrKZdelete_name_attribute)r)rMrT�get_resrrr�1test_basic_get_set_delete_name_attributes_no_auth�s


zCTestBaseUtilities.test_basic_get_set_delete_name_attributes_no_authcCs~tjttjj�}tj|tjj�}tj|ddg�tj	|�}|j
t�tj|tjj�}|j
tj
�tj|d�}|jjdg�dS)Nsurn:greet:greetingssome val)r+r6r7r<rFr>r2r3rVrSr.r?Zexportr8r[r\rG)r)rMrTr@r:r]rrr�!test_import_export_name_composite�s


z3TestBaseUtilities.test_import_export_name_compositecCsxtjt�}tjt�}tj|jtjj�}tj||�j�tj||�j�tj||�j�tj	|�tj	|�tj	|�dS)N)
r+r6r7rr<r=rBrCrKr9)r)Z
service_name1Z
service_name2Z	init_namerrr�test_compare_name�s




z#TestBaseUtilities.test_compare_namecCsNtjdd�}|j�|\}}}|jt�|j�|j�|jt�|j�dS)NrF)	�gbmiscZ_display_statusr-r.r?r0�should_be_an_integer�boolrK)r)Zstatus_respZstatus�ctxZcontrrr�test_display_statuss


z%TestBaseUtilities.test_display_statuscCsvtjttjj�}tj|�}|j�|\}}}|j�|jtj�|j	�|j
tjj�|j
�tj|�tj|�dS)N)r+r6r	r<r=�acquire_credr-r.�Credsr0r1r2r3rbr9�release_cred)r)�nameZ	cred_resp�creds�actual_mechs�ttlrrr�test_acquire_credss



z$TestBaseUtilities.test_acquire_credsZcred_imp_expzcredentials import-exportcCsTtjd�j}tj|�}tj|�}tj|dd�}tj|dd�}tj|j|j�j�dS)NT)ri)	r+rfrjZexport_credZimport_cred�inquire_credrBrirC)r)rj�tokenZimported_credsZinquire_origZinquire_imprrr�test_cred_import_export#s

z)TestBaseUtilities.test_cred_import_exportcCs�tjttjj�}tj|�}|d}|d}tjttjj�}tj|�d}tj	||d�}|d}tj|||d�}	|	d}
tj
|
�}|j�|jd�dS)N�r)�acceptor_creds)�context�input_token)
r+r6r7r<rF�init_sec_contextr	r=rf�accept_sec_contextZcontext_timerb�should_be_greater_than)r)�target_name�ctx_resp�
client_token1�
client_ctx�server_name�server_creds�server_resp�
server_tok�client_resp2rdrlrrr�test_context_time.s$



z#TestBaseUtilities.test_context_timecCs"tjttjj�}tj|�}|d}|d}tjttjj�}tj|�d}tj	||d�}|d}tj|||d�}	|	d}
tj
|
�}|j�|\}}}
}}}}|j�|jtj
�|j�|jtj
�|
j�|j�|jtjj�|j�|jt�|j�|jt�|j�|jt�|j�dS)Nrqr)rr)rsrt)r+r6r7r<rFrur	r=rfrvZinquire_contextr-r.r8rbrGr2r3rr0rcrC)r)rxryrzr{r|r}r~rr�rd�inq_respZsrc_namerl�	mech_typerZ	local_estZis_openrrr�test_inquire_contextFs@






z&TestBaseUtilities.test_inquire_contextZs4uZS4Uc
Cs�tjttjj�}tj|�}|d}~tjttjj�}tj|dd�d}tj	||d�}tj
�}tj|||dtjj
�}|j�|\}	}
}}|
j�|
jtjj
�|jt�|jt�|	jtj
�dS)Nrq�both)�usager)rr�)r+r6r7r<rFrur	r=rfrvrgZadd_cred_impersonate_namer2r3r-r0r1r.�int)
r)rx�client_ctx_resp�client_tokenr|r}�server_ctx_resp�input_creds�imp_resp�	new_credsrk�output_init_ttl�output_accept_ttlrrr�test_add_cred_impersonate_namews,





z0TestBaseUtilities.test_add_cred_impersonate_namecCs�tjttjj�}tj|�}|d}~tjttjj�}tj|dd�d}tj	||d�}tj
||d�}|j�|\}}	}
|j�|jtj
�|	j�|	jtjj�|
jt�dS)Nrqr�)r�r)rrr�)r+r6r7r<rFrur	r=rfrvZacquire_cred_impersonate_namer-r.rgr0r1r2r3r�)r)rxr�r�r|r}r�r��	imp_credsrk�
output_ttlrrr�#test_acquire_creds_impersonate_name�s&




z5TestBaseUtilities.test_acquire_creds_impersonate_namez1.11z)returning delegated S4U2Proxy credentialscCs|tjd�}|jj|ddgd�tjttjj�}tj	|�j
}tjddd�j}tj
||d�}|j�|jj�|jjtj�dS)NzUTF-8z-kz-f)rr�)r�)rr)r	r
rrr+r6r7r<rFrurorfrjrvr-�delegated_credsr.rg)r)rrxr�r}r�rrr�test_always_get_delegated_creds�s


z1TestBaseUtilities.test_always_get_delegated_credsZrfc5588zRFC 5588cCs�tjd�}|jj|ddgd�tjttjj�}tj	ddd�j
}tj||tjj
d�}|d}tj	dd	d�j
}tj||d
�}|j}|j�tj|dddd�}	|	j�|	jjd�|	jjtjj�tj|�j}
tj	|
dd�}|j�dS)
NzUTF-8z-kz-f)r�initiate)r�)rjrrqZaccept)rrT)r�Zset_default�	overwrite)r	r
rrr+r6r7r<rFrfrjru�RequirementFlagZdelegate_to_peerrvr�r-Z
store_credr�rGr4r1r2r3rnri)r)rrxZclient_credsr�r�r}r�Zdeleg_creds�	store_resZ
deleg_nameZacq_resprrr�test_store_cred_acquire_cred�s,


z.TestBaseUtilities.test_store_cred_acquire_credZ
cred_storezcredentials storec	Csdj|jjd�}dj|jjd�}|jd�|jd�d�}d|jj}|jj|�|jj||�|jj|ddd|g�tjdd	d
�j	}tj
||dd�}|jj�|j
jd	�tj|jd��}tj||�}|j�|j	j�|j	jtj�|jj�|jjtjj�|jj�dS)
NzFILE:{tmpdir}/other_ccache)�tmpdirz{tmpdir}/other_keytabzUTF-8)sccacheskeytabzservice/cs@z-kz-tr�)r�T)r�)�formatrr�rZaddprincZextract_keytabrr+rfrjZstore_cred_intor4r-r�rGr6Zacquire_cred_fromr.rgr0r1r2r3�lifetimerb)	r)ZCCACHEZKTZstoreZ
princ_nameZ
initial_credsr�riZretrieve_resrrr�!test_store_cred_into_acquire_cred�s(


z3TestBaseUtilities.test_store_cred_into_acquire_credc
Cs�tjttjj�}tj|�}|d}~tjttjj�}tj|dd�d}tj	||d�}tj
�}tj||dtjj
�}|j�|\}	}
}}|
j�|
jtjj
�|jt�|jt�|	jtj
�dS)Nrqr�)r�r)rrr�)r+r6r7r<rFrur	r=rfrvrgZadd_credr2r3r-r0r1r.r�)
r)rxr�r�r|r}r�r�r�r�rkr�r�rrr�
test_add_cred
s*





zTestBaseUtilities.test_add_credcCs�tjttjj�}tj|�j}tj|�}|j�|j	j
tj�tj||j	�sNt
�|jj�|jjd�|jj�|jjtjj�dS)Nr�)r+r6r	r<r=rfrjrnr-rir.r8rB�AssertionErrorr�rbr�rGr4r0r1r2r3)r)ri�credr�rrr�test_inquire_creds.s



z$TestBaseUtilities.test_inquire_credscCs,tjjj�}tj|d�}|jtjj�~dS)N)�elements)r+r2r3�	__bytes__rPrG)r)Zkerberos_bytesZnew_oidrrr�test_create_oid_from_bytesAsz,TestBaseUtilities.test_create_oid_from_bytescCs@tjj}tjj}tj||Bd�}|jtj�|jj	||B�dS)Nr)
r+ZParameterReadErrorZCALLING_CODEZBadNameErrorZROUTINE_CODE�GSSErrorr.Z
NameReadErrorZmaj_coderG)r)Z	err_code1Z	err_code2�errrrr�test_error_dispatchIs
z%TestBaseUtilities.test_error_dispatchcCs(tjtjj�}|j�|jtjj�dS)N)r+Zinquire_names_for_mechr2r3r-r1r<r=)r)�resrrr�test_inquire_names_for_mechQsz-TestBaseUtilities.test_inquire_names_for_mechcCs6tj|jtjj�}tj|�}|j�|jtjj	�dS)N)
r+r6rr<r=Zinquire_mechs_for_namer-r1r2r3)r)rir�rrr�test_inquire_mechs_for_nameWs


z-TestBaseUtilities.test_inquire_mechs_for_name�passwordZPasswordcCs�|jjd�}|jj|jj|d�tjdtjj�}tj||j	d��}|j
�|\}}}|j
�|jtj�|j
�|jtjj�|jt�dS)N�user)r�suserzUTF-8)rr�rrr+r6r<r=�acquire_cred_with_passwordrr-r.rgr0r1r2r3r�)r)r�rir�r�rkr�rrr�test_acquire_cred_with_password`s
z1TestBaseUtilities.test_acquire_cred_with_passwordZpassword_addzPassword (add)c	Cs�|jjd�}|jj|jj|d�tjdtjj�}tj�}tj	||tj
j|jd��}|j
�|\}}}}|j�|jtj
j�|jt�|jt�|jtj�dS)Nr�)r�suserzUTF-8)rr�rrr+r6r<r=rgZadd_cred_with_passwordr2r3rr-r0r1r.r�)	r)r�rir�r�r�rkr�r�rrr�test_add_cred_with_passwordus

z-TestBaseUtilities.test_add_cred_with_passwordZrfc5587zRFC 5587cCs�tjddd�}|jt�|j�d}d}�x0|D�]&}|j�|jtj�|}tj|�}|j}|j	}|jt�|jt�xp|D]h}|j�|jtj�tj
|�}	|	jj�|	jj�|	j
j�|	jjt�|	jjt�|	j
jt�|}q~Wxl|D]d}|j�|jtj�tj
|�}	|	jj�|	jj�|	j
j�|	jjt�|	jjt�|	j
jt�q�Wq0Wt|g�}
tj|
dd�}|j�|j|�tjd|
d�}|j|�tjdd|
�}|j�|j|�dS)N)r+Zindicate_mechs_by_attrsr.r/r0r-rPZinquire_attrs_for_mech�
mech_attrs�known_mech_attrs�display_mech_attrri�
short_desc�	long_descr?r1�shouldnt_include)r)r4Z	last_attrZ	last_mechrLZinquire_outr�r�Z	mech_attr�display_outrWrrr�test_rfc5587�sX
















zTestBaseUtilities.test_rfc5587cCsxtjjd�dddgtjjd�dddgg}xJ|D]B}tj|d	�}|jj|d
�|jj|d�|jj|d�q.WdS)
Nz1.3.6.1.5.5.13.24sGSS_C_MA_CBINDINGSschannel-bindingss$Mechanism supports channel bindings.z1.3.6.1.5.5.13.1sGSS_C_MA_MECH_CONCRETEs
concrete-mechsBMechanism is neither a pseudo-mechanism nor a composite mechanism.rr��rq)r+rP�from_int_seqr�rirGr�r�)r)Z
test_attrs�attrr�rrr�test_display_mech_attr�s

z(TestBaseUtilities.test_display_mech_attrZrfc5801z
SASL NamescCs�tj�}x�|D]z}tj|�}|j}|j�|jt�|j�|j}|j�|jt�|j	}|j�|jt�tj
|�}|j�|j|�qWdS)N)r+r,Zinquire_saslname_for_mechZsasl_mech_namer-r.r?r0rQZmech_descriptionZinquire_mech_for_saslnamerG)r)r4rL�outZout_smnZout_mnZout_mdZcmp_mechrrr�test_sasl_names�s 





z!TestBaseUtilities.test_sasl_namesZggfzGlobal Grid Forumz1.16z^querying impersonator name of krb5 GSS Credential using the GSS_KRB5_GET_CRED_IMPERSONATOR OIDcCs�tjd�}|jj|ddgd�tjttjj�}tj	|�j
}tjddd�j}tj
||d�}|j�|jj�|jjtj�tjjd�}tj|j|�}|jt�|j�|d	jt�|d	jd
t|jjjd�f�dS)NzUTF-8z-kz-f)rr�)r�)rrz1.2.840.113554.1.2.2.5.14rs%s@%szutf-8)r	r
rrr+r6r7r<rFrurorfrjrvr-r�r.rgrPr�Zinquire_cred_by_oidrXr0r?rGr)r)rrxr�r}r��oid�inforrr�%test_inquire_cred_by_oid_impersonator�s$



z7TestBaseUtilities.test_inquire_cred_by_oid_impersonatorc
Cs�tjttjj�}tj|�}tjttjj�}tj|�d}tj	|d|d�}|d}|d}tj||d|d�}|d}	tj
jd�}
tj|	|
�}tj||
�}|j
t�|j�|j
t�|j�|j|�dS)Nrrq)rr)rsrtz1.2.840.113554.1.2.2.5.5)r+r6r7r<rFrur	r=rfrvrPr��inquire_sec_context_by_oidr.rXr0�should_have_same_items_as)
r)rx�	ctx_resp1r|r}r~�
server_ctxrr�r{Zsession_key_oidZ
client_keyZ
server_keyrrr�test_inquire_sec_context_by_oids,





z1TestBaseUtilities.test_inquire_sec_context_by_oidc	Cs�tjttjj�}tj|�}tjttjj�}tj|�d}tj	|d|d�}tj||d|dd�}|d}tj
jd�}tjj
tj||�dS)Nrrq)rr)rsrtz1.2.3.4.5.6.7.8.9)r+r6r7r<rFrur	r=rfrvrPr�r��should_raiser�)	r)rxr�r|r}r~r�r{�invalid_oidrrr�2test_inquire_sec_context_by_oid_should_raise_error>s



zDTestBaseUtilities.test_inquire_sec_context_by_oid_should_raise_errorzAdd Credential with Passwordc
Cs�tjjd�}tjdtjjd�}ytj|d|gd�}Wn tjk
rT|jd�YnXtjdtjj	d�}tj
||j|d�d	}tjjd
�}tj||dd
�}|j
tj�dS)Nz1.3.6.1.4.1.311.2.2.10suser)ri�	name_typespassword)rir�r4z5You do not have the GSSAPI gss-ntlmssp mech installedsserver)rjrLrz1.3.6.1.4.1.7165.655.1.3��)rs�values)r+rPr�r6r<r�r�r��skipTestrFrurj�set_sec_context_optionr.�SecurityContext)r)�	ntlm_mech�usernamer��serverZorig_context�
reset_mechZout_contextrrr�test_set_sec_context_optionSs$
z-TestBaseUtilities.test_set_sec_context_optionc
Cs�tjjd�}tjdtjjd�}ytj|d|gd�}Wn tjk
rT|jd�YnXtjdtjj	d�}tj
||j|d�d	}tjjd
�}tjj
tj||�dS)Nz1.3.6.1.4.1.311.2.2.10suser)rir�spassword)rir�r4z5You do not have the GSSAPI gss-ntlmssp mech installedsserver)rjrLrz1.3.6.1.4.1.7165.655.1.3)r+rPr�r6r<r�r�r�r�rFrurjr�r�)r)r�r�r�r�rsr�rrr� test_set_sec_context_option_failms 
z2TestBaseUtilities.test_set_sec_context_option_failZset_cred_optzKitten Set Credential Optionz1.14z6GSS_KRB5_CRED_NO_CI_FLAGS_X was added in MIT krb5 1.14cCsFtjttjj�}tjjd�}tj|�j}tj	||d�}|j
tj�dS)Nz1.2.752.43.13.29)rj)r+r6r	r<r=rPr�rfrj�set_cred_optionr.rg)r)riZ
no_ci_flags_x�	orig_credZoutput_credrrr�test_set_cred_option�s
z&TestBaseUtilities.test_set_cred_optioncCs@tjttjj�}tj|�j}tjjd�}tj	j
tj||d�dS)Nz1.2.3.4.5.6.7.8.9r�)r+r6r	r<r=rfrjrPr�r�r�r�)r)rir�r�rrr�'test_set_cred_option_should_raise_error�s
z9TestBaseUtilities.test_set_cred_option_should_raise_errorN)0r#r$r%r*r5r;rArErH�ktu�gssapi_extension_testrOrRrUZkrb_plugin_testrYr^r_r`rermrpr�r�r�r�Zkrb_minversion_testr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr(<sn	



1 
! !	E

 


r(c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%S)&�TestIntEnumFlagSetcCs0tjjtjjB}tjtj|�}t|�j|�dS)N)r+r��	integrity�confidentiality�IntEnumFlagSetr�rG)r)�int_val�fsetrrr�test_create_from_int�s
z'TestIntEnumFlagSet.test_create_from_intcCs:tjjtjjB}tjtj|�}tjtj|�}|j|�dS)N)r+r�r�r�r�rG)r)r��fset1�fset2rrr�test_create_from_other_set�s

z-TestIntEnumFlagSet.test_create_from_other_setcCs0tjjtjjg}tjtj|�}t|�j|�dS)N)r+r�r�r�r�rXr�)r)�lstr�rrr�test_create_from_list�s
z(TestIntEnumFlagSet.test_create_from_listcCstjtj�}|j�dS)N)r+r�r�Zshould_be_empty)r)r�rrr�test_create_empty�sz$TestIntEnumFlagSet.test_create_emptycCstjjtjjg}tjtj|�S)N)r+r�r�r�r�)r)r�rrr�_create_fset�s
zTestIntEnumFlagSet._create_fsetcCs(|j�}|jtjj�|jtjj�dS)N)r�r1r+r�r�r��protection_ready)r)r�rrr�
test_contains�sz TestIntEnumFlagSet.test_containscCs|j�jd�dS)Nr�)r��should_have_length)r)rrr�test_len�szTestIntEnumFlagSet.test_lencCs<|j�}|jd�|jtjj�|jd�|jtjj�dS)Nr�rq)r�r��addr+r�r�r1)r)r�rrr�test_add�s


zTestIntEnumFlagSet.test_addcCsT|j�}|jd�|jtjj�|jd�|jtjj�|jd�|jtjj�dS)Nr�r�)r�r��discardr+r�r�r�r�)r)r�rrr�test_discard�s


zTestIntEnumFlagSet.test_discardcCs,|j�}|tjj@j�|tjj@j�dS)N)r�r+r�r�rCr�rK)r)r�rrr�
test_and_enum�sz TestIntEnumFlagSet.test_and_enumcCs&|j�}ttjj�}||@j|�dS)N)r�r�r+r�r�rG)r)r�r�rrr�test_and_int�szTestIntEnumFlagSet.test_and_intcCsF|j�}|j�}|j�}|jtjj�|jtjj�||@j|�dS)N)r�r�r+r�r��out_of_sequence_detectionrG)r)r�r��fset3rrr�test_and_set�szTestIntEnumFlagSet.test_and_setcCs2|j�}|tjjB}||kj�|jtjj�dS)N)r�r+r�r�rCr1)r)r�r�rrr�test_or_enum�szTestIntEnumFlagSet.test_or_enumcCs*|j�}ttjj�}||Bjt|��dS)N)r�r�r+r�r�rG)r)r�r�rrr�test_or_int�szTestIntEnumFlagSet.test_or_intcCsb|j�}|j�}|j�}|jtjj�|jtjj�|jtjj�|jtjj�||Bj|�dS)N)r�r�r+r�r�r�rG)r)r�r�r�rrr�test_or_setszTestIntEnumFlagSet.test_or_setcCsT|j�}|tjjA}|tjjA}|jd�|jtjj�|jd�|jtjj�dS)Nrqr�)r�r+r�r�r�r�r1r�)r)r�r�r�rrr�
test_xor_enums

z TestIntEnumFlagSet.test_xor_enumcCsP|j�}|ttjj�Ajt|�tjjA�|ttjj�Ajt|�tjjA�dS)N)r�r�r+r�r�rGr�)r)r�rrr�test_xor_ints
zTestIntEnumFlagSet.test_xor_intcCsz|j�}|j�}|jtjj�|jtjj�||A}|jd�|jtjj�|jtjj	�|j
tjj�|j
tjj�dS)Nr�)r�r�r+r�r�r�r�r�r�r�r1)r)r�r�r�rrr�test_xor_set!s
zTestIntEnumFlagSet.test_xor_setN)r#r$r%r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr��s$
	r�c@s$eZdZdd�Zdd�Zdd�ZdS)�TestInitContextcCstjttjj�|_dS)N)r+r6r7r<rFrx)r)rrrr*1szTestInitContext.setUpcCstj|j�dS)N)r+r9rx)r)rrr�tearDown5szTestInitContext.tearDowncCs�tj|j�}|j�|\}}}}}}|j�|jtj�|jtjj�|jt	�|j
d�|j�|jd�|jt
�tj|�dS)Nr�r)r+rurxr-r.r�rGr2r3r�should_be_at_least_lengthr0rwrc�delete_sec_context)r)ryrdZ
out_mech_type�
out_req_flags�	out_token�out_ttl�cont_neededrrr�test_basic_init_default_ctx8s



z+TestInitContext.test_basic_init_default_ctxN)r#r$r%r*rrrrrrr�0sr�c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestAcceptContextcCsjtjttjj�|_tj|j�}|d|_|d|_|jj	�tjt
tjj�|_tj
|j�d|_d|_dS)Nrqr)r+r6r7r<rFrxrur�r{r-r	r=r|rfr}r�)r)ryrrrr*Rs


zTestAcceptContext.setUpcCsJtj|j�tj|j�tj|j�tj|j�|jdk	rFtj|j�dS)N)	r+r9rxr|rhr}rr{r�)r)rrrras
zTestAcceptContext.tearDownc		Cs�tj|j�}|j�|\|_}}}}}}}|jj�|jjtj�|j�|jtj�|jtj	j
�|j�|jt�|j
d�|jd�|dk	r�|jtj�|jt�dS)Nr�r)r+rvr�r-r�r.r�r8rGr2r3r0rrrwrgrc)	r)r~rir�rrr�delegated_credrrrr�+test_basic_accept_context_no_acceptor_credsjs



z=TestAcceptContext.test_basic_accept_context_no_acceptor_credsc		Cs�tj|j|jd�}|j�|\|_}}}}}}}|jj�|jjtj�|j�|jtj�|j	tj
j�|j�|jt
�|jd�|jd�|dk	r�|jtj�|jt�dS)N)rrr�r)r+rvr�r}r-r�r.r�r8rGr2r3r0rrrwrgrc)	r)r~rir�rrrr	rrrr�test_basic_accept_context�s 




z+TestAcceptContext.test_basic_accept_contextcCs�tjdtjjdtjjdd�}tjttjj�|_tj	|j|d�}|d|_
|d|_|jj�tjt
tjj�|_tj|j�d|_tj|j
|j|d�}|j|j|_dS)Nsabcxyzs	127.0.0.1)�application_data�initiator_address_type�initiator_address�acceptor_address_type�acceptor_address)�channel_bindingsrqr)rrr)r+�ChannelBindings�AddressType�ipr6r7r<rFrxrur�r{r-r	r=r|rfr}rvrsr�)r)�bdgsryr~rrr�test_channel_bindings�s(


z'TestAcceptContext.test_channel_bindingscCs�tjdtjjdtjjdd�}tjttjj�|_tj	|j|d�}|d|_
|d|_|jj�tjt
tjj�|_tj|j�d|_d|_tjjtj|j
|j|d�dS)	Nsabcxyzs	127.0.0.1)rr
rrr)rrqrs	127.0.1.0)rrr)r+rrrr6r7r<rFrxrur�r{r-r	r=r|rfr}rrvr�r�)r)rryrrr�%test_bad_channel_binding_raises_error�s&


z7TestAcceptContext.test_bad_channel_binding_raises_errorN)	r#r$r%r*rr
rrrrrrrrPs	rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	e
jdd�dd��Ze
jdd�dd��Z
e
jdd�dd��Ze
jdd�dd��Ze
jdd�dd��Ze
jdd�dd��Ze
jdd�dd ��Ze
jdd�d!d"��Ze
jdd�d#d$��Zd%S)&�TestWrapUnwrapcCs�tjttjj�|_tj|j�}|d|_|d|_tjt	tjj
�|_tj|j�d|_
tj|j|j
d�}|d|_|d|_tj|j|j|jd�}|d|_|d|_dS)Nrqr)rr)rsrt)r+r6r7r<rFrxrurzr{r	r=r|rfr}rvr�rZ
client_token2)r)ryr~r�rrrr*�s"






zTestWrapUnwrap.setUpcCs@tj|j�tj|j�tj|j�tj|j�tj|j�dS)N)	r+r9rxr|rhr}rr{r�)r)rrrr�s
zTestWrapUnwrap.tearDowncCsNtj|j�}|j�|jt�|j�tj|�}|j�|jtj�||_dS)N)	r+Zexport_sec_contextr{r-r.r?r0Zimport_sec_contextr�)r)�tokZimported_ctxrrr�test_import_export_sec_context�s

z-TestWrapUnwrap.test_import_export_sec_contextcCs,tj|jd�}|j�|jt�|j�dS)Nssome message)r+�get_micr{r-r.r?r0)r)�	mic_tokenrrr�test_get_mic�s
zTestWrapUnwrap.test_get_miccCs@tj|jd�}tj|jd|�}|j�tjjtj|jdd�dS)Nssome messagessome other messagessome invalid mic)r+rr{Z
verify_micr�rbr�r�)r)r�qop_usedrrr�test_basic_verify_mics
z$TestWrapUnwrap.test_basic_verify_miccCsHtj|jd�}tj|jddd�}|j�|j�|jd�|jd�dS)N�dF)Zconfidential)r+Zwrap_size_limitr{rbZshould_be_less_than)r)Z	with_confZwithout_confrrr�test_wrap_size_limits

z#TestWrapUnwrap.test_wrap_size_limitcCs�tj|jd�\}}|jt�|j�|jt�|j�|jd�tj	|j
|�\}}}|jt�|j�|j�|jd�|jt�|j�|j
d�dS)Nstest messageztest messager)r+Zwrapr{r.rcrCr?r0�should_be_longer_thanZunwrapr�rb�should_be_at_leastrG)r)�wrapped_message�conf�unwrapped_message�qoprrr�test_basic_wrap_unwraps





z%TestWrapUnwrap.test_basic_wrap_unwrapZdcezDCE (IOV/AEAD)cCsLd}d}d}tjtjj|f||dd�}|djj�|djj�|djj�tj|j|�}|jt	�|j
�|djd	�|djd	�tj|j|�}|jt	�|j
�|j
d�|j
d�|j
d�|d
jjd�|djjd�tj|j|�\}}|jt	�|j
�|jt�|d	jj
|�|d
jj
|�|djj
|�dS)Nssome encrypted datassome other encrypted datas
some sig dataF)�
auto_allocrr��r�r�rq)r+�IOV�
IOVBufferType�	sign_only�allocaterKZwrap_iov_lengthr{r.rcrCZshould_be_at_least_size�wrap_iovrGr��shouldnt_be�
unwrap_iovr�r�)r)�	init_data�init_other_data�init_signed_info�init_messager%r'rrr�#test_basic_iov_wrap_unwrap_prealloc0s8






z2TestWrapUnwrap.test_basic_iov_wrap_unwrap_prealloccCs�d}d}d}tjtjj|f||�}tj|j|�}|jt�|j�|j	d�|j	d�|j	d�|dj
jd�|dj
jd�tj|j
|�\}}|jt�|j�|jt�|dj
j	|�|dj
j	|�|dj
j	|�dS)Nssome encrypted datassome other encrypted datas
some sig datar�rqr�)r+r+r,r-r/r{r.rcrCrGr�r0r1r�r�)r)r2r3r4r5r%r'rrr�$test_basic_iov_wrap_unwrap_autoalloc\s(





z3TestWrapUnwrap.test_basic_iov_wrap_unwrap_autoalloccCs�d}tj|jd|�\}}|jt�|j�|jt�|j�|jd�tj	|j
||�\}}}|jt�|j�|j�|jd�|jt�|j�|j
d�dS)Ns
some sig datastest messageztest messager)r+�	wrap_aeadr{r.rcrCr?r0r"�unwrap_aeadr�rbr#rG)r)�
assoc_datar$r%r&r'rrr�test_basic_aead_wrap_unwrap|s$





z*TestWrapUnwrap.test_basic_aead_wrap_unwrapcCs�tj|jd�\}}|jt�|j�|jt�|j�|jd�tj	|j
|�\}}}|jt�|j�|j�|jd�|jt�|j�|j
d�dS)Nstest messageztest messager)r+r8r{r.rcrCr?r0r"r9r�rbr#rG)r)r$r%r&r'rrr�$test_basic_aead_wrap_unwrap_no_assoc�s 






z3TestWrapUnwrap.test_basic_aead_wrap_unwrap_no_assoccCs`d}tj|jd|�\}}|jt�|j�|jt�|j�|jd�tj	j
tj|j|d�dS)Ns
some sig datastest messageztest messagessome other sig data)
r+r8r{r.rcrCr?r0r"r9r�ZBadMICErrorr�)r)r:r$r%rrr�2test_basic_aead_wrap_unwrap_bad_assoc_raises_error�s


zATestWrapUnwrap.test_basic_aead_wrap_unwrap_bad_assoc_raises_errorZiov_miczIOV MICcCsRtjdtjjdftjjdd�}tj|j|�|djjtjj�|dj	j
�dS)Ns	some datas
some sig dataF)�
std_layoutr�)r+r+r,r-r�get_mic_iovr{�typerGr�r0)r)r5rrr�test_get_mic_iov�s
zTestWrapUnwrap.test_get_mic_iovcCshtjdtjjdftjjdd�}tj|j|�|djjtjj�|dj	j
�tj|j|�}|j
�dS)Ns	some datas
some sig dataF)r>r�)r+r+r,r-rr?r{r@rGr�r0�verify_mic_iovr�rb)r)r5rrrr�test_basic_verify_mic_iov�s
z(TestWrapUnwrap.test_basic_verify_mic_iovcCs:tjdtjjdftjjdfdd�}tjjtj|j|�dS)Ns	some datas
some sig dataZabaavaF)r>)	r+r+r,r-rrBr�r�r�)r)r5rrr�(test_verify_mic_iov_bad_mic_raises_error�s

z7TestWrapUnwrap.test_verify_mic_iov_bad_mic_raises_errorcCsTtjdtjjdftjjddd�}tj|j|�|djjtjj�|dj	j
�dS)Ns	some datas
some sig dataF)r>r)r�)r+r+r,r-rZget_mic_iov_lengthr{r@rGr�r0)r)r5rrr�test_get_mic_iov_length�s
z&TestWrapUnwrap.test_get_mic_iov_lengthN)r#r$r%r*rrrrr!r(r�r�r6r7r;r<r=rArCrDrErrrrr�s 
, rs+z
1.3.6.1.5.5.2)r?�strings	*�H��z1.2.840.113554.1.2.2s+z1.3.5.1.5.2s	*�H��z1.2.840.48018.1.2.2s+z
1.3.6.1.5.2.5)�SPNEGO�KRB5ZKRB5_OLDZ
KRB5_WRONGZIAKERBc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestOIDTransformscCsBx<tj�D]0}tj|dd�}t|�}|jdj|d��q
WdS)Nr?)r�z	<OID {0}>rF)�	TEST_OIDSr\r+rP�reprrGr�)r)r��o�textrrr�test_decode_from_bytes�sz(TestOIDTransforms.test_decode_from_bytescCs8x2tj�D]&}tjj|d�}|j�j|d�q
WdS)NrFr?)rJr\r+rPr�r�rG)r)r�rLrrr�test_encode_from_stringsz)TestOIDTransforms.test_encode_from_stringcCsBx<tj�D]0}|djd�}tjj|�}|j�j|d�q
WdS)NrF�.r?)rJr\rr+rPr�r�rG)r)r�Zint_seqrLrrr�test_encode_from_int_seqsz*TestOIDTransforms.test_encode_from_int_seqcCsxtjjtdd�}tjjtdd�}tjjtdd�}||kjd�||kjd�||kjd�||kjd�dS)NrHrFrGTF)r+rPr�rJrG)r)Zkrb5Z
krb5_otherZspnegorrr�test_comparisonssz"TestOIDTransforms.test_comparisonsN)r#r$r%rNrOrQrRrrrrrI�srI)%rrZsocketZunittestZsixZ
should_be.allrGZ
gssapi.raw�rawr+Zgssapi.raw.miscZmiscraZk5test.unitZunitr�Zk5testZktZPY2�collectionsr�collections.abcr7ZgetfqdnrZFQDNr	ZKerberosTestCaserr(ZTestCaser�r�rrrJrIrrrr�<module>sT

#m