OPENSSL-MAC(1ssl) OpenSSL OPENSSL-MAC(1ssl)

openssl-mac - انجام عملیات کد اصالت‌سنجی پیام (MAC)

openssl mac [-help] [-cipher] [-digest] [-macopt] [-in filename] [-out filename] [-binary] [-provider name] [-provider-path path] [-provparam [name:]key=value] [-propquery propq] mac_name

توابع کد اصالت‌سنجی پیام (MAC)، مقدار MAC یک فایل ورودی ارائه‌شده را در خروجی تولید می‌کنند.

نمایش پیام راهنمای نحوه استفاده.
نام فایل ورودی برای محاسبه MAC، یا به‌طور پیش‌فرض ورودی استاندارد (stdin). اگر نام فایل برابر با '-' باشد، از ورودی استاندارد استفاده می‌شود. انتظار می‌رود فایل‌ها و ورودی استاندارد در قالب باینری باشند.
نام فایل خروجی برای نوشتن، یا به‌طور پیش‌فرض خروجی استاندارد (stdout).
خروجی دادن مقدار MAC در قالب باینری. در صورت مشخص نشدن، از قالب متنی هگزادسیمال استفاده می‌شود.
توسط الگوریتم‌های CMAC و GMAC برای تعیین الگوریتم رمزنگاری استفاده می‌شود. برای CMAC باید یک رمزنگار در حالت CBC باشد، مانند AES-128-CBC. برای GMAC باید یک رمزنگار در حالت GCM باشد، مانند AES-128-GCM.
توسط HMAC به عنوان یک رشته الفبایی-عددی استفاده می‌شود (زمانی استفاده شود که کلید فقط شامل نویسه‌های قابل چاپ باشد). طول رشته باید با هرگونه محدودیت‌های الگوریتم MAC مطابقت داشته باشد. برای مشاهده فهرست خلاصه‌سازهای (digest) پشتیبانی‌شده، از دستور "openssl list -digest-commands" استفاده کنید.
گزینه‌ها را به الگوریتم MAC ارسال می‌کند. فهرست جامعی از کنترل‌ها را می‌توان در مستندات پیاده‌سازی EVP_MAC یافت. نام‌های پارامترهای رایج استفاده‌شده توسط EVP_MAC_CTX_get_params() عبارتند از:
کلید MAC را به صورت یک رشته الفبایی-عددی تعیین می‌کند (در صورتی استفاده شود که کلید تنها شامل نویسه‌های قابل چاپ باشد). طول رشته باید با هرگونه محدودیت‌های الگوریتم MAC مطابقت داشته باشد. برای هر الگوریتم MAC باید یک کلید تعیین شود.
کلید MAC را در قالب هگزادسیمال تعیین می‌کند (دو رقم هگزادسیمال به ازای هر بایت). طول کلید باید با هرگونه محدودیت‌های الگوریتم MAC مطابقت داشته باشد. برای هر الگوریتم MAC باید یک کلید تعیین شود.
توسط GMAC برای تعیین یک IV به صورت رشته الفبایی-عددی استفاده می‌شود (در صورتی استفاده شود که IV تنها شامل نویسه‌های قابل چاپ باشد).
توسط GMAC برای تعیین یک IV در قالب هگزادسیمال استفاده می‌شود (دو رقم هگزادسیمال به ازای هر بایت).
توسط KMAC128 یا KMAC256 برای تعیین طول خروجی استفاده می‌شود. اندازه‌های پیش‌فرض به ترتیب ۳۲ یا ۶۴ بایت هستند.
توسط KMAC128 یا KMAC256 برای تعیین یک رشته سفارشی‌سازی استفاده می‌شود. مقدار پیش‌فرض رشته خالی "" است.
این گزینه معادل گزینهٔ -digest است.
این گزینه معادل گزینهٔ -cipher است.
به «گزینه‌های ارائه‌دهنده (Provider Options)» در openssl(1)، provider(7) و property(7) مراجعه کنید.
نام یک الگوریتم MAC پشتیبانی‌شده را که مورد استفاده قرار می‌گیرد، تعیین می‌کند. برای مشاهده فهرست MACهای پشتیبانی‌شده از دستور "openssl list -mac-algorithms" استفاده کنید.

برای ایجاد یک MAC با الگوریتم HMAC-SHA1 کدگذاری‌شده به صورت هگزادسیمال از یک فایل و نوشتن آن در خروجی استاندارد (stdout):

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

برای ایجاد یک MAC با الگوریتم SipHash از یک فایل همراه با خروجی به صورت فایل باینری:

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

برای ایجاد یک MAC با الگوریتم CMAC-AES-128-CBC کدگذاری‌شده به صورت هگزادسیمال از یک فایل:

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

برای ایجاد یک MAC با الگوریتم KMAC128 کدگذاری‌شده به صورت هگزادسیمال از یک فایل با رشته سفارشی‌سازی 'Tag' و طول خروجی ۱۶:

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)

Copyright 2018-2024 The OpenSSL Project Authors. All Rights Reserved.

تحت مجوز آپاچی نسخه ۲.۰ («مجوز») منتشر شده است. شما نمی‌توانید از این فایل جز در انطباق با این مجوز استفاده کنید. می‌توانید یک نسخه از آن را در فایل LICENSE در توزیع منبع یا در https://www.openssl.org/source/license.html دریافت کنید.

2026-08-25 3.6.4