MCPcopy Create free account
hub / github.com/apache/arrow / CreateModuleAad

Function CreateModuleAad

cpp/src/parquet/encryption/encryption_internal.cc:722–748  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

720}
721
722std::string CreateModuleAad(const std::string& file_aad, int8_t module_type,
723 int16_t row_group_ordinal, int16_t column_ordinal,
724 int32_t page_ordinal) {
725 CheckPageOrdinal(page_ordinal);
726 const int16_t page_ordinal_short = static_cast<int16_t>(page_ordinal);
727 int8_t type_ordinal_bytes[1];
728 type_ordinal_bytes[0] = module_type;
729 std::string type_ordinal_bytes_str(reinterpret_cast<const char*>(type_ordinal_bytes),
730 1);
731 if (kFooter == module_type) {
732 std::string result = file_aad + type_ordinal_bytes_str;
733 return result;
734 }
735 std::string row_group_ordinal_bytes = ShortToBytesLe(row_group_ordinal);
736 std::string column_ordinal_bytes = ShortToBytesLe(column_ordinal);
737 if (kDataPage != module_type && kDataPageHeader != module_type) {
738 std::ostringstream out;
739 out << file_aad << type_ordinal_bytes_str << row_group_ordinal_bytes
740 << column_ordinal_bytes;
741 return out.str();
742 }
743 std::string page_ordinal_bytes = ShortToBytesLe(page_ordinal_short);
744 std::ostringstream out;
745 out << file_aad << type_ordinal_bytes_str << row_group_ordinal_bytes
746 << column_ordinal_bytes << page_ordinal_bytes;
747 return out.str();
748}
749
750std::string CreateFooterAad(const std::string& aad_prefix_bytes) {
751 return CreateModuleAad(aad_prefix_bytes, kFooter, static_cast<int16_t>(-1),

Callers 7

UpdateDecryptorFunction · 0.70
CreateFooterAadFunction · 0.70
InitDecryptionMethod · 0.50
InitEncryptionMethod · 0.50
UpdateEncryptionMethod · 0.50

Calls 3

CheckPageOrdinalFunction · 0.85
ShortToBytesLeFunction · 0.85
strMethod · 0.80

Tested by

no test coverage detected