diff options
Diffstat (limited to 'components/os_crypt/os_crypt.h')
-rw-r--r-- | components/os_crypt/os_crypt.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/components/os_crypt/os_crypt.h b/components/os_crypt/os_crypt.h new file mode 100644 index 0000000..a75ccf9 --- /dev/null +++ b/components/os_crypt/os_crypt.h @@ -0,0 +1,48 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_OS_CRYPT_OS_CRYPT_H_ +#define COMPONENTS_OS_CRYPT_OS_CRYPT_H_ + +#include <string> + +#include "base/strings/string16.h" + +// The OSCrypt class gives access to simple encryption and decryption of +// strings. Note that on Mac, access to the system Keychain is required and +// these calls can block the current thread to collect user input. +class OSCrypt { + public: + // Encrypt a string16. The output (second argument) is really an array of + // bytes, but we're passing it back as a std::string. + static bool EncryptString16(const base::string16& plaintext, + std::string* ciphertext); + + // Decrypt an array of bytes obtained with EncryptString16 back into a + // string16. Note that the input (first argument) is a std::string, so you + // need to first get your (binary) data into a string. + static bool DecryptString16(const std::string& ciphertext, + base::string16* plaintext); + + // Encrypt a string. + static bool EncryptString(const std::string& plaintext, + std::string* ciphertext); + + // Decrypt an array of bytes obtained with EnctryptString back into a string. + // Note that the input (first argument) is a std::string, so you need to first + // get your (binary) data into a string. + static bool DecryptString(const std::string& ciphertext, + std::string* plaintext); + +#if defined(OS_MACOSX) + // For unit testing purposes we instruct the Encryptor to use a mock Keychain + // on the Mac. The default is to use the real Keychain. + static void UseMockKeychain(bool use_mock); +#endif + + private: + DISALLOW_IMPLICIT_CONSTRUCTORS(OSCrypt); +}; + +#endif // COMPONENTS_OS_CRYPT_OS_CRYPT_H_ |