AWS Encryption SDK for C v2.4
Loading...
Searching...
No Matches
keyring_trace.h
Go to the documentation of this file.
1/*
2 * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use
5 * this file except in compliance with the License. A copy of the License is
6 * located at
7 *
8 * http://aws.amazon.com/apache2.0/
9 *
10 * or in the "license" file accompanying this file. This file is distributed on an
11 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
12 * implied. See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16#ifndef AWS_CRYPTOSDK_KEYRING_TRACE_H
17#define AWS_CRYPTOSDK_KEYRING_TRACE_H
18
19#include <aws/common/array_list.h>
20#include <aws/common/string.h>
21#include <aws/cryptosdk/exports.h>
22
51 struct aws_string *wrapping_key_namespace;
52 struct aws_string *wrapping_key_name;
53 uint32_t flags;
54};
55
59#define AWS_CRYPTOSDK_WRAPPING_KEY_GENERATED_DATA_KEY 1
60
64#define AWS_CRYPTOSDK_WRAPPING_KEY_ENCRYPTED_DATA_KEY (1 << 1)
65
69#define AWS_CRYPTOSDK_WRAPPING_KEY_DECRYPTED_DATA_KEY (1 << 2)
70
74#define AWS_CRYPTOSDK_WRAPPING_KEY_SIGNED_ENC_CTX (1 << 3)
75
79#define AWS_CRYPTOSDK_WRAPPING_KEY_VERIFIED_ENC_CTX (1 << 4)
80
81#ifdef __cplusplus
82extern "C" {
83#endif
84
89AWS_CRYPTOSDK_API
91
95AWS_CRYPTOSDK_API
96bool aws_cryptosdk_keyring_trace_is_valid(const struct aws_array_list *trace);
97
103AWS_CRYPTOSDK_API
105 struct aws_allocator *alloc,
106 struct aws_array_list *trace,
107 const struct aws_string *wrapping_key_namespace,
108 const struct aws_string *wrapping_key_name,
109 uint32_t flags);
110
115AWS_CRYPTOSDK_API
117 struct aws_allocator *alloc,
118 struct aws_array_list *trace,
119 const char *wrapping_key_namespace,
120 const char *wrapping_key_name,
121 uint32_t flags);
122
127AWS_CRYPTOSDK_API
129 struct aws_allocator *alloc,
130 struct aws_array_list *trace,
131 const struct aws_byte_buf *wrapping_key_namespace,
132 const struct aws_byte_buf *wrapping_key_name,
133 uint32_t flags);
134
138AWS_CRYPTOSDK_API
139int aws_cryptosdk_keyring_trace_init(struct aws_allocator *alloc, struct aws_array_list *trace);
140
144AWS_CRYPTOSDK_API
145void aws_cryptosdk_keyring_trace_clean_up(struct aws_array_list *trace);
146
151AWS_CRYPTOSDK_API
152void aws_cryptosdk_keyring_trace_clear(struct aws_array_list *trace);
153
154#ifdef __cplusplus
155}
156#endif
157
158#endif // AWS_CRYPTOSDK_KEYRING_TRACE_H
bool aws_cryptosdk_keyring_trace_is_valid(const struct aws_array_list *trace)
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_init(struct aws_allocator *alloc, struct aws_array_list *trace)
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_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)
bool aws_cryptosdk_keyring_trace_record_is_valid(struct aws_cryptosdk_keyring_trace_record *record)
void aws_cryptosdk_keyring_trace_clean_up(struct aws_array_list *trace)
void aws_cryptosdk_keyring_trace_clear(struct aws_array_list *trace)
struct aws_string * wrapping_key_name
struct aws_string * wrapping_key_namespace