Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

*When editing this file, please respect a line length of 100.*

## [0.36.2] - 2026-10-13

### Added
- `DataMapIndex` gives random access to a `DataMap`'s content with `u64` positions on every
platform, including 32-bit targets such as `wasm32`. It does no I/O: it lists the chunks
overlapping a byte range and decrypts single chunks, checking each against the size and source
hash the map declares. Decompression stops at the declared size, so crafted chunks cannot expand
beyond it.

### Changed
- `DecryptionStream` is built on `DataMapIndex`. Random access uses `u64` positions and binary
searches instead of `usize` sums and linear scans, so it no longer overflows on 32-bit targets,
and every decrypted chunk is checked against its declared size and hash. Construction fails for
a map whose chunk indices are not exactly `0..n`.
- On 32-bit targets, `DecryptionStream::file_size` reports `usize::MAX` for content larger than
`usize::MAX` bytes; `DataMapIndex::file_size` gives the exact size.

### Fixed
- `DecryptionStream` fails when the fetch callback omits a chunk. Before, `get_range` joined the
remaining chunks into wrong content, and iteration ended early as if the content were complete.

## [0.36.1] - 2026-10-06

### Changed
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ license = "MIT OR Apache-2.0"
name = "self_encryption"
readme = "README.md"
repository = "https://github.com/WithAutonomi/self_encryption"
version = "0.36.1"
version = "0.36.2"

[features]
default = []
Expand Down
2 changes: 1 addition & 1 deletion nodejs/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ crate-type = ["cdylib"]
hex = "0.4.3"
napi = { version = "2.12.2", default-features = false, features = ["napi4", "napi6", "tokio_rt", "serde-json"] }
napi-derive = "2.12.2"
self_encryption = { version = "0.36.1", path = ".." }
self_encryption = { version = "0.36.2", path = ".." }

[build-dependencies]
napi-build = "2.0.1"
Loading
Loading