How vuxenn1/sisfa works
SISFA is a CLI and Qt desktop file vault: users embed a password-encrypted file in a PNG, then recover it using the stego image and password. The principal workflow is coordinated by the vault layer, which packages metadata, encrypts or decrypts the file, and invokes LSB pixel embedding or extraction. Separate paths support image-capacity checks and GUI image previews. The README documents these capabilities; some GUI and vault implementation details are unsampled, so only documented or excerpt-supported wiring is shown.
Main entry points: vault.cpp Vault operations · mainwindow.cpp Main window · main.cpp CLI menu · extractdialog.cpp Extract dialog
Components 18
User interfaces
- CLI menu
src/main.cpp - GUI entry
src/main_gui.cpp - Main window
src/mainwindow.cpp - Embed dialog
src/embeddialog.cpp - Extract dialog
src/extractdialog.cpp
Vault workflow
- Vault operations
src/vault.cpp
Protection and steganography
- Encryption
src/crypto.cpp - LSB encoding
src/steganography.cpp - Crypto interface
include/crypto.h - Stego interface
include/steganography.h
Image handling
- Image codecs
include/stb_image.h - PNG writer
include/stb_image_write.h - Codec implementation
src/stb_impl.cpp
Other components
- User
- Secret file
- Recovered file
- Carrier or stego PNG
- OpenSSL
Connections 28
- User → CLI menu: chooses operation
- User → GUI entry: opens application
- GUI entry → Main window: starts window
- Main window → Embed dialog: opens embedding
- Main window → Extract dialog: opens extraction
- Embed dialog → Main window: updates preview
- Extract dialog → Main window: updates preview
- CLI menu → Vault operations: requests embed or extract
- Embed dialog → Vault operations: requests embedding
- Extract dialog → Vault operations: requests extraction
- Secret file → Vault operations: reads secret bytes
- Carrier or stego PNG → Vault operations: provides carrier image
- Vault operations → Encryption: encrypts or decrypts
- Vault operations → LSB encoding: embeds or extracts payload
- Vault operations → Image codecs: loads pixels
- Vault operations → PNG writer: writes PNG
- Codec implementation → Image codecs: implements decoder
- Codec implementation → PNG writer: implements encoder
- Encryption → OpenSSL: uses cryptography
- Vault operations → CLI menu: returns extraction result
- Vault operations → Extract dialog: returns extraction result
- CLI menu → Recovered file: writes recovered bytes
- Extract dialog → Recovered file: writes recovered bytes
- Vault operations → Carrier or stego PNG: saves stego PNG
- CLI menu → Image codecs: loads image for capacity
- Main window → Image codecs: checks preview capacity
- Crypto interface → Encryption: declares operations
- Stego interface → LSB encoding: declares operations