Fix/suppress system/security google-explicit-constructor warnings

* Add explicit to conversion constructors/operators
* Use NOLINT or NOLINTNEXTLINE to suppress warnings on intended converters

Bug: 28341362
Test: make with WITH_TIDY=1 DEFAULT_GLOBAL_TIDY_CHECKS=-*,google-explicit-constructor
Change-Id: I4ed5aea36fcdcd8dbda9a4be9607c5af606f2a08
diff --git a/keystore/blob.h b/keystore/blob.h
index 92e4514..ff9195d 100644
--- a/keystore/blob.h
+++ b/keystore/blob.h
@@ -115,7 +115,7 @@
 
     Blob& operator=(const Blob& rhs);
     Blob& operator=(Blob&& rhs);
-    operator bool() const { return bool(mBlob); }
+    explicit operator bool() const { return bool(mBlob); }
 
     const uint8_t* getValue() const { return mBlob->value; }
 
@@ -239,6 +239,7 @@
     static std::condition_variable locked_blobs_mutex_cond_var_;
 
     const KeyBlobEntry* entry_;
+    // NOLINTNEXTLINE(google-explicit-constructor)
     LockedKeyBlobEntry(const KeyBlobEntry& entry) : entry_(&entry) {}
 
     static void put(const KeyBlobEntry& entry);
@@ -267,7 +268,7 @@
     std::tuple<ResponseCode, Blob, Blob> readBlobs(const uint8_t* aes_key, State state) const;
     ResponseCode deleteBlobs() const;
 
-    inline operator bool() const { return entry_ != nullptr; }
+    inline explicit operator bool() const { return entry_ != nullptr; }
     inline const KeyBlobEntry& operator*() const { return *entry_; }
     inline const KeyBlobEntry* operator->() const { return entry_; }
 };