Viewing File: /usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/openssl/cmac.pyc

ó
Àb‹Xc@`sšddlmZmZmZddlmZddlmZmZm	Z	ddl
mZmZddl
mZejejƒdefd„ƒYƒZdS(	i(tabsolute_importtdivisiontprint_function(tutils(tInvalidSignaturetUnsupportedAlgorithmt_Reasons(t
constant_timet
interfaces(tCBCt_CMACContextcB`sGeZdd„ZejdƒZd„Zd„Zd„Z	d„Z
RS(cC`s+|j|ƒs$tdtjƒ‚n||_|j|_||_|jd|_	|dkr|jj}|t|ƒt
f}||j|t
ƒ}|jjjƒ}|jj||jjjkƒ|jjj||jjjƒ}|jjj||jt|jƒ||jjjƒn||_dS(Ns#This backend does not support CMAC.i(tcmac_algorithm_supportedRRtUNSUPPORTED_CIPHERt_backendtkeyt_keyt
_algorithmt
block_sizet_output_lengthtNonet_cipher_registryttypeR	t_libtCMAC_CTX_newtopenssl_assertt_ffitNULLtgct
CMAC_CTX_freet	CMAC_Inittlent_ctx(tselftbackendt	algorithmtctxtregistrytadaptert
evp_cipher((sO/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/openssl/cmac.pyt__init__s$		!RcC`s>|jjj|j|t|ƒƒ}|jj|dkƒdS(Ni(R
RtCMAC_UpdateRRR(R tdatatres((sO/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/openssl/cmac.pytupdate0s$cC`s‡|jjjd|jƒ}|jjjd|jƒ}|jjj|j||ƒ}|jj|dkƒd|_|jjj	|ƒS(Nsunsigned char[]ssize_t *i(
R
RtnewRRt
CMAC_FinalRRRtbuffer(R tbuftlengthR*((sO/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/openssl/cmac.pytfinalize4s	cC`s}|jjjƒ}|jjj||jjjƒ}|jjj||jƒ}|jj|dkƒt	|j|j
d|ƒS(NiR#(R
RRRRRt
CMAC_CTX_copyRRR
R(R t
copied_ctxR*((sO/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/openssl/cmac.pytcopy@scC`s1|jƒ}tj||ƒs-tdƒ‚ndS(NsSignature did not match digest.(R1Rtbytes_eqR(R t	signaturetdigest((sO/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/openssl/cmac.pytverifyMsN(t__name__t
__module__RR'Rtread_only_propertyR"R+R1R4R8(((sO/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/openssl/cmac.pyR
s			
N(t
__future__RRRtcryptographyRtcryptography.exceptionsRRRtcryptography.hazmat.primitivesRRt,cryptography.hazmat.primitives.ciphers.modesR	tregister_interfacet
MACContexttobjectR
(((sO/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/openssl/cmac.pyt<module>s
Back to Directory File Manager