keyring_common library includes modules that can be used in various keyring implementation.
This library provides implementation of following:
- A JSON configuration file reader and parser
- A data reader/writer using JSON as format
- A backup file based file reader/writer
- Sensitive data container
- Metadata - Used to uniquely identify sensitive data
- A wrapper to define extension over sensitive data E.g. ID as provided by key management server
- An in-memory cache to store Metadata OR {Metadata, Data}
- An iterator over cache
- Operations class to interface services APIs with implementation
- AES encryption/decryption operations
- 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.