MySQL 8.4.0
Source Code Documentation
Common Keyring Implementation Infrastructure

keyring_common library includes modules that can be used in various keyring implementation.

This library provides implementation of following:

  1. A JSON configuration file reader and parser
  2. A data reader/writer using JSON as format
  3. A backup file based file reader/writer
  4. Sensitive data container
  5. Metadata - Used to uniquely identify sensitive data
  6. A wrapper to define extension over sensitive data E.g. ID as provided by key management server
  7. An in-memory cache to store Metadata OR {Metadata, Data}
  8. An iterator over cache
  9. Operations class to interface services APIs with implementation
  10. AES encryption/decryption operations
  11. Set of utility functions such as random data generator, hex converter etc.

Following diagram shows interactions between various parts of keyring_common library and how they can be used to implement a keyring component.

The diagram uses a file based backend as example and how it can use various modules provided by keyring_common library.