Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1150)

Unified Diff: chrome/browser/password_manager/encryptor_password_mac.mm

Issue 12902030: Make Encryptor a component. Used by //chrome and (soon) //components/webdata. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove duplicate include. Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/password_manager/encryptor_password_mac.mm
diff --git a/chrome/browser/password_manager/encryptor_password_mac.mm b/chrome/browser/password_manager/encryptor_password_mac.mm
deleted file mode 100644
index d472fad348e5e9d09691d44d8074e45b8686facc..0000000000000000000000000000000000000000
--- a/chrome/browser/password_manager/encryptor_password_mac.mm
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright (c) 2012 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 "chrome/browser/password_manager/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"
-#include "ui/base/l10n/l10n_util.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();
- }
-}

Powered by Google App Engine
This is Rietveld 408576698