
    Q?hh                     0   S r SR                  5       rSrSSKJr   " S S5      rSSSS	.SS
SS	.S
S
SS	.SSSS	.SSSS	./rS rS r	\
S:X  aK  Sr\ HB  r\" \S   5      R                  \S   5      r\" \S   5      R                  \S   5      r\S-  rMD     gg)z
Arciv Stream  ciphering
zArcIV encode decodez1.0    )	isUnicodec                   0    \ rS rSrSrS rS rS rS rSr	g)	ArcIV	   z
performs 'ArcIV' Stream Encryption of S using key
Based on what is widely thought to be RSA's ArcIV algorithm.
It produces output streams that are identical.

NB there is no separate decoder arciv(arciv(s,key),key) == s
c                 0    Xl         U R                  5         g )N)_keyreset)selfkeys     E/var/www/html/env/lib/python3.13/site-packages/reportlab/lib/arciv.py__init__ArcIV.__init__   s    )**,    c                 z   U R                   n[        U5      (       a  UR                  S5      n[        [	        S5      5      n[        [	        S5      5      n[        U5      nU H  nXU-     S-  X5'   M     Sn[	        S5       H  nXbU   -   X5   -   S-  nX&   X%   sX%'   X&'   M!     USSsU l        U l        U l        g)z&restore the cipher to it's start stateutf8   r   N)	r   r   encodelistrangelen_sbox_i_j)r
   r   sboxklkijs          r   r	   ArcIV.reset   s     			#s^^3::f-S	eCj	$
5:!
3x"a
"f+
14  !:a	q'	!$#1gtw47DG  "&q!$*dgtwr   c                    U R                   U R                  U R                  pCn[        U[        5      (       a  [        UR                  S5      5      O$[        U[        5      (       a  [        U5      OUSS n[        U5      nSnXv:  aO  US-   S-  =U l        nXBU   -   S-  =U l        nX$   X#   sX#'   X$'   XW   X"U   X$   -   S-     -  XW'   US-  nXv:  a  MO  U$ )zh
return the list of encoded bytes of B, B might be a string or a
list of integers between 0 <= i <= 255
r   Nr      r   )	r   r   r   
isinstancestrr   r   bytesr   )r
   Br   r   r   Cnps           r   _encodeArcIV._encode*   s    
 zz477DGG1$ *1S 1 1d188F:aPUCVCVQ\]^_\`!	!f!!	a%347Q1g+$$47Qgtw47DG
$Aw(C/0
01461 	
 
(r   c                 6    [        U R                  U5      5      $ )zArcIV encode string S)r$   r)   )r
   Ss     r   r   ArcIV.encode?   s    	t||A	r   )r   r   r   r   N)
__name__
__module____qualname____firstlineno____doc__r   r	   r)   r   __static_attributes__ r   r   r   r   	   s    ,** r   r   s   #Egs   uŖ)r   inputoutputs           s   tKys   A7]:s   #Es
             s
   ֡A<8߽as   s   uJ	xJR3I=vS4IwǊ+f]S՜&ĐmkGZDz^Ngy
2DOw&Vu ~Ī;B1zCݥ
m1xNIZΐrG_b	;S/GP#q2}DD2sg/]DgPuKpw#k[tG9mbt!=.Dn5Nw=5X\	)/fK@Uo')BdE]SL㢷UW&Rn#S[ٜs]=58g-{꥕ؿo	l lzb>L=3> UW"ԸiI՝NyXkKjtԛKK$7,U5I z=ṟ͆`:ԫ4=BXU@h<(MLXq7Tq&Ԟ'U@c                 6    [        U5      R                  U 5      $ )z.One-line shortcut for making an encoder objectr   r   textr   s     r   r   r      s    c
$r   c                 6    [        U5      R                  U 5      $ )zOne-line shortcut for decodingr8   r9   s     r   decoder<      s     	c
$r   __main__r   r5   r6   r!   N)r2   split__all____version__reportlab.lib.utilsr   r   _TESTSr   r<   r.   r   tor4   r   r   <module>rE      s    	"'') )8  8 v 
-./	 
-./ 
-./ 
67 
-3h3mj1CJ  
 Z
QAeHoQwZ(!AeHoQx[)!q&!  r   