Initial commit: DVT_RFSA v1.0.0
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
# 🔐 DVT_RFSA — Hybrid Encryption Library
|
||||
|
||||
> A robust **hybrid encryption** library combining **RSA + X25519 + AES-256-GCM** for text & file encryption, with optional password protection.
|
||||
|
||||
**DVT_RFSA** is a Python cryptography library that implements hybrid encryption schemes:
|
||||
- **AES-256-GCM** for data encryption
|
||||
- **RSA-2048** and **X25519 (ECDH)** for key exchange
|
||||
- Optional **password-derived key** protection (PBKDF2/HKDF)
|
||||
- Support for encrypting text, files, and binary data
|
||||
- Includes security metadata (algorithm, key info) for interchange
|
||||
|
||||
---
|
||||
|
||||
## ✨ Encryption Schemes
|
||||
|
||||
| Scheme | Description |
|
||||
|--------|-------------|
|
||||
| **AES + RSA** | Hybrid: AES-256-GCM session key wrapped with RSA-2048 public key |
|
||||
| **AES + X25519** | Hybrid: AES-256-GCM session key via X25519 ECDH key exchange |
|
||||
| **AES + RSA + Password** | Above + password-derived key layered encryption |
|
||||
| **Pure AES** | Direct AES-256-GCM with generated/password-derived key |
|
||||
|
||||
---
|
||||
|
||||
## 🔌 Core Functions
|
||||
|
||||
### Hashing & Key Tools
|
||||
- `compute_data_hash(data, algorithm='sha256')` / `verify_data_hash(...)`
|
||||
- `generate_aes_key()` / `derive_key_from_password(...)`
|
||||
- `is_password_strong(...)` / `generate_strong_password(...)`
|
||||
|
||||
### Key Generation
|
||||
- `generate_rsa_key()` — RSA-2048 keypair
|
||||
- `generate_x25519_keys()` — X25519 keypair
|
||||
- `load_x25519_private_key(...)` / `load_x25519_public_key(...)`
|
||||
|
||||
### Data Encryption (text / bytes)
|
||||
- `aes_encrypt` / `aes_decrypt`
|
||||
- `encrypt_aes_rsa` / `decrypt_aes_rsa`
|
||||
- `encrypt_aes_x25519` / `decrypt_aes_x25519`
|
||||
- `encrypt_aes_rsa_with_password` / `decrypt_aes_rsa_with_password`
|
||||
|
||||
### File Encryption
|
||||
- `encrypt_file_aes_rsa` / `decrypt_file_aes_rsa`
|
||||
- `encrypt_file_aes_rsa_with_password` / `decrypt_file_aes_rsa_with_password`
|
||||
- `encrypt_file_aes_x25519` / `decrypt_file_aes_x25519`
|
||||
|
||||
### Text Convenience
|
||||
- `encrypt_text_aes_rsa` / `decrypt_text_aes_rsa`
|
||||
- `encrypt_text_aes_rsa_with_password` / `decrypt_text_aes_rsa_with_password`
|
||||
- `encrypt_text_aes_x25519` / `decrypt_text_aes_x25519`
|
||||
|
||||
### Metadata
|
||||
- `add_security_info(...)` / `remove_security_info(...)`
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
|
||||
```bash
|
||||
pip install cryptography
|
||||
```
|
||||
|
||||
### Example: Encrypt/Decrypt a File (AES + RSA)
|
||||
|
||||
```python
|
||||
import DVT_RFSA as rf
|
||||
|
||||
# Generate RSA keys
|
||||
keys = rf.generate_rsa_key()
|
||||
|
||||
# Encrypt a file
|
||||
rf.encrypt_file_aes_rsa("secret.txt", "secret.txt.enc", keys["public"])
|
||||
|
||||
# Decrypt the file
|
||||
rf.decrypt_file_aes_rsa("secret.txt.enc", "secret_decrypted.txt", keys["private"])
|
||||
```
|
||||
|
||||
### Example: Text Encryption with Password
|
||||
|
||||
```python
|
||||
import DVT_RFSA as rf
|
||||
|
||||
password = rf.generate_strong_password()
|
||||
enc = rf.encrypt_text_aes_rsa_with_password("Hello, world!", password)
|
||||
dec = rf.decrypt_text_aes_rsa_with_password(enc, password)
|
||||
print(dec) # Hello, world!
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🛡️ Features
|
||||
|
||||
- **Authenticated encryption** (AES-256-GCM) — detects tampering
|
||||
- **Hybrid key exchange** — RSA & X25519 (ECDH)
|
||||
- **Password protection** — key derivation & layered encryption
|
||||
- **File & text support** — encrypt whole files or strings
|
||||
- **Portable output** — encrypted data carries security metadata
|
||||
- **Debug logging** — optional `crypto_log` with timestamp
|
||||
|
||||
---
|
||||
|
||||
## 📁 Project Structure
|
||||
|
||||
```
|
||||
dvt-rfsa/
|
||||
├── DVT_RFSA.py # Hybrid encryption library
|
||||
└── README.md # This document
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📄 License
|
||||
|
||||
This project is licensed under the **MIT License**. See [LICENSE](LICENSE) for details.
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Security Note
|
||||
|
||||
> This library is for **learning and reference**. For production, ensure secure key storage, use strong passwords, and review the cryptographic implementation carefully.
|
||||
Reference in New Issue
Block a user