Hi community,
After a long time of development, I'm honor to announce that we have just completed C++ parquet encryption module which implements encryption in low level api and with examples included. To have this feature completed, I would like to thank Gidon and Revital for their contribution. Gidon had a key role in encryption design and in writing Java version code on which we based on to write C++ version. He also wrote crypto package in C++ version. Revital and me has been joining together in writing C++ version. Revital was responsible for AAD calculations, API updating (to be the same with Java version) and Java-C++ inter-operation testing. I was writing the first draft (properties, metadata, writer, reader) and keeping them updated when crypto package change. We have had a great time to cooperate. Thank Gidon and Revital for all guide and experience I have received from them, too. Here are the links of pull requests: 1) encryption module (properties, metadata, writer, reader): https://github.com/apache/arrow/pull/2555. 2) some merged pull requests for new thrift structure and crypto algorithm, and one still open: https://github.com/apache/arrow/pull/3520 However, in order to make (1) buildable with current build scripts, we need “adding openssl in C++ build toolchain” which is mentioned in this jira: https://issues.apache.org/jira/browse/ARROW-4302. I will be grateful if someone could help fullfill this work. About current pull requests, they has been currently using in our development phase at Emotiv (https://www.emotiv.com/). We love using parquet files to store EEG data. We are going to release a product with encrypted parquet files soon and look forward to the official release of parquet encryption feature. So it will be many thank and great honor to have you review and merge them (if qualified). Thank you very much! Tham
