/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.webkit;

import android.annotation.Nullable;

import java.security.Principal;
import java.security.PrivateKey;
import java.security.cert.X509Certificate;

ClientCertRequest: The user receives an instance of this class as a parameter of WebViewClient.onReceivedClientCertRequest. The request includes the parameters to choose the client certificate, such as the host name and the port number requesting the cert, the acceptable key types and the principals. The user should call one of the class methods to indicate how to deal with the client certificate request. All methods should be called on UI thread. WebView caches the proceed and cancel responses in memory and uses them to handle future client certificate requests for the same host/port pair. The user can clear the cached data using WebView.clearClientCertPreferences.
/** * ClientCertRequest: The user receives an instance of this class as * a parameter of {@link WebViewClient#onReceivedClientCertRequest}. * The request includes the parameters to choose the client certificate, * such as the host name and the port number requesting the cert, the acceptable * key types and the principals. * * The user should call one of the class methods to indicate how to deal * with the client certificate request. All methods should be called on * UI thread. * * WebView caches the {@link #proceed} and {@link #cancel} responses in memory * and uses them to handle future client certificate requests for the same * host/port pair. The user can clear the cached data using * {@link WebView#clearClientCertPreferences}. * */
public abstract class ClientCertRequest { public ClientCertRequest() { }
Returns the acceptable types of asymmetric keys.
/** * Returns the acceptable types of asymmetric keys. */
@Nullable public abstract String[] getKeyTypes();
Returns the acceptable certificate issuers for the certificate matching the private key.
/** * Returns the acceptable certificate issuers for the certificate * matching the private key. */
@Nullable public abstract Principal[] getPrincipals();
Returns the host name of the server requesting the certificate.
/** * Returns the host name of the server requesting the certificate. */
public abstract String getHost();
Returns the port number of the server requesting the certificate.
/** * Returns the port number of the server requesting the certificate. */
public abstract int getPort();
Proceed with the specified private key and client certificate chain. Remember the user's positive choice and use it for future requests.
/** * Proceed with the specified private key and client certificate chain. * Remember the user's positive choice and use it for future requests. */
public abstract void proceed(PrivateKey privateKey, X509Certificate[] chain);
Ignore the request for now. Do not remember user's choice.
/** * Ignore the request for now. Do not remember user's choice. */
public abstract void ignore();
Cancel this request. Remember the user's choice and use it for future requests.
/** * Cancel this request. Remember the user's choice and use it for * future requests. */
public abstract void cancel(); }