OpenSSL

密码学和SSL/TLS工具包

EVP_MAC-BLAKE2SMAC

名称

EVP_MAC-BLAKE2、EVP_MAC-BLAKE2BMAC、EVP_MAC-BLAKE2SMAC - BLAKE2 EVP_MAC 实现

描述

支持通过EVP_MAC API 计算 BLAKE2 MAC。

标识

这些实现使用以下名称和属性之一进行标识,用于与 EVP_MAC_fetch() 一起使用

"BLAKE2BMAC", "provider=default"
"BLAKE2SMAC", "provider=default"

支持的参数

这些参数的通用描述可以在"EVP_MAC(3) 中的参数" 中找到。

所有这些参数(除了“块大小”)都可以使用 EVP_MAC_CTX_set_params() 设置。此外,“大小”参数可以使用 EVP_MAC_CTX_get_params() 或 EVP_MAC_CTX_get_mac_size() 获取。 “大小”参数的长度不应超过size_t。同样,“块大小”参数可以使用 EVP_MAC_CTX_get_params() 或 EVP_MAC_CTX_get_block_size() 获取。

"key" (OSSL_MAC_PARAM_KEY) <八位字节串>

设置 MAC 密钥。对于 BLAKE2BMAC,它最多可以为 64 个字节,对于 BLAKE2SMAC 最多为 32 个字节,在两种情况下至少为 1 个字节。设置此参数等同于将密钥传递给EVP_MAC_init(3)

"custom" (OSSL_MAC_PARAM_CUSTOM) <八位字节串>

设置自定义/个性化字符串。它是一个可选值,对于 BLAKE2BMAC 最多为 16 个字节,对于 BLAKE2SMAC 最多为 8 个字节,默认情况下为空。

"salt" (OSSL_MAC_PARAM_SALT) <八位字节串>

设置盐值。它是一个可选值,对于 BLAKE2BMAC 最多为 16 个字节,对于 BLAKE2SMAC 最多为 8 个字节,默认情况下为空。

"size" (OSSL_MAC_PARAM_SIZE) <无符号整数>

设置 MAC 大小。对于 EVP_MAC_BLAKE2S,它可以是 1 到 32 之间的任何数字;对于 EVP_MAC_BLAKE2B,它可以是 1 到 64 之间的任何数字。默认情况下分别为 32 和 64。

"block-size" (OSSL_MAC_PARAM_BLOCK_SIZE) <无符号整数>

获取 MAC 块大小。对于 EVP_MAC_BLAKE2S 为 64,对于 EVP_MAC_BLAKE2B 为 128。

参见

EVP_MAC_CTX_get_params(3)EVP_MAC_CTX_set_params(3)"EVP_MAC(3) 中的参数"OSSL_PARAM(3)

历史

此处描述的宏和函数已添加到 OpenSSL 3.0 中。

版权所有 2018-2021 OpenSSL 项目作者。保留所有权利。

根据 Apache 许可证 2.0(“许可证”)获得许可。除非符合许可证,否则您不得使用此文件。您可以在源代码分发中的 LICENSE 文件或https://www.openssl.org/source/license.html中获取副本。