Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / android / java / src / org / chromium / chrome / browser / PKCS11AuthenticationManager.java
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 package org.chromium.chrome.browser;
6
7 import android.content.Context;
8
9 import org.chromium.net.AndroidPrivateKey;
10
11 import java.security.cert.X509Certificate;
12
13 /**
14  * Defines API for managing interaction with SmartCard-based certificate storage using PKCS11.
15  */
16 public interface PKCS11AuthenticationManager {
17
18     /**
19      * @return true iff SmartCard-based authentication is available.
20      */
21     public boolean isPKCS11AuthEnabled();
22
23     /**
24      * Retrieves the preferred client certificate alias for the given host, port pair, or null if
25      * none can be retrieved.
26      *
27      * @param hostName The host for which to retrieve client certificate.
28      * @param port The port to use in conjunction with host to retrieve client certificate.
29      */
30     public String getClientCertificateAlias(String hostName, int port);
31
32     /**
33      * Returns the X509Certificate chain for the requested alias, or null if no there is no result.
34      */
35     public X509Certificate[] getCertificateChain(String alias);
36
37     /**
38      * Performs necessary initializing for using a PKCS11-based KeysStore. Note that this can
39      * perform expensive operations and cannot be done on the UI thread.
40      */
41     public void initialize(Context context);
42
43     /**
44      * Returns the AndroidPrivateKey for the requested alias, or null if there is no result.
45      */
46     public AndroidPrivateKey getPrivateKey(String alias);
47 }