linux/include/crypto/sm4.h
<<
>>
Prefs
   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
  18struct crypto_sm4_ctx {
  19        u32 rkey_enc[SM4_RKEY_WORDS];
  20        u32 rkey_dec[SM4_RKEY_WORDS];
  21};
  22
  23int crypto_sm4_set_key(struct crypto_tfm *tfm, const u8 *in_key,
  24                       unsigned int key_len);
  25int crypto_sm4_expand_key(struct crypto_sm4_ctx *ctx, const u8 *in_key,
  26                          unsigned int key_len);
  27
  28void crypto_sm4_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in);
  29void crypto_sm4_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in);
  30
  31#endif
  32