| // Copyright 2018 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.auth; |
| |
| /// This file contains an interface to cryptographically sign any plain text data |
| /// using any crypto key. This interface is useful for signing JWT's in device |
| /// attestation based authentication. |
| /// |
| /// Specifies the success/failure status from the attestation signer. |
| enum AttestationSignerStatus { |
| /// The command completed successfully |
| OK = 0; |
| /// The command referred to a missing, or an invalid argument. |
| INVALID_ARGUMENT = 1; |
| /// There was an error in generating crypto signatures for the given |
| /// plaintext. This usually indicates errors for misconfigured keys or |
| /// signature algorithms from the underlying crypto library. |
| SIGNING_ERROR = 2; |
| }; |
| |
| protocol AttestationSigner { |
| /// Cryptographically signs the `plaintext` data sent in request using a |
| /// crypto key configured at initialization. |
| /// |
| /// Returns the raw bytes of the `signature` string on success. Otherwise, |
| /// an error status is returned. |
| SignData(bytes plaintext) |
| -> (AttestationSignerStatus status, bytes? signature); |
| }; |