/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

interface nsIX509Cert;
interface nsIInterfaceRequestor;

[scriptable, uuid(06d018e0-d41b-4629-a4fc-daaa6029888e)]
interface nsIUserCertPicker : nsISupports {
  nsIX509Cert pickByUsage(in nsIInterfaceRequestor ctx, 
                          in wstring selectedNickname,
                          in long certUsage, // as defined by NSS enum SECCertUsage
                          in boolean allowInvalid,
                          in boolean allowDuplicateNicknames,
                          out boolean canceled);
};

%{C++
#define NS_CERT_PICKER_CONTRACTID "@mozilla.org/user_cert_picker;1"
#define NS_CERT_PICKER_CLASSNAME "Cert Picker Object"
%}
