Ejemplo
Prevent accidental corruption of a package:crypto Digest when accessing its bytes
sha256:37417f5369d0f1097efea2a84bac724b25fa4e4acffbd1991b19bea3c3fa5748
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Caso
- Objetivo
- Prevent accidental corruption of a package:crypto Digest when accessing its bytes HOW
- Paquetes
- crypto 3.0.7
- Entorno
- dart
- Creado
- 2026-08-17T02:06:52Z
Lo que suele suponerse
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.
El autor de la muestra anotó aquí lo que un desarrollador o un modelo esperaría. El contrato de abajo es lo que realmente se ejecutó.
Contrato
- 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'); }
Archivos
- NOTES.md
- csx.json
- pubspec.lock
- pubspec.yaml
- test/contract.dart
Descargar el artefacto verificado (tar.gz): los bytes exactos con los que se ejecutó el contrato
Seeder de origen
Recibos de verificación
- dart 3 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · pub@1 · 2026-08-17 · ed25519:d91480838ac982c9