AWS Encryption SDK for C v2.4
|
#include <keyring_trace.h>
Data Fields | |
struct aws_string * | wrapping_key_namespace |
struct aws_string * | wrapping_key_name |
uint32_t | flags |
When a keyring is called it produces a trace of what actions it took with the different wrapping keys it manages. The trace is a list of these records.
The flags argument uses bit flags to indicate which actions were taken.
The other arguments are identifiers which indicate which wrapping key was used to do data key encryption by a keyring. Most keyring implementations write the wrapping_key_namespace into the provider ID field of EDKs and the wrapping_key_name into the provider info field of EDKs, and all new keyring implementations should follow this practice. For legacy reasons, the raw AES keyring includes other data in the provider ID field, but only the first part of that field corresponds to what is stored in the name field here.
Note: "Master Key (MK)" is used as a class name in the Java and Python implementations of the AWS Encryption SDK, where it is an abstraction of a single wrapping key, and "Master Key Provider (MKP)" is a class that provides multiple wrapping keys. In the AWS Encryption SDK for C, the keyring replaces both of these concepts. It handles one or multiple wrapping keys, which makes it similar to an MKP, but from an API perspective it is in some ways closer to an MK. In order to avoid confusion with the MK class of the Java and Python SDKs, we always refer to a single entity used by a keyring for data key encryption as a wrapping key.
The motivating example of a wrapping key is a KMS CMK, for which the namespace is "aws-kms" and the name is the key ARN.
Definition at line 50 of file keyring_trace.h.
uint32_t aws_cryptosdk_keyring_trace_record::flags |
Definition at line 53 of file keyring_trace.h.
struct aws_string* aws_cryptosdk_keyring_trace_record::wrapping_key_name |
Definition at line 52 of file keyring_trace.h.
struct aws_string* aws_cryptosdk_keyring_trace_record::wrapping_key_namespace |
Definition at line 51 of file keyring_trace.h.