Skip to content

Commit c5a2309

Browse files
Copilotirfan-sec
andcommitted
Fix AES-256 to AES-128-CBC documentation accuracy
Co-authored-by: irfan-sec <[email protected]>
1 parent a515a5d commit c5a2309

5 files changed

Lines changed: 15 additions & 16 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@
33
## [3.0.0] - 2026-02-26
44

55
### New Features
6-
- **🔒 AES-256 Encryption**: Optional password-based encryption for hidden messages using Fernet (AES-128-CBC + HMAC-SHA256) with PBKDF2 key derivation (600,000 iterations)
6+
- **🔒 AES Encryption**: Optional password-based encryption for hidden messages using Fernet (AES-128-CBC + HMAC-SHA256) with PBKDF2 key derivation (600,000 iterations)
77
- **🖼️ BMP Image Support**: Added BMP format support for image steganography
88
- **📋 Version Flag**: Added `-V`/`--version` CLI flag to display current version
99
- **🔐 Crypto Module**: New `stegano/crypto.py` module with `encrypt_message()`, `decrypt_message()`, and `is_encrypted()` functions
1010

1111
### CLI Enhancements
12-
- **`-p`/`--password`**: New flag for encode and decode commands to enable AES-256 encryption/decryption
12+
- **`-p`/`--password`**: New flag for encode and decode commands to enable AES encryption/decryption
1313
- Automatic detection of encrypted messages during decoding with clear user prompts
1414

1515
### GUI Enhancements
1616
- **Password fields**: Added encryption password input to both Encode and Decode tabs
1717
- **BMP support**: Updated file dialogs to include BMP format
1818

1919
### Dependencies
20-
- **Added**: `cryptography>=42.0.4` for AES-256 encryption support
20+
- **Added**: `cryptography>=42.0.4` for AES encryption support
2121

2222
### Testing
2323
- **6 new tests**: Encryption/decryption cycles, wrong password handling, BMP format support, encrypted steganography end-to-end test

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
**stegano-sec** is a Python-based, offline steganography toolkit for security enthusiasts, CTF players, and researchers. It allows you to hide (encode) and extract (decode) text or files within various media types—such as images (PNG, JPEG), audio (WAV), and plain text files—with no need for external APIs or internet access. The toolkit is designed to be modular, user-friendly, and easily extensible, making it ideal for both educational and practical infosec use.
44

5-
> **🆕 Version 3.0.0**: Now with AES-256 encryption, BMP support, and enhanced CLI!
5+
> **🆕 Version 3.0.0**: Now with AES encryption, BMP support, and enhanced CLI!
66
77
---
88

@@ -12,7 +12,7 @@
1212
- PNG, JPEG & BMP images (using LSB steganography)
1313
- WAV audio files (LSB steganography)
1414
- Plain text files (whitespace or zero-width character encoding)
15-
- **🔒 AES-256 Encryption**: Optional password-based encryption for hidden messages
15+
- **🔒 AES Encryption**: Optional password-based encryption for hidden messages
1616
- **Graphical User Interface (GUI)** - Easy-to-use tkinter-based interface
1717
- **Command-line interface (CLI)** for easy usage and scripting
1818
- **Modular codebase** for adding new media formats or encoding techniques
@@ -122,7 +122,7 @@ stegano-sec/
122122
│ ├── image.py # Image steganography functions
123123
│ ├── audio.py # Audio steganography functions
124124
│ ├── text.py # Text steganography functions
125-
│ ├── crypto.py # AES-256 encryption/decryption
125+
│ ├── crypto.py # AES encryption/decryption
126126
│ └── utils.py # Helper utilities
127127
├── requirements.txt
128128
├── README.md
@@ -171,20 +171,20 @@ pre-commit run --all-files
171171

172172
## What's New in v3.0.0
173173

174-
- **🔒 AES-256 Encryption**: Password-based encryption using `--password` flag for both CLI and GUI
174+
- **🔒 AES Encryption**: Password-based encryption using `--password` flag for both CLI and GUI
175175
- **🖼️ BMP Support**: Added BMP image format for steganography
176176
- **📋 Version Flag**: Added `--version` / `-V` CLI flag
177177
- **🔐 Crypto Module**: New `stegano/crypto.py` with encrypt/decrypt/detect functions
178178
- **🧪 Expanded Tests**: 11 tests covering encryption, BMP support, and core functionality
179-
- **📦 New Dependency**: `cryptography` library for secure AES-256 encryption
179+
- **📦 New Dependency**: `cryptography` library for secure AES encryption
180180

181181
All existing functionality remains fully compatible!
182182

183183
---
184184

185185
## Security Notice
186186

187-
This toolkit is for educational and research purposes. While v3.0.0 adds AES-256 encryption for hidden messages, steganography alone does **not** provide strong security. The encryption feature adds a layer of protection, but do not rely solely on it for high-security scenarios in adversarial environments.
187+
This toolkit is for educational and research purposes. While v3.0.0 adds AES encryption for hidden messages, steganography alone does **not** provide strong security. The encryption feature adds a layer of protection, but do not rely solely on it for high-security scenarios in adversarial environments.
188188

189189
---
190190

stegano/crypto.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
"""
22
Cryptographic utilities for stegano-sec
33
4-
Provides password-based AES-256 encryption using Fernet (authenticated encryption)
5-
with PBKDF2 key derivation for securing hidden messages.
4+
Provides password-based authenticated encryption using Fernet
5+
(AES-128-CBC + HMAC-SHA256) with PBKDF2 key derivation for securing
6+
hidden messages.
67
"""
78

89
import base64
@@ -40,11 +41,9 @@ def _derive_key(password: str, salt: bytes) -> bytes:
4041

4142

4243
def encrypt_message(message: str, password: str) -> str:
43-
"""Encrypt a message using AES-256 with a password.
44+
"""Encrypt a message with a password using authenticated encryption.
4445
4546
Uses Fernet (AES-128-CBC with HMAC-SHA256) for authenticated encryption.
46-
The salt is prepended to the ciphertext so decryption only needs the
47-
password.
4847
4948
Args:
5049
message: Plaintext message to encrypt

stegano_sec.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ def create_parser() -> argparse.ArgumentParser:
295295
encode_parser.add_argument(
296296
"-p",
297297
"--password",
298-
help="Encrypt message with AES-256 using this password",
298+
help="Encrypt message with AES using this password",
299299
)
300300

301301
# Decode command

stegano_sec_gui.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def setup_encode_tab(self) -> None:
163163
password_frame, textvariable=self.encode_password, show="*", width=30
164164
).pack(side=tk.LEFT, padx=5)
165165
ttk.Label(
166-
password_frame, text="(AES-256 encryption)", foreground="gray"
166+
password_frame, text="(AES encryption)", foreground="gray"
167167
).pack(side=tk.LEFT, padx=5)
168168

169169
# Encode button

0 commit comments

Comments
 (0)