| // Copyright 2020 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.update.verify; |
| |
| /// An abstract representation of an update verifier, to be used when |
| /// verifying if an update should be committed. This is abstracted into a |
| /// separate protocol because in the future, we may add more verifiers. |
| /// |
| /// This is unrelated to the verification in verified execution. |
| /// |
| /// TODO(fxbug.dev/55846) migrate to services design. |
| protocol Verifier { |
| /// Verifies the update we just applied does not compromise an OTA dependency. |
| /// If the verification fails, the [`Verifier`] should log the reason why. |
| /// |
| /// The caller is responsible for setting any timeouts. |
| /// |
| /// + request `options` the configuration to use when verifying. |
| /// * response a [`VerifyError`] describing why the verification failed. |
| Verify(VerifyOptions options) -> () error VerifyError; |
| }; |
| |
| /// An update verifier to determine if Blobfs is working as expected. |
| [Discoverable] |
| protocol BlobfsVerifier { |
| compose Verifier; |
| }; |
| |
| /// A configuration for an update verification. |
| table VerifyOptions { |
| }; |
| |
| /// A problem occured when doing an update verification. |
| flexible enum VerifyError { |
| INTERNAL = 1; |
| }; |