@sebastianp265/safe-server-side-storage-client
Version:
Library for Confidential Server-Side Message Storage Using the Labyrinth Protocol
40 lines • 1.74 kB
TypeScript
import { CommonPublicKeyBundleSerialized } from "../device/key-bundles/DeviceAndVirtualDeviceCommonKeyBundle";
import { Epoch } from "../EpochStorage";
import { ThisDevice } from "../device/ThisDevice";
type DeviceInEpochSerialized = {
id: string;
} & VirtualDeviceInEpochSerialized;
type VirtualDeviceInEpochSerialized = {
mac: string;
keyBundle: CommonPublicKeyBundleSerialized;
};
export type GetDevicesInEpochResponse = {
devices: DeviceInEpochSerialized[];
virtualDevice: VirtualDeviceInEpochSerialized;
};
type EncryptedNewEpochEntropyForEveryDeviceInEpochSerialized = {
deviceIdToEncryptedNewEpochEntropyMap: {
[deviceId: string]: string;
};
virtualDeviceEncryptedNewEpochEntropy: string;
};
export type OpenNewEpochBasedOnCurrentBody = {
encryptedNewEpochEntropyForEveryDeviceInEpoch: EncryptedNewEpochEntropyForEveryDeviceInEpochSerialized;
newEpochMembershipProof: {
epochThisDeviceMac: string;
epochVirtualDeviceMac: string;
};
};
export type OpenNewEpochBasedOnCurrentResponse = {
openedEpochId: string;
};
export type OpenNewEpochBasedOnCurrentServerClient = {
getDevicesInEpoch: (epochId: string) => Promise<GetDevicesInEpochResponse>;
openNewEpochBasedOnCurrent: (currentEpochId: string, thisDeviceId: string, requestBody: OpenNewEpochBasedOnCurrentBody) => Promise<OpenNewEpochBasedOnCurrentResponse>;
};
export declare function openNewEpochBasedOnCurrent(currentEpoch: Epoch, webClient: OpenNewEpochBasedOnCurrentServerClient, thisDevice: ThisDevice): Promise<Epoch>;
export declare class InvalidVirtualDeviceServerRepresentationError extends Error {
constructor();
}
export {};
//# sourceMappingURL=open-new-epoch-based-on-current.d.ts.map