pg  ~ddlZddlmZddlmZddlmZddlmZde de dej e d e fd Z dde d e d ej d e fd Z de de dej e d eje ej e ffdZ dde d e d ej d e fdZ dde de d ej d e fdZ dde de d ej d e fdZGddeZdS)N)Cipher)AES)ECB)bytes_eq wrapping_keyarreturnc"tt|t}t |}t dD]}t |D]r}||||z}t|ddd||z|zdzz dd}|dd||<s| dksJ|d |zS) Nbig byteorderlengthr) rrr encryptorlenrangeupdateint from_bytesto_bytesfinalizejoin)rrr rnjibs H/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/keywrap.py _wrap_corer$s  s<((#%%00::<z aes_key_wrap..5&GGGAQQY GGGr)r ValueErrorrr$)rr%r&rr s ` r# aes_key_wrapr6&s  < ,,JKKK ;"DEEE ;!q  HIII+AGGGGq#k2B2BA)F)FGGGA lAq ) ))rc2tt|t}t |}t t dD]}t t |D]t}t|d||z|zdzz dd||z}| |}|dd}|dd||<u| dksJ||fS) Nr rrrr rrr) rrr decryptorrreversedrrrrrr) rrr r8rr r!atrr"s r# _unwrap_corer;9s s<((#%%00::<.e& K K K[QU # K K Krr) rr5rrrrrrrrr$)rr%r&aivpadrr"r s ` r#aes_key_wrap_with_paddingrDPs4  < ,,JKKK K 0 0 9 9E!:!! C K  1$ % *C# -K ;13|,,cee44>>@@   S;. / /!!##s**** K K K KU1c+6F6F-J-J K K K,Q///r wrapped_keyctdkrtdt|dvrtdtdkrtt |t }|}|dksJ|dd}|dd}d}nwfdtd tdD}| d } t|}t|| |\}}d |}t|d dd } d|z| z } t|dd d r;d|dz z| cxkr d|zkr%nn"| d kr*t|| dd| zst| d kr|S|d| S)Nr)zMust be at least 16 bytesr(r,rr rc*g|]}||dzSr/r0r2r!rEs r#r3z/aes_key_unwrap_with_padding..}rArrr>rrr=r?)r InvalidUnwrapr5rrrr8rrrpopr;rrrr) rrEr&r8outrdatarr encrypted_aivmlir"s ` r#aes_key_unwrap_with_paddingrOis  ;"7888 < ,,JKKK ;23|,,cee44>>@@ {++!!##s**** G122w  K K K KU1c+6F6F-J-J K K Ka FFL-;;1xx{{ ..122%. 0 0C Q# A QrrU/ 0 0AE{S))))AE))))) FF8D!Iw{;;FooAvv CaRCyrctdkrtdtdzdkrtdt|dvrtdd}fd tdtdD}|d}t |||\}}t ||std |S) Nr*zMust be at least 24 bytesr rz-The wrapped key must be a multiple of 8 bytesr(r,r-c*g|]}||dzSr/r0rHs r#r3z"aes_key_unwrap..r4rr)rrIr5rrJr;rr)rrEr&rBr rs ` r#aes_key_unwraprRs  ;"7888 ;!q  KLLL < ,,JKKK -CGGGGq#k2B2BA)F)FGGGA aA  a + +DAq As  oo 88A;;rceZdZdS)rIN)__name__ __module__ __qualname__r0rr#rIrIsDrrI)N)typing&cryptography.hazmat.primitives.ciphersr1cryptography.hazmat.primitives.ciphers.algorithmsr,cryptography.hazmat.primitives.ciphers.modesr,cryptography.hazmat.primitives.constant_timerbytesListr$Anyr6Tupler;rDrOrR ExceptionrIr0rr#ras.  999999AAAAAA<<<<<<AAAAAA {5 6****Z* ****& {5 \%U++, 40000Z0 00008++++Z+ ++++bZ 0     I     r