Releases: elementmerc/Stegcore
Releases · elementmerc/Stegcore
Stegcore v2.0.12
Security
- Passphrase memory hardening — CLI passphrase converted to
bytearray
immediately after prompt; zeroed withbuf[:] = b"\x00" * len(buf)after
use._derive_key,encrypt,decrypt, andderive_keyincore/crypto.py
now acceptstr | bytes | bytearrayto support this pattern. - Bandit B110 fixed —
except Exception: passincore/utils.pyasset()
narrowed toexcept (ImportError, ModuleNotFoundError)with explanatory comment. - Temp file security documented —
temp_file()docstring now explicitly states
mkstempmode 0o600, guaranteedfinallycleanup, and that plaintext is never
written to the temp file. - Key file audit —
write_key_filedocstring updated to enumerate stored fields
and explicitly state the passphrase and derived key are never persisted. bandit -r core/reports zero findings (Undefined/Low/Medium/High all 0).
Added
- Full pytest test suite — 64 tests across
tests/test_crypto.py,
tests/test_steg.py,tests/test_key_file.py, andtests/test_integration.py.
Coverage enforced at ≥ 90% (actual: 93.73%). - CI test job —
.github/workflows/ci.ymlruns the full test suite on every
push and pull request tomain(Python 3.11, ubuntu-latest).
Stegcore v2.0.11
Fixed
- Asset path resolution for pip installs —
asset()incore/utils.pynow uses a
three-tier lookup: PyInstaller_MEIPASS→importlib.resources.files("assets")→
source-tree fallback.assets/__init__.pyadded so setuptools packages the directory and
importlib.resourcescan address it. Resolves broken icon path afterpip install .. - Stale
jpegioruntime dependency removed —jpegiowas listed inpyproject.toml
but is not imported anywhere; JPEG support has used the pixel-domain LSB pipeline since 2.0.6.
Stegcore v2.0.10
Release v2.0.10
Stegcore v2.0.6
Release v2.0.6
Stegcore v1.0.0
The first release for the base