Skip to content

Latest commit

 

History

History
95 lines (68 loc) · 2.13 KB

File metadata and controls

95 lines (68 loc) · 2.13 KB

Contributing to CryptoBox

Thank you for considering contributing to CryptoBox! 🎉

Code of Conduct

This project adheres to the Code of Conduct.

How to Contribute

Reporting Bugs

Use the Bug Report template and include:

  • Steps to reproduce
  • Expected vs actual behavior
  • Environment (OS, Node version, browser)

Suggesting Features

Use the Feature Request template and describe:

  • Use case and motivation
  • Proposed solution

Security Issues

DO NOT open public issues. Report privately:

See SECURITY.md for details.

Development

git clone https://github.com/adelzemzemi/cryptobox.git
cd cryptobox
npm install
npm run build
npm test
npm run lint

Pull Request Process

  1. Fork and create a branch: git checkout -b feature/my-feature
  2. Make changes and add tests
  3. Run: npm test && npm run lint
  4. Commit with clear messages (see Conventional Commits)
  5. Push and open a Pull Request

Commit Format

type(scope): subject

Types: feat, fix, docs, refactor, test, security

Examples:

feat(crypto): add ChaCha20 encryption
fix(storage): resolve memory leak
security(crypto): increase PBKDF2 iterations

Guidelines

Code Standards

  • TypeScript strict mode
  • No any types without justification
  • JSDoc for public APIs
  • Named constants (no magic numbers)

Security

  • Validate all inputs
  • Use timingSafeEqual for comparisons
  • Generic error messages
  • No information leakage

Testing

  • Unit tests required for new features
  • Minimum 80% coverage
  • Run npm test before submitting

Style

  • Run npm run format (Prettier)
  • Run npm run lint (ESLint)

Questions?

Thank you for contributing! 🚀