1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_CREDENTIALS_GETTER_H_ 6#define CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_CREDENTIALS_GETTER_H_ 7 8#include <string> 9#include <vector> 10 11#include "base/basictypes.h" 12#include "chrome/browser/extensions/api/networking_private/networking_private_service_client.h" 13#include "content/public/browser/browser_thread.h" 14#include "content/public/browser/utility_process_host_client.h" 15 16namespace extensions { 17 18// NetworkingPrivateCredentialsGetter gets plain-text WiFi credentials from the 19// system and encrypts it with public key. 20class NetworkingPrivateCredentialsGetter { 21 public: 22 static NetworkingPrivateCredentialsGetter* Create(); 23 24 NetworkingPrivateCredentialsGetter() {} 25 26 virtual ~NetworkingPrivateCredentialsGetter() {} 27 28 // Starts getting credentials. The credentials and, in case of an error, the 29 // error code are returned using |callback|. 30 // The NetworkingPrivateCredentialsGetter implementation should ensure that 31 // the credentials request can be successfully processed even if |this| gets 32 // deleted immediately after calling this method. 33 // Note that there are no guarantees about the thread on which |callback| is 34 // run. The caller should make sure that the result is processed on the right 35 // thread. 36 virtual void Start( 37 const std::string& network_guid, 38 const std::string& public_key, 39 const extensions::NetworkingPrivateServiceClient::CryptoVerify:: 40 VerifyAndEncryptCredentialsCallback& callback) = 0; 41 42 private: 43 DISALLOW_COPY_AND_ASSIGN(NetworkingPrivateCredentialsGetter); 44}; 45 46} // namespace extensions 47 48#endif // CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_CREDENTIALS_GETTER_H_ 49