rocksdb/env
mrambacher 67bd5401e9 Changes to EncryptedEnv public API (#7279)
Summary:
Cleaned up the public API to use the EncryptedEnv.  This change will allow providers to be developed and added to the system easier in the future.  It will also allow better integration in the future with the OPTIONS file.

- The internal classes were moved out of the public API into an internal "env_encryption_ctr.h" header.  Short-cut constructors were added to provide the original API functionality.
- The APIs to the constructors were changed to take shared_ptr, rather than raw pointers or references to allow better memory management and alternative implementations.
- CreateFromString methods were added to allow future expansion to other provider and cipher implementations through a standard API.

Additionally, there was a code duplication in the NewXXXFile methods.  This common code was moved under a templatized function.

A first-pass at structuring the code was made to potentially allow multiple EncryptionProviders in a single EncryptedEnv.  The idea was that different providers may use different cipher keys or different versions/algorithms.  The EncryptedEnv should have some means of picking different providers based on information.  The groundwork was started for this (the use of the provider_ member variable was localized) but the work has not been completed.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/7279

Reviewed By: jay-zhuang

Differential Revision: D23709440

Pulled By: zhichao-cao

fbshipit-source-id: 0e845fff0e03a52603eb9672b4ade32d063ff2f2
2020-09-15 17:14:10 -07:00
..
composite_env_wrapper.h Add support to start and end IOTracing through DB APIs (#7203) 2020-08-04 18:41:45 -07:00
env_basic_test.cc Changes to EncryptedEnv public API (#7279) 2020-09-15 17:14:10 -07:00
env_chroot.cc Make env*_test work with ASSERT_STATUS_CHECKED (#7176) 2020-07-28 22:59:48 -07:00
env_chroot.h Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
env_encryption_ctr.h Changes to EncryptedEnv public API (#7279) 2020-09-15 17:14:10 -07:00
env_encryption.cc Changes to EncryptedEnv public API (#7279) 2020-09-15 17:14:10 -07:00
env_hdfs.cc fix build with 'USE_HDFS' on windows (#6950) 2020-06-12 16:21:50 -07:00
env_posix.cc Make env*_test work with ASSERT_STATUS_CHECKED (#7176) 2020-07-28 22:59:48 -07:00
env_test.cc Add EnvTestWithParam::OptionsTest to the ASSERT_STATUS_CHECKED passes (#7283) 2020-08-20 19:18:35 -07:00
env.cc Remove duplicate colon in Status message (#7041) 2020-08-06 15:18:04 -07:00
file_system_tracer.cc Store FileSystemPtr object that contains FileSystem ptr (#7180) 2020-08-12 17:31:23 -07:00
file_system_tracer.h Use FSRandomRWFilePtr Object to call underlying file system. (#7198) 2020-09-08 12:21:58 -07:00
file_system.cc Remove duplicate colon in Status message (#7041) 2020-08-06 15:18:04 -07:00
fs_posix.cc Fix backup/restore in stress/crash test (#7357) 2020-09-08 10:50:19 -07:00
io_posix_test.cc Status check enforcement for io_posix_test and options_settable_test (#6857) 2020-05-19 19:22:28 -07:00
io_posix.cc Make env*_test work with ASSERT_STATUS_CHECKED (#7176) 2020-07-28 22:59:48 -07:00
io_posix.h Cache result of GetLogicalBufferSize in Linux (#6457) 2020-03-11 18:40:05 -07:00
mock_env_test.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
mock_env.cc Make env*_test work with ASSERT_STATUS_CHECKED (#7176) 2020-07-28 22:59:48 -07:00
mock_env.h Attempt to recover from db with missing table files (#6334) 2020-03-20 19:30:48 -07:00