// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module chrome.mojom;

// API exposed by the browser process to the renderer process, such that the
// renderer can interact with the encryption state of Sync. Exposed to allowed
// origins only.
interface SyncEncryptionKeysExtension {
  // Provides sync encryption keys to the browser process. Returns true if no
  // further encryption keys are needed (which includes the case, among others,
  // of encryption keys not being needed even prior to this call).
  SetEncryptionKeys(string gaia_id, array<array<uint8>> encryption_keys,
                    int32 last_key_version) => ();

  // Registers a new trusted recovery method that can be used by other clients
  // to retrieve sync trusted vault encryption keys.
  AddTrustedRecoveryMethod(string gaia_id, array<uint8> public_key) => ();
};
