/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Mozilla Public * License Version 1.1 (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.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 2001 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): * Terry Hayes */ #include "nsISupports.idl" #include "nsIEnumerator.idl" /** * The PK11 Token Database provides access to the PK11 modules * that are installed, and the tokens that are available. * Interfaces: nsIPK11TokenDB * Threading: ?? */ %{C++ #define NS_PK11TOKENDB_CONTRACTID "@mozilla.org/security/pk11tokendb;1" %} [scriptable, uuid(51191434-1dd2-11b2-a17c-e49c4e99a4e3)] interface nsIPK11Token : nsISupports { const long ASK_EVERY_TIME = -1; const long ASK_FIRST_TIME = 0; const long ASK_EXPIRE_TIME = 1; /* * The name of the token */ readonly attribute wstring tokenName; readonly attribute wstring tokenLabel; readonly attribute wstring tokenManID; readonly attribute wstring tokenHWVersion; readonly attribute wstring tokenFWVersion; readonly attribute wstring tokenSerialNumber; /* * Login information */ boolean isLoggedIn(); void login(in boolean force); void logout(); /* * Reset password */ void reset(); /* * Password information */ readonly attribute long minimumPasswordLength; readonly attribute boolean needsUserInit; boolean checkPassword(in wstring password); /* Logs out if check fails */ void initPassword(in wstring initialPassword); void changePassword(in wstring oldPassword, in wstring newPassword); long getAskPasswordTimes(); long getAskPasswordTimeout(); void setAskPasswordDefaults([const] in long askTimes, [const] in long timeout); /* * Other attributes */ boolean isHardwareToken(); boolean needsLogin(); boolean isFriendly(); }; /** * nsIPK11TokenDB - Manages PK11 Tokens */ [scriptable, uuid(4ee28c82-1dd2-11b2-aabf-bb4017abe395)] interface nsIPK11TokenDB : nsISupports { /* * Get the internal key database token */ nsIPK11Token getInternalKeyToken(); /* * Find a token by name */ nsIPK11Token findTokenByName(in wstring tokenName); /* * List all tokens */ nsIEnumerator listTokens(); }; .