// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_COMMON_PSEUDONYMIZATION_SALT_H_ #define CONTENT_COMMON_PSEUDONYMIZATION_SALT_H_ #include <stdint.h> #include "content/common/content_export.h" namespace content { // Gets the pseudonymization salt. // // Note that this function returns the same salt in all Chromium processes (e.g. // in the Browser process, the Renderer processes and other child processes), // because the propagation taking place via callers of SetPseudonymizationSalt // below. This behavior ensures that the // content::PseudonymizationUtil::PseudonymizeString method produces the same // results across all processes. // // This function is thread-safe - it can be called on any thread. // // PRIVACY NOTE: It is important that the returned value is never persisted // anywhere or sent to a server. Whoever has access to the salt can // de-anonymize results of the content::PseudonymizationUtil::PseudonymizeString // method. CONTENT_EXPORT uint32_t GetPseudonymizationSalt(); // In the browser process, this is called during initialization to set the // browser process salt. It is then called in each child processes via an IPC // from the browser process to synchronize the same pseudonymization salt across // each process. // // This function is thread-safe - it can be called on any thread. CONTENT_EXPORT void SetPseudonymizationSalt(uint32_t salt); // Allow the salt to be reset to zero. This allows unit tests that might share // the same process to function correctly, since the salt is process-wide. CONTENT_EXPORT void ResetSaltForTesting(); } // namespace content #endif // CONTENT_COMMON_PSEUDONYMIZATION_SALT_H_