Home | History | Annotate | Download | only in brillo
      1 // Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef LIBBRILLO_BRILLO_CRYPTOHOME_H_
      6 #define LIBBRILLO_BRILLO_CRYPTOHOME_H_
      7 
      8 #include <string>
      9 
     10 #include <base/files/file_path.h>
     11 #include <brillo/brillo_export.h>
     12 
     13 namespace brillo {
     14 namespace cryptohome {
     15 namespace home {
     16 
     17 BRILLO_EXPORT extern const char kGuestUserName[];
     18 
     19 // Returns the common prefix under which the mount points for user homes are
     20 // created.
     21 BRILLO_EXPORT base::FilePath GetUserPathPrefix();
     22 
     23 // Returns the common prefix under which the mount points for root homes are
     24 // created.
     25 BRILLO_EXPORT base::FilePath GetRootPathPrefix();
     26 
     27 // Returns the path at which the user home for |username| will be mounted.
     28 // Returns "" for failures.
     29 BRILLO_EXPORT base::FilePath GetUserPath(const std::string& username);
     30 
     31 // Returns the path at which the user home for |hashed_username| will be
     32 // mounted. Useful when you already have the username hashed.
     33 // Returns "" for failures.
     34 BRILLO_EXPORT base::FilePath GetHashedUserPath(
     35     const std::string& hashed_username);
     36 
     37 // Returns the path at which the root home for |username| will be mounted.
     38 // Returns "" for failures.
     39 BRILLO_EXPORT base::FilePath GetRootPath(const std::string& username);
     40 
     41 // Returns the path at which the daemon |daemon| should store per-user data.
     42 BRILLO_EXPORT base::FilePath GetDaemonPath(const std::string& username,
     43                                            const std::string& daemon);
     44 
     45 // Checks whether |sanitized| has the format of a sanitized username.
     46 BRILLO_EXPORT bool IsSanitizedUserName(const std::string& sanitized);
     47 
     48 // Returns a sanitized form of |username|. For x != y, SanitizeUserName(x) !=
     49 // SanitizeUserName(y).
     50 BRILLO_EXPORT std::string SanitizeUserName(const std::string& username);
     51 
     52 // Overrides the common prefix under which the mount points for user homes are
     53 // created. This is used for testing only.
     54 BRILLO_EXPORT void SetUserHomePrefix(const std::string& prefix);
     55 
     56 // Overrides the common prefix under which the mount points for root homes are
     57 // created. This is used for testing only.
     58 BRILLO_EXPORT void SetRootHomePrefix(const std::string& prefix);
     59 
     60 // Overrides the contents of the system salt.
     61 // salt should be non-NULL and non-empty when attempting to avoid filesystem
     62 // usage in tests.
     63 // Note:
     64 // (1) Never mix usage with SetSystemSaltPath().
     65 // (2) Ownership of the pointer stays with the caller.
     66 BRILLO_EXPORT void SetSystemSalt(std::string* salt);
     67 
     68 // Returns the system salt.
     69 BRILLO_EXPORT std::string* GetSystemSalt();
     70 
     71 }  // namespace home
     72 }  // namespace cryptohome
     73 }  // namespace brillo
     74 
     75 #endif  // LIBBRILLO_BRILLO_CRYPTOHOME_H_
     76