<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
l_                 @   s   d dl mZmZmZ d dlZd dlmZ d dlmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZmZ d dlmZ ejeG d	d
 d
eZejeG dd deZdS )    )absolute_importdivisionprint_functionN)utils)AlreadyFinalized
InvalidKeyUnsupportedAlgorithm_Reasons)_get_backend)HMACBackend)constant_timehmac)KeyDerivationFunctionc               @   s.   e Zd Zd
ddZdd Zdd Zdd	 ZdS )HKDFNc             C   sh   t |}t|tstdtj|| _|d kr:d| jj }ntj	d| || _
|| _t| j|||| _d S )Nz.Backend object does not implement HMACBackend.    salt)r
   
isinstancer   r   r	   BACKEND_MISSING_INTERFACE
_algorithmdigest_sizer   _check_bytes_salt_backend
HKDFExpand_hkdf_expand)self	algorithmlengthr   infobackend r    /usr/lib64/python3.6/hkdf.py__init__   s    
zHKDF.__init__c             C   s(   t j| j| j| jd}|j| |j S )N)r   )r   HMACr   r   r   updatefinalize)r   key_materialhr    r    r!   _extract-   s    
zHKDF._extractc             C   s   t jd| | jj| j|S )Nr&   )r   _check_bytesliker   deriver(   )r   r&   r    r    r!   r*   2   s    zHKDF.derivec             C   s   t j| j||std S )N)r   bytes_eqr*   r   )r   r&   expected_keyr    r    r!   verify6   s    zHKDF.verify)N)__name__
__module____qualname__r"   r(   r*   r-   r    r    r    r!   r      s   
r   c               @   s.   e Zd Zd
ddZdd Zdd Zdd	 ZdS )r   Nc             C   sz   t |}t|tstdtj|| _|| _d|j }||krJt	dj
||| _|d kr^d}ntjd| || _d| _d S )Nz.Backend object does not implement HMACBackend.   z*Can not derive keys larger than {} octets.    r   F)r
   r   r   r   r	   r   r   r   r   
ValueErrorformat_lengthr   r   _info_used)r   r   r   r   r   Z
max_lengthr    r    r!   r"   =   s"    

zHKDFExpand.__init__c             C   s   dg}d}xr| j jt|d  | jk r|tj|| j | jd}|j|d  |j| j |jt	j
| |j|j  |d7 }qW dj|d | j S )Nr2      )r   )r   r   lenr5   r   r#   r   r$   r6   sixZint2byteappendr%   join)r   r&   outputZcounterr'   r    r    r!   _expand[   s    zHKDFExpand._expandc             C   s&   t jd| | jrtd| _| j|S )Nr&   T)r   r)   r7   r   r?   )r   r&   r    r    r!   r*   i   s
    zHKDFExpand.derivec             C   s   t j| j||std S )N)r   r+   r*   r   )r   r&   r,   r    r    r!   r-   q   s    zHKDFExpand.verify)N)r.   r/   r0   r"   r?   r*   r-   r    r    r    r!   r   ;   s   
r   )Z
__future__r   r   r   r;   Zcryptographyr   Zcryptography.exceptionsr   r   r   r	   Zcryptography.hazmat.backendsr
   Z'cryptography.hazmat.backends.interfacesr   Zcryptography.hazmat.primitivesr   r   Z"cryptography.hazmat.primitives.kdfr   Zregister_interfaceobjectr   r   r    r    r    r!   <module>   s   $