diff options
Diffstat (limited to 'components/os_crypt/keychain_password_mac.h')
-rw-r--r-- | components/os_crypt/keychain_password_mac.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/components/os_crypt/keychain_password_mac.h b/components/os_crypt/keychain_password_mac.h new file mode 100644 index 0000000..f044f04 --- /dev/null +++ b/components/os_crypt/keychain_password_mac.h @@ -0,0 +1,36 @@ +// 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. + +#ifndef COMPONENTS_OS_CRYPT_KEYCHAIN_PASSWORD_MAC_H_ +#define COMPONENTS_OS_CRYPT_KEYCHAIN_PASSWORD_MAC_H_ + +#include <string> + +#include "base/macros.h" + +namespace crypto { +class AppleKeychain; +} + +class KeychainPassword { + public: + explicit KeychainPassword(const crypto::AppleKeychain& keychain) + : keychain_(keychain) { + } + + // Get the OSCrypt password for this system. If no password exists + // in the Keychain then one is generated, stored in the Mac keychain, and + // returned. + // If one exists then it is fetched from the Keychain and returned. + // If the user disallows access to the Keychain (or an error occurs) then an + // empty string is returned. + std::string GetPassword() const; + + private: + const crypto::AppleKeychain& keychain_; + + DISALLOW_COPY_AND_ASSIGN(KeychainPassword); +}; + +#endif // COMPONENTS_OS_CRYPT_KEYCHAIN_PASSWORD_MAC_H_ |