You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
stack-encrypt: no opt-in type authenticates a collection's order and length — add Positioned<Vec<T>> #1570
Stack Encrypt (packages/stack-encrypt) is the Rust engine that every CipherStash language SDK runs on. It can encrypt a collection, such as a Vec<T>, as one batch (#1501). Each element is sealed separately and stored separately.
By design, the default collection does not authenticate its order or its length. A database returns rows in any order, and a query may return only some of them. Decision record ADR-0010 (packages/stack-encrypt/docs/adr/0010-what-a-stored-value-authenticates.md) records this. It also says stricter authentication will be opt-in, through named types. This issue is that opt-in type.
Problem
Some callers store a sequence whose order matters, such as the steps of a workflow. With the default collection, someone with write access to the database can swap, drop, or add an element. Each element still opens, so the program cannot detect the change. No opt-in type exists today.
Activity