alexrintt
@alexrinttAndroid/Flutter.
Web Crypto API, AES-GCM, React, GitHub API, Primer Design... a deep dive into how GitBox works
Web Crypto API, AES-GCM, React, GitHub API, Primer Design... a deep dive into how GitBox works

GitBox is a E2EE (end-to-end encrypted) file sharing service, it allows people share private files (< 50mb) through their public repositories.

The tech stack is based on:

  • React and vite, redux, saga, etc.
  • libsodium for cryptography.
  • GitHub API as server.
  • Primer Design System.

GitBox is actually pretty simple, it just manages your files locally using the Web File Reader API, when uploading to GitHub it first encrypts using secret-key encryption (symmetric), then it generates a download URL that is just a URL that points a React route that downloads the raw encrypted file from GitHub servers and decrypt using the decryption key and nonce also provided by the download URL.

Other posts

you reached the end