747c8ce4e7
Introduce the SM4 cipher algorithms (OSCCA GB/T 32907-2016). SM4 (GBT.32907-2016) is a cryptographic standard issued by the Organization of State Commercial Administration of China (OSCCA) as an authorized cryptographic algorithms for the use within China. SMS4 was originally created for use in protecting wireless networks, and is mandated in the Chinese National Standard for Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure) (GB.15629.11-2003). Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
28 lines
609 B
C
28 lines
609 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
|
|
/*
|
|
* Common values for the SM4 algorithm
|
|
* Copyright (C) 2018 ARM Limited or its affiliates.
|
|
*/
|
|
|
|
#ifndef _CRYPTO_SM4_H
|
|
#define _CRYPTO_SM4_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/crypto.h>
|
|
|
|
#define SM4_KEY_SIZE 16
|
|
#define SM4_BLOCK_SIZE 16
|
|
#define SM4_RKEY_WORDS 32
|
|
|
|
struct crypto_sm4_ctx {
|
|
u32 rkey_enc[SM4_RKEY_WORDS];
|
|
u32 rkey_dec[SM4_RKEY_WORDS];
|
|
};
|
|
|
|
int crypto_sm4_set_key(struct crypto_tfm *tfm, const u8 *in_key,
|
|
unsigned int key_len);
|
|
int crypto_sm4_expand_key(struct crypto_sm4_ctx *ctx, const u8 *in_key,
|
|
unsigned int key_len);
|
|
|
|
#endif
|