WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
crypto_hash_struct.h 文件参考
crypto_hash_struct.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

结构体

struct  crypto_hash_attr
 
struct  crypto_hash_clone_ctx
 
struct  crypto_hkdf_extract_t
 
struct  crypto_hkdf_expand_t
 
struct  crypto_hkdf_t
 

宏定义

#define compat_hash_type(is_hmac, alg, mode, max_message_length, block_size, result_size)
 
#define CRYPTO_HASH_TYPE   0
 
#define CRYPTO_HMAC_TYPE   1
 
#define CRYPTO_IS_HMAC_MASK   0xF0000000
 
#define CRYPTO_IS_HMAC_SHIFT   28
 
#define CRYPTO_HASH_ALG_SHA1   0
 
#define CRYPTO_HASH_ALG_SHA2   1
 
#define CRYPTO_HASH_ALG_SM3   2
 
#define CRYPTO_HASH_ALG_MASK   0x0F000000
 
#define CRYPTO_HASH_ALG_SHIFT   24
 
#define CRYPTO_HASH_MODE_224   0
 
#define CRYPTO_HASH_MODE_256   1
 
#define CRYPTO_HASH_MODE_384   2
 
#define CRYPTO_HASH_MODE_512   3
 
#define CRYPTO_HASH_MODE_UNDEF   0xf
 
#define CRYPTO_HASH_MODE_MASK   0x00F00000
 
#define CRYPTO_HASH_MODE_SHIFT   20
 
#define CRYPTO_HASH_MAX_MESSAGE_LEN_64BIT   0x6
 
#define CRYPTO_HASH_MAX_MESSAGE_LEN_128BIT   0x7
 
#define CRYPTO_HASH_MAX_MESSAGE_LEN_MASK   0x000F0000
 
#define CRYPTO_HASH_MAX_MESSAGE_LEN_SHIFT   16
 
#define CRYPTO_HASH_BLOCK_SIZE_512BIT   0x9
 
#define CRYPTO_HASH_BLOCK_SIZE_1024BIT   0xa
 
#define CRYPTO_HASH_BLOCK_SIZE_MASK   0x0000F000
 
#define CRYPTO_HASH_BLOCK_SIZE_SHIFT   12
 
#define CRYPTO_HASH_RESULT_SIZE_160BIT   0xa0
 
#define CRYPTO_HASH_RESULT_SIZE_224BIT   0xe0
 
#define CRYPTO_HASH_RESULT_SIZE_256BIT   0x100
 
#define CRYPTO_HASH_RESULT_SIZE_384BIT   0x180
 
#define CRYPTO_HASH_RESULT_SIZE_512BIT   0x200
 
#define CRYPTO_HASH_RESULT_SIZE_MASK   0x00000FFF
 
#define CRYPTO_HASH_RESULT_SIZE_SHIFT   0
 
#define CRYPTO_HASH_BLOCK_SIZE_20BYTE   0x14
 
#define CRYPTO_HASH_BLOCK_SIZE_32BYTE   0x20
 
#define CRYPTO_HASH_BLOCK_SIZE_64BYTE   0x40
 
#define crypto_hash_get_attr(value, mask, shift)   (((td_u32)(value) & (td_u32)(mask)) >> (shift))
 
#define crypto_hash_macth(value, mask, target, shift)   (crypto_hash_get_attr(value, mask, shift) == (target))
 
#define crypto_hash_get_alg(hash_type)    crypto_hash_get_attr(hash_type, CRYPTO_HASH_ALG_MASK, CRYPTO_HASH_ALG_SHIFT)
 
#define crypto_hash_get_mode(hash_type)    crypto_hash_get_attr(hash_type, CRYPTO_HASH_MODE_MASK, CRYPTO_HASH_MODE_SHIFT)
 
#define crypto_hash_is_hmac(hash_type)    crypto_hash_macth(hash_type, CRYPTO_IS_HMAC_MASK, CRYPTO_HMAC_TYPE, CRYPTO_IS_HMAC_SHIFT)
 
#define crypto_hash_get_message_len(hash_type)    (1 << crypto_hash_get_attr(hash_type, CRYPTO_HASH_MAX_MESSAGE_LEN_MASK, CRYPTO_HASH_MAX_MESSAGE_LEN_SHIFT))
 
#define crypto_hash_get_block_size(hash_type)    (1 << crypto_hash_get_attr(hash_type, CRYPTO_HASH_BLOCK_SIZE_MASK, CRYPTO_HASH_BLOCK_SIZE_SHIFT))
 
#define crypto_hash_get_result_size(hash_type)    crypto_hash_get_attr(hash_type, CRYPTO_HASH_RESULT_SIZE_MASK, CRYPTO_HASH_RESULT_SIZE_SHIFT)
 
#define CRYPTO_HASH_RESULT_SIZE_MAX   64
 
#define CRYPTO_HASH_RESULT_SIZE_MAX_IN_WORD   16
 
#define CRYPTO_HASH_BLOCK_SIZE_MAX   128
 

枚举

enum  crypto_hash_type {
  CRYPTO_HASH_TYPE_SHA1 , CRYPTO_HASH_TYPE_SHA224 , CRYPTO_HASH_TYPE_SHA256 , CRYPTO_HASH_TYPE_SHA384 ,
  CRYPTO_HASH_TYPE_SHA512 , CRYPTO_HASH_TYPE_SM3 , CRYPTO_HASH_TYPE_HMAC_SHA1 , CRYPTO_HASH_TYPE_HMAC_SHA224 ,
  CRYPTO_HASH_TYPE_HMAC_SHA256 , CRYPTO_HASH_TYPE_HMAC_SHA384 , CRYPTO_HASH_TYPE_HMAC_SHA512 , CRYPTO_HASH_TYPE_HMAC_SM3 ,
  CRYPTO_HASH_TYPE_INVALID = 0xffffffff
}
 

宏定义说明

◆ compat_hash_type

#define compat_hash_type (   is_hmac,
  alg,
  mode,
  max_message_length,
  block_size,
  result_size 
)
值:
((((is_hmac) & 0xF) << 28) | (((alg) & 0xF) << 24) | (((mode) & 0xF) << 20) | \
(((max_message_length) & 0xF) << 16) | (((block_size) & 0xF) << 12) | ((result_size) & 0xFFF))

Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.

Description: crypto hash struct header.
History:
2023-03-22, Create file.

◆ CRYPTO_HASH_ALG_MASK

#define CRYPTO_HASH_ALG_MASK   0x0F000000

◆ CRYPTO_HASH_ALG_SHA1

#define CRYPTO_HASH_ALG_SHA1   0

◆ CRYPTO_HASH_ALG_SHA2

#define CRYPTO_HASH_ALG_SHA2   1

◆ CRYPTO_HASH_ALG_SHIFT

#define CRYPTO_HASH_ALG_SHIFT   24

◆ CRYPTO_HASH_ALG_SM3

#define CRYPTO_HASH_ALG_SM3   2

◆ CRYPTO_HASH_BLOCK_SIZE_1024BIT

#define CRYPTO_HASH_BLOCK_SIZE_1024BIT   0xa

◆ CRYPTO_HASH_BLOCK_SIZE_20BYTE

#define CRYPTO_HASH_BLOCK_SIZE_20BYTE   0x14

◆ CRYPTO_HASH_BLOCK_SIZE_32BYTE

#define CRYPTO_HASH_BLOCK_SIZE_32BYTE   0x20

◆ CRYPTO_HASH_BLOCK_SIZE_512BIT

#define CRYPTO_HASH_BLOCK_SIZE_512BIT   0x9

◆ CRYPTO_HASH_BLOCK_SIZE_64BYTE

#define CRYPTO_HASH_BLOCK_SIZE_64BYTE   0x40

◆ CRYPTO_HASH_BLOCK_SIZE_MASK

#define CRYPTO_HASH_BLOCK_SIZE_MASK   0x0000F000

◆ CRYPTO_HASH_BLOCK_SIZE_MAX

#define CRYPTO_HASH_BLOCK_SIZE_MAX   128

◆ CRYPTO_HASH_BLOCK_SIZE_SHIFT

#define CRYPTO_HASH_BLOCK_SIZE_SHIFT   12

◆ crypto_hash_get_alg

#define crypto_hash_get_alg (   hash_type)     crypto_hash_get_attr(hash_type, CRYPTO_HASH_ALG_MASK, CRYPTO_HASH_ALG_SHIFT)

◆ crypto_hash_get_attr

#define crypto_hash_get_attr (   value,
  mask,
  shift 
)    (((td_u32)(value) & (td_u32)(mask)) >> (shift))

◆ crypto_hash_get_block_size

#define crypto_hash_get_block_size (   hash_type)     (1 << crypto_hash_get_attr(hash_type, CRYPTO_HASH_BLOCK_SIZE_MASK, CRYPTO_HASH_BLOCK_SIZE_SHIFT))

◆ crypto_hash_get_message_len

#define crypto_hash_get_message_len (   hash_type)     (1 << crypto_hash_get_attr(hash_type, CRYPTO_HASH_MAX_MESSAGE_LEN_MASK, CRYPTO_HASH_MAX_MESSAGE_LEN_SHIFT))

◆ crypto_hash_get_mode

#define crypto_hash_get_mode (   hash_type)     crypto_hash_get_attr(hash_type, CRYPTO_HASH_MODE_MASK, CRYPTO_HASH_MODE_SHIFT)

◆ crypto_hash_get_result_size

#define crypto_hash_get_result_size (   hash_type)     crypto_hash_get_attr(hash_type, CRYPTO_HASH_RESULT_SIZE_MASK, CRYPTO_HASH_RESULT_SIZE_SHIFT)

◆ crypto_hash_is_hmac

#define crypto_hash_is_hmac (   hash_type)     crypto_hash_macth(hash_type, CRYPTO_IS_HMAC_MASK, CRYPTO_HMAC_TYPE, CRYPTO_IS_HMAC_SHIFT)

◆ crypto_hash_macth

#define crypto_hash_macth (   value,
  mask,
  target,
  shift 
)    (crypto_hash_get_attr(value, mask, shift) == (target))

◆ CRYPTO_HASH_MAX_MESSAGE_LEN_128BIT

#define CRYPTO_HASH_MAX_MESSAGE_LEN_128BIT   0x7

◆ CRYPTO_HASH_MAX_MESSAGE_LEN_64BIT

#define CRYPTO_HASH_MAX_MESSAGE_LEN_64BIT   0x6

◆ CRYPTO_HASH_MAX_MESSAGE_LEN_MASK

#define CRYPTO_HASH_MAX_MESSAGE_LEN_MASK   0x000F0000

◆ CRYPTO_HASH_MAX_MESSAGE_LEN_SHIFT

#define CRYPTO_HASH_MAX_MESSAGE_LEN_SHIFT   16

◆ CRYPTO_HASH_MODE_224

#define CRYPTO_HASH_MODE_224   0

◆ CRYPTO_HASH_MODE_256

#define CRYPTO_HASH_MODE_256   1

◆ CRYPTO_HASH_MODE_384

#define CRYPTO_HASH_MODE_384   2

◆ CRYPTO_HASH_MODE_512

#define CRYPTO_HASH_MODE_512   3

◆ CRYPTO_HASH_MODE_MASK

#define CRYPTO_HASH_MODE_MASK   0x00F00000

◆ CRYPTO_HASH_MODE_SHIFT

#define CRYPTO_HASH_MODE_SHIFT   20

◆ CRYPTO_HASH_MODE_UNDEF

#define CRYPTO_HASH_MODE_UNDEF   0xf

◆ CRYPTO_HASH_RESULT_SIZE_160BIT

#define CRYPTO_HASH_RESULT_SIZE_160BIT   0xa0

◆ CRYPTO_HASH_RESULT_SIZE_224BIT

#define CRYPTO_HASH_RESULT_SIZE_224BIT   0xe0

◆ CRYPTO_HASH_RESULT_SIZE_256BIT

#define CRYPTO_HASH_RESULT_SIZE_256BIT   0x100

◆ CRYPTO_HASH_RESULT_SIZE_384BIT

#define CRYPTO_HASH_RESULT_SIZE_384BIT   0x180

◆ CRYPTO_HASH_RESULT_SIZE_512BIT

#define CRYPTO_HASH_RESULT_SIZE_512BIT   0x200

◆ CRYPTO_HASH_RESULT_SIZE_MASK

#define CRYPTO_HASH_RESULT_SIZE_MASK   0x00000FFF

◆ CRYPTO_HASH_RESULT_SIZE_MAX

#define CRYPTO_HASH_RESULT_SIZE_MAX   64

◆ CRYPTO_HASH_RESULT_SIZE_MAX_IN_WORD

#define CRYPTO_HASH_RESULT_SIZE_MAX_IN_WORD   16

◆ CRYPTO_HASH_RESULT_SIZE_SHIFT

#define CRYPTO_HASH_RESULT_SIZE_SHIFT   0

◆ CRYPTO_HASH_TYPE

#define CRYPTO_HASH_TYPE   0

◆ CRYPTO_HMAC_TYPE

#define CRYPTO_HMAC_TYPE   1

◆ CRYPTO_IS_HMAC_MASK

#define CRYPTO_IS_HMAC_MASK   0xF0000000

◆ CRYPTO_IS_HMAC_SHIFT

#define CRYPTO_IS_HMAC_SHIFT   28

枚举类型说明

◆ crypto_hash_type

枚举值
CRYPTO_HASH_TYPE_SHA1 
CRYPTO_HASH_TYPE_SHA224 
CRYPTO_HASH_TYPE_SHA256 
CRYPTO_HASH_TYPE_SHA384 
CRYPTO_HASH_TYPE_SHA512 
CRYPTO_HASH_TYPE_SM3 
CRYPTO_HASH_TYPE_HMAC_SHA1 
CRYPTO_HASH_TYPE_HMAC_SHA224 
CRYPTO_HASH_TYPE_HMAC_SHA256 
CRYPTO_HASH_TYPE_HMAC_SHA384 
CRYPTO_HASH_TYPE_HMAC_SHA512 
CRYPTO_HASH_TYPE_HMAC_SM3 
CRYPTO_HASH_TYPE_INVALID