aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md30
1 files changed, 30 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index acc2c9d..0cee853 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,36 @@ All notable changes to this project are documented here. The format follows
## [Unreleased]
+## [0.2.0] - 2026-10-18
+
+Milestones M1 (prepared; your phone test pending) and M2: crypto and OTP core.
+Nothing user-visible yet; the home screen still shows only name and version.
+
+### Added
+
+- Crypto (`source/crypto/`): SHA-512 in Monkey C (FIPS 180-4), generic HMAC
+ (RFC 2104) for SHA-1/SHA-256/SHA-512 plus native HMAC-SHA256, resumable
+ PBKDF2-HMAC-SHA256 with calibration, HKDF-SHA256, AES-CBC with PKCS#7
+ (AES-256 chosen), SealedBox encrypt-then-MAC records, and a start-up
+ self-test.
+- OTP (`source/otp/`): Base32 decoding with exact error positions, HOTP, TOTP
+ (64-bit time, correct after 2038) and Steam Guard codes.
+- Utilities: constant-time comparison and wiping (`Bytes`), the 2038-safe clock
+ and trusted-clock check (`Clock`), resumable jobs with a timer runner (`Jobs`).
+- `tools/gen_vectors.py` and `make vectors`: official RFC/FIPS/NIST vectors,
+ each recomputed with Python's standard library or openssl before use, plus
+ seeded cases (SHA padding boundaries, 2038, 2100, all digit counts).
+- 31 Monkey C unit tests and a benchmark, passing on all four test devices.
+- M1 settings spike: a separate test app (`spike/settings/`), `make spike`,
+ `make spike-sim`, test strings and `docs/SETTINGS_SPIKE.md`.
+
+### Changed
+
+- Screenshot checks are now strict: at most 0.01 % of pixels may differ (one
+ changed character used to pass under the old 0.5 % tolerance).
+- SHA-512 and PBKDF2 inner loops optimised (37 % and 42 % faster in the
+ simulator) without changing results.
+
## [0.1.0] - 2026-10-18
Milestone M0: scaffolding. Not useful on a watch yet; the app shows only its