blob: c9c4f64b22e5ae71a756cbf53f2360b264ce3cbc [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module os_crypt_async.mojom;
import "components/os_crypt/async/common/algorithm.mojom";
import "mojo/public/mojom/base/shared_memory.mojom";
// Corresponds to `os_crypt_async::Encryptor::Key` in
// components/os_crypt/async/common/encryptor.h. See documentation in that class
// for more details.
struct Key {
// The algorithm of this key.
Algorithm algorithm;
// The key data. Passed as a shared memory region to avoid the key entering
// any mojo buffers.
mojo_base.mojom.UnsafeSharedMemoryRegion key;
};
// Corresponds to `os_crypt_async::Encryptor` in
// components/os_crypt/async/common/encryptor.h. See documentation in that class
// for more details.
struct Encryptor {
// The provider key to use for encryption from the `key_entries` map below.
string provider_for_encryption;
// A map of provider names to Key entries to use for encrypt and decrypt
// operations. If no key is present it means an attempt to obtain a key was
// made to the key provider, but a temporary failure resulted in none being
// provided.
map<string, Key?> key_entries;
};