Skip to content

✨ Support for crypto.timingSafeEqual and crypto.scrypt / scryptSync #737

@RoshanDivekar1412

Description

@RoshanDivekar1412

What feature or enhancement are you suggesting?

Feature Request

Please consider adding support for the following crypto methods which are commonly used in Node.js applications for password hashing and secure comparisons:

  • crypto.timingSafeEqual(a, b)
  • crypto.scrypt(password, salt, keylen[, options], callback)
  • crypto.scryptSync(password, salt, keylen[, options])

These are essential for secure authentication and cryptographic operations and are missing from react-native-quick-crypto.

Use Case

  • timingSafeEqual: Required for constant-time comparison to prevent timing attacks in sensitive comparisons (e.g., HMACs or password validation).
  • scrypt / scryptSync: Widely used for secure password-based key derivation, and is natively supported in Node.js.

What Platforms whould this feature/enhancement affect?

Android

Alternatives/Workarounds

For crypto.scrypt / scryptSync:

✅ Workaround: Use @noble/hashes/scrypt, a pure and fast JavaScript implementation of scrypt that works in React Native, browsers, and Node.js.

It supports full parameter control: N, r, p, and output length.

For crypto.timingSafeEqual:

⚠️ No native alternative exists in React Native yet.

Additional information

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions