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.
5 package org.chromium.chrome.browser;
7 import android.content.Context;
9 import org.chromium.net.AndroidPrivateKey;
11 import java.security.cert.X509Certificate;
14 * Defines API for managing interaction with SmartCard-based certificate storage using PKCS11.
16 public interface PKCS11AuthenticationManager {
19 * @return true iff SmartCard-based authentication is available.
21 public boolean isPKCS11AuthEnabled();
24 * Retrieves the preferred client certificate alias for the given host, port pair, or null if
25 * none can be retrieved.
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.
30 public String getClientCertificateAlias(String hostName, int port);
33 * Returns the X509Certificate chain for the requested alias, or null if no there is no result.
35 public X509Certificate[] getCertificateChain(String alias);
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.
41 public void initialize(Context context);
44 * Returns the AndroidPrivateKey for the requested alias, or null if there is no result.
46 public AndroidPrivateKey getPrivateKey(String alias);