root/chrome/android/java/src/org/chromium/chrome/browser/PKCS11AuthenticationManager.java

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. isPKCS11AuthEnabled
  2. getClientCertificateAlias
  3. getCertificateChain
  4. initialize
  5. getPrivateKey

// 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. Note that this can
     * perform expensive operations and cannot be done on the UI thread.
     */
    public void initialize(Context context);

    /**
     * Returns the AndroidPrivateKey for the requested alias, or null if there is no result.
     */
    public AndroidPrivateKey getPrivateKey(String alias);
}

/* [<][>][^][v][top][bottom][index][help] */