| Index: components/encryptor/encryptor_password_mac.mm
|
| diff --git a/components/encryptor/encryptor_password_mac.mm b/components/encryptor/encryptor_password_mac.mm
|
| deleted file mode 100644
|
| index 0cefdd57d813352478887ca7e888f796ff7b4c1b..0000000000000000000000000000000000000000
|
| --- a/components/encryptor/encryptor_password_mac.mm
|
| +++ /dev/null
|
| @@ -1,79 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "components/encryptor/encryptor_password_mac.h"
|
| -
|
| -#import <Security/Security.h>
|
| -
|
| -#include "base/base64.h"
|
| -#include "base/mac/mac_logging.h"
|
| -#include "base/rand_util.h"
|
| -#include "crypto/apple_keychain.h"
|
| -
|
| -using crypto::AppleKeychain;
|
| -
|
| -namespace {
|
| -
|
| -// Generates a random password and adds it to the Keychain. The added password
|
| -// is returned from the function. If an error occurs, an empty password is
|
| -// returned.
|
| -std::string AddRandomPasswordToKeychain(const AppleKeychain& keychain,
|
| - const std::string& service_name,
|
| - const std::string& account_name) {
|
| - // Generate a password with 128 bits of randomness.
|
| - const int kBytes = 128 / 8;
|
| - std::string password;
|
| - base::Base64Encode(base::RandBytesAsString(kBytes), &password);
|
| - void* password_data =
|
| - const_cast<void*>(static_cast<const void*>(password.data()));
|
| -
|
| - OSStatus error = keychain.AddGenericPassword(NULL,
|
| - service_name.size(),
|
| - service_name.data(),
|
| - account_name.size(),
|
| - account_name.data(),
|
| - password.size(),
|
| - password_data,
|
| - NULL);
|
| -
|
| - if (error != noErr) {
|
| - OSSTATUS_DLOG(ERROR, error) << "Keychain add failed";
|
| - return std::string();
|
| - }
|
| -
|
| - return password;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -std::string EncryptorPassword::GetEncryptorPassword() const {
|
| - // These two strings ARE indeed user facing. But they are used to access
|
| - // the encryption keyword. So as to not lose encrypted data when system
|
| - // locale changes we DO NOT LOCALIZE.
|
| - const std::string service_name = "Chrome Safe Storage";
|
| - const std::string account_name = "Chrome";
|
| -
|
| - UInt32 password_length = 0;
|
| - void* password_data = NULL;
|
| - OSStatus error = keychain_.FindGenericPassword(NULL,
|
| - service_name.size(),
|
| - service_name.data(),
|
| - account_name.size(),
|
| - account_name.data(),
|
| - &password_length,
|
| - &password_data,
|
| - NULL);
|
| -
|
| - if (error == noErr) {
|
| - std::string password =
|
| - std::string(static_cast<char*>(password_data), password_length);
|
| - keychain_.ItemFreeContent(NULL, password_data);
|
| - return password;
|
| - } else if (error == errSecItemNotFound) {
|
| - return AddRandomPasswordToKeychain(keychain_, service_name, account_name);
|
| - } else {
|
| - OSSTATUS_DLOG(ERROR, error) << "Keychain lookup failed";
|
| - return std::string();
|
| - }
|
| -}
|
|
|