Current File : //usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pyc
�
�b�Xc@`s�ddlmZmZmZddlZddlmZddlmZm	Z	m
Z
mZddlm
Z
ddlmZmZddlmZeje�defd	��Y�Zeje�d
efd��Y�ZdS(i(tabsolute_importtdivisiontprint_functionN(tutils(tAlreadyFinalizedt
InvalidKeytUnsupportedAlgorithmt_Reasons(tHMACBackend(t
constant_timethmac(tKeyDerivationFunctiontHKDFcB`s,eZd�Zd�Zd�Zd�ZRS(cC`s�t|t�s$tdtj��n||_|dkpEt|t�sWtd��n|dkrzd|jj	d}n||_
||_t|j|||�|_
dS(Ns.Backend object does not implement HMACBackend.ssalt must be bytes.ti(t
isinstanceRRRtBACKEND_MISSING_INTERFACEt
_algorithmtNonetbytest	TypeErrortdigest_sizet_saltt_backendt
HKDFExpandt_hkdf_expand(tselft	algorithmtlengthtsalttinfotbackend((sM/usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pyt__init__s			cC`s8tj|j|jd|j�}|j|�|j�S(NR(R
tHMACRRRtupdatetfinalize(Rtkey_materialth((sM/usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pyt_extract)s!
cC`s7t|t�std��n|jj|j|��S(Nskey_material must be bytes.(RRRRtderiveR%(RR#((sM/usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pyR&.scC`s(tj|j|�|�s$t�ndS(N(R	tbytes_eqR&R(RR#texpected_key((sM/usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pytverify4s(t__name__t
__module__RR%R&R)(((sM/usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pyRs			RcB`s,eZd�Zd�Zd�Zd�ZRS(cC`s�t|t�s$tdtj��n||_||_d|jd}||krktdj	|���n||_
|dkp�t|t�s�t
d��n|dkr�d}n||_t|_dS(Ns.Backend object does not implement HMACBackend.i�is+Can not derive keys larger than {0} octets.sinfo must be bytes.t(RRRRRRRRt
ValueErrortformatt_lengthRRRt_infotFalset_used(RRRRRt
max_length((sM/usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pyR;s$					cC`s�dg}d}x�|jjt|�d|jkr�tj||jd|j�}|j|d�|j|j�|jt	j
|��|j|j��|d7}qWdj
|�|j S(NR,iRi����(RRtlenR/R
R RR!R0tsixtint2bytetappendR"tjoin(RR#toutputtcounterR$((sM/usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pyt_expandZs	&cC`sFt|t�std��n|jr0t�nt|_|j|�S(Nskey_material must be bytes.(RRRR2RtTrueR;(RR#((sM/usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pyR&hs			cC`s(tj|j|�|�s$t�ndS(N(R	R'R&R(RR#R(((sM/usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pyR)rs(R*R+RR;R&R)(((sM/usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pyR9s			
(t
__future__RRRR5tcryptographyRtcryptography.exceptionsRRRRt'cryptography.hazmat.backends.interfacesRtcryptography.hazmat.primitivesR	R
t"cryptography.hazmat.primitives.kdfRtregister_interfacetobjectRR(((sM/usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pyt<module>s"&