| // 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; |
| }; |