HEX
Server: LiteSpeed
System: Linux s3.sitechai.com 4.18.0-553.51.1.lve.1.el8.x86_64 #1 SMP Wed May 14 14:34:57 UTC 2025 x86_64
User: workzeni (2217)
PHP: 8.1.32
Disabled: mail, show_source, system, shell_exec, passthru, exec, eval, shell
Upload Files
File: //usr/lib64/python3.6/site-packages/borg/testsuite/__pycache__/nonces.cpython-36.opt-1.pyc
3

y��b�!�@s^ddlZddlZddlmZddlmZddlmZddl	m
Z
ddlmZGdd	�d	�Z
dS)
�N�)�nonces)�NonceManager)�
bin_to_hex)�get_security_dir)�InvalidRPCMethodc@s�eZdZGdd�d�ZGdd�de�ZGdd�d�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS) �TestNonceManagerc@s@eZdZGdd�d�Ze�Zed�Zee�Zdd�Z	dd�Z
dS)	zTestNonceManager.MockRepositoryc@seZdZdZdS)z)TestNonceManager.MockRepository._Locationz/some/placeN)�__name__�
__module__�__qualname__Zorig�rr�/usr/lib64/python3.6/nonces.py�	_Locationsr� cCs|jS)N)�	next_free)�selfrrr
�get_free_noncesz.TestNonceManager.MockRepository.get_free_noncecCs
||_dS)N)r)r�next_unreserved�start_noncerrr
�commit_nonce_reservationsz8TestNonceManager.MockRepository.commit_nonce_reservationN)r	r
rrZ	_location�bytes�idr�id_strrrrrrr
�MockRepositorysrc@seZdZdd�Zdd�ZdS)z"TestNonceManager.MockOldRepositorycCstd��dS)N�)r)rrrr
rsz1TestNonceManager.MockOldRepository.get_free_noncecCstjd�dS)NzDcommit_nonce_reservation should never be called on an old repository)�pytestZfail)rrrrrr
r!sz;TestNonceManager.MockOldRepository.commit_nonce_reservationN)r	r
rrrrrrr
�MockOldRepositorysrc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
zTestNonceManager.MockEncCiphercCsd|_||_dS)NF)�iv_set�iv)rrrrr
�__init__%sz'TestNonceManager.MockEncCipher.__init__cCs||_||_dS)N)rr)r�keyrrrr
�reset)sz$TestNonceManager.MockEncCipher.resetcCs.|jddd�}|j}d|_|jddd�|_dS)N��big)�	byteorderF)�to_bytesrr)rZexpected_iv�advancerrrr
�expect_iv_and_advance/sz4TestNonceManager.MockEncCipher.expect_iv_and_advancecCs|j}|jddd�|_dS)Nr"r#)r$)rr%r)rr&rrrr
�expect_no_reset_and_advance6sz:TestNonceManager.MockEncCipher.expect_no_reset_and_advanceN)r	r
rrr!r'r(rrrr
�
MockEncCipher$sr)cCs
d|_dS)N)�
repository)rrrr
�setUp;szTestNonceManager.setUpc	Cs0ttjjt|jj�d�d��
}|j�SQRXdS)N�nonce�r)�open�os�path�joinrr*r�read)r�fdrrr
�cache_nonce>szTestNonceManager.cache_noncec	Cs,ttjjt|jj�d�d��}WdQRXdS)Nr,�w)r.r/r0r1rr*r)rr,r3rrr
�set_cache_nonceBsz TestNonceManager.set_cache_noncecCsJ|jtdd�|jd�}|j�|_t|j|d�}|jd�|jdd�dS)N�NONCE_SPACE_RESERVATIONri �i )�setattrrr)rr*r�ensure_reservationr')r�monkeypatch�
enc_cipher�managerrrr
�test_empty_cache_and_old_serverFs


z0TestNonceManager.test_empty_cache_and_old_servercCsR|jtdd�|jd�}|j�|_d|j_t|j|d�}|jd�|jdd�dS)Nr7ri r8i )	r9rr)rr*rrr:r')rr;r<r=rrr
�test_empty_cacheQs


z!TestNonceManager.test_empty_cachecCs�|jtdd�|jd�}|j�|_d|j_t|j|d�}|jd�|jdd�|jd�|j	d
�|jd�|j	d
�|jd�|j	d�|jd�|j	d�dS)Nr7ri r8�
r"�@i i i  i i  i3 i i  i3 iC i i  i3 iC i� )
r9rr)rr*rrr:r'r()rr;r<r=rrr
�test_empty_nonce]s 










z!TestNonceManager.test_empty_noncecCs\|jtdd�|jd�}|j�|_d|j_|jd�t|j|d�}|jd�|j	dd�dS)Nr7ri �0000000000002000r8i )
r9rr)rr*rr6rr:r')rr;r<r=rrr
�test_sync_nonce�s



z TestNonceManager.test_sync_noncecCs\|jtdd�|jd�}|j�|_d|j_|jd�t|j|d�}|jd�|j	dd�dS)Nr7ri rCr8i )
r9rr)rr*rr6rr:r')rr;r<r=rrr
�test_server_just_upgraded�s



z*TestNonceManager.test_server_just_upgradedcCsR|jtdd�|jd�}|j�|_d|j_t|j|d�}|jd�|jdd�dS)Nr7rii r8i )	r9rr)rr*rrr:r')rr;r<r=rrr
�test_transaction_abort_no_cache�s


z0TestNonceManager.test_transaction_abort_no_cachecCsT|jtdd�|jd�}|j�|_|jd�t|j|d�}|jd�|jdd�dS)Nr7rirCi r8i )	r9rr)rr*r6rr:r')rr;r<r=rrr
�!test_transaction_abort_old_server�s



z2TestNonceManager.test_transaction_abort_old_servercCs\|jtdd�|jd�}|j�|_d|j_|jd�t|j|d�}|jd�|j	dd�dS)Nr7rii Z0000000000001000r8i )
r9rr)rr*rr6rr:r')rr;r<r=rrr
�&test_transaction_abort_on_other_client�s



z7TestNonceManager.test_transaction_abort_on_other_clientcCs�|jtdd�|jd�}|j�|_d|j_|jd�t|j|d�}|jd�|j	dd	�d|j_|jd�|j
d�|jd�|j	dd�dS)
Nr7ri rCr8i@��i i i i@)r9rr)rr*rr6rr:r'r()rr;r<r=rrr
�test_interleaved�s






z!TestNonceManager.test_interleavedN)r	r
rrrr)r+r4r6r>r?rBrDrErFrGrHrKrrrr
rs%
r)Zos.pathr/rZcryptorZ
crypto.noncesrZ
crypto.keyrZhelpersrZremoterrrrrr
�<module>s