option optimize_for = LITE_RUNTIME;
package trunks;

// This protobuf represents a message to be passed to a tpm.
// It is used to forward commands from the proxy to the service.
message TpmCommand {
  // This represents the raw bytes of the command that will be forwarded
  // unmodified to the tpm.
  optional bytes command = 2;
}

// This protobuf represents a message or read from a tpm.
// It is used to return responses from the service to the proxy.
message TpmResponse {
  // |result_code| is an error code of type TPM_RC. This represents an error
  // thrown by the software in trunksd (i.e. trunks_service/tpm_handle). It
  // has a value of TPM_RC_SUCCESS(0) if the command was correctly parsed by
  // trunksd.
  // NOTE: This has no relation to the TPM_RC generated by the tpm
  // and contained in the message.
  optional uint32 result_code = 1;
  // These bytes represent the bytes read from the tpm.
  // It is the unmodified response read from the TPM. Can be an empty string
  // if the software encounters an error.
  // NOTE: If the result_code is not TPM_RC_SUCCESS, the response might not be
  // present or filled.
  optional bytes response = 2;
}
