+
    i                    t    ^ RI Ht ^ RIt^ RIHt ^ RIHtHt ^ RIH	t	H
t
 ^ RIHt R R lt ! R	 R
]4      tR# )    )annotationsN)utils)AlreadyFinalized
InvalidKey)constant_timehashes)KeyDerivationFunctionc                    V ^8  d   QhRRRR/# )   nintreturnbytes )formats   "q/home/wkmabra/.openclaw/workspace/venv/lib/python3.14/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py__annotate__r      s     1 1S 1U 1    c                (    V P                  ^RR7      # )   big)length	byteorder)to_bytes)r   s   &r   _int_to_u32ber      s    ::Q%:00r   c                  >    ] tR t^tR	R R lltR R ltR R ltRtR# )
X963KDFNc               (    V ^8  d   QhRRRRRRRR/# )	r   	algorithmzhashes.HashAlgorithmr   r   
sharedinfozbytes | Nonebackendz
typing.Anyr   )r   s   "r   r   X963KDF.__annotate__   s2      '  !	
 r   c                	    VP                   R,          pW%8  d   \        RV R24      hVe   \        P                  ! RV4       Wn        W n        W0n        RV n        R# )r   zCannot derive keys larger than z bits.Nr    Fl    )digest_size
ValueErrorr   _check_bytes
_algorithm_length_sharedinfo_used)selfr   r   r    r!   max_lens   &&&&& r   __init__X963KDF.__init__   s\     ''95>wivNOO!|Z8#%
r   c                    V ^8  d   QhRRRR/# )r   key_materialzutils.Bufferr   r   r   )r   s   "r   r   r"   &   s     0 0< 0E 0r   c                	H   V P                   '       d   \        hR V n         \        P                  ! RV4       R.p^ p^pV P                  V8  d   \
        P                  ! V P                  4      pVP                  V4       VP                  \        V4      4       V P                  e   VP                  V P                  4       VP                  VP                  4       4       V\        VR,          4      ,          pV^,          pK  RP                  V4      RV P                   # )Tr0   r   N)r*   r   r   _check_bytesliker(   r   Hashr'   updater   r)   appendfinalizelenjoin)r+   r0   outputoutlencounterhs   &&    r   deriveX963KDF.derive&   s    :::""
~|<llV#DOO,AHH\"HH]7+,+))*MM!**,'c&*o%FqLGxx$,,//r   c               $    V ^8  d   QhRRRRRR/# )r   r0   r   expected_keyr   Noner   )r   s   "r   r   r"   ;   s!      5  $ r   c                	j    \         P                  ! V P                  V4      V4      '       g   \        hR # N)r   bytes_eqr>   r   )r+   r0   rA   s   &&&r   verifyX963KDF.verify;   s*    %%dkk,&?NN Or   )r'   r(   r)   r*   rD   )__name__
__module____qualname____firstlineno__r-   r>   rF   __static_attributes__r   r   r   r   r      s    $0* r   r   )
__future__r   typingcryptographyr   cryptography.exceptionsr   r   cryptography.hazmat.primitivesr   r   "cryptography.hazmat.primitives.kdfr	   r   r   r   r   r   <module>rS      s+   
 #   @ @ D1*# *r   