AWS Encryption SDK for C v2.4
Loading...
Searching...
No Matches
session.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_SESSION_H
17#define AWS_CRYPTOSDK_SESSION_H
18
20
60
61#ifdef __cplusplus
62extern "C" {
63#endif
64
65struct aws_cryptosdk_session;
66
82
95AWS_CRYPTOSDK_API
96struct aws_cryptosdk_session *aws_cryptosdk_session_new_from_keyring_2(
97 struct aws_allocator *allocator, enum aws_cryptosdk_mode mode, struct aws_cryptosdk_keyring *keyring);
98
111AWS_CRYPTOSDK_API
112struct aws_cryptosdk_session *aws_cryptosdk_session_new_from_cmm_2(
113 struct aws_allocator *allocator, enum aws_cryptosdk_mode mode, struct aws_cryptosdk_cmm *cmm);
114
116AWS_CRYPTOSDK_API
117void aws_cryptosdk_session_destroy(struct aws_cryptosdk_session *session);
118
128AWS_CRYPTOSDK_API
129int aws_cryptosdk_session_reset(struct aws_cryptosdk_session *session, enum aws_cryptosdk_mode mode);
130
139AWS_CRYPTOSDK_API
140int aws_cryptosdk_session_set_frame_size(struct aws_cryptosdk_session *session, uint32_t frame_size);
141
158AWS_CRYPTOSDK_API
159int aws_cryptosdk_session_set_message_size(struct aws_cryptosdk_session *session, uint64_t message_size);
160
179AWS_CRYPTOSDK_API
180int aws_cryptosdk_session_set_message_bound(struct aws_cryptosdk_session *session, uint64_t max_message_size);
181
186AWS_CRYPTOSDK_API
188 struct aws_cryptosdk_session *session, enum aws_cryptosdk_commitment_policy commitment_policy);
189
194AWS_CRYPTOSDK_API
196 struct aws_cryptosdk_session *session, size_t max_encrypted_data_keys);
197
228AWS_CRYPTOSDK_API
230 struct aws_cryptosdk_session *session,
231 uint8_t *outp,
232 size_t outlen,
233 size_t *out_bytes_written,
234 const uint8_t *inp,
235 size_t inlen,
236 size_t *in_bytes_read);
237
255AWS_CRYPTOSDK_API
257 struct aws_cryptosdk_session *session,
258 uint8_t *outp,
259 size_t outlen,
260 size_t *out_bytes_written,
261 const uint8_t *inp,
262 size_t inlen);
263
271AWS_CRYPTOSDK_API
272bool aws_cryptosdk_session_is_done(const struct aws_cryptosdk_session *session);
273
281AWS_CRYPTOSDK_API
282int aws_cryptosdk_session_get_alg_id(const struct aws_cryptosdk_session *session, enum aws_cryptosdk_alg_id *alg_id);
283
294AWS_CRYPTOSDK_API
296 const struct aws_cryptosdk_session *AWS_RESTRICT session,
297 size_t *AWS_RESTRICT outbuf_needed,
298 size_t *AWS_RESTRICT inbuf_needed);
299
316AWS_CRYPTOSDK_API
317const struct aws_hash_table *aws_cryptosdk_session_get_enc_ctx_ptr(const struct aws_cryptosdk_session *session);
318
338AWS_CRYPTOSDK_API
339struct aws_hash_table *aws_cryptosdk_session_get_enc_ctx_ptr_mut(struct aws_cryptosdk_session *session);
340
359AWS_CRYPTOSDK_API
360const struct aws_array_list *aws_cryptosdk_session_get_keyring_trace_ptr(const struct aws_cryptosdk_session *session);
361
362#ifdef __cplusplus
363}
364#endif
365 // doxygen group session
367
368#endif
aws_cryptosdk_commitment_policy
Definition materials.h:105
bool aws_cryptosdk_session_is_done(const struct aws_cryptosdk_session *session)
aws_cryptosdk_mode
Definition session.h:77
int aws_cryptosdk_session_get_alg_id(const struct aws_cryptosdk_session *session, enum aws_cryptosdk_alg_id *alg_id)
aws_cryptosdk_alg_id
Definition header.h:26
struct aws_cryptosdk_session * aws_cryptosdk_session_new_from_cmm_2(struct aws_allocator *allocator, enum aws_cryptosdk_mode mode, struct aws_cryptosdk_cmm *cmm)
int aws_cryptosdk_session_set_frame_size(struct aws_cryptosdk_session *session, uint32_t frame_size)
void aws_cryptosdk_session_estimate_buf(const struct aws_cryptosdk_session *AWS_RESTRICT session, size_t *AWS_RESTRICT outbuf_needed, size_t *AWS_RESTRICT inbuf_needed)
const struct aws_array_list * aws_cryptosdk_session_get_keyring_trace_ptr(const struct aws_cryptosdk_session *session)
int aws_cryptosdk_session_set_message_size(struct aws_cryptosdk_session *session, uint64_t message_size)
int aws_cryptosdk_session_process_full(struct aws_cryptosdk_session *session, uint8_t *outp, size_t outlen, size_t *out_bytes_written, const uint8_t *inp, size_t inlen)
void aws_cryptosdk_session_destroy(struct aws_cryptosdk_session *session)
int aws_cryptosdk_session_process(struct aws_cryptosdk_session *session, uint8_t *outp, size_t outlen, size_t *out_bytes_written, const uint8_t *inp, size_t inlen, size_t *in_bytes_read)
const struct aws_hash_table * aws_cryptosdk_session_get_enc_ctx_ptr(const struct aws_cryptosdk_session *session)
struct aws_hash_table * aws_cryptosdk_session_get_enc_ctx_ptr_mut(struct aws_cryptosdk_session *session)
int aws_cryptosdk_session_set_commitment_policy(struct aws_cryptosdk_session *session, enum aws_cryptosdk_commitment_policy commitment_policy)
struct aws_cryptosdk_session * aws_cryptosdk_session_new_from_keyring_2(struct aws_allocator *allocator, enum aws_cryptosdk_mode mode, struct aws_cryptosdk_keyring *keyring)
int aws_cryptosdk_session_reset(struct aws_cryptosdk_session *session, enum aws_cryptosdk_mode mode)
int aws_cryptosdk_session_set_message_bound(struct aws_cryptosdk_session *session, uint64_t max_message_size)
int aws_cryptosdk_session_set_max_encrypted_data_keys(struct aws_cryptosdk_session *session, size_t max_encrypted_data_keys)
@ AWS_CRYPTOSDK_DECRYPT
Definition session.h:79
@ AWS_CRYPTOSDK_DECRYPT_UNSIGNED
Definition session.h:80
@ AWS_CRYPTOSDK_ENCRYPT
Definition session.h:78