You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
dev da63bc394c
Stage 1: the normative errors of section 69 and the byte helpers
2 days ago
lib Stage 1: the normative errors of section 69 and the byte helpers 2 days ago
test Stage 1: the normative errors of section 69 and the byte helpers 2 days ago
testdata Stage 0: the package datekeys and its test data at spec-v0.11 2 days ago
tool Stage 0: the package datekeys and its test data at spec-v0.11 2 days ago
.gitattributes Stage 0: the package datekeys and its test data at spec-v0.11 2 days ago
.gitignore Stage 0: the package datekeys and its test data at spec-v0.11 2 days ago
CHANGELOG.md Stage 0: the package datekeys and its test data at spec-v0.11 2 days ago
LICENSE Stage 0: the package datekeys and its test data at spec-v0.11 2 days ago
README.md Stage 0: the package datekeys and its test data at spec-v0.11 2 days ago
analysis_options.yaml Stage 0: the package datekeys and its test data at spec-v0.11 2 days ago
pubspec.lock Stage 0: the package datekeys and its test data at spec-v0.11 2 days ago
pubspec.yaml Stage 0: the package datekeys and its test data at spec-v0.11 2 days ago

README.md

datekeys-dart

Librería Dart del protocolo DateKeys: DateKey, DateKeyCap (.dkc) y DateKeys Access Key (.dkk). Es Dart puro, sin Flutter ni plataforma, para que la app Flutter la use como dependencia de ruta (datekeys: { path: ../datekeys-dart }).

Es la tercera implementación de la especificación, después de la de referencia en Go (datekeys-go) y la de TypeScript (datekeys-ts). Como la de TypeScript, no genera datos de prueba propios: se contrasta con el testdata/ de datekeys-go.

Estado

Está hecha la etapa 0 del plan (docs/PLAN_dart.md del espacio de trabajo): el paquete, sus herramientas y testdata/ sincronizado. Todavía no implementa nada del protocolo. Las etapas siguientes lo traen en este orden:

Etapa Contenido
1 Bytes, errores normativos, CBOR determinista (§58) y DER estricto
2 Primitivas: HKDF, PBKDF2, scrypt, ChaCha20-Poly1305, X25519, Ed25519 estricto y age
3 BLS12-381 y tlock
4 Formatos, inspección (pasos 1 a 8) y apertura (pasos 9 a 18)
5 Firma y sello, con los textos de los veredictos
6 Escritor
7 Localizador y claves de autor

Versiones

Número Dónde Hoy
Librería version de lib/src/version.dart y de pubspec.yaml, que una prueba mantiene iguales 0.1.0-dev
Especificación specVersion de lib/src/version.dart: la que nombra el campo spec de cada fichero de testdata/ 0.11

La rama sigue la versión de la especificación: v0.11, hasta que datekeys-go cierre la v0.12. La etapa 5 se sincronizará ya con la v0.12.

Dependencias

  • En ejecución: solo package:crypto, para SHA-1, SHA-2 y HMAC. Todo lo demás es código propio: HKDF, PBKDF2, scrypt, ChaCha20-Poly1305, X25519, Ed25519, BLS12-381, ECDSA, RSA, DER, CMS y CBOR.
  • En desarrollo: solo package:test, aprobado el 5 de octubre de 2026. No hay paquete de lints: las reglas del análisis están en analysis_options.yaml.
  • pubspec.lock va en el repositorio, para que las pruebas usen siempre las mismas versiones.

Nada nuevo sin aprobación escrita del autor.

Comprobar

dart pub get
tool/check.sh

tool/check.sh es el gate local, como scripts/check.sh en datekeys-go y npm run verify en datekeys-ts. Comprueba:

  • el formato;
  • dart analyze --fatal-infos;
  • dart test;
  • la copia de testdata/ frente al repositorio de Go, que debe estar al lado, en ../datekeys-go.

Datos de prueba

testdata/ es una copia de datekeys-go/testdata en un commit fijo. testdata/SOURCE.json registra el commit y el SHA-256 de cada fichero, igual que en datekeys-ts. La copia actual es la del tag spec-v0.11 (ae33434).

dart run tool/sync_testdata.dart sync --commit spec-v0.11
dart run tool/sync_testdata.dart check --against ../datekeys-go
  • sync lee los ficheros con git en ese commit, así que nunca entran cambios sin commit del repositorio de Go.
  • Los ficheros de testdata/ no se editan ni se generan aquí.
  • En cada dart test, test/testdata_test.dart comprueba la copia, y que cada fichero nombre specVersion.

Licencia

Apache-2.0 (LICENSE), como datekeys-go y datekeys-ts. La especificación tiene su propia licencia, CC-BY-4.0.

Powered by TurnKey Linux.