HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/josepy/__pycache__/jws_test.cpython-38.pyc
U

��]H!�@s�dZddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
e
�d�Ze	j
�e
�d��ZGdd�dej�ZGdd	�d	ej�ZGd
d�dej�ZGdd
�d
ej�ZGdd�dej�Zedkr�e��dS)zTests for josepy.jws.�N)�errors�	json_util�jwa�jwk�	test_utilzcert.pem�rsa512_key.pemc@s eZdZdZdd�Zdd�ZdS)�
MediaTypeTestzTests for josepy.jws.MediaType.cCsFddlm}|�d|�d��|�d|�d��|�tj|jd�dS)Nr��	MediaType�application/app�appzapp;foo)�
josepy.jwsr
�assertEqual�decode�assertRaisesr�DeserializationError��selfr
�r�1/usr/lib/python3/dist-packages/josepy/jws_test.py�test_decodes�zMediaTypeTest.test_decodecCs4ddlm}|�d|�d��|�d|�d��dS)Nrr	rrzapplication/app;foo)r
r
r�encoderrrr�test_encodes
�zMediaTypeTest.test_encodeN)�__name__�
__module__�__qualname__�__doc__rrrrrrrsrc@sPeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)�
HeaderTestzTests for josepy.jws.Header.cCs<ddlm}|dd�|_|dd�|_|dd�|_|�|_dS)Nr��Header�foo)r�bar��a�b)�crit)r
r�header1�header2r%�empty�rrrrr�setUp"s
zHeaderTest.setUpcCs,ddlm}|�|ddd�|j|j�dS)Nrrr r")rr%)r
rrr&r%r)rrr�test_add_non_empty)s
�zHeaderTest.test_add_non_emptycCs0|�|j|j|j�|�|j|j|j�dS�N)rr&r(�rrrr�test_add_empty.szHeaderTest.test_add_emptycCs|�t|jj|j�dSr,)r�	TypeErrorr&�__add__r'r-rrr�test_add_overlapping_error2sz%HeaderTest.test_add_overlapping_errorcCs|�t|jjd�dS)NZxxx)rr/r&r0r-rrr�test_add_wrong_type_error5sz$HeaderTest.test_add_wrong_type_errorcCs*ddlm}|�tj|jdddgi�dS)Nrrr%r#r$)r
rrrr�	from_jsonr)rrr�test_crit_decode_always_errors8s
�z)HeaderTest.test_crit_decode_always_errorscCs�ddlm}|ttfd�}|��}tj�tjjtj�}t	�
|�}|�|d||gi�|�||�|��t	�
d|�|dd<|�
tj|j|�dS)Nrr)�x5cr5sxxx)r
r�CERT�to_partial_json�OpenSSLZcryptoZdump_certificateZ
FILETYPE_ASN1�wrapped�base64Z	b64encoderr3rrr)rr�headerZjobjZ	cert_asn1Zcert_b64rrr�test_x5c_decoding=s�
zHeaderTest.test_x5c_decodingcCs:|�d|j���|�d|j���|�tj|jj�dS)Nr r!)rr&Zfind_keyr'rr�Errorr%r-rrr�
test_find_keyIszHeaderTest.test_find_keyN)rrrrr*r+r.r1r2r4r<r>rrrrrsrc@s eZdZdZdd�Zdd�ZdS)�
SignatureTestzTests for josepy.jws.Signature.cCsHddlm}ddlm}|�|d|tjd�d�|�ddd	id���dS)
Nrr��	Signature�foo)�alg)�	signaturer;ZZm9vrC�RS256)r
rrArrrEr3)rrrArrr�test_from_jsonRs��zSignatureTest.test_from_jsoncCs&ddlm}|�tj|jddi�dS)Nrr@rDr )r
rArrrr3)rrArrr�test_from_json_no_alg_errorZs
�z)SignatureTest.test_from_json_no_alg_errorN)rrrrrFrGrrrrr?Osr?c@speZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�JWSTestzTests for josepy.jws.JWS.cCsvt|_|j��|_ddlm}|jd|jtjd�|_	|jd|jtjt
ddg�d�|_|jd|jtjt
dg�d�|_dS)Nr��JWSrB)�payload�keyrCrrC)rKrLrCZprotect)
�KEYZprivkeyZ
public_key�pubkeyr
rJ�signrrE�unprotected�	frozenset�	protected�mixed�rrJrrrr*cs(�
��z
JWSTest.setUpcCsF|�|jjjj|j�|�|jjjj|j�|�|jjjj|j�dSr,)rrPrD�combinedrrNrRrSr-rrr�test_pubkey_jwkqszJWSTest.test_pubkey_jwkcCs|�|j���dSr,)�
assertTruerP�verifyr-rrr�test_sign_unprotectedvszJWSTest.test_sign_unprotectedcCs|�|j���dSr,)rWrRrXr-rrr�test_sign_protectedyszJWSTest.test_sign_protectedcCs|�|j���dSr,)rWrSrXr-rrr�test_sign_mixed|szJWSTest.test_sign_mixedcCs\|j��}|�d|�ddlm}|�|�}|�|j|�|�tdg�t|jj	�
���dS)NsreyJhbGciOiAiUlMyNTYifQ.Zm9v.OHdxFVj73l5LpxbFp1AmYX4yJM0Pyb_893n1zQjpim_eLS5J1F61lkvrCrCDErTEJnBGOGesJ72M7b6Ve1cAJArrIrC)rSZ
to_compactrr
rJ�from_compactZassertNotEqual�setrDrUZnot_omitted)rZcompactrJrSrrr�test_compact_lost_unprotecteds
�
�z%JWSTest.test_compact_lost_unprotectedcCs"ddlm}|�tj|jd�dS)NrrI�.)r
rJrrrr\rTrrr�$test_from_compact_missing_components�sz,JWSTest.test_from_compact_missing_componentscCs�|jjdd�}|jjdd�}|�d|k�|�d|k�|d��|d<ddlm}|�|�|�|j�|�|�|�|j�dS)NT�ZflatrRr;rrI)	rRr7rPrW�to_jsonr
rJrr3)rZprotected_jobjZunprotected_jobjrJrrr�test_json_omitempty�szJWSTest.test_json_omitemptycCs�t�|jjj�t�d�|jjjt�|jjj�d��d�}|��}|d��|d<|�	|jj
dd�|�ddlm}|�	|j|�
|��dS)	NrBzutf-8)rDrKr;rRr;TrarrI)r�encode_b64joserSrDr;rRr�copyrbrr7r
rJr3�rZjobj_toZ	jobj_fromrJrrr�test_json_flat�s���zJWSTest.test_json_flatcCsn|jjft�d�d�}|��}|dd��g|d<|�|jjdd�|�ddlm	}|�|j|�
|��dS)NrB)�
signaturesrKrhrFrarI)rSrDrrdrerbrr7r
rJr3rfrrr�test_json_not_flat�s�zJWSTest.test_json_not_flatcCs(ddlm}|�tj|jddd��dS)NrrIrr )rhrD)r
rJrrrr3rTrrr�test_from_json_mixed_flat�s�z!JWSTest.test_from_json_mixed_flatcCs$ddlm}t|�|j����dS)NrrI)r
rJ�hashr3rSrbrTrrr�test_from_json_hashable�szJWSTest.test_from_json_hashableN)rrrrr*rVrYrZr[r^r`rcrgrirjrlrrrrrH`s
rHc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�CLITestcCst�d�|_dS)Nr)rZvector_path�key_pathr-rrrr*�sz
CLITest.setUpc
CsXddlm}t�d��8}d|j_t�d��|�d|�dg��W5QRXW5QRXdS)Nr��CLI�	sys.stdinz&{"payload": "foo", "signature": "xxx"}�
sys.stdout���rX)r
rp�mock�patch�read�return_valuer�run)rrp�sinrrr�test_unverified�s
zCLITest.test_unverifiedcCs�ddlm}t�d��j}d|j_t�d��L}|�dd|jdd	d
dg�|jj	ddd|j_|�
d|�d
g��W5QRXW5QRXdS)Nrrorqr rrrO�-kz-arEz-pr�rX�r
rprtrurvrwrxrn�writeZ
mock_callsr�rrpryZsoutrrr�	test_json�s�zCLITest.test_jsonc
Cs�ddlm}t�d��p}d|j_t�d��R}|�ddd|jg�|jj	dd	d|j_|�
d|�dd
ddd|jg��W5QRXW5QRXdS)
Nrrorqr rrz	--compactrOr{r|rXz--ktyZRSAr}rrrr�test_compact�s
�zCLITest.test_compactN)rrrr*rzr�r�rrrrrm�srm�__main__)rr:Zunittestrtr8ZjosepyrrrrrZload_comparable_certr6ZJWKRSA�loadZload_vectorrMZTestCaserrr?rHrmr�mainrrrr�<module>s
0d$