From 87df7d3be341cc590249837ed316bd91baf6ebc2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=D0=A1=D0=BA=D0=BE=D0=B2=D0=BE=D1=80=D0=BE=D0=B4=D0=B0=20?= =?utf8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=90=D0=BD=D0=B4=D1=80?= =?utf8?q?=D0=B5=D0=B5=D0=B2=D0=B8=D1=87?= Date: Thu, 27 Aug 2015 12:24:45 +0300 Subject: [PATCH] crypto: Use OPENSSL_cleanse to shred the data. memset() is not useful here, it's efficiently a noop. PR-URL: https://github.com/nodejs/node/pull/2575 Reviewed-By: Fedor Indutny --- src/node_crypto.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/node_crypto.cc b/src/node_crypto.cc index 0e4fc45..eab0e0e 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -4723,8 +4723,8 @@ void EIO_PBKDF2(PBKDF2Request* req) { req->digest(), req->keylen(), reinterpret_cast(req->key()))); - memset(req->pass(), 0, req->passlen()); - memset(req->salt(), 0, req->saltlen()); + OPENSSL_cleanse(req->pass(), req->passlen()); + OPENSSL_cleanse(req->salt(), req->saltlen()); } @@ -4738,7 +4738,7 @@ void EIO_PBKDF2After(PBKDF2Request* req, Local argv[2]) { if (req->error()) { argv[0] = Undefined(req->env()->isolate()); argv[1] = Encode(req->env()->isolate(), req->key(), req->keylen(), BUFFER); - memset(req->key(), 0, req->keylen()); + OPENSSL_cleanse(req->key(), req->keylen()); } else { argv[0] = Exception::Error(req->env()->pbkdf2_error_string()); argv[1] = Undefined(req->env()->isolate()); -- 2.7.4