Metadata-Version: 2.4
Name: encrypt-decrypt-pythons
Version: 2.0.0
Summary: encrypt files with aes-256-gcm or chacha20-poly1305
Author: Fatima0
License-Expression: MIT
Project-URL: homepage, https://github.com/itala/Encrypt-Decrypt-pythons
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cryptography
Dynamic: license-file

# crypto tool v2

encrypt files with aes-256-gcm or chacha20-poly1305. also does multi-layer.

## wat it does

- **AES-256-GCM** — nist aproved, fast on most cpus
- **ChaCha20-Poly1305** — good for mobiles and no aes-ni
- **Multi-Layer** — multiple layers, each layer uses a diffrent key
- **PBKDF2** or **Argon2id** for key derivashun
- **RSA** key gen and stuff (asymmetric)
- **HMAC** integrety check on top

### output

encrypted files are **pure binary**. no metadata, no json, no readable text.
just bytes:
  43 52 59 32 01 00 01 00 ...

## instal

```bash
pip install cryptography argon2-cffi
```

## usage

### command line

```bash
# enc
python professional_crypto.py -e myfile.txt -o myfile.enc

# dec
python professional_crypto.py -d myfile.enc -o myfile_decrypted.txt

# use chacha20
python professional_crypto.py -e myfile.txt -a chacha20

# multi-layer (3 layers)
python professional_crypto.py -e myfile.txt -a multi-layer -l 3

# disable argon2 (use pbkdf2)
python professional_crypto.py -e myfile.txt --no-argon2
```

### python api

```python
from professional_crypto import Cryp

c = Cryp()

# enc
c.encrypt('myfile.txt', 'myfile.enc', 'password123',
          algo='aes-gcm', layers=1, use_argon=True)

# dec
c.decrypt('myfile.enc', 'myfile_decrypted.txt', 'password123')

# rsa
priv, pub = c.gen_rsa(4096)
c.save_rsa(priv, pub, 'keypassword', 'priv.pem', 'pub.pem')
p = c.load_priv('priv.pem', 'keypassword')
```

## notes

- password is asked twise for enc, once for dec (obviusly)
- encrypted files are **not** backwards compatable (new format)
- multi-layer uses more ram and time
- use a strong password (12+ chars)

## license

MIT
