a a+@sTddlZddlZddlmZddlmZddlmZmZGdddej dZ e ddd d Z ej eee ejeefd d d Zej ee eje gefedddZej eee ejeefd ddZej ee ejege fedddZGdddeZGddde ZGddde ZGdddeZGddde ZGd d!d!e ZdS)"N)utils)AlreadyFinalized)check_ansix923_paddingcheck_pkcs7_paddingc@s6eZdZejeedddZejedddZdS)PaddingContextdatareturncCsdS)zR Pads the provided bytes and returns any available data as bytes. N)selfrr r L/usr/lib64/python3.9/site-packages/cryptography/hazmat/primitives/padding.pyupdateszPaddingContext.updater cCsdS)z6 Finalize the padding, returns bytes. Nr r r r r finalizeszPaddingContext.finalizeN)__name__ __module__ __qualname__abcabstractmethodbytesr rr r r r rsr) metaclass) block_sizer cCs6d|krdksntd|ddkr2tddS)Nriz%block_size must be in range(0, 2041).z#block_size must be a multiple of 8.) ValueErrorrr r r _byte_padding_checks r)buffer_rrr cCsh|durtdtd||t|7}t||d}|d||d}|||dd}||fS)NContext was already finalized.rr)rr_check_byteslikerlenrrrZfinished_blocksresultr r r _byte_padding_update's  r#)rr paddingfnr cCs,|durtd|dt|}|||S)Nrr)rr )rrr$pad_sizer r r _byte_padding_pad9sr&cCsr|durtdtd||t|7}tt||ddd}|d||d}|||dd}||fS)Nrrrr)rrrrmaxr r!r r r _byte_unpadding_updateEs  r))rrcheckfnr cCsR|durtdt||dkr(td||}|sr r r _paddingsz_PKCS7PaddingContext._paddingrcCst|j|j|j}d|_|Sr.r&r7rrAr r"r r r rs  z_PKCS7PaddingContext.finalizeN rrrtypingOptionalr__annotations__r6r1r rArr r r r r2ws r2c@sHeZdZUejeed<edddZeedddZ edd d Z d S) r4r7rcCs||_d|_dSr8r:r0r r r r1sz_PKCS7UnpaddingContext.__init__rcCst|j||j\|_}|Sr.r)r7rr<r r r r s z_PKCS7UnpaddingContext.updatercCst|j|jt}d|_|Sr.)r,r7rrrCr r r rs  z_PKCS7UnpaddingContext.finalizeN rrrrErFrrGr6r1r rr r r r r4s r4c@s6eZdZedddZedddZedddZd S) ANSIX923rcCst|||_dSr.r/r0r r r r1szANSIX923.__init__rcCs t|jSr.)_ANSIX923PaddingContextrrr r r r3szANSIX923.paddercCs t|jSr.)_ANSIX923UnpaddingContextrrr r r r5szANSIX923.unpadderN)rrrr6r1rr3r5r r r r rJsrJc@sXeZdZUejeed<edddZeedddZ eedd d Z ed d d Z dS)rKr7rcCs||_d|_dSr8r:r0r r r r1sz _ANSIX923PaddingContext.__init__rcCst|j||j\|_}|Sr.r;r<r r r r s z_ANSIX923PaddingContext.updater=cCstdg|dt|gS)Nrr'r?r@r r r rAsz _ANSIX923PaddingContext._paddingrcCst|j|j|j}d|_|Sr.rBrCr r r rs  z _ANSIX923PaddingContext.finalizeNrDr r r r rKs rKc@sHeZdZUejeed<edddZeedddZ edd d Z d S) rLr7rcCs||_d|_dSr8r:r0r r r r1sz"_ANSIX923UnpaddingContext.__init__rcCst|j||j\|_}|Sr.rHr<r r r r s z _ANSIX923UnpaddingContext.updatercCst|j|jt}d|_|Sr.)r,r7rrrCr r r rsz"_ANSIX923UnpaddingContext.finalizeNrIr r r r rLs rL)rrEZ cryptographyrZcryptography.exceptionsrZ"cryptography.hazmat.bindings._rustrrABCMetarr6rrFrTupler#Callabler&r)r,objectr-r2r4rJrKrLr r r r s8