2025Live
Crypto Toolkit
- C#
- ASP.NET Core MVC
- JavaScript
- Web Crypto API
- xUnit
- Docker
- Render
Overview
A cryptography toolkit that runs in the browser: password-based AES-GCM encryption, RSA hybrid encryption, ECDSA signatures and SHA-2/HMAC. Data never leaves the device.
01 · Problem
My final project for an Information Security and Cryptography course encrypted on the server with a key and IV hard-coded in the source. Since the repository was public, anyone could decrypt everything, and nothing detected changes to the ciphertext.
02 · Solution
I rewrote it so that all cryptography runs in the browser with the Web Crypto API: AES-256-GCM with a PBKDF2-derived key, RSA-OAEP hybrid encryption, ECDSA P-256 signatures, SHA-2 and HMAC, in versioned packages whose headers are authenticated too. ASP.NET Core only serves the pages, and the Content Security Policy stops the page from sending data anywhere.
03 · Outcome
A live, bilingual site with four tools that also works on phones. 96 automated tests (including NIST and RFC 4231 vectors) plus live measurements caught an empty 429 page and a rate limit that did not work behind Cloudflare before release.