You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore: update changelog and documentation for v0.8.0-alpha
- Updated CHANGELOG.md to reflect breaking changes and new features.
- Enhanced README.md to describe AES-256-GCM encryption.
- Modified pyproject.toml to set version to 0.8.0-alpha.
- Updated todo.md with cleanup tasks.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+34-2Lines changed: 34 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,16 +5,41 @@ All notable changes to this project will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
-
## [Unreleased] - 2026-01-06
8
+
## [0.8.0-alpha] - 2026-01-10
9
+
10
+
### BREAKING CHANGES
11
+
12
+
-**Metadata Schema Update:** Upgraded metadata.json from v1.0 to v2.0 to support integrity verification hashes. Backward compatible - existing v1.0 metadata will be migrated automatically.
13
+
-**Encryption Migration:** Migrated from OpenSSL subprocess calls to the `cryptography` library with AES-256-GCM authenticated encryption. This is a breaking change - **old .enc files encrypted with OpenSSL will not be decryptable** with the new version. Users should decrypt any existing encrypted backups before upgrading or keep the old version to decrypt legacy files.
9
14
10
15
### Added
11
16
17
+
-**SHA256 Integrity Verification:** Added comprehensive file integrity verification system
18
+
- Calculate and store SHA256 hash of backup archives (.tar.zst)
19
+
- Calculate and store SHA256 hash of encrypted files (.enc)
20
+
- Calculate and store SHA256 hash of decrypted files
21
+
- Verify decrypted file integrity against original backup archive hash
22
+
- All hashes stored in metadata.json v2.0 with appropriate naming
23
+
- Added 28 new tests for hash utilities and metadata v2.0
24
+
- Pure Python encryption using the `cryptography` library - no more external OpenSSL binary dependency
25
+
- AES-256-GCM authenticated encryption provides both confidentiality and integrity verification
26
+
- PBKDF2-HMAC-SHA256 key derivation with 600,000 iterations (OWASP recommended)
27
+
- Built-in tamper detection - decryption automatically fails if encrypted file has been modified
28
+
- Improved error handling with Python exceptions instead of subprocess stderr parsing
29
+
- Added comprehensive encryption/decryption tests including tamper detection and round-trip validation
12
30
- Implemented progress bar for extraction process using SimpleProgressBar, calculating total archive size for accurate progress updates
13
31
- Migrated backup to tarfile library with zstd compression and built-in progress bar, supporting both .tar.zst and .tar.xz formats
14
32
- Added global --version option and improved main entry point for consistent package import context
15
33
16
34
### Changed
17
35
36
+
- Updated BackupMetadata dataclass to version 2.0 with file_hashes field
37
+
- BackupManager now calculates SHA256 hash after backup creation and stores in metadata
38
+
- EncryptManager calculates SHA256 hash after encryption and stores in metadata
39
+
- DecryptManager calculates SHA256 hash after decryption and verifies against backup hash
40
+
- Encryption file format changed from base64-encoded OpenSSL output to binary format: `[salt(16)][nonce(12)][ciphertext][tag(16)]`
41
+
- Removed hash embedding - GCM mode provides built-in authentication via authentication tag
Copy file name to clipboardExpand all lines: pyproject.toml
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
[project]
2
2
name = 'AutoTarCompress'
3
-
version = '0.8.0-beta'
3
+
version = '0.8.0-alpha'
4
4
license = { text = "GPL-3.0-or-later" }
5
5
description = 'The script compresses specific directories into tar files, and it is able to encrypt them using the OpenSSL Python library. It also allows for decryption and extraction of the created files.'
6
6
keywords = ["tar", "compress", "backup"]
@@ -51,7 +51,7 @@ markers = [
51
51
[tool.ruff]
52
52
line-length = 79
53
53
indent-width = 4
54
-
include = ["pyproject.toml", "src/**/*.py", "scripts/**/*.py"]
54
+
include = ["pyproject.toml", "src/**/*.py", "scripts/**/*.py", "autotarcompress/**/*.py", "tests/**/*.py"]
0 commit comments