| Index: components/os_crypt/key_storage_linux.h | 
| diff --git a/components/os_crypt/key_storage_linux.h b/components/os_crypt/key_storage_linux.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..0f8449178b8f6fbdac2bad8285c863d339d31317 | 
| --- /dev/null | 
| +++ b/components/os_crypt/key_storage_linux.h | 
| @@ -0,0 +1,36 @@ | 
| +// Copyright 2016 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_KEY_STORAGE_LINUX_H_ | 
| +#define COMPONENTS_OS_CRYPT_KEY_STORAGE_LINUX_H_ | 
| + | 
| +#include <memory> | 
| +#include <string> | 
| + | 
| +#include "base/macros.h" | 
| + | 
| +// An API for retrieving OSCrypt's password from the system's password storage | 
| +// service. | 
| +class KeyStorageLinux { | 
| + public: | 
| +  KeyStorageLinux() = default; | 
| +  virtual ~KeyStorageLinux() = default; | 
| + | 
| +  // Tries to load all known key storages. Returns the first that succeeds or | 
| +  // null if none succeed. | 
| +  static std::unique_ptr<KeyStorageLinux> CreateService(); | 
| + | 
| +  // Gets the encryption key from the OS password-managing library. If a key is | 
| +  // not found, a new key will be generated, stored and returned. | 
| +  virtual std::string GetKey() = 0; | 
| + | 
| + protected: | 
| +  // Loads the key storage. Returns false if the service is not available. | 
| +  virtual bool Init() = 0; | 
| + | 
| + private: | 
| +  DISALLOW_COPY_AND_ASSIGN(KeyStorageLinux); | 
| +}; | 
| + | 
| +#endif  // COMPONENTS_OS_CRYPT_KEY_STORAGE_LINUX_H_ | 
|  |