md5_ctx
#define MD5_SHASH_STATE_SIZE (sizeof(struct md5_ctx) + 1)
.descsize = sizeof(struct md5_ctx),
static_assert(sizeof(struct md5_ctx) == sizeof(struct md5_state));
static_assert(offsetof(struct md5_ctx, state) == offsetof(struct md5_state, hash));
static_assert(offsetof(struct md5_ctx, bytecount) == offsetof(struct md5_state, byte_count));
static_assert(offsetof(struct md5_ctx, buf) == offsetof(struct md5_state, block));
static int __crypto_md5_export(const struct md5_ctx *ctx0, void *out)
struct md5_ctx ctx = *ctx0;
static int __crypto_md5_import(struct md5_ctx *ctx, const void *in)
static int __crypto_md5_export_core(const struct md5_ctx *ctx, void *out)
memcpy(out, ctx, offsetof(struct md5_ctx, buf));
static int __crypto_md5_import_core(struct md5_ctx *ctx, const void *in)
memcpy(ctx, in, offsetof(struct md5_ctx, buf));
#define MD5_CTX(desc) ((struct md5_ctx *)shash_desc_ctx(desc))
struct md5_ctx ctx;
struct md5_ctx *md5;
struct md5_ctx ctx;
struct md5_ctx hash_ctx;
void md5_init(struct md5_ctx *ctx);
void md5_update(struct md5_ctx *ctx, const u8 *data, size_t len);
void md5_final(struct md5_ctx *ctx, u8 out[at_least MD5_DIGEST_SIZE]);
struct md5_ctx;
void tcp_md5_hash_skb_data(struct md5_ctx *ctx, const struct sk_buff *skb,
void tcp_md5_hash_key(struct md5_ctx *ctx, const struct tcp_md5sig_key *key);
void md5_init(struct md5_ctx *ctx)
void md5_update(struct md5_ctx *ctx, const u8 *data, size_t len)
static void __md5_final(struct md5_ctx *ctx, u8 out[MD5_DIGEST_SIZE])
void md5_final(struct md5_ctx *ctx, u8 out[MD5_DIGEST_SIZE])
struct md5_ctx ctx;
#define HASH_CTX md5_ctx
void tcp_md5_hash_skb_data(struct md5_ctx *ctx, const struct sk_buff *skb,
void tcp_md5_hash_key(struct md5_ctx *ctx,
static void tcp_v4_md5_hash_headers(struct md5_ctx *ctx,
struct md5_ctx ctx;
struct md5_ctx ctx;
static void tcp_v6_md5_hash_headers(struct md5_ctx *ctx,
struct md5_ctx ctx;
struct md5_ctx ctx;