Lines Matching defs:ctx

36 void EVP_AEAD_CTX_zero(EVP_AEAD_CTX *ctx) {
37 OPENSSL_memset(ctx, 0, sizeof(EVP_AEAD_CTX));
42 EVP_AEAD_CTX *ctx = OPENSSL_malloc(sizeof(EVP_AEAD_CTX));
43 EVP_AEAD_CTX_zero(ctx);
45 if (EVP_AEAD_CTX_init(ctx, aead, key, key_len, tag_len, NULL)) {
46 return ctx;
49 EVP_AEAD_CTX_free(ctx);
53 void EVP_AEAD_CTX_free(EVP_AEAD_CTX *ctx) {
54 EVP_AEAD_CTX_cleanup(ctx);
55 OPENSSL_free(ctx);
58 int EVP_AEAD_CTX_init(EVP_AEAD_CTX *ctx, const EVP_AEAD *aead,
63 ctx->aead = NULL;
66 return EVP_AEAD_CTX_init_with_direction(ctx, aead, key, key_len, tag_len,
70 int EVP_AEAD_CTX_init_with_direction(EVP_AEAD_CTX *ctx, const EVP_AEAD *aead,
76 ctx->aead = NULL;
80 ctx->aead = aead;
84 ok = aead->init(ctx, key, key_len, tag_len);
86 ok = aead->init_with_direction(ctx, key, key_len, tag_len, dir);
90 ctx->aead = NULL;
96 void EVP_AEAD_CTX_cleanup(EVP_AEAD_CTX *ctx) {
97 if (ctx->aead == NULL) {
100 ctx->aead->cleanup(ctx);
101 ctx->aead = NULL;
115 int EVP_AEAD_CTX_seal(const EVP_AEAD_CTX *ctx, uint8_t *out, size_t *out_len,
119 if (in_len + ctx->aead->overhead < in_len /* overflow */) {
135 if (ctx->aead->seal_scatter(ctx, out, out + in_len, &out_tag_len,
151 const EVP_AEAD_CTX *ctx, uint8_t *out, uint8_t *out_tag, size_t
163 if (!ctx->aead->seal_scatter_supports_extra_in && extra_in_len) {
168 if (ctx->aead->seal_scatter(ctx, out, out_tag, out_tag_len, max_out_tag_len,
183 int EVP_AEAD_CTX_open(const EVP_AEAD_CTX *ctx, uint8_t *out, size_t *out_len,
192 if (ctx->aead->open) {
193 if (!ctx->aead->open(ctx, out, out_len, max_out_len, nonce, nonce_len, in,
202 assert(ctx->tag_len);
204 if (in_len < ctx->tag_len) {
209 size_t plaintext_len = in_len - ctx->tag_len;
214 if (EVP_AEAD_CTX_open_gather(ctx, out, nonce, nonce_len, in, plaintext_len,
215 in + plaintext_len, ctx->tag_len, ad, ad_len)) {
229 int EVP_AEAD_CTX_open_gather(const EVP_AEAD_CTX *ctx, uint8_t *out,
239 if (!ctx->aead->open_gather) {
244 if (ctx->aead->open_gather(ctx, out, nonce, nonce_len, in, in_len, in_tag,
257 const EVP_AEAD *EVP_AEAD_CTX_aead(const EVP_AEAD_CTX *ctx) { return ctx->aead; }
259 int EVP_AEAD_CTX_get_iv(const EVP_AEAD_CTX *ctx, const uint8_t **out_iv,
261 if (ctx->aead->get_iv == NULL) {
265 return ctx->aead->get_iv(ctx, out_iv, out_len);
268 int EVP_AEAD_CTX_tag_len(const EVP_AEAD_CTX *ctx, size_t *out_tag_len,
270 assert(ctx->aead->seal_scatter_supports_extra_in || !extra_in_len);
272 if (ctx->aead->tag_len) {
273 *out_tag_len = ctx->aead->tag_len(ctx, in_len, extra_in_len);
277 if (extra_in_len + ctx->tag_len < extra_in_len) {
282 *out_tag_len = extra_in_len + ctx->tag_len;