
    ih                     t    d dl Z d dlmZ d dlmZ d dlmZ d dlmZ defdZ	de
de
fd	Zd
e
de
fdZde
fdZy)    N)Fernet)hashes)
PBKDF2HMAC)get_settingsreturnc                      t               } | j                  j                         }d}t        t	        j
                         d|d      }t        j                  |j                  |            }t        |      S )u<   Получить Fernet ключ для шифрованияs   telegram_bot_salt    i )	algorithmlengthsalt
iterations)
r   ENCRYPTION_KEYencoder   r   SHA256base64urlsafe_b64encodederiver   )settingspasswordr   kdfkeys        ./var/www/notifications/app/utils/encryption.py_get_fernet_keyr      sg    ~H &&--/HD --/	C 
"
"3::h#7
8C#;    tokenc                     | syt               }|j                  | j                               }t        j                  |      j                         S )u*   Зашифровать токен бота )r   encryptr   r   r   decode)r   fernet	encrypteds      r   encrypt_tokenr"      s>    Fu||~.I##I.5577r   encrypted_tokenc                     | sy	 t               }t        j                  | j                               }|j	                  |      }|j                         S # t        $ r Y yw xY w)u,   Расшифровать токен ботаr   )r   r   urlsafe_b64decoder   decryptr   	Exception)r#   r    encrypted_bytes	decrypteds       r   decrypt_tokenr*   %   s]     " 22?3I3I3KLNN?3	!! s   AA 	AAc                  ,    ddl } | j                  d      S )u4   Генерировать секрет для webhookr   Nr	   )secretstoken_urlsafe)r,   s    r   generate_webhook_secretr.   4   s      $$r   )r   cryptography.fernetr   cryptography.hazmat.primitivesr   )cryptography.hazmat.primitives.kdf.pbkdf2r   app.core.configr   r   strr"   r*   r.    r   r   <module>r5      sR     & 1 @ ( &8 8 83 3 % %r   