A BitTorrent client
Bencode, trackers and the peer-to-peer protocol. Download a real file by talking to real peers.
Go · Python · Java
Rotaciones, padding y el bloque de compresión. Firma y verifica mensajes sin tocar la librería de criptografía.
Build it in your language
The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.
Un hash criptográfico es una función que sale en todas partes —contraseñas, firmas, blockchains, integridad de ficheros— y que casi nadie ha visto por dentro. Por dentro son rotaciones y sumas, nada más.
Implementarás SHA-256 desde el padding hasta el bloque de compresión, verificarás tu salida contra los vectores de prueba oficiales y la usarás para construir HMAC y firmar tokens de verdad.
7 stages across 3 phases. Every stage comes with its guide and its tests: you move on when they pass.
Padding, longitud en bits y troceado en bloques de 512.
Expansión del mensaje, las 64 rondas y validación con los vectores del NIST.
HMAC-SHA256, firma y verificación de tokens en tiempo constante.
Bencode, trackers and the peer-to-peer protocol. Download a real file by talking to real peers.
Go · Python · Java
Blobs, trees and commits. Discover that Git is a content-addressed object store, and little else.
Go · Python · Rust