| // Copyright 2019 The Chromium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "components/sync/engine/cryptographer.h" | |
| #include "base/check.h" | |
| #include "base/logging.h" | |
| #include "components/sync/protocol/encryption.pb.h" | |
| namespace syncer { | |
| Cryptographer::Cryptographer() = default; | |
| Cryptographer::~Cryptographer() = default; | |
| bool Cryptographer::Encrypt(const ::google::protobuf::MessageLite& message, | |
| sync_pb::EncryptedData* encrypted) const { | |
| DCHECK(encrypted); | |
| std::string serialized; | |
| if (!message.SerializeToString(&serialized)) { | |
| DLOG(ERROR) << "Message is invalid/missing a required field."; | |
| return false; | |
| } | |
| return EncryptString(serialized, encrypted); | |
| } | |
| bool Cryptographer::Decrypt(const sync_pb::EncryptedData& encrypted, | |
| ::google::protobuf::MessageLite* message) const { | |
| DCHECK(message); | |
| std::string plaintext; | |
| if (!DecryptToString(encrypted, &plaintext)) { | |
| return false; | |
| } | |
| return message->ParseFromString(plaintext); | |
| } | |
| } // namespace syncer |