Open In App

Node.js crypto.secureHeapUsed() Method

The crypto.secureHeapUsed() method in Node.js is used to get the amount of memory used by the secure heap of the running Node.js process. The secure heap is a section of memory that is reserved for cryptographic operations in the Node.js process. This memory is separate from the main heap, which is used for general-purpose memory allocation in the process.

Syntax:



crypto.secureHeapUsed()

Parameters: This method does not take any parameters

Return Value: This method returns an object indicating the amount of secure memory used by the crypto module, in bytes. 



Steps to use crypto.secureHeapUsed() method:

Step 1: In order to use crypto.secureHeapUsed(), you need to import the crypto module in your Node.js application using the following statement.

const crypto = require('crypto');

Step 2: Perform some cryptographic operations, Let’s generate a random key and compute a hash:

const key = crypto.randomBytes(32);
const hash = crypto.createHash('sha256')
    .update('GeeksForGeeks').digest('hex');

Step 3: Now call the crypto.secureHeapUsed() method to get the amount of memory used by the secure heap:

const bytesUsed = crypto.secureHeapUsed();
console.log(`Heap used by this process: ${bytesUsed} bytes`);

Example 1:




const crypto = require('crypto');
 
// Perform some cryptographic operations
const key = crypto.randomBytes(256);
const hash = crypto.createHash('sha256')
    .update('GeeksForGeeks').digest('hex');
 
// Get the amount of memory used by the secure heap
const bytesUsed = crypto.secureHeapUsed();
 
console.log(`Secure heap used: ${bytesUsed.used}`);

Output:

Secure heap used: 16384

Example 2:




const crypto = require('crypto');
 
function generateRandomNumbers(num) {
    const rand = crypto.randomBytes(num);
 
    // Calculating the secure heap used after
    // doing the cryptographic operation
    console.log(`Bytes used:
        ${crypto.secureHeapUsed().used} bytes`);
}
 
// Making a function call to
// generate 64 random bytes
generateRandomNumbers(64);

Output:

Bytes used: 12288

The output will be varied depending on the platform and the amount of memory allocated to the secure heap.

Reference: https://nodejs.org/api/crypto.html#cryptosecureheapused


Article Tags :