Claude Code Plugins

Community-maintained marketplace

Feedback

Client-side cryptography with libsodium. Use when working on files in src/lib/crypto/.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name crypto
description Client-side cryptography with libsodium. Use when working on files in src/lib/crypto/.

Crypto Guidelines

All crypto happens client-side. Server NEVER sees plaintext.

Architecture

  • Seed phrase (128-bit) → Ed25519 keypair (signing) → X25519 keypair (encryption)
  • Vault key (random 256-bit) wrapped with user's X25519 public key
  • Data encrypted with XChaCha20-Poly1305

Critical Rules

  1. Never log keys or sensitive data - not even in development
  2. Use libsodium - don't implement crypto primitives
  3. Async everywhere - all functions async (libsodium-wrappers)
  4. Constant-time comparisons - sodium.compare for secrets
  5. Zeroize secrets - sodium.memzero when done
  6. Type-safe keys - use branded types (VaultKey, SigningKey)

Common Pitfalls

  • Don't use crypto.randomBytes → use sodium.randombytes_buf
  • Don't concatenate key material → use proper KDFs
  • Don't store keys in localStorage without encryption
  • Don't forget await sodium.ready before operations

Testing

Use property-based tests for roundtrip verification with fast-check.