Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(243)

Unified Diff: net/http/http_mac_signature.cc

Issue 7522014: Add WARN_UNUSED_RESULT to crypto/hmac.h (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix a few more unchecked places from the clang bots Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/http/http_mac_signature.cc
diff --git a/net/http/http_mac_signature.cc b/net/http/http_mac_signature.cc
index 32f1e0cd4c5dc20a7eda0e3d6898d4a4144b6bc2..d69b4acfeb89350da2ed9943856c8149a03ac605 100644
--- a/net/http/http_mac_signature.cc
+++ b/net/http/http_mac_signature.cc
@@ -95,28 +95,35 @@ bool HttpMacSignature::AddHttpInfo(const std::string& method,
return true;
}
-std::string HttpMacSignature::GenerateAuthorizationHeader() {
+bool HttpMacSignature::GenerateAuthorizationHeader(std::string* header) {
DCHECK(!id_.empty()) << "Call AddStateInfo first.";
DCHECK(!method_.empty()) << "Call AddHttpInfo first.";
+ if (id_.empty() || method_.empty())
+ return false;
+
std::string age = base::Int64ToString(
(base::Time::Now() - creation_date_).InSeconds());
std::string nonce = GenerateNonce();
- return GenerateHeaderString(age, nonce);
+ return GenerateHeaderString(age, nonce, header);
}
-std::string HttpMacSignature::GenerateHeaderString(const std::string& age,
- const std::string& nonce) {
- std::string mac = GenerateMAC(age, nonce);
+bool HttpMacSignature::GenerateHeaderString(const std::string& age,
+ const std::string& nonce,
+ std::string* header) {
+ std::string mac;
+ if (!GenerateMAC(age, nonce, &mac))
+ return false;
DCHECK(IsPlainString(age));
DCHECK(IsPlainString(nonce));
DCHECK(IsPlainString(mac));
- return "MAC id=\"" + id_ +
+ *header = "MAC id=\"" + id_ +
"\", nonce=\"" + age + ":" + nonce +
"\", mac=\"" + mac + "\"";
+ return true;
}
std::string HttpMacSignature::GenerateNormalizedRequest(
@@ -135,25 +142,34 @@ std::string HttpMacSignature::GenerateNormalizedRequest(
return normalized_request;
}
-std::string HttpMacSignature::GenerateMAC(const std::string& age,
- const std::string& nonce) {
+bool HttpMacSignature::GenerateMAC(const std::string& age,
+ const std::string& nonce,
+ std::string* mac) {
std::string request = GenerateNormalizedRequest(age, nonce);
crypto::HMAC hmac(mac_algorithm_);
- hmac.Init(mac_key_);
+ if (!hmac.Init(mac_key_)) {
+ NOTREACHED();
+ return false;
+ }
std::string signature;
size_t length = hmac.DigestLength();
char* buffer = WriteInto(&signature, length);
- bool result = hmac.Sign(request,
- reinterpret_cast<unsigned char*>(buffer),
- length);
- DCHECK(result);
+ if (!hmac.Sign(request, reinterpret_cast<unsigned char*>(buffer),
+ length)) {
+ NOTREACHED();
+ return false;
+ }
std::string encoded_signature;
- result = base::Base64Encode(signature, &encoded_signature);
- DCHECK(result);
- return encoded_signature;
+ if (!base::Base64Encode(signature, &encoded_signature)) {
+ NOTREACHED();
+ return false;
+ }
+
+ mac->swap(encoded_signature);
+ return true;
}
} // namespace net

Powered by Google App Engine
This is Rietveld 408576698