Commits


Ha Thi Tham authored and Antoine Pitrou committed 5b14d53680f
ARROW-9318: [C++] Parquet encryption key management This PR is C++ implementation for parquet key tool, based on [the Java implementation](https://github.com/apache/parquet-mr/pull/615) and [the design doc](https://docs.google.com/document/d/1boH6HPkG0ZhgxcaRkGk3QpZ8X_J91uXZwVGwYN45St4/edit?usp=sharing). The major parts of this PR are: * higher level of encryption/decryption configuration, including key management configuration. * KMS connection configuration * Abstract class KmsClient, KmsClientFactory * PropertiesDrivenCryptoFactory class to convert these above configurations to the lower level FileEncryptionProperties, FileDecryptionProperties * unit test using InMemoryKms (an sample of KmsClient). Comparing to Java version, this C++ pull doesn't contain externally storing key material using hadoop file system (only storing key material internally in parquet file is supported for now). The reason is lack of understanding about Hadoop file system, can be implemented it later in another pull. Thanks! Closes #8023 from thamht4190/arrow-9318-encryption-key-management Lead-authored-by: Ha Thi Tham <thamht01188@gmail.com> Co-authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Antoine Pitrou <antoine@python.org>