15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "components/password_manager/core/browser/login_database.h"
6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "base/strings/string_util.h"
8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "components/os_crypt/os_crypt.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochnamespace password_manager {
11c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch
1268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)LoginDatabase::EncryptionResult LoginDatabase::EncryptedString(
13a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    const base::string16& plain_text,
1468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    std::string* cipher_text) const {
15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  if (OSCrypt::EncryptString16(plain_text, cipher_text))
1668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    return ENCRYPTION_RESULT_SUCCESS;
1768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  return ENCRYPTION_RESULT_ITEM_FAILURE;
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)LoginDatabase::EncryptionResult LoginDatabase::DecryptedString(
2168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    const std::string& cipher_text,
22a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    base::string16* plain_text) const {
23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  if (OSCrypt::DecryptString16(cipher_text, plain_text))
2468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    return ENCRYPTION_RESULT_SUCCESS;
2568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  return ENCRYPTION_RESULT_ITEM_FAILURE;
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
27c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch
28c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch}  // namespace password_manager
29