aboutsummaryrefslogtreecommitdiffstats
path: root/brillo/secure_blob.cc
diff options
context:
space:
mode:
authorMaksim Ivanov <emaxx@google.com>2018-06-07 00:01:08 +0200
committerchrome-bot <chrome-bot@chromium.org>2018-06-07 23:33:43 -0700
commitaeb7bb4b05662d0ccd8a6104414dbc5af71f6ad5 (patch)
tree3ad3b48829e37573f8d2ef436b043b446014d529 /brillo/secure_blob.cc
parent30b3a16baa5859ac5934f81c385ded0c84a68525 (diff)
downloadplatform_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.cc11
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()) {}