// Copyright 2019 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// These protobufs are used between cryptohome and cryptohome-namespace-mounter.

syntax = "proto3";
option optimize_for = LITE_RUNTIME;

package cryptohome;

message OutOfProcessMountRequest {
  // MountType is defined in platform2/cryptohome/mount_constants.h.
  enum MountType {
    // Not mounted.
    NONE = 0;
    // Encrypted with ecryptfs.
    ECRYPTFS = 1;
    // Encrypted with dircrypto.
    DIR_CRYPTO = 2;
    // Encrypted with dmcrypt.
    DMCRYPT = 3;
    // Ephemeral mount.
    EPHEMERAL = 4;
  }
  // Username used in login.
  string username = 1;
  // The global system salt that is used to obfuscate the username.
  string system_salt = 2;
  // Whether to make the legacy home directory (/home/chronos/user) available.
  bool legacy_home = 3;
  // OOP mounter will be entering Chrome mount namespace defined by
  // |mount_namespace_path| path.
  string mount_namespace_path = 4;
  // Mount type for the current user. The type is set to dircrypto when
  // migrating to dircrypto even if there is an eCryptfs vault.
  MountType type = 5;
  // Whether migration from eCryptfs to dircrypto is needed.
  bool to_migrate_from_ecryptfs = 6;
  // File encryption key (FEK) used to encrypt the file contents when the file
  // is persisted to the lower filesystem by eCryptfs.
  string fek_signature = 7;
  // File name encryption key (FNEK) used to encrypt the file name when the file
  // is persisted to the lower filesystem by eCryptfs.
  string fnek_signature = 8;
  // True, if the cryptohome is being created.
  bool is_pristine = 9;
  // True, if the Cryptohomed should bind mount Downloads/.
  bool bind_mount_downloads = 10;
}

message OutOfProcessMountResponse {
  // Paths bind-mounted by MountHelper::MountHomesAndDaemonStores().
  repeated string paths = 1;
  // Mount error returned from PerformMount() or PerformEphemeralMount(). Enum
  // values for MountError are defined in
  // /platform2/system_api/dbus/cryptohome/dbus-constants.h
  uint32 mount_error = 2;
}
