libweave: Remove few small base/ dependencies In particular Contains() and SimpleTestClock and StringPiece from crypto. Also updated some includes. BUG=brillo:1256 TEST=`FEATURES=test emerge-gizmo libweave buffet` Change-Id: I4efd2e8154c7c432532d7e18afec9acf10f156f1 Reviewed-on: https://chromium-review.googlesource.com/294340 Reviewed-by: Alex Vakulenko <avakulenko@chromium.org> Commit-Queue: Vitaly Buka <vitalybuka@chromium.org> Tested-by: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/libweave/external/crypto/p224.cc b/libweave/external/crypto/p224.cc index b7c66c5..99fd2d1 100644 --- a/libweave/external/crypto/p224.cc +++ b/libweave/external/crypto/p224.cc
@@ -11,16 +11,32 @@ #include <string.h> -#include <base/sys_byteorder.h> - namespace weave { namespace crypto { namespace p224 { namespace { -using base::HostToNet32; -using base::NetToHost32; +inline uint32 ByteSwap(uint32 x) { + return ((x & 0x000000fful) << 24) | ((x & 0x0000ff00ul) << 8) | + ((x & 0x00ff0000ul) >> 8) | ((x & 0xff000000ul) >> 24); +} + +inline uint32 HostToNet32(uint32 x) { +#if defined(ARCH_CPU_LITTLE_ENDIAN) + return ByteSwap(x); +#else + return x; +#endif +} + +inline uint32 NetToHost32(uint32 x) { +#if defined(ARCH_CPU_LITTLE_ENDIAN) + return ByteSwap(x); +#else + return x; +#endif +} // Field element functions. // @@ -655,7 +671,7 @@ } // anonymous namespace -bool Point::SetFromString(const base::StringPiece& in) { +bool Point::SetFromString(const std::string& in) { if (in.size() != 2*28) return false; const uint32* inwords = reinterpret_cast<const uint32*>(in.data());
diff --git a/libweave/external/crypto/p224.h b/libweave/external/crypto/p224.h index a835ecd..ea15acf 100644 --- a/libweave/external/crypto/p224.h +++ b/libweave/external/crypto/p224.h
@@ -8,7 +8,6 @@ #include <string> #include <base/basictypes.h> -#include <base/strings/string_piece.h> namespace weave { namespace crypto { @@ -26,7 +25,7 @@ // representation. The external point representation is an (x, y) pair of a // point on the curve. Each field element is represented as a big-endian // number < p. - bool SetFromString(const base::StringPiece& in); + bool SetFromString(const std::string& in); // ToString returns an external representation of the Point. std::string ToString() const;
diff --git a/libweave/external/crypto/p224_spake.cc b/libweave/external/crypto/p224_spake.cc index 634c7e6..890002a 100644 --- a/libweave/external/crypto/p224_spake.cc +++ b/libweave/external/crypto/p224_spake.cc
@@ -115,10 +115,9 @@ } // anonymous namespace -P224EncryptedKeyExchange::P224EncryptedKeyExchange( - PeerType peer_type, const base::StringPiece& password) - : state_(kStateInitial), - is_server_(peer_type == kPeerTypeServer) { +P224EncryptedKeyExchange::P224EncryptedKeyExchange(PeerType peer_type, + const std::string& password) + : state_(kStateInitial), is_server_(peer_type == kPeerTypeServer) { memset(&x_, 0, sizeof(x_)); memset(&expected_authenticator_, 0, sizeof(expected_authenticator_)); @@ -165,7 +164,7 @@ } P224EncryptedKeyExchange::Result P224EncryptedKeyExchange::ProcessMessage( - const base::StringPiece& message) { + const std::string& message) { if (state_ == kStateRecvHash) { // This is the final state of the protocol: we are reading the peer's // authentication hash and checking that it matches the one that we expect. @@ -212,11 +211,11 @@ std::string client_masked_dh, server_masked_dh; if (is_server_) { - client_masked_dh = message.as_string(); + client_masked_dh = message; server_masked_dh = next_message_; } else { client_masked_dh = next_message_; - server_masked_dh = message.as_string(); + server_masked_dh = message; } // Now we calculate the hashes that each side will use to prove to the other
diff --git a/libweave/external/crypto/p224_spake.h b/libweave/external/crypto/p224_spake.h index aea280d..547f8dc 100644 --- a/libweave/external/crypto/p224_spake.h +++ b/libweave/external/crypto/p224_spake.h
@@ -8,7 +8,6 @@ #include <string> #include <base/gtest_prod_util.h> -#include <base/strings/string_piece.h> #include "libweave/external/crypto/p224.h" #include "libweave/external/crypto/sha2.h" @@ -56,8 +55,7 @@ // password: secret session password. Both parties to the // authentication must pass the same value. For the case of a // TLS connection, see RFC 5705. - P224EncryptedKeyExchange(PeerType peer_type, - const base::StringPiece& password); + P224EncryptedKeyExchange(PeerType peer_type, const std::string& password); // GetNextMessage returns a byte string which must be passed to the other // party in the authentication. @@ -65,7 +63,7 @@ // ProcessMessage processes a message which must have been generated by a // call to GetNextMessage() by the other party. - Result ProcessMessage(const base::StringPiece& message); + Result ProcessMessage(const std::string& message); // In the event that ProcessMessage() returns kResultFailed, error will // return a human readable error message.
diff --git a/libweave/external/crypto/p224_unittest.cc b/libweave/external/crypto/p224_unittest.cc index 5d149da..c0d3b2f 100644 --- a/libweave/external/crypto/p224_unittest.cc +++ b/libweave/external/crypto/p224_unittest.cc
@@ -771,9 +771,9 @@ TEST(P224, ExternalToInternalAndBack) { Point point; - EXPECT_TRUE(point.SetFromString(base::StringPiece( - reinterpret_cast<const char *>(kBasePointExternal), - sizeof(kBasePointExternal)))); + EXPECT_TRUE(point.SetFromString( + std::string(reinterpret_cast<const char*>(kBasePointExternal), + sizeof(kBasePointExternal)))); const std::string external = point.ToString(); @@ -797,10 +797,10 @@ TEST(P224, Addition) { Point a, b, minus_b, sum, a_again; - ASSERT_TRUE(a.SetFromString(base::StringPiece( - reinterpret_cast<const char *>(kNISTTestVectors[10].affine), 56))); - ASSERT_TRUE(b.SetFromString(base::StringPiece( - reinterpret_cast<const char *>(kNISTTestVectors[11].affine), 56))); + ASSERT_TRUE(a.SetFromString(std::string( + reinterpret_cast<const char*>(kNISTTestVectors[10].affine), 56))); + ASSERT_TRUE(b.SetFromString(std::string( + reinterpret_cast<const char*>(kNISTTestVectors[11].affine), 56))); p224::Negate(b, &minus_b); p224::Add(a, b, &sum);
diff --git a/libweave/external/crypto/sha2.cc b/libweave/external/crypto/sha2.cc index 59a111d..d4e3ac9 100644 --- a/libweave/external/crypto/sha2.cc +++ b/libweave/external/crypto/sha2.cc
@@ -12,14 +12,13 @@ namespace weave { namespace crypto { -void SHA256HashString(const base::StringPiece& str, uint8_t* output, - size_t len) { +void SHA256HashString(const std::string& str, uint8_t* output, size_t len) { std::string hash = SHA256HashString(str); len = std::min(hash.size(), len); std::copy(hash.begin(), hash.begin() + len, output); } -std::string SHA256HashString(const base::StringPiece& str) { +std::string SHA256HashString(const std::string& str) { SHA256_CTX sha_context; SHA256_Init(&sha_context); SHA256_Update(&sha_context, str.data(), str.size());
diff --git a/libweave/external/crypto/sha2.h b/libweave/external/crypto/sha2.h index 34f6af8..920a798 100644 --- a/libweave/external/crypto/sha2.h +++ b/libweave/external/crypto/sha2.h
@@ -7,8 +7,6 @@ #include <string> -#include <base/strings/string_piece.h> - namespace weave { namespace crypto { @@ -21,12 +19,11 @@ // Computes the SHA-256 hash of the input string 'str' and stores the first // 'len' bytes of the hash in the output buffer 'output'. If 'len' > 32, // only 32 bytes (the full hash) are stored in the 'output' buffer. -void SHA256HashString(const base::StringPiece& str, uint8_t* output, - size_t len); +void SHA256HashString(const std::string& str, uint8_t* output, size_t len); // Convenience version of the above that returns the result in a 32-byte // string. -std::string SHA256HashString(const base::StringPiece& str); +std::string SHA256HashString(const std::string& str); } // namespace crypto } // namespace weave
diff --git a/libweave/include/weave/error.h b/libweave/include/weave/error.h index 278d2f9..344f56f 100644 --- a/libweave/include/weave/error.h +++ b/libweave/include/weave/error.h
@@ -9,7 +9,8 @@ #include <string> #include <base/macros.h> -#include <base/tracked_objects.h> +#include <base/location.h> +#include <base/compiler_specific.h> #include <weave/export.h> namespace weave {
diff --git a/libweave/include/weave/mock_task_runner.h b/libweave/include/weave/mock_task_runner.h index 313e05f..d0d06f0 100644 --- a/libweave/include/weave/mock_task_runner.h +++ b/libweave/include/weave/mock_task_runner.h
@@ -12,7 +12,7 @@ #include <utility> #include <vector> -#include <base/test/simple_test_clock.h> +#include <base/time/clock.h> #include <gmock/gmock.h> namespace weave { @@ -51,7 +51,7 @@ } } - base::SimpleTestClock* GetClock() { return &test_clock_; } + base::Clock* GetClock() { return &test_clock_; } private: void SaveTask(const tracked_objects::Location& from_here, @@ -69,7 +69,17 @@ }; size_t counter_{0}; // Keeps order of tasks with the same time. - base::SimpleTestClock test_clock_; + + class TestClock : public base::Clock { + public: + base::Time Now() override { return now_; } + + void SetNow(base::Time now) { now_ = now; } + + private: + base::Time now_; + }; + TestClock test_clock_; std::priority_queue<QueueItem, std::vector<QueueItem>,
diff --git a/libweave/include/weave/task_runner.h b/libweave/include/weave/task_runner.h index 0b349b6..66b83ab 100644 --- a/libweave/include/weave/task_runner.h +++ b/libweave/include/weave/task_runner.h
@@ -10,6 +10,7 @@ #include <vector> #include <base/callback.h> +#include <base/location.h> namespace weave {
diff --git a/libweave/src/base_api_handler.cc b/libweave/src/base_api_handler.cc index 3e641d7..b9e4de4 100644 --- a/libweave/src/base_api_handler.cc +++ b/libweave/src/base_api_handler.cc
@@ -4,6 +4,8 @@ #include "libweave/src/base_api_handler.h" +#include <base/bind.h> + #include "libweave/src/commands/command_instance.h" #include "libweave/src/commands/command_manager.h" #include "libweave/src/device_registration_info.h"
diff --git a/libweave/src/commands/command_queue.h b/libweave/src/commands/command_queue.h index 851a283..66cc2d2 100644 --- a/libweave/src/commands/command_queue.h +++ b/libweave/src/commands/command_queue.h
@@ -14,6 +14,7 @@ #include <base/callback.h> #include <base/macros.h> +#include <base/time/time.h> #include <weave/commands.h> #include "libweave/src/commands/command_instance.h"
diff --git a/libweave/src/commands/prop_constraints.cc b/libweave/src/commands/prop_constraints.cc index c1ab1c4..babba85 100644 --- a/libweave/src/commands/prop_constraints.cc +++ b/libweave/src/commands/prop_constraints.cc
@@ -5,6 +5,7 @@ #include "libweave/src/commands/prop_constraints.h" #include <base/json/json_writer.h> +#include <base/logging.h> #include "libweave/src/commands/prop_values.h" #include "libweave/src/commands/schema_constants.h"
diff --git a/libweave/src/commands/schema_utils.cc b/libweave/src/commands/schema_utils.cc index 85455ed..b48b89b 100644 --- a/libweave/src/commands/schema_utils.cc +++ b/libweave/src/commands/schema_utils.cc
@@ -9,6 +9,7 @@ #include <string> #include <base/json/json_writer.h> +#include <base/logging.h> #include "libweave/src/commands/object_schema.h" #include "libweave/src/commands/prop_types.h"
diff --git a/libweave/src/commands/schema_utils.h b/libweave/src/commands/schema_utils.h index 5691ddd..570fb42 100644 --- a/libweave/src/commands/schema_utils.h +++ b/libweave/src/commands/schema_utils.h
@@ -12,6 +12,7 @@ #include <type_traits> #include <vector> +#include <base/logging.h> #include <base/values.h> #include <weave/error.h>
diff --git a/libweave/src/commands/unittest_utils.cc b/libweave/src/commands/unittest_utils.cc index 0b9c2e3..12a1c02 100644 --- a/libweave/src/commands/unittest_utils.cc +++ b/libweave/src/commands/unittest_utils.cc
@@ -5,6 +5,7 @@ #include "libweave/src/commands/unittest_utils.h" #include <base/json/json_reader.h> +#include <base/logging.h> namespace weave { namespace unittests {
diff --git a/libweave/src/data_encoding_unittest.cc b/libweave/src/data_encoding_unittest.cc index 76265cd..6a546f8 100644 --- a/libweave/src/data_encoding_unittest.cc +++ b/libweave/src/data_encoding_unittest.cc
@@ -7,6 +7,7 @@ #include <algorithm> #include <numeric> +#include <base/logging.h> #include <gtest/gtest.h> namespace weave {
diff --git a/libweave/src/device_manager.cc b/libweave/src/device_manager.cc index 0f51098..4187df7 100644 --- a/libweave/src/device_manager.cc +++ b/libweave/src/device_manager.cc
@@ -6,6 +6,8 @@ #include <string> +#include <base/bind.h> + #include "libweave/src/base_api_handler.h" #include "libweave/src/commands/command_manager.h" #include "libweave/src/config.h"
diff --git a/libweave/src/device_registration_info.h b/libweave/src/device_registration_info.h index 45f2257..564fb87 100644 --- a/libweave/src/device_registration_info.h +++ b/libweave/src/device_registration_info.h
@@ -13,11 +13,8 @@ #include <base/callback.h> #include <base/macros.h> -#include <base/memory/ref_counted.h> #include <base/memory/weak_ptr.h> -#include <base/single_thread_task_runner.h> #include <base/time/time.h> -#include <base/timer/timer.h> #include <weave/error.h> #include <weave/cloud.h> #include <weave/http_client.h>
diff --git a/libweave/src/notification/pull_channel.h b/libweave/src/notification/pull_channel.h index 7b10152..7f1b789 100644 --- a/libweave/src/notification/pull_channel.h +++ b/libweave/src/notification/pull_channel.h
@@ -10,6 +10,7 @@ #include <base/macros.h> #include <base/memory/weak_ptr.h> +#include <base/time/time.h> #include "libweave/src/notification/notification_channel.h"
diff --git a/libweave/src/notification/xmpp_channel_unittest.cc b/libweave/src/notification/xmpp_channel_unittest.cc index 1816288..eaacf83 100644 --- a/libweave/src/notification/xmpp_channel_unittest.cc +++ b/libweave/src/notification/xmpp_channel_unittest.cc
@@ -7,7 +7,6 @@ #include <algorithm> #include <queue> -#include <base/test/simple_test_clock.h> #include <gtest/gtest.h> #include <weave/mock_task_runner.h>
diff --git a/libweave/src/notification/xmpp_iq_stanza_handler.h b/libweave/src/notification/xmpp_iq_stanza_handler.h index eb1f1b6..b4edcac 100644 --- a/libweave/src/notification/xmpp_iq_stanza_handler.h +++ b/libweave/src/notification/xmpp_iq_stanza_handler.h
@@ -11,8 +11,8 @@ #include <base/callback_forward.h> #include <base/macros.h> +#include <base/time/time.h> #include <base/memory/weak_ptr.h> -#include <base/single_thread_task_runner.h> #include "libweave/src/notification/xmpp_stream_parser.h"
diff --git a/libweave/src/privet/privet_handler.cc b/libweave/src/privet/privet_handler.cc index b83df36..97a8d6a 100644 --- a/libweave/src/privet/privet_handler.cc +++ b/libweave/src/privet/privet_handler.cc
@@ -11,7 +11,6 @@ #include <base/bind.h> #include <base/location.h> -#include <base/stl_util.h> #include <base/strings/string_number_conversions.h> #include <base/strings/stringprintf.h> #include <base/values.h> @@ -533,7 +532,8 @@ PairingType pairing; std::set<PairingType> modes = security_->GetPairingTypes(); - if (!StringToEnum(pairing_str, &pairing) || !ContainsKey(modes, pairing)) { + if (!StringToEnum(pairing_str, &pairing) || + modes.find(pairing) == modes.end()) { Error::AddToPrintf(&error, FROM_HERE, errors::kDomain, errors::kInvalidParams, kInvalidParamValueFormat, kPairingKey, pairing_str.c_str()); @@ -542,7 +542,8 @@ CryptoType crypto; std::set<CryptoType> cryptos = security_->GetCryptoTypes(); - if (!StringToEnum(crypto_str, &crypto) || !ContainsKey(cryptos, crypto)) { + if (!StringToEnum(crypto_str, &crypto) || + cryptos.find(crypto) == cryptos.end()) { Error::AddToPrintf(&error, FROM_HERE, errors::kDomain, errors::kInvalidParams, kInvalidParamValueFormat, kCryptoKey, crypto_str.c_str());
diff --git a/libweave/src/privet/privet_types.h b/libweave/src/privet/privet_types.h index b46e5b6..d013500 100644 --- a/libweave/src/privet/privet_types.h +++ b/libweave/src/privet/privet_types.h
@@ -7,6 +7,7 @@ #include <string> +#include <base/logging.h> #include <weave/error.h> namespace weave {
diff --git a/libweave/src/privet/security_manager.cc b/libweave/src/privet/security_manager.cc index 409f09a..588cbd3 100644 --- a/libweave/src/privet/security_manager.cc +++ b/libweave/src/privet/security_manager.cc
@@ -13,7 +13,6 @@ #include <base/guid.h> #include <base/logging.h> #include <base/rand_util.h> -#include <base/stl_util.h> #include <base/strings/string_number_conversions.h> #include <base/strings/stringprintf.h> #include <base/time/time.h>
diff --git a/libweave/src/privet/security_manager.h b/libweave/src/privet/security_manager.h index 60c59e8..07f8c0c 100644 --- a/libweave/src/privet/security_manager.h +++ b/libweave/src/privet/security_manager.h
@@ -12,6 +12,7 @@ #include <vector> #include <base/callback.h> +#include <base/gtest_prod_util.h> #include <base/memory/weak_ptr.h> #include <weave/error.h>
diff --git a/libweave/src/states/state_change_queue.cc b/libweave/src/states/state_change_queue.cc index 345e532..8f787ca 100644 --- a/libweave/src/states/state_change_queue.cc +++ b/libweave/src/states/state_change_queue.cc
@@ -15,8 +15,6 @@ bool StateChangeQueue::NotifyPropertiesUpdated(base::Time timestamp, ValueMap changed_properties) { - DCHECK(thread_checker_.CalledOnValidThread()); - auto& stored_changes = state_changes_[timestamp]; // Merge the old property set. changed_properties.insert(stored_changes.begin(), stored_changes.end()); @@ -41,7 +39,6 @@ } std::vector<StateChange> StateChangeQueue::GetAndClearRecordedStateChanges() { - DCHECK(thread_checker_.CalledOnValidThread()); std::vector<StateChange> changes; changes.reserve(state_changes_.size()); for (const auto& pair : state_changes_) {
diff --git a/libweave/src/states/state_change_queue.h b/libweave/src/states/state_change_queue.h index 4b2acaf..3289209 100644 --- a/libweave/src/states/state_change_queue.h +++ b/libweave/src/states/state_change_queue.h
@@ -30,11 +30,6 @@ void NotifyStateUpdatedOnServer(UpdateID update_id) override; private: - // To make sure we do not call NotifyPropertiesUpdated() and - // GetAndClearRecordedStateChanges() on different threads, |thread_checker_| - // is here to help us with verifying the single-threaded operation. - base::ThreadChecker thread_checker_; - // Maximum queue size. If it is full, the oldest state update records are // merged together until the queue size is within the size limit. const size_t max_queue_size_;
diff --git a/libweave/src/weave_testrunner.cc b/libweave/src/weave_testrunner.cc index 215818f..5de7cae 100644 --- a/libweave/src/weave_testrunner.cc +++ b/libweave/src/weave_testrunner.cc
@@ -2,13 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include <base/at_exit.h> #include <base/command_line.h> +#include <base/logging.h> #include <gmock/gmock.h> #include <gtest/gtest.h> int main(int argc, char** argv) { - base::AtExitManager exit_manager; base::CommandLine::Init(argc, argv); logging::LoggingSettings settings;