AWS Encryption SDK for C v2.4
Loading...
Searching...
No Matches
aws_cryptosdk_enc_request Struct Reference

#include <materials.h>

Data Fields

struct aws_allocator * alloc
 
struct aws_hash_table * enc_ctx
 
enum aws_cryptosdk_alg_id requested_alg
 
uint64_t plaintext_size
 
enum aws_cryptosdk_commitment_policy commitment_policy
 

Detailed Description

Encryption request passed from the session to a CMM. In general, you should not allocate or construct struct manually, since we may add additional fields.

Definition at line 133 of file materials.h.

Field Documentation

◆ alloc

struct aws_allocator* aws_cryptosdk_enc_request::alloc

Definition at line 134 of file materials.h.

◆ commitment_policy

enum aws_cryptosdk_commitment_policy aws_cryptosdk_enc_request::commitment_policy

The key commitment policy to enforce when processing the encryption request. The CMM is responsible for selecting an algorithm that satisfies the commitment policy: if the commitment policy requires key commitment, then the algorithm must be a key-committing one; otherwise, the algorithm must NOT be a key-committing one.

Definition at line 173 of file materials.h.

◆ enc_ctx

struct aws_hash_table* aws_cryptosdk_enc_request::enc_ctx

The encryption context for this message. CMMs are permitted to modify this hash table in order to inject additional keys or otherwise modify the encryption context.

The values provided to the encryption context SHOULD be UTF-8 bytes. While it is technically possible to provide invalid UTF-8 bytes, doing so is strongly discouraged. Messages that include invalid UTF-8 bytes in their encryption context will not be interoperable across different language implementations of the AWS Encryption SDK. The ESDK for C permits writing and reading encryption contexts that contain invalid UTF-8 bytes, but ESDKs in other languages will neither read nor write messages whose encryption context contains invalid UTF-8.

Definition at line 150 of file materials.h.

◆ plaintext_size

uint64_t aws_cryptosdk_enc_request::plaintext_size

An upper-bound on the plaintext size to be encrypted (comes from aws_cryptosdk_session_set_message_bound or aws_cryptosdk_session_set_message_size). If no bound has been set, this will be UINT64_MAX.

Definition at line 165 of file materials.h.

◆ requested_alg

enum aws_cryptosdk_alg_id aws_cryptosdk_enc_request::requested_alg

The session will initially call generate_enc_materials on the CMM with a zero requested_alg; it's up to one of the CMMs in the chain to fill this in before the keyring is invoked. In particular, the default CMM will fill in the algorithm ID it has been configured with, unless a CMM before the default CMM filled in a different algorithm ID.

Definition at line 158 of file materials.h.


The documentation for this struct was generated from the following file: