package secret

  1. Overview
  2. Docs
Zeroized secret memory outside the OCaml heap

Install

dune-project
 Dependency

Authors

Maintainers

Sources

v0.1.2.tar.gz
md5=2ef809fd4e37a3498f15a8aa28c99484
sha512=db8110e36515895b26b43a5bbdef19c38639236237c52f3585b40ee1bb5a14db9fbf0b00f4ea5bb4634f03df85be3bb43362197e80c1b1de6c2ed5e84eaf0f7b

doc/CHANGES.html

Changes

0.1.2 (2026-09-02)

  • Remove the upper bound on the OCaml version. It excluded every release from 5.6 onwards without a known incompatibility, which is what opam-repository asks packages not to do.

Otherwise documentation only: the README gained the header diagram. No library code changed from 0.1.1.

0.1.1 (2026-09-01)

  • Build on the whole declared dune range. 0.1.0 required dune 3.24 even though it depends on dune >= 3.8: dune before 3.15 rejects a select target that is also named in modules, and older dune expands %{exe:...} to a bare basename, which the tests then failed to resolve.
  • Require dune-configurator 3.8 or later; it previously had no lower bound.
  • Run the exit-time zeroization tests on Windows.

The library itself is unchanged: src/ and unix/ are identical to 0.1.0, and this release fixes only packaging metadata and the test suite.

0.1.0 (2026-09-01)

  • Add out-of-heap secret buffers with explicit destruction, finalization, and exit-time zeroization.
  • Add constant-time equality, redacted printing, and controlled views.
  • Add optional guard pages, canaries, page locking, dump exclusion, and fork policies with per-value status reporting.
  • Add scratch buffers, minor-heap scrubbing, process hardening, and direct Unix file-descriptor I/O.
  • Keep owners alive for scoped views and permanently retain destroyed unscoped view storage so it can never expose a later secret. Retained and pooled blocks stay reachable, so leak checkers report them as reachable memory, and parked_count reports how many blocks are permanently retained.
  • Define concurrent reads as supported while requiring caller synchronization for mutation, destruction, process-wide wiping, and blocking I/O.
  • Install secret.h for C consumers.
  • Add an executable Mirage Crypto adoption proof covering AES and ChaCha20 migration semantics, known-answer compatibility, and process-memory residue.