OpenSSL

密码学和 SSL/TLS 工具包

openssl-mac

名称

openssl-mac - 执行消息认证码操作

概要

openssl mac [-help] [-cipher] [-digest] [-macopt] [-in filename] [-out filename] [-binary] [-provider name] [-provider-path path] [-propquery propq] mac_name

描述

消息认证码函数输出提供的输入文件的 MAC。

选项

-help

打印使用信息。

-in filename

用于计算 MAC 的输入文件名,默认情况下为标准输入。如果文件名为“ - ”,则使用标准输入。文件和标准输入预计为二进制格式。

-out filename

要输出到的文件名,默认情况下为标准输出。

-binary

以二进制形式输出 MAC。如果未指定,则使用十六进制文本格式。

-cipher name

CMAC 和 GMAC 使用它来指定密码算法。对于 CMAC,它应该是一个 CBC 模式密码,例如 AES-128-CBC。对于 GMAC,它应该是一个 GCM 模式密码,例如 AES-128-GCM。

-digest name

HMAC 使用它作为字母数字字符串(如果密钥仅包含可打印字符,则使用)。字符串长度必须符合 MAC 算法的任何限制。要查看支持的摘要列表,请使用 openssl list -digest-commands

-macopt nm:v

将选项传递给 MAC 算法。可以在 EVP_MAC 实现文档中找到完整的控件列表。EVP_MAC_CTX_get_params() 使用的常用参数名称是

key:string

将 MAC 密钥指定为字母数字字符串(如果密钥仅包含可打印字符,则使用)。字符串长度必须符合 MAC 算法的任何限制。每个 MAC 算法都必须指定一个密钥。

hexkey:string

以十六进制形式指定 MAC 密钥(每个字节两个十六进制数字)。密钥长度必须符合 MAC 算法的任何限制。每个 MAC 算法都必须指定一个密钥。

iv:string

GMAC 使用它来指定一个 IV 作为字母数字字符串(如果 IV 仅包含可打印字符,则使用)。

hexiv:string

GMAC 使用它以十六进制形式指定一个 IV(每个字节两个十六进制数字)。

size:int

KMAC128 或 KMAC256 使用它来指定输出长度。默认大小分别为 32 或 64 字节。

custom:string

KMAC128 或 KMAC256 使用它来指定自定义字符串。默认值为空字符串 ""。

digest:string

此选项与 -digest 选项相同。

cipher:string

此选项与 -cipher 选项相同。

-provider name
-provider-path path
-propquery propq

请参阅 "openssl(1) 中的提供程序选项"provider(7)property(7)

mac_name

指定将使用的支持的 MAC 算法的名称。要查看支持的 MAC 列表,请使用命令 openssl list -mac-algorithms

示例

要创建一个文件的十六进制编码 HMAC-SHA1 MAC 并写入 stdout

openssl mac -digest SHA1 \
        -macopt hexkey:000102030405060708090A0B0C0D0E0F10111213 \
        -in msg.bin HMAC

要从一个文件创建 SipHash MAC 并使用二进制文件输出

openssl mac -macopt hexkey:000102030405060708090A0B0C0D0E0F \
        -in msg.bin -out out.bin -binary SipHash

要从一个文件创建十六进制编码的 CMAC-AES-128-CBC MAC

openssl mac -cipher AES-128-CBC \
        -macopt hexkey:77A77FAF290C1FA30C683DF16BA7A77B \
        -in msg.bin CMAC

要从一个文件创建十六进制编码的 KMAC128 MAC,自定义字符串为“Tag”,输出长度为 16

openssl mac -macopt custom:Tag -macopt hexkey:40414243444546 \
        -macopt size:16 -in msg.bin KMAC128

要从一个文件创建十六进制编码的 GMAC-AES-128-GCM,并使用一个 IV

openssl mac -cipher AES-128-GCM -macopt hexiv:E0E00F19FED7BA0136A797F3 \
        -macopt hexkey:77A77FAF290C1FA30C683DF16BA7A77B -in msg.bin GMAC

注释

可用的 MAC 机制将取决于构建 OpenSSL 时使用的选项。使用 openssl list -mac-algorithms 列出它们。

参见

openssl(1)EVP_MAC(3)EVP_MAC-CMAC(7)EVP_MAC-GMAC(7)EVP_MAC-HMAC(7)EVP_MAC-KMAC(7)EVP_MAC-Siphash(7)EVP_MAC-Poly1305(7)

版权所有 2018-2024 OpenSSL 项目作者。版权所有。

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