File Index
Files and directories
Sign in
FILE

crypto_ctx.h

File preview with syntax highlighting.

linux-6.19.14/fs/smb/server/crypto_ctx.h C
 1/* SPDX-License-Identifier: GPL-2.0-or-later */
 2/*
 3 *   Copyright (C) 2019 Samsung Electronics Co., Ltd.
 4 */
 5
 6#ifndef __CRYPTO_CTX_H__
 7#define __CRYPTO_CTX_H__
 8
 9#include <crypto/hash.h>
10#include <crypto/aead.h>
11
12enum {
13	CRYPTO_SHASH_CMACAES	= 0,
14	CRYPTO_SHASH_MAX,
15};
16
17enum {
18	CRYPTO_AEAD_AES_GCM = 16,
19	CRYPTO_AEAD_AES_CCM,
20	CRYPTO_AEAD_MAX,
21};
22
23enum {
24	CRYPTO_BLK_ECBDES	= 32,
25	CRYPTO_BLK_MAX,
26};
27
28struct ksmbd_crypto_ctx {
29	struct list_head		list;
30
31	struct shash_desc		*desc[CRYPTO_SHASH_MAX];
32	struct crypto_aead		*ccmaes[CRYPTO_AEAD_MAX];
33};
34
35#define CRYPTO_CMACAES(c)	((c)->desc[CRYPTO_SHASH_CMACAES])
36
37#define CRYPTO_CMACAES_TFM(c)	((c)->desc[CRYPTO_SHASH_CMACAES]->tfm)
38
39#define CRYPTO_GCM(c)		((c)->ccmaes[CRYPTO_AEAD_AES_GCM])
40#define CRYPTO_CCM(c)		((c)->ccmaes[CRYPTO_AEAD_AES_CCM])
41
42void ksmbd_release_crypto_ctx(struct ksmbd_crypto_ctx *ctx);
43struct ksmbd_crypto_ctx *ksmbd_crypto_ctx_find_cmacaes(void);
44struct ksmbd_crypto_ctx *ksmbd_crypto_ctx_find_gcm(void);
45struct ksmbd_crypto_ctx *ksmbd_crypto_ctx_find_ccm(void);
46void ksmbd_crypto_destroy(void);
47int ksmbd_crypto_create(void);
48
49#endif /* __CRYPTO_CTX_H__ */
~/ Read-only file preview.