/* 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" %{ C++ /* forward declaration */ typedef struct PK11SymKeyStr PK11SymKey; %} [ptr] native PK11SymKeyPtr(PK11SymKey); // An opaque key object. [scriptable, uuid(ee2dc516-ba7b-4e77-89fe-c43b886ef715)] interface nsIKeyObject : nsISupports { // Key types const short SYM_KEY = 1; // Algorithm types const short HMAC = 257; // The nsIKeyObject will take ownership of the key and be responsible // for freeing the key memory when destroyed. [noscript, must_use] void initKey(in short aAlgorithm, in PK11SymKeyPtr aKey); // Returns a pointer to the underlying key object. [noscript, must_use] PK11SymKeyPtr getKeyObj(); [must_use] short getType(); }; [scriptable, uuid(838bdbf1-8244-448f-8bcd-cede70227d75)] interface nsIKeyObjectFactory : nsISupports { [must_use] nsIKeyObject keyFromString(in short aAlgorithm, in ACString aKey); };