JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 41
  • Score
    100M100P100Q54913F
  • License MIT

Security-focused ESLint plugin with 24 AI-parseable rules for cryptographic best practices. Detects weak algorithms, insecure key handling, CVE-specific vulnerabilities, and deprecated crypto patterns.

Package Exports

  • eslint-plugin-crypto
  • eslint-plugin-crypto/types

Readme

ESLint Interlace Logo

Cryptographic security rules enforcing best practices and modern standards (Node.js crypto).

NPM Version NPM Downloads Package License Codecov Since Dec 2025

Description

This plugin provides Cryptographic security rules enforcing best practices and modern standards (Node.js crypto). By using this plugin, you can proactively identify and mitigate security risks across your entire codebase.

Philosophy

Interlace fosters strength through integration. Instead of stacking isolated rules, we interlace security directly into your workflow to create a resilient fabric of code. We believe tools should guide rather than gatekeep, providing educational feedback that strengthens the developer with every interaction.

Getting Started

npm install eslint-plugin-crypto --save-dev

๐Ÿ’ก What You Get

  • 24 security rules covering cryptographic best practices
  • CVE detection for CVE-2023-46809, CVE-2020-36732, CVE-2023-46233
  • OWASP Top 10 coverage for cryptographic vulnerabilities
  • LLM-optimized messages with CWE references and fix guidance
  • Package support for crypto-hash, crypto-random-string, crypto-js

Features

  • ๐Ÿ” 24 Rules covering crypto best practices
  • ๐ŸŽฏ CVE Detection (CVE-2023-46809, CVE-2020-36732, CVE-2023-46233)
  • ๐Ÿค– AI-Optimized messages with CWE references
  • โšก Auto-Fix suggestions where safe
  • ๐Ÿ“ฆ Package Support for crypto-hash, crypto-random-string, crypto-js

โš™๏ธ Configuration Presets

Preset Description
recommended Balanced security defaults for most projects
strict Strict preset - all rules as errors
cryptojs-migration For teams migrating from crypto-js
nodejs-only Only Node.js crypto rules
cve-focused Rules targeting specific CVEs

๐Ÿ“š Supported Libraries

Library npm Downloads Detection
crypto (Node.js) node - Weak Algo, Key Length, Randomness
crypto-js npm downloads Legacy patterns, Weak PRNG

Examples

โŒ Bad

// CVE-2023-46809: Marvin Attack
crypto.privateDecrypt({ key, padding: crypto.constants.RSA_PKCS1_PADDING }, buffer);

// CWE-338: Weak random
const token = Math.random().toString(36);

// CWE-327: ECB mode leaks patterns
crypto.createCipheriv('aes-256-ecb', key, iv);

// CWE-208: Timing attack
if (userToken === storedToken) { ... }

โœ… Good

// Use OAEP padding
crypto.privateDecrypt({ key, padding: crypto.constants.RSA_PKCS1_OAEP_PADDING }, buffer);

// Secure random
const token = crypto.randomBytes(32).toString('hex');

// GCM provides authentication
crypto.createCipheriv('aes-256-gcm', key, iv);

// Constant-time comparison
if (crypto.timingSafeEqual(Buffer.from(userToken), Buffer.from(storedToken))) { ... }

Peer Dependencies (Optional)

{
  "crypto-hash": ">=3.0.0",
  "crypto-random-string": ">=4.0.0",
  "crypto-js": ">=4.0.0"
}

Rules

Legend

Icon Description
๐Ÿ’ผ Recommended: Included in the recommended preset.
โš ๏ธ Warns: Set towarn in recommended preset.
๐Ÿ”ง Auto-fixable: Automatically fixable by the --fix CLI option.
๐Ÿ’ก Suggestions: Providing code suggestions in IDE.
๐Ÿšซ Deprecated: This rule is deprecated.
Rule CWE OWASP CVSS Description ๐Ÿ’ผ โš ๏ธ ๐Ÿ”ง ๐Ÿ’ก ๐Ÿšซ
no-hardcoded-crypto-key CWE-321 A02:2025 9.8 Enforce no hardcoded crypto key ๐Ÿ’ผ ๐Ÿ’ก
no-key-reuse CWE-323 A02:2025 7.5 Enforce no key reuse ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
no-math-random-crypto CWE-338 A07:2025 5.3 Enforce no math random crypto ๐Ÿ’ผ ๐Ÿ’ก
no-numeric-only-tokens CWE-330 A07:2025 5.3 Enforce no numeric only tokens ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
no-predictable-salt CWE-331 A07:2025 7.5 Enforce no predictable salt ๐Ÿ’ผ ๐Ÿ’ก
no-web-crypto-export CWE-321 A02:2025 5.0 Enforce no web crypto export ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
require-authenticated-encryption CWE-327 A04:2025 6.5 Enforce require authenticated encryption ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
require-key-length CWE-326 A02:2025 7.5 Enforce require key length ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
require-random-iv CWE-329 A02:2025 7.5 Enforce require random iv ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
require-secure-pbkdf2-digest CWE-916 A02:2025 9.1 Enforce require secure pbkdf2 digest ๐Ÿ’ผ ๐Ÿ’ก
require-sufficient-length CWE-326 A02:2025 7.5 Enforce require sufficient length ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก

Part of the Interlace ESLint Ecosystem โ€” AI-native security plugins with LLM-optimized error messages:

Plugin Downloads Description
eslint-plugin-secure-coding downloads General security rules & OWASP guidelines.
eslint-plugin-pg downloads PostgreSQL security & best practices.
eslint-plugin-crypto downloads NodeJS Cryptography security rules.
eslint-plugin-jwt downloads JWT security & best practices.
eslint-plugin-browser-security downloads Browser-specific security & XSS prevention.
eslint-plugin-express-security downloads Express.js security hardening rules.
eslint-plugin-lambda-security downloads AWS Lambda security best practices.
eslint-plugin-nestjs-security downloads NestJS security rules & patterns.
eslint-plugin-mongodb-security downloads MongoDB security best practices.
eslint-plugin-vercel-ai-security downloads Vercel AI SDK security hardening.
eslint-plugin-import-next downloads Next-gen import sorting & architecture.

๐Ÿ“„ License

MIT ยฉ Ofri Peretz

ESLint Interlace Plugin