1 // Copyright 2014 The Chromium 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.
5 #ifndef COMPONENTS_ENCRYPTOR_ENCRYPTOR_H_
6 #define COMPONENTS_ENCRYPTOR_ENCRYPTOR_H_
10 #include "base/strings/string16.h"
12 // The Encryptor class gives access to simple encryption and decryption of
13 // strings. Note that on Mac, access to the system Keychain is required and
14 // these calls can block the current thread to collect user input.
17 // Encrypt a string16. The output (second argument) is
18 // really an array of bytes, but we're passing it back
20 static bool EncryptString16(const base::string16
& plaintext
,
21 std::string
* ciphertext
);
23 // Decrypt an array of bytes obtained with EncryptString16
24 // back into a string16. Note that the input (first argument)
25 // is a std::string, so you need to first get your (binary)
26 // data into a string.
27 static bool DecryptString16(const std::string
& ciphertext
,
28 base::string16
* plaintext
);
31 static bool EncryptString(const std::string
& plaintext
,
32 std::string
* ciphertext
);
34 // Decrypt an array of bytes obtained with EnctryptString
35 // back into a string. Note that the input (first argument)
36 // is a std::string, so you need to first get your (binary)
37 // data into a string.
38 static bool DecryptString(const std::string
& ciphertext
,
39 std::string
* plaintext
);
41 #if defined(OS_MACOSX)
42 // For unit testing purposes we instruct the Encryptor to use a mock Keychain
43 // on the Mac. The default is to use the real Keychain.
44 static void UseMockKeychain(bool use_mock
);
48 DISALLOW_IMPLICIT_CONSTRUCTORS(Encryptor
);
51 #endif // COMPONENTS_ENCRYPTOR_ENCRYPTOR_H_