AWS Encryption SDK for C v2.4
Loading...
Searching...
No Matches
keyring_trace.h File Reference
#include <aws/common/array_list.h>
#include <aws/common/string.h>
#include <aws/cryptosdk/exports.h>
+ Include dependency graph for keyring_trace.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  aws_cryptosdk_keyring_trace_record
 

Macros

#define AWS_CRYPTOSDK_WRAPPING_KEY_GENERATED_DATA_KEY   1
 
#define AWS_CRYPTOSDK_WRAPPING_KEY_ENCRYPTED_DATA_KEY   (1 << 1)
 
#define AWS_CRYPTOSDK_WRAPPING_KEY_DECRYPTED_DATA_KEY   (1 << 2)
 
#define AWS_CRYPTOSDK_WRAPPING_KEY_SIGNED_ENC_CTX   (1 << 3)
 
#define AWS_CRYPTOSDK_WRAPPING_KEY_VERIFIED_ENC_CTX   (1 << 4)
 

Functions

bool aws_cryptosdk_keyring_trace_record_is_valid (struct aws_cryptosdk_keyring_trace_record *record)
 
bool aws_cryptosdk_keyring_trace_is_valid (const struct aws_array_list *trace)
 
int aws_cryptosdk_keyring_trace_add_record (struct aws_allocator *alloc, struct aws_array_list *trace, const struct aws_string *wrapping_key_namespace, const struct aws_string *wrapping_key_name, uint32_t flags)
 
int aws_cryptosdk_keyring_trace_add_record_c_str (struct aws_allocator *alloc, struct aws_array_list *trace, const char *wrapping_key_namespace, const char *wrapping_key_name, uint32_t flags)
 
int aws_cryptosdk_keyring_trace_add_record_buf (struct aws_allocator *alloc, struct aws_array_list *trace, const struct aws_byte_buf *wrapping_key_namespace, const struct aws_byte_buf *wrapping_key_name, uint32_t flags)
 
int aws_cryptosdk_keyring_trace_init (struct aws_allocator *alloc, struct aws_array_list *trace)
 
void aws_cryptosdk_keyring_trace_clean_up (struct aws_array_list *trace)
 
void aws_cryptosdk_keyring_trace_clear (struct aws_array_list *trace)
 

Macro Definition Documentation

◆ AWS_CRYPTOSDK_WRAPPING_KEY_DECRYPTED_DATA_KEY

#define AWS_CRYPTOSDK_WRAPPING_KEY_DECRYPTED_DATA_KEY   (1 << 2)

Bit flag indicating this wrapping key decrypted the data key.

Definition at line 69 of file keyring_trace.h.

◆ AWS_CRYPTOSDK_WRAPPING_KEY_ENCRYPTED_DATA_KEY

#define AWS_CRYPTOSDK_WRAPPING_KEY_ENCRYPTED_DATA_KEY   (1 << 1)

Bit flag indicating this wrapping key encrypted the data key.

Definition at line 64 of file keyring_trace.h.

◆ AWS_CRYPTOSDK_WRAPPING_KEY_GENERATED_DATA_KEY

#define AWS_CRYPTOSDK_WRAPPING_KEY_GENERATED_DATA_KEY   1

Bit flag indicating this wrapping key generated the data key.

Definition at line 59 of file keyring_trace.h.

◆ AWS_CRYPTOSDK_WRAPPING_KEY_SIGNED_ENC_CTX

#define AWS_CRYPTOSDK_WRAPPING_KEY_SIGNED_ENC_CTX   (1 << 3)

Bit flag indicating this wrapping key signed the encryption context.

Definition at line 74 of file keyring_trace.h.

◆ AWS_CRYPTOSDK_WRAPPING_KEY_VERIFIED_ENC_CTX

#define AWS_CRYPTOSDK_WRAPPING_KEY_VERIFIED_ENC_CTX   (1 << 4)

Bit flag indicating this wrapping key verified the signature of the encryption context.

Definition at line 79 of file keyring_trace.h.

Function Documentation

◆ aws_cryptosdk_keyring_trace_add_record()

int aws_cryptosdk_keyring_trace_add_record ( struct aws_allocator * alloc,
struct aws_array_list * trace,
const struct aws_string * wrapping_key_namespace,
const struct aws_string * wrapping_key_name,
uint32_t flags )

Add a record to the trace with the specified namespace, name, and flags. Makes duplicates of namespace and name strings. Will be deallocated when the keyring trace object is cleared or cleaned up.

◆ aws_cryptosdk_keyring_trace_add_record_buf()

int aws_cryptosdk_keyring_trace_add_record_buf ( struct aws_allocator * alloc,
struct aws_array_list * trace,
const struct aws_byte_buf * wrapping_key_namespace,
const struct aws_byte_buf * wrapping_key_name,
uint32_t flags )

Same as aws_cryptosdk_keyring_trace_add_record except it takes byte buffers instead of AWS strings.

◆ aws_cryptosdk_keyring_trace_add_record_c_str()

int aws_cryptosdk_keyring_trace_add_record_c_str ( struct aws_allocator * alloc,
struct aws_array_list * trace,
const char * wrapping_key_namespace,
const char * wrapping_key_name,
uint32_t flags )

Same as aws_cryptosdk_keyring_trace_add_record except it takes C strings instead of AWS strings.

◆ aws_cryptosdk_keyring_trace_clean_up()

void aws_cryptosdk_keyring_trace_clean_up ( struct aws_array_list * trace)

Deallocate all memory from a keyring trace.

◆ aws_cryptosdk_keyring_trace_clear()

void aws_cryptosdk_keyring_trace_clear ( struct aws_array_list * trace)

Deallocate and remove all records from a keyring trace, but do not deallocate the keyring trace itself.

◆ aws_cryptosdk_keyring_trace_init()

int aws_cryptosdk_keyring_trace_init ( struct aws_allocator * alloc,
struct aws_array_list * trace )

Initialize a keyring trace.

◆ aws_cryptosdk_keyring_trace_is_valid()

bool aws_cryptosdk_keyring_trace_is_valid ( const struct aws_array_list * trace)

Iterates over each memeber of a keyring_trace and ensures that each is a valid record.

◆ aws_cryptosdk_keyring_trace_record_is_valid()

bool aws_cryptosdk_keyring_trace_record_is_valid ( struct aws_cryptosdk_keyring_trace_record * record)

Evaluates the set of properties that define the shape of all valid aws_cryptosdk_keyring_trace_record structures.