crypto.getCurves() Method in Node.js

The crypto.getCurves() method returns an array containing names of all supported elliptic curves in Node.js. These curves are used for creating Elliptic Curve Diffie-Hellman (ECDH) key exchange objects for secure cryptographic operations.

Syntax

crypto.getCurves()

Parameters

This method takes no parameters since it returns a complete list of all available elliptic curves.

Return Value

Returns an array of strings, where each string represents the name of a supported elliptic curve.

Example

Here's how to use crypto.getCurves() to retrieve all available elliptic curves:

// Importing the crypto module
const crypto = require('crypto');

// Getting all supported elliptic curves
const curves = crypto.getCurves();

console.log("Number of curves available:", curves.length);
console.log("First 10 curves:", curves.slice(0, 10));
console.log("All curves:", curves);
Number of curves available: 74
First 10 curves: [
  'Oakley-EC2N-3',
  'Oakley-EC2N-4',
  'SM2',
  'brainpoolP160r1',
  'brainpoolP160t1',
  'brainpoolP192r1',
  'brainpoolP192t1',
  'brainpoolP224r1',
  'brainpoolP224t1',
  'brainpoolP256r1'
]
All curves: [
  'Oakley-EC2N-3', 'Oakley-EC2N-4', 'SM2',
  'brainpoolP160r1', 'brainpoolP160t1', 'brainpoolP192r1',
  'brainpoolP192t1', 'brainpoolP224r1', 'brainpoolP224t1',
  'brainpoolP256r1', 'brainpoolP256t1', 'brainpoolP320r1',
  'brainpoolP320t1', 'brainpoolP384r1', 'brainpoolP384t1',
  'brainpoolP512r1', 'brainpoolP512t1', 'prime192v1',
  'prime256v1', 'secp112r1', 'secp128r1', 'secp160k1',
  'secp160r1', 'secp192k1', 'secp224k1', 'secp224r1',
  'secp256k1', 'secp384r1', 'secp521r1', 'sect113r1',
  'sect131r1', 'sect163k1', 'sect163r1', 'sect163r2',
  'sect193r1', 'sect233k1', 'sect233r1', 'sect239k1',
  'sect283k1', 'sect283r1', 'sect409k1', 'sect409r1',
  'sect571k1', 'sect571r1'
]

Common Use Cases

This method is useful for:

  • Checking which elliptic curves are available on the current Node.js installation
  • Validating curve names before creating ECDH objects
  • Listing supported cryptographic options for security applications

Popular Curves

Some commonly used curves from the list include:

  • secp256k1 - Used in Bitcoin and Ethereum
  • secp384r1 - NIST P-384 curve
  • secp521r1 - NIST P-521 curve
  • prime256v1 - NIST P-256 curve, widely supported

Conclusion

The crypto.getCurves() method provides a simple way to discover all elliptic curves supported by your Node.js environment. This information is essential when working with ECDH key exchanges and elliptic curve cryptography.

Updated on: 2026-03-15T23:19:00+05:30

370 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements