libfreemkv 0.31.9: ~3x fewer AES ops in the subset-difference PK walk
calc_pk_from_dk derived all three children (left/pk/right) at every tree level but used only the one it descended into; the Processing Key only matters at the final node. Derive just the descended child per level + the PK once at the end. Bit-for-bit identical; speeds every DK->MK derivation (disc decryption + unpositioned-DK recovery). 60.8s -> 22.9s on a UHD worst-case recovery scan.
This commit is contained in:
@@ -1,5 +1,15 @@
|
||||
# Changelog
|
||||
|
||||
## 0.31.9 (2026-06-17)
|
||||
|
||||
### Performance
|
||||
- Subset-difference PK walk (`calc_pk_from_dk`): at each tree level derive only
|
||||
the child actually descended into (not both siblings) and compute the
|
||||
Processing Key once at the final node — ~3x fewer AES block ops per walk.
|
||||
Bit-for-bit identical output; speeds every Device-Key → Media-Key derivation
|
||||
(disc decryption AND unpositioned-DK recovery).
|
||||
|
||||
|
||||
## 0.31.8 (2026-06-17)
|
||||
|
||||
### Added
|
||||
|
||||
Reference in New Issue
Block a user