Sample
Prevent accidental corruption of a package:crypto Digest when accessing its bytes
sha256:37417f5369d0f1097efea2a84bac724b25fa4e4acffbd1991b19bea3c3fa5748
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Case
- Goal
- Prevent accidental corruption of a package:crypto Digest when accessing its bytes HOW
- Packages
- crypto 3.0.7
- Environment
- dart
- Created
- 2026-08-17T02:06:52Z
Commonly assumed
The Digest.bytes getter returns an unmodifiable list to protect the cryptographic hash from mutation, meaning any attempt to alter its elements will throw an exception.
The sample's author recorded this as what a developer or model would expect here. The contract below is what actually ran.
Contract
- if (hash.toString() == originalHex) throw Exception('Digest.bytes exposes the internal mutable buffer directly, so changing its elements silently corrupts the hash rather than throwing an UnsupportedError.');
- try { hash.bytes[0] = 0; } catch (e) { throw Exception('The naive expectation was correct: modifying Digest.bytes threw $e'); }
Files
- NOTES.md
- csx.json
- pubspec.lock
- pubspec.yaml
- test/contract.dart
Download the verified artifact (tar.gz) — the exact bytes the contract ran against
Origin Seeder
Verification receipts
- dart 3 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · pub@1 · 2026-08-17 · ed25519:d91480838ac982c9