blob: 9500d473d8426445c4f9b5bf7609c36aea4102f7 [file] [log] [blame]
// 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;
};
interface 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.
1: SignData(vector<uint8> plaintext) ->
(AttestationSignerStatus status, vector<uint8>? signature);
};