/*
* DO NOT EDIT. THIS FILE IS GENERATED FROM $SRCDIR/security/lockstore/nsILockstore.idl
*/
#ifndef __gen_nsILockstore_h__
#define __gen_nsILockstore_h__
#include "nsISupports.h"
#include "nsTArray.h"
#include "js/Value.h"
#include "js/GCAnnotations.h"
/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
/* starting interface: nsILockstore */
#define NS_ILOCKSTORE_IID_STR "a83f5d62-7b1c-4d2e-9f0a-3c5e8b6a1d4e"
#define NS_ILOCKSTORE_IID \
{0xa83f5d62, 0x7b1c, 0x4d2e, \
{ 0x9f, 0x0a, 0x3c, 0x5e, 0x8b, 0x6a, 0x1d, 0x4e }}
class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsILockstore) nsILockstore : public nsISupports {
public:
NS_INLINE_DECL_STATIC_IID(NS_ILOCKSTORE_IID)
/* Used by ToJSValue to check which scriptable interface is implemented. */
using ScriptableInterfaceType = nsILockstore;
/* [implicit_jscontext] Promise unlockKek (in AUTF8String kekRef, in ACString secret, in uint64_t timeoutMs); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_unlockKek)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD UnlockKek(const nsACString& kekRef, const nsACString& secret, uint64_t timeoutMs, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise lockKek (in AUTF8String kekRef); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_lockKek)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD LockKek(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* boolean isKekUnlocked (in AUTF8String kekRef); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_isKekUnlocked)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD IsKekUnlocked(const nsACString& kekRef, bool *_retval) = 0;
/* [implicit_jscontext] Promise kekExists (in AUTF8String kekRef); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_kekExists)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD KekExists(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise lock (); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_lock)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD Lock(JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise createDek (in AUTF8String dekName, in AUTF8String kekRef, in boolean extractable, in unsigned long keySize); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_createDek)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CreateDek(const nsACString& dekName, const nsACString& kekRef, bool extractable, uint32_t keySize, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise importDek (in AUTF8String dekName, in AUTF8String kekRef, in Array<octet> dekBytes, in boolean extractable); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_importDek)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ImportDek(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& dekBytes, bool extractable, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise isDekExtractable (in AUTF8String dekName); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_isDekExtractable)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD IsDekExtractable(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise dekExists (in AUTF8String dekName); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_dekExists)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD DekExists(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise deleteDek (in AUTF8String dekName); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_deleteDek)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD DeleteDek(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise listDeks (); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_listDeks)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ListDeks(JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise listKeks (in AUTF8String dekName); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_listKeks)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ListKeks(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise addKek (in AUTF8String dekName, in AUTF8String fromKekRef, in AUTF8String toKekRef); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_addKek)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD AddKek(const nsACString& dekName, const nsACString& fromKekRef, const nsACString& toKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise removeKek (in AUTF8String dekName, in AUTF8String kekRef); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_removeKek)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD RemoveKek(const nsACString& dekName, const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise switchKek (in AUTF8String dekName, in AUTF8String oldKekRef, in AUTF8String newKekRef); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_switchKek)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SwitchKek(const nsACString& dekName, const nsACString& oldKekRef, const nsACString& newKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise migrateDeks (in AUTF8String fromKekRef, in AUTF8String toKekRef); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_migrateDeks)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD MigrateDeks(const nsACString& fromKekRef, const nsACString& toKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise encrypt (in AUTF8String dekName, in AUTF8String kekRef, in Array<octet> plaintext); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_encrypt)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD Encrypt(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& plaintext, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise decrypt (in AUTF8String dekName, in AUTF8String kekRef, in Array<octet> ciphertext); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_decrypt)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD Decrypt(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& ciphertext, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise getDek (in AUTF8String dekName, in AUTF8String kekRef); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_getDek)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetDek(const nsACString& dekName, const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise getDekAutomatic (in AUTF8String dekName); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_getDekAutomatic)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetDekAutomatic(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise createKek (in ACString kekType, in ACString identifier, in ACString secret, in uint64_t cacheTimeoutMs); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_createKek)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CreateKek(const nsACString& kekType, const nsACString& identifier, const nsACString& secret, uint64_t cacheTimeoutMs, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise changeKekPassword (in AUTF8String kekRef, in ACString oldSecret, in ACString newSecret); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_changeKekPassword)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ChangeKekPassword(const nsACString& kekRef, const nsACString& oldSecret, const nsACString& newSecret, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
/* [implicit_jscontext] Promise deleteKek (in AUTF8String kekRef); */
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_deleteKek)
JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD DeleteKek(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0;
};
/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSILOCKSTORE \
NS_IMETHOD UnlockKek(const nsACString& kekRef, const nsACString& secret, uint64_t timeoutMs, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD LockKek(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD IsKekUnlocked(const nsACString& kekRef, bool *_retval) override; \
NS_IMETHOD KekExists(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD Lock(JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD CreateDek(const nsACString& dekName, const nsACString& kekRef, bool extractable, uint32_t keySize, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD ImportDek(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& dekBytes, bool extractable, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD IsDekExtractable(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD DekExists(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD DeleteDek(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD ListDeks(JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD ListKeks(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD AddKek(const nsACString& dekName, const nsACString& fromKekRef, const nsACString& toKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD RemoveKek(const nsACString& dekName, const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD SwitchKek(const nsACString& dekName, const nsACString& oldKekRef, const nsACString& newKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD MigrateDeks(const nsACString& fromKekRef, const nsACString& toKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD Encrypt(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& plaintext, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD Decrypt(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& ciphertext, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD GetDek(const nsACString& dekName, const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD GetDekAutomatic(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD CreateKek(const nsACString& kekType, const nsACString& identifier, const nsACString& secret, uint64_t cacheTimeoutMs, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD ChangeKekPassword(const nsACString& kekRef, const nsACString& oldSecret, const nsACString& newSecret, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \
NS_IMETHOD DeleteKek(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override;
/* Use this macro when declaring the members of this interface when the
class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSILOCKSTORE \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_unlockKek)\
nsresult UnlockKek(const nsACString& kekRef, const nsACString& secret, uint64_t timeoutMs, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_lockKek)\
nsresult LockKek(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_isKekUnlocked)\
nsresult IsKekUnlocked(const nsACString& kekRef, bool *_retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_kekExists)\
nsresult KekExists(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_lock)\
nsresult Lock(JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_createDek)\
nsresult CreateDek(const nsACString& dekName, const nsACString& kekRef, bool extractable, uint32_t keySize, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_importDek)\
nsresult ImportDek(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& dekBytes, bool extractable, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_isDekExtractable)\
nsresult IsDekExtractable(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_dekExists)\
nsresult DekExists(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_deleteDek)\
nsresult DeleteDek(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_listDeks)\
nsresult ListDeks(JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_listKeks)\
nsresult ListKeks(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_addKek)\
nsresult AddKek(const nsACString& dekName, const nsACString& fromKekRef, const nsACString& toKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_removeKek)\
nsresult RemoveKek(const nsACString& dekName, const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_switchKek)\
nsresult SwitchKek(const nsACString& dekName, const nsACString& oldKekRef, const nsACString& newKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_migrateDeks)\
nsresult MigrateDeks(const nsACString& fromKekRef, const nsACString& toKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_encrypt)\
nsresult Encrypt(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& plaintext, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_decrypt)\
nsresult Decrypt(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& ciphertext, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_getDek)\
nsresult GetDek(const nsACString& dekName, const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_getDekAutomatic)\
nsresult GetDekAutomatic(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_createKek)\
nsresult CreateKek(const nsACString& kekType, const nsACString& identifier, const nsACString& secret, uint64_t cacheTimeoutMs, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_changeKekPassword)\
nsresult ChangeKekPassword(const nsACString& kekRef, const nsACString& oldSecret, const nsACString& newSecret, JSContext* cx, ::mozilla::dom::Promise * * _retval); \
MOZ_BINDING(binding_to, idl, method, XPIDL_nsILockstore_deleteKek)\
nsresult DeleteKek(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval);
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSILOCKSTORE(_to) \
NS_IMETHOD UnlockKek(const nsACString& kekRef, const nsACString& secret, uint64_t timeoutMs, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to UnlockKek(kekRef, secret, timeoutMs, cx, _retval); } \
NS_IMETHOD LockKek(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to LockKek(kekRef, cx, _retval); } \
NS_IMETHOD IsKekUnlocked(const nsACString& kekRef, bool *_retval) override { return _to IsKekUnlocked(kekRef, _retval); } \
NS_IMETHOD KekExists(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to KekExists(kekRef, cx, _retval); } \
NS_IMETHOD Lock(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to Lock(cx, _retval); } \
NS_IMETHOD CreateDek(const nsACString& dekName, const nsACString& kekRef, bool extractable, uint32_t keySize, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to CreateDek(dekName, kekRef, extractable, keySize, cx, _retval); } \
NS_IMETHOD ImportDek(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& dekBytes, bool extractable, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to ImportDek(dekName, kekRef, dekBytes, extractable, cx, _retval); } \
NS_IMETHOD IsDekExtractable(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to IsDekExtractable(dekName, cx, _retval); } \
NS_IMETHOD DekExists(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to DekExists(dekName, cx, _retval); } \
NS_IMETHOD DeleteDek(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to DeleteDek(dekName, cx, _retval); } \
NS_IMETHOD ListDeks(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to ListDeks(cx, _retval); } \
NS_IMETHOD ListKeks(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to ListKeks(dekName, cx, _retval); } \
NS_IMETHOD AddKek(const nsACString& dekName, const nsACString& fromKekRef, const nsACString& toKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to AddKek(dekName, fromKekRef, toKekRef, cx, _retval); } \
NS_IMETHOD RemoveKek(const nsACString& dekName, const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to RemoveKek(dekName, kekRef, cx, _retval); } \
NS_IMETHOD SwitchKek(const nsACString& dekName, const nsACString& oldKekRef, const nsACString& newKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to SwitchKek(dekName, oldKekRef, newKekRef, cx, _retval); } \
NS_IMETHOD MigrateDeks(const nsACString& fromKekRef, const nsACString& toKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to MigrateDeks(fromKekRef, toKekRef, cx, _retval); } \
NS_IMETHOD Encrypt(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& plaintext, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to Encrypt(dekName, kekRef, plaintext, cx, _retval); } \
NS_IMETHOD Decrypt(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& ciphertext, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to Decrypt(dekName, kekRef, ciphertext, cx, _retval); } \
NS_IMETHOD GetDek(const nsACString& dekName, const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to GetDek(dekName, kekRef, cx, _retval); } \
NS_IMETHOD GetDekAutomatic(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to GetDekAutomatic(dekName, cx, _retval); } \
NS_IMETHOD CreateKek(const nsACString& kekType, const nsACString& identifier, const nsACString& secret, uint64_t cacheTimeoutMs, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to CreateKek(kekType, identifier, secret, cacheTimeoutMs, cx, _retval); } \
NS_IMETHOD ChangeKekPassword(const nsACString& kekRef, const nsACString& oldSecret, const nsACString& newSecret, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to ChangeKekPassword(kekRef, oldSecret, newSecret, cx, _retval); } \
NS_IMETHOD DeleteKek(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to DeleteKek(kekRef, cx, _retval); }
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSILOCKSTORE(_to) \
NS_IMETHOD UnlockKek(const nsACString& kekRef, const nsACString& secret, uint64_t timeoutMs, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->UnlockKek(kekRef, secret, timeoutMs, cx, _retval); } \
NS_IMETHOD LockKek(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->LockKek(kekRef, cx, _retval); } \
NS_IMETHOD IsKekUnlocked(const nsACString& kekRef, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsKekUnlocked(kekRef, _retval); } \
NS_IMETHOD KekExists(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->KekExists(kekRef, cx, _retval); } \
NS_IMETHOD Lock(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Lock(cx, _retval); } \
NS_IMETHOD CreateDek(const nsACString& dekName, const nsACString& kekRef, bool extractable, uint32_t keySize, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateDek(dekName, kekRef, extractable, keySize, cx, _retval); } \
NS_IMETHOD ImportDek(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& dekBytes, bool extractable, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ImportDek(dekName, kekRef, dekBytes, extractable, cx, _retval); } \
NS_IMETHOD IsDekExtractable(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsDekExtractable(dekName, cx, _retval); } \
NS_IMETHOD DekExists(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DekExists(dekName, cx, _retval); } \
NS_IMETHOD DeleteDek(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteDek(dekName, cx, _retval); } \
NS_IMETHOD ListDeks(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ListDeks(cx, _retval); } \
NS_IMETHOD ListKeks(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ListKeks(dekName, cx, _retval); } \
NS_IMETHOD AddKek(const nsACString& dekName, const nsACString& fromKekRef, const nsACString& toKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddKek(dekName, fromKekRef, toKekRef, cx, _retval); } \
NS_IMETHOD RemoveKek(const nsACString& dekName, const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveKek(dekName, kekRef, cx, _retval); } \
NS_IMETHOD SwitchKek(const nsACString& dekName, const nsACString& oldKekRef, const nsACString& newKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SwitchKek(dekName, oldKekRef, newKekRef, cx, _retval); } \
NS_IMETHOD MigrateDeks(const nsACString& fromKekRef, const nsACString& toKekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MigrateDeks(fromKekRef, toKekRef, cx, _retval); } \
NS_IMETHOD Encrypt(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& plaintext, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Encrypt(dekName, kekRef, plaintext, cx, _retval); } \
NS_IMETHOD Decrypt(const nsACString& dekName, const nsACString& kekRef, const nsTArray<uint8_t >& ciphertext, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Decrypt(dekName, kekRef, ciphertext, cx, _retval); } \
NS_IMETHOD GetDek(const nsACString& dekName, const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDek(dekName, kekRef, cx, _retval); } \
NS_IMETHOD GetDekAutomatic(const nsACString& dekName, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDekAutomatic(dekName, cx, _retval); } \
NS_IMETHOD CreateKek(const nsACString& kekType, const nsACString& identifier, const nsACString& secret, uint64_t cacheTimeoutMs, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateKek(kekType, identifier, secret, cacheTimeoutMs, cx, _retval); } \
NS_IMETHOD ChangeKekPassword(const nsACString& kekRef, const nsACString& oldSecret, const nsACString& newSecret, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ChangeKekPassword(kekRef, oldSecret, newSecret, cx, _retval); } \
NS_IMETHOD DeleteKek(const nsACString& kekRef, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteKek(kekRef, cx, _retval); }
#endif /* __gen_nsILockstore_h__ */