#include <assert.h>
#include <limits.h>
#include <string.h>
#include <openssl/aead.h>
#include <openssl/cipher.h>
#include <openssl/err.h>
#include <openssl/hmac.h>
#include <openssl/md5.h>
#include <openssl/mem.h>
#include <openssl/sha.h>
#include "../fipsmodule/cipher/internal.h"
#include "../internal.h"
#include "internal.h"
AEAD_TLS_CTX;
static_assert;
static_assert;
static_assert;
static void aead_tls_cleanup(EVP_AEAD_CTX *ctx) { … }
static int aead_tls_init(EVP_AEAD_CTX *ctx, const uint8_t *key, size_t key_len,
size_t tag_len, enum evp_aead_direction_t dir,
const EVP_CIPHER *cipher, const EVP_MD *md,
char implicit_iv) { … }
static size_t aead_tls_tag_len(const EVP_AEAD_CTX *ctx, const size_t in_len,
const size_t extra_in_len) { … }
static int aead_tls_seal_scatter(const EVP_AEAD_CTX *ctx, uint8_t *out,
uint8_t *out_tag, size_t *out_tag_len,
const size_t max_out_tag_len,
const uint8_t *nonce, const size_t nonce_len,
const uint8_t *in, const size_t in_len,
const uint8_t *extra_in,
const size_t extra_in_len, const uint8_t *ad,
const size_t ad_len) { … }
static int aead_tls_open(const EVP_AEAD_CTX *ctx, uint8_t *out, size_t *out_len,
size_t max_out_len, const uint8_t *nonce,
size_t nonce_len, const uint8_t *in, size_t in_len,
const uint8_t *ad, size_t ad_len) { … }
static int aead_aes_128_cbc_sha1_tls_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
size_t key_len, size_t tag_len,
enum evp_aead_direction_t dir) { … }
static int aead_aes_128_cbc_sha1_tls_implicit_iv_init(
EVP_AEAD_CTX *ctx, const uint8_t *key, size_t key_len, size_t tag_len,
enum evp_aead_direction_t dir) { … }
static int aead_aes_128_cbc_sha256_tls_init(EVP_AEAD_CTX *ctx,
const uint8_t *key, size_t key_len,
size_t tag_len,
enum evp_aead_direction_t dir) { … }
static int aead_aes_256_cbc_sha1_tls_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
size_t key_len, size_t tag_len,
enum evp_aead_direction_t dir) { … }
static int aead_aes_256_cbc_sha1_tls_implicit_iv_init(
EVP_AEAD_CTX *ctx, const uint8_t *key, size_t key_len, size_t tag_len,
enum evp_aead_direction_t dir) { … }
static int aead_des_ede3_cbc_sha1_tls_init(EVP_AEAD_CTX *ctx,
const uint8_t *key, size_t key_len,
size_t tag_len,
enum evp_aead_direction_t dir) { … }
static int aead_des_ede3_cbc_sha1_tls_implicit_iv_init(
EVP_AEAD_CTX *ctx, const uint8_t *key, size_t key_len, size_t tag_len,
enum evp_aead_direction_t dir) { … }
static int aead_tls_get_iv(const EVP_AEAD_CTX *ctx, const uint8_t **out_iv,
size_t *out_iv_len) { … }
static const EVP_AEAD aead_aes_128_cbc_sha1_tls = …;
static const EVP_AEAD aead_aes_128_cbc_sha1_tls_implicit_iv = …;
static const EVP_AEAD aead_aes_128_cbc_sha256_tls = …;
static const EVP_AEAD aead_aes_256_cbc_sha1_tls = …;
static const EVP_AEAD aead_aes_256_cbc_sha1_tls_implicit_iv = …;
static const EVP_AEAD aead_des_ede3_cbc_sha1_tls = …;
static const EVP_AEAD aead_des_ede3_cbc_sha1_tls_implicit_iv = …;
const EVP_AEAD *EVP_aead_aes_128_cbc_sha1_tls(void) { … }
const EVP_AEAD *EVP_aead_aes_128_cbc_sha1_tls_implicit_iv(void) { … }
const EVP_AEAD *EVP_aead_aes_128_cbc_sha256_tls(void) { … }
const EVP_AEAD *EVP_aead_aes_256_cbc_sha1_tls(void) { … }
const EVP_AEAD *EVP_aead_aes_256_cbc_sha1_tls_implicit_iv(void) { … }
const EVP_AEAD *EVP_aead_des_ede3_cbc_sha1_tls(void) { … }
const EVP_AEAD *EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv(void) { … }