public class KeyMetadata extends Object
The keytools package (PARQUET-1373) implements one approach, of many possible, to key management and to generation of the "key metadata" fields. This approach, based on the "envelope encryption" pattern, allows to work with KMS servers. It keeps the actual material, required to recover a key, in a "key material" object (see the KeyMaterial class for details).
KeyMetadata class writes (and reads) the "key metadata" field as a flat json object, with the following fields: 1. "keyMaterialType" - a String, with the type of key material. In the current version, only one value is allowed - "PKMT1" (stands for "parquet key management tools, version 1") 2. "internalStorage" - a boolean. If true, means that "key material" is kept inside the "key metadata" field. If false, "key material" is kept externally (outside Parquet files) - in this case, "key metadata" keeps a reference to the external "key material". 3. "keyReference" - a String, with the reference to the external "key material". Written only if internalStorage is false.
If internalStorage is true, "key material" is a part of "key metadata", and the json keeps additional fields, described in the KeyMaterial class.
Copyright © 2023 The Apache Software Foundation. All rights reserved.