summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-27 02:13:13 +0000
committerrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-27 02:13:13 +0000
commitacb66cb86c08e4f861f46e1bbbf89078d474d918 (patch)
tree0d2d02f717ad93b430f16a8c9c553ce5422b4860 /crypto
parent4cf6acf25c08cfe7ca0903767fec12e562c16a36 (diff)
downloadchromium_src-acb66cb86c08e4f861f46e1bbbf89078d474d918.zip
chromium_src-acb66cb86c08e4f861f46e1bbbf89078d474d918.tar.gz
chromium_src-acb66cb86c08e4f861f46e1bbbf89078d474d918.tar.bz2
CRYPTO - Resolved comments from wtc. Used scoped_ptr<char[]> and
deletion of virtual and removed and'ing with 0xFF. R=wtc@chromium.org TEST=crypt unittests Review URL: https://chromiumcodereview.appspot.com/12330157 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184832 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'crypto')
-rw-r--r--crypto/hkdf.cc11
-rw-r--r--crypto/hkdf.h2
2 files changed, 6 insertions, 7 deletions
diff --git a/crypto/hkdf.cc b/crypto/hkdf.cc
index 9b34e8b..e621bcb 100644
--- a/crypto/hkdf.cc
+++ b/crypto/hkdf.cc
@@ -49,7 +49,7 @@ HKDF::HKDF(const base::StringPiece& secret,
output_.resize(n * kSHA256HashLength);
base::StringPiece previous;
- char* buf = new char[kSHA256HashLength + info.size() + 1];
+ scoped_ptr<char[]> buf(new char[kSHA256HashLength + info.size() + 1]);
uint8 digest[kSHA256HashLength];
HMAC hmac(HMAC::SHA256);
@@ -57,13 +57,13 @@ HKDF::HKDF(const base::StringPiece& secret,
DCHECK(result);
for (size_t i = 0; i < n; i++) {
- memcpy(buf, previous.data(), previous.size());
+ memcpy(buf.get(), previous.data(), previous.size());
size_t j = previous.size();
- memcpy(buf + j, info.data(), info.size());
+ memcpy(buf.get() + j, info.data(), info.size());
j += info.size();
- buf[j++] = static_cast<char>((i + 1) & 0xFF);
+ buf[j++] = static_cast<char>(i + 1);
- result = hmac.Sign(base::StringPiece(buf, j), digest, sizeof(digest));
+ result = hmac.Sign(base::StringPiece(buf.get(), j), digest, sizeof(digest));
DCHECK(result);
memcpy(&output_[i*sizeof(digest)], digest, sizeof(digest));
@@ -83,7 +83,6 @@ HKDF::HKDF(const base::StringPiece& secret,
j += iv_bytes_to_generate;
server_write_iv_ = base::StringPiece(reinterpret_cast<char*>(&output_[j]),
iv_bytes_to_generate);
- delete[] buf;
}
HKDF::~HKDF() {
diff --git a/crypto/hkdf.h b/crypto/hkdf.h
index 4306d3f..c980c36 100644
--- a/crypto/hkdf.h
+++ b/crypto/hkdf.h
@@ -35,7 +35,7 @@ class CRYPTO_EXPORT HKDF {
const base::StringPiece& info,
size_t key_bytes_to_generate,
size_t iv_bytes_to_generate);
- virtual ~HKDF();
+ ~HKDF();
base::StringPiece client_write_key() const {
return client_write_key_;