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
8 changes: 8 additions & 0 deletions .changes/owned-secret-equality.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"rscrypto" = "minor"
---

Secret equality is now owned by fixed-size cryptographic key, tag, and
shared-secret types. The public generic `ConstantTimeEq` trait, arbitrary-slice
comparison helper, and slice/array implementations have been removed;
`SecretBytes` and `SecretVec` no longer provide equality.
4 changes: 2 additions & 2 deletions THREAT_MODEL.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Review the `ct-intended` candidate core before the rest of the repository:
5. ML-KEM secret-noise key generation, encapsulation coins, decapsulation
secret-key material, and implicit rejection.
6. AEAD authentication and failed-open cleanup.
7. MAC/tag verification, constant-time byte equality, and selected
7. MAC/tag verification, fixed-size owner equality, and selected
password-verification comparisons.

Public parsing, raw hashes, checksums, non-cryptographic hashes, public-key
Expand Down Expand Up @@ -108,7 +108,7 @@ Ordered by exposure to untrusted input:
| Wrong output from accelerated kernels | Portable path is the byte-for-byte authority | Portable-vs-accelerated differential tests and native CI |
| Timing leakage | Constant-time coding rules on claimed paths | `ct.toml` evidence gate: timing tests, generated-code review, binary checks where supported |
| Oracle behavior | Opaque errors, failed-open output wipe, single-bit failure shape | AEAD and verification tests, fuzz targets |
| Secret exposure at rest | Zeroize on drop, masked `Debug`, constant-time equality on secret types | `src/secret.rs` and per-type tests |
| Secret exposure at rest | Zeroize on drop, masked `Debug`, and fixed-size equality only on semantic secret owners | `src/secret.rs`, `ct.toml`, and per-owner tests |
| Supply chain | Minimal optional runtime dependencies, `cargo deny`, `cargo audit`, signed tags, Trusted Publishing, release attestations | `deny.toml`, `.github/workflows/release.yaml`, `docs/release.md` |

## Known Gaps
Expand Down
Loading