feat: Shade E2EE library — M1-M3 complete

Signal Protocol implementation with full X3DH + Double Ratchet:

- M1: Core types, CryptoProvider interface, KDF chain functions,
  SubtleCrypto+noble/curves provider, MemoryStorage
- M2: X3DH key agreement (identity keys, signed prekeys, one-time
  prekeys, bundle processing for both initiator and responder)
- M3: Double Ratchet (symmetric-key ratchet, DH ratchet, skipped
  message key cache, out-of-order delivery, AAD-bound headers)

68 tests, 0 failures — including full integration test of
X3DH handshake → Double Ratchet conversation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-09 20:08:19 +02:00
commit bd6452044f
27 changed files with 2517 additions and 0 deletions

20
package.json Normal file
View File

@@ -0,0 +1,20 @@
{
"name": "shade",
"private": true,
"workspaces": ["packages/*"],
"scripts": {
"test": "bun test --recursive",
"test:core": "cd packages/shade-core && bun test",
"test:crypto": "cd packages/shade-crypto-web && bun test",
"test:proto": "cd packages/shade-proto && bun test",
"test:server": "cd packages/shade-server && bun test",
"test:transport": "cd packages/shade-transport && bun test"
},
"devDependencies": {
"bun-types": "^1.3.11"
},
"dependencies": {
"@noble/curves": "^2.0.1",
"@noble/hashes": "^2.0.1"
}
}