Merge branch 'spectre' of git://git.armlinux.org.uk/~rmk/linux-arm
[sfrench/cifs-2.6.git] / include / crypto / sm4.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2
3 /*
4  * Common values for the SM4 algorithm
5  * Copyright (C) 2018 ARM Limited or its affiliates.
6  */
7
8 #ifndef _CRYPTO_SM4_H
9 #define _CRYPTO_SM4_H
10
11 #include <linux/types.h>
12 #include <linux/crypto.h>
13
14 #define SM4_KEY_SIZE    16
15 #define SM4_BLOCK_SIZE  16
16 #define SM4_RKEY_WORDS  32
17
18 struct crypto_sm4_ctx {
19         u32 rkey_enc[SM4_RKEY_WORDS];
20         u32 rkey_dec[SM4_RKEY_WORDS];
21 };
22
23 int crypto_sm4_set_key(struct crypto_tfm *tfm, const u8 *in_key,
24                        unsigned int key_len);
25 int crypto_sm4_expand_key(struct crypto_sm4_ctx *ctx, const u8 *in_key,
26                           unsigned int key_len);
27
28 void crypto_sm4_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in);
29 void crypto_sm4_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in);
30
31 #endif