package secret

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

Install

dune-project
 Dependency

Authors

Maintainers

Sources

v0.1.3.tar.gz
md5=b7c68e30f2b524e36dc69d9b114fe840
sha512=346bea15a4d6726c45c08683af2b53bfe06899f9b16f5b83f594465b6bf6bd6459b524bb4c6fa7ca1ce4d84f07c615a289587066653dfc62db5f4304cf517c67

doc/CHANGES.html

Changes

0.1.3 (2026-09-07)

  • Provide secret.unix on Win32, using native handle and socket I/O directly against zeroizable secret memory.
  • Make Windows portability CI required and run the direct-I/O tests there.

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.