16#ifndef AWS_CRYPTOSDK_CIPHER_H
17#define AWS_CRYPTOSDK_CIPHER_H
19#include <aws/common/byte_buf.h>
20#include <aws/common/string.h>
21#include <aws/cryptosdk/exports.h>
67 const struct aws_cryptosdk_alg_impl *
impl;
132struct aws_cryptosdk_sig_ctx;
148 const struct aws_cryptosdk_sig_ctx *ctx,
struct aws_allocator *alloc,
struct aws_string **priv_key_buf);
158 const struct aws_cryptosdk_sig_ctx *ctx,
struct aws_allocator *alloc,
struct aws_string **pub_key_buf);
173 struct aws_cryptosdk_sig_ctx **ctx,
174 struct aws_allocator *alloc,
175 struct aws_string **pub_key_buf,
191 struct aws_cryptosdk_sig_ctx **ctx,
192 struct aws_allocator *alloc,
193 struct aws_string **pub_key_buf,
195 const struct aws_string *priv_key);
208 struct aws_cryptosdk_sig_ctx **ctx,
209 struct aws_allocator *alloc,
210 const struct aws_string *pub_key,
243 struct aws_cryptosdk_sig_ctx *ctx,
struct aws_allocator *alloc,
struct aws_string **signature);
bool aws_cryptosdk_sig_ctx_is_valid(const struct aws_cryptosdk_sig_ctx *sig_ctx)
bool aws_cryptosdk_alg_properties_is_valid(const struct aws_cryptosdk_alg_properties *const alg_props)
int aws_cryptosdk_sig_get_privkey(const struct aws_cryptosdk_sig_ctx *ctx, struct aws_allocator *alloc, struct aws_string **priv_key_buf)
void aws_cryptosdk_sig_abort(struct aws_cryptosdk_sig_ctx *ctx)
const struct aws_cryptosdk_alg_properties * aws_cryptosdk_alg_props(enum aws_cryptosdk_alg_id alg_id)
int aws_cryptosdk_sig_verify_finish(struct aws_cryptosdk_sig_ctx *ctx, const struct aws_string *signature)
int aws_cryptosdk_sig_update(struct aws_cryptosdk_sig_ctx *ctx, const struct aws_byte_cursor buf)
int aws_cryptosdk_sig_get_pubkey(const struct aws_cryptosdk_sig_ctx *ctx, struct aws_allocator *alloc, struct aws_string **pub_key_buf)
int aws_cryptosdk_sig_sign_start_keygen(struct aws_cryptosdk_sig_ctx **ctx, struct aws_allocator *alloc, struct aws_string **pub_key_buf, const struct aws_cryptosdk_alg_properties *props)
int aws_cryptosdk_sig_sign_start(struct aws_cryptosdk_sig_ctx **ctx, struct aws_allocator *alloc, struct aws_string **pub_key_buf, const struct aws_cryptosdk_alg_properties *props, const struct aws_string *priv_key)
int aws_cryptosdk_sig_verify_start(struct aws_cryptosdk_sig_ctx **ctx, struct aws_allocator *alloc, const struct aws_string *pub_key, const struct aws_cryptosdk_alg_properties *props)
int aws_cryptosdk_sig_sign_finish(struct aws_cryptosdk_sig_ctx *ctx, struct aws_allocator *alloc, struct aws_string **signature)
aws_cryptosdk_aes_key_len
aws_cryptosdk_rsa_padding_mode
@ AWS_CRYPTOSDK_RSA_PKCS1
@ AWS_CRYPTOSDK_RSA_OAEP_SHA256_MGF1
@ AWS_CRYPTOSDK_RSA_OAEP_SHA1_MGF1
enum aws_cryptosdk_hdr_version msg_format_version
enum aws_cryptosdk_alg_id alg_id
const struct aws_cryptosdk_alg_impl * impl
size_t alg_suite_data_len