blob: 95f603a7ce8c8c285079aa4bdcd355ab4e8f3636 [file]
// 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