diff options
author | Maksim Ivanov <emaxx@google.com> | 2018-06-07 00:01:08 +0200 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-06-07 23:33:43 -0700 |
commit | aeb7bb4b05662d0ccd8a6104414dbc5af71f6ad5 (patch) | |
tree | 3ad3b48829e37573f8d2ef436b043b446014d529 /brillo/secure_blob.cc | |
parent | 30b3a16baa5859ac5934f81c385ded0c84a68525 (diff) | |
download | platform_external_libbrillo-aeb7bb4b05662d0ccd8a6104414dbc5af71f6ad5.tar.gz platform_external_libbrillo-aeb7bb4b05662d0ccd8a6104414dbc5af71f6ad5.tar.bz2 platform_external_libbrillo-aeb7bb4b05662d0ccd8a6104414dbc5af71f6ad5.zip |
libbrillo: Blob combining utility
Add a function that concatenates given Blob's.
This provides analogous functionality of SecureBlob::Combine()
to Blob.
BUG=chromium:728047
TEST=new unit test (BlobTest.CombineBlobs)
Change-Id: I33218bd81a49a265d021e7afdcf438b7fc70921d
Reviewed-on: https://chromium-review.googlesource.com/1089338
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Maksim Ivanov <emaxx@chromium.org>
Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Diffstat (limited to 'brillo/secure_blob.cc')
-rw-r--r-- | brillo/secure_blob.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/brillo/secure_blob.cc b/brillo/secure_blob.cc index 70c6f6e..4294b14 100644 --- a/brillo/secure_blob.cc +++ b/brillo/secure_blob.cc @@ -18,6 +18,17 @@ Blob BlobFromString(const std::string& bytes) { return Blob(bytes.begin(), bytes.end()); } +Blob CombineBlobs(const std::initializer_list<Blob>& blobs) { + size_t total_size = 0; + for (const auto& blob : blobs) + total_size += blob.size(); + Blob concatenation; + concatenation.reserve(total_size); + for (const auto& blob : blobs) + concatenation.insert(concatenation.end(), blob.begin(), blob.end()); + return concatenation; +} + SecureBlob::SecureBlob(const Blob& blob) : SecureBlob(blob.begin(), blob.end()) {} |