crypto_module_password_dialog.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_CRYPTO_MODULE_PASSWORD_DIALOG_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_UI_CRYPTO_MODULE_PASSWORD_DIALOG_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string>
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/callback.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/native_widget_types.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chrome {
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// An enum to describe the reason for the password request.
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)enum CryptoModulePasswordReason {
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kCryptoModulePasswordKeygen,
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kCryptoModulePasswordCertEnrollment,
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kCryptoModulePasswordClientAuth,
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kCryptoModulePasswordListCerts,
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kCryptoModulePasswordCertImport,
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kCryptoModulePasswordCertExport,
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)typedef base::Callback<void(const std::string&)> CryptoModulePasswordCallback;
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Display a dialog, prompting the user to authenticate to unlock
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// |module|. |reason| describes the purpose of the authentication and
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// affects the message displayed in the dialog. |hostname| is the hostname
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// of the server which requested the access.
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowCryptoModulePasswordDialog(
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const std::string& module_name,
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    bool retry,
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    CryptoModulePasswordReason reason,
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const std::string& hostname,
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    gfx::NativeWindow parent,
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const CryptoModulePasswordCallback& callback);
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace chrome
40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif  // CHROME_BROWSER_UI_CRYPTO_MODULE_PASSWORD_DIALOG_H_
42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)