Source code

Revision control

Copy as Markdown

Other Tools

/* 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 protocol PBackground;
using struct mozilla::security::mls::GkGroupIdEpoch from "mozilla/dom/MLSTransactionMessage.h";
using struct mozilla::security::mls::GkMlsCommitOutput from "mozilla/dom/MLSTransactionMessage.h";
using struct mozilla::security::mls::GkGroupDetails from "mozilla/dom/MLSTransactionMessage.h";
using struct mozilla::security::mls::GkExporterOutput from "mozilla/dom/MLSTransactionMessage.h";
using struct mozilla::security::mls::GkReceived from "mozilla/dom/MLSTransactionMessage.h";
namespace mozilla {
namespace dom {
/* This type exists because we cannot write uint8_t[]? */
struct RawBytes {
uint8_t[] data;
};
[ChildProc=anydom]
async protocol PMLSTransaction
{
parent:
async RequestStateDelete() returns (bool result);
async RequestGroupStateDelete(uint8_t[] groupIdentifier, uint8_t[] identifier) returns (GkGroupIdEpoch? result);
async RequestGenerateIdentityKeypair() returns (RawBytes? result);
async RequestGenerateCredentialBasic(uint8_t[] credName) returns (RawBytes? result);
async RequestGenerateKeyPackage(uint8_t[] identity, uint8_t[] credential) returns (RawBytes? result);
async RequestGroupCreate(uint8_t[] identifier, uint8_t[] credential, uint8_t[] inOptGroupIdentifier) returns (GkGroupIdEpoch? result);
async RequestGroupJoin(uint8_t[] identifier, uint8_t[] welcome) returns (GkGroupIdEpoch? result);
async RequestGroupAdd(uint8_t[] groupIdentifier, uint8_t[] identifier, uint8_t[] keyPackage) returns (GkMlsCommitOutput? result);
async RequestGroupProposeAdd(uint8_t[] groupIdentifier, uint8_t[] identifier, uint8_t[] keyPackage) returns (RawBytes? result);
async RequestGroupRemove(uint8_t[] groupIdentifier, uint8_t[] identifier, uint8_t[] remIdentifier) returns (GkMlsCommitOutput? result);
async RequestGroupProposeRemove(uint8_t[] groupIdentifier, uint8_t[] identifier, uint8_t[] remIdentifier) returns (RawBytes? result);
async RequestGroupClose(uint8_t[] groupIdentifier, uint8_t[] identifier) returns (GkMlsCommitOutput? result);
async RequestGroupDetails(uint8_t[] groupIdentifier, uint8_t[] identifier) returns (GkGroupDetails? result);
async RequestSend(uint8_t[] groupIdentifier, uint8_t[] identifier, uint8_t[] message) returns (RawBytes? result);
async RequestReceive(uint8_t[] identifier, uint8_t[] message) returns (GkReceived result);
async RequestHasPendingProposals(uint8_t[] groupIdentifier, uint8_t[] identifier) returns (bool result);
async RequestClearPendingProposals(uint8_t[] groupIdentifier, uint8_t[] identifier) returns (bool result);
async RequestHasPendingCommit(uint8_t[] groupIdentifier, uint8_t[] identifier) returns (bool result);
async RequestClearPendingCommit(uint8_t[] groupIdentifier, uint8_t[] identifier) returns (bool result);
async RequestApplyPendingCommit(uint8_t[] groupIdentifier, uint8_t[] identifier) returns (GkReceived result);
async RequestExportSecret(uint8_t[] groupIdentifier, uint8_t[] identifier, uint8_t[] label, uint8_t[] content, uint64_t len) returns (GkExporterOutput? result);
async RequestGetGroupIdentifier(uint8_t[] message) returns (RawBytes? result);
async RequestGetGroupEpoch(uint8_t[] message) returns (RawBytes? result);
};
} // namespace dom
} // namespace mozilla