Viewing File: /opt/imunify360/venv/lib/python3.11/site-packages/cryptography/__pycache__/fernet.cpython-311.pyc



]j(ddlmZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlmZm
Z
ddlmZmZmZddlmZGdd	eZd
ZGddZGd
dZdS))annotationsN)utils)InvalidSignature)hashespadding)Cipher
algorithmsmodes)HMACceZdZdS)InvalidTokenN)__name__
__module____qualname__u/builddir/build/BUILD/imunify360-venv-2.6.3/opt/imunify360/venv/lib64/python3.11/site-packages/cryptography/fernet.pyr
r
sDrr
<ceZdZ	dd dZed!d
Zd"dZd#dZd$dZdd%dZ	d&dZ
d'dZed(dZ
d)dZd*dZdS)+FernetNkeybytes | strbackend
typing.AnyreturnNonec	tj|}n'#tj$r}t	d|d}~wwxYwt|dkrt	d|dd|_|dd|_dS)Nz4Fernet key must be 32 url-safe base64-encoded bytes. )base64urlsafe_b64decodebinasciiError
ValueErrorlen_signing_key_encryption_key)selfrrexcs    r__init__zFernet.__init__s
	*3//CC~			F
	s88r>>F
 H"233xs;6;bytescNtjtjdS)Nr)r urlsafe_b64encodeosurandom)clss rgenerate_keyzFernet.generate_key/s'
2777rdatacj||ttjSNencrypt_at_timeinttime)r(r2s  rencryptzFernet.encrypt3s&##D#dikk*:*:;;;rcurrent_timer7cXtjd}||||S)Nr)r.r/_encrypt_from_parts)r(r2r:ivs    rr6zFernet.encrypt_at_time6s'
Z^^''lB???rr=ctjd|tjtjj}|||	z}tt	j|jtj
|}|||	z}d|ddz|z|z}t!|jt%j}	|	||		}
t)j||
zS)Nr2big)length	byteorder)r_check_bytesrPKCS7r	AES
block_sizepadderupdatefinalizerr'r
CBC	encryptorto_bytesrr&rSHA256r r-)r(r2r:r=rHpadded_datarL
ciphertextbasic_partshhmacs           rr<zFernet._encrypt_from_parts:s;	64(((z~899@@BBmmD))FOO,=,==N4/00IbMM

)++	%%k22Y5G5G5I5II

##1#>>
?

	
"FMOO44	zz||'d(:;;;rtokenttl
int | Nonect|\}}|d}n"|ttjf}||||Sr4)r_get_unverified_token_datar7r8
_decrypt_data)r(rTrU	timestampr2	time_infos      rdecryptzFernet.decryptSsU ;;EBB	4;IIc$)++../I!!$	9===rc|tdt|\}}|||||fS)Nz6decrypt_at_time() can only be used with a non-None ttl)r$rrXrY)r(rTrUr:rZr2s      rdecrypt_at_timezFernet.decrypt_at_time[sT;H
!;;EBB	4!!$	C3FGGGrcjt|\}}|||Sr4)rrX_verify_signature)r(rTrZr2s    rextract_timestampzFernet.extract_timestampes3 ;;EBB	4t$$$rtuple[int, bytes]ctt|ttfstd	t	j|}n!#ttjf$rtwxYw|r|ddkrtt|dkrtt|ddd}||fS)Nztoken must be bytes or strr	rA)rC)
isinstancestrr+	TypeErrorr r!r"r#r
r%r7
from_bytes)rTr2rZs   rrXz!Fernet._get_unverified_token_dataks%#u..	:8999	+E22DD8>*					tAw$t99q==NN4!9N>>	$sAA ct|jtj}||dd	||dddS#t$rtwxYw)N)rr&rrNrIverifyrr
)r(r2rRs   rr`zFernet._verify_signature~sz"FMOO44	dsd	
HHT#$$Z     				sA$$A6rZr[tuple[int, int] | Nonec|*|\}}||z|krt|tz|krt|||dd}|dd}tt	j|jtj|	}|
|}		|	|z
}	n#t$rtwxYwtjtjj}
|

|	}	||
z
}n#t$rtwxYw|S)Nrerl)r
_MAX_CLOCK_SKEWr`rr	rFr'r
rK	decryptorrIrJr$rrErGunpadder)r(r2rZr[rUr:r=rPrrplaintext_paddedrsunpaddeds            rrYzFernet._decrypt_datasm  )C3--""o-	99""t$$$
!B$Z"S&\
N4/00%)B--


)++	%++J77		 2 2 4 44				=!:;;DDFF??#344	))+++HH				s7CC!/EEr4)rrrrrr)rr+)r2r+rr+)r2r+r:r7rr+)r2r+r:r7r=r+rr+)rTrrUrVrr+)rTrrUr7r:r7rr+)rTrrr7)rTrrrb)r2r+rr)r2r+rZr7r[rnrr+)rrrr*classmethodr1r9r6r<r\r^rastaticmethodrXr`rYrrrrrs#(((((&888[8<<<<@@@@<<<<2>>>>>HHHH\$!!!!!!rrc@eZdZddZddZdd
ZddZdddZddZd
S)MultiFernetfernetstyping.Iterable[Fernet]cTt|}|std||_dS)Nz1MultiFernet requires at least one Fernet instance)listr$_fernets)r(rzs  rr*zMultiFernet.__init__s7w--	C
 


rmsgr+rcj||ttjSr4r5)r(rs  rr9zMultiFernet.encrypts&##CTY[[)9)9:::rr:r7cD|jd||S)Nr)r~r6)r(rr:s   rr6zMultiFernet.encrypt_at_times}Q//\BBBrrct|\}}|jD]+}	|||d}n#t$rY(wxYwttjd}|jd|||S)Nrr)rrXr~rYr
r.r/r<)r(rrZr2fpr=s       rrotatezMultiFernet.rotates ;;C@@	4		A
OOD)T::




Z^^}Q33Ay"EEEsA
A
ANrUrVct|jD]*}	|||cS#t$rY'wxYwtr4)r~r\r
)r(rrUrs    rr\zMultiFernet.decryptsX		A
yyc*****



s#
00cv|jD]+}	||||cS#t$rY(wxYwtr4)r~r^r
)r(rrUr:rs     rr^zMultiFernet.decrypt_at_times^		A
((c<@@@@@



s$
11)rzr{)rr+rr+)rr+r:r7rr+)rrrr+r4)rrrUrVrr+)rrrUr7r:r7rr+)	rrrr*r9r6rr\r^rrrryrys    ;;;;CCCCFFFFrry)
__future__rr r"r.r8typingcryptographyrcryptography.exceptionsrcryptography.hazmat.primitivesrr&cryptography.hazmat.primitives.ciphersrr	r
#cryptography.hazmat.primitives.hmacr	Exceptionr
rqrryrrr<module>rsF
#"""""



				



444444::::::::LLLLLLLLLL444444					9			LLLLLLLL^----------r
Back to Directory File Manager