blob: 43643e8f8ed1510b76d7caeb581ca716c019b433 [file] [log] [blame]
// Copyright 2014 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.
package org.chromium.chrome.browser;
import android.content.Context;
import org.chromium.net.AndroidPrivateKey;
import java.security.cert.X509Certificate;
/**
* Defines API for managing interaction with SmartCard-based certificate storage using PKCS11.
*/
public interface PKCS11AuthenticationManager {
/**
* @return true iff SmartCard-based authentication is available.
*/
public boolean isPKCS11AuthEnabled();
/**
* Retrieves the preferred client certificate alias for the given host, port pair, or null if
* none can be retrieved.
*
* @param hostName The host for which to retrieve client certificate.
* @param port The port to use in conjunction with host to retrieve client certificate.
*/
public String getClientCertificateAlias(String hostName, int port);
/**
* Returns the X509Certificate chain for the requested alias, or null if no there is no result.
*/
public X509Certificate[] getCertificateChain(String alias);
/**
* Performs necessary initializing for using a PKCS11-based KeysStore.
*/
public void initialize(Context context);
/**
* Returns the AndroidPrivateKey for the requested alias, or null if there is no result.
*/
public AndroidPrivateKey getPrivateKey(String alias);
}