.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "OPENSSL-KDF 1ssl" .TH OPENSSL-KDF 1ssl 2026-08-25 3.6.4 OpenSSL .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" openssl\-kdf \- محاسبه توابع اشتقاق کلید .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBopenssl kdf\fR [\fB\-help\fR] [\fB\-cipher\fR] [\fB\-digest\fR] [\fB\-mac\fR] [\fB\-kdfopt\fR \fInm\fR:\fIv\fR] [\fB\-keylen\fR \fInum\fR] [\fB\-out\fR \fIfilename\fR] [\fB\-binary\fR] [\fB\-provider\fR \fIname\fR] [\fB\-provider\-path\fR \fIpath\fR] [\fB\-provparam\fR \fI[name:]key=value\fR] [\fB\-propquery\fR \fIpropq\fR] \&\fIkdf_name\fR .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" توابع اشتقاق کلید یک کلید اشتقاق‌یافته را از یک کلید سری یا گذرواژه تولید می‌کنند. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP \fB\-help\fR 4 .IX Item "-help" نمایش پیام راهنمای نحوه استفاده. .IP "\fB\-keylen\fR \fInum\fR" 4 .IX Item "-keylen num" اندازه خروجی کلید اشتقاق‌یافته. این فیلد الزامی است. .IP "\fB\-out\fR \fIfilename\fR" 4 .IX Item "-out filename" نام فایل خروجی، یا خروجی استاندارد به صورت پیش‌فرض. .IP \fB\-binary\fR 4 .IX Item "-binary" تولید خروجی کلید اشتقاق‌یافته به صورت باینری. در صورت مشخص نشدن، به صورت پیش‌فرض از قالب متنی هگزادسیمال استفاده می‌شود. .IP "\fB\-cipher\fR \fIname\fR" 4 .IX Item "-cipher name" مشخص کردن رمز (سایفر) مورد استفاده توسط KDF. همه الگوریتم‌های KDF به رمز نیاز ندارند و استفاده از این گزینه در چنین مواردی خطاست. .IP "\fB\-digest\fR \fIname\fR" 4 .IX Item "-digest name" مشخص کردن دایجست (خلاصه پیام) مورد استفاده توسط KDF. همه الگوریتم‌های KDF به دایجست نیاز ندارند و استفاده از این گزینه در چنین مواردی خطاست. برای مشاهده فهرست دایجست‌های پشتیبانی‌شده، از \f(CW\*(C`openssl list \-digest\-commands\*(C'\fR استفاده کنید. .IP "\fB\-mac\fR \fIname\fR" 4 .IX Item "-mac name" مشخص کردن کد اصالت‌سنجی پیام (MAC) مورد استفاده توسط KDF. همه الگوریتم‌های KDF به MAC نیاز ندارند و استفاده از این گزینه در چنین مواردی خطاست. .IP "\fB\-kdfopt\fR \fInm\fR:\fIv\fR" 4 .IX Item "-kdfopt nm:v" ارسال گزینه‌ها به الگوریتم KDF. فهرست کاملی از پارامترها را می‌توان در بخش "PARAMETERS" در \fBEVP_KDF\fR\|(3) یافت. نام‌های متداول پارامترهای مورد استفاده توسط \fBEVP_KDF_CTX_set_params()\fR عبارتند از: .RS 4 .IP \fBkey:\fR\fIstring\fR 4 .IX Item "key:string" کلید سری را به صورت یک رشته الفبایی\-عددی مشخص می‌کند (تنها در صورتی استفاده شود که کلید فقط شامل نویسه‌های قابل چاپ باشد). طول رشته باید با هرگونه محدودیت‌های الگوریتم KDF مطابقت داشته باشد. برای بیشتر الگوریتم‌های KDF باید یک کلید مشخص شود. .IP \fBhexkey:\fR\fIstring\fR 4 .IX Item "hexkey:string" جایگزینی برای گزینه \fBkey:\fR که در آن کلید سری به فرم هگزادسیمال (دو رقم هگز به ازای هر بایت) مشخص می‌شود. .IP \fBpass:\fR\fIstring\fR 4 .IX Item "pass:string" گذرواژه را به صورت یک رشته الفبایی\-عددی مشخص می‌کند (تنها در صورتی استفاده شود که گذرواژه فقط شامل نویسه‌های قابل چاپ باشد). گذرواژه باید برای الگوریتم‌های PBKDF2 و scrypt مشخص شود. .IP \fBhexpass:\fR\fIstring\fR 4 .IX Item "hexpass:string" جایگزینی برای گزینه \fBpass:\fR که در آن گذرواژه به فرم هگزادسیمال (دو رقم هگز به ازای هر بایت) مشخص می‌شود. .IP \fBsalt:\fR\fIstring\fR 4 .IX Item "salt:string" یک نمک (salt) رمزنگاری غیرمحرمانه و یکتا را به صورت یک رشته الفبایی\-عددی مشخص می‌کند (تنها در صورتی استفاده شود که فقط شامل نویسه‌های قابل چاپ باشد). طول آن باید با هرگونه محدودیت‌های الگوریتم KDF مطابقت داشته باشد. پارامتر نمک (salt) برای چندین الگوریتم KDF مانند \fBEVP_KDF\-PBKDF2\fR\|(7) الزامی است. .IP \fBhexsalt:\fR\fIstring\fR 4 .IX Item "hexsalt:string" جایگزینی برای گزینه \fBsalt:\fR که در آن نمک به فرم هگزادسیمال (دو رقم هگز به ازای هر بایت) مشخص می‌شود. .IP \fBinfo:\fR\fIstring\fR 4 .IX Item "info:string" برخی پیاده‌سازی‌های KDF، مانند \fBEVP_KDF\-HKDF\fR\|(7)، یک پارامتر \*(Aqinfo\*(Aq برای پیوند دادن ماده کلید اشتقاق‌یافته به اطلاعات خاص برنامه و زمینه دریافت می‌کنند. آرگومان info، fixed info، other info یا shared info را به صورت یک رشته الفبایی\-عددی مشخص می‌کند (تنها در صورتی استفاده شود که فقط شامل نویسه‌های قابل چاپ باشد). طول آن باید با هرگونه محدودیت‌های الگوریتم KDF مطابقت داشته باشد. .IP \fBhexinfo:\fR\fIstring\fR 4 .IX Item "hexinfo:string" جایگزینی برای گزینه \fBinfo:\fR که در آن info به فرم هگزادسیمال (دو رقم هگز به ازای هر بایت) مشخص می‌شود. .IP \fBdigest:\fR\fIstring\fR 4 .IX Item "digest:string" این گزینه با گزینه \fB\-digest\fR یکسان است. .IP \fBcipher:\fR\fIstring\fR 4 .IX Item "cipher:string" این گزینه با گزینه \fB\-cipher\fR یکسان است. .IP \fBmac:\fR\fIstring\fR 4 .IX Item "mac:string" این گزینه با گزینه \fB\-mac\fR یکسان است. .RE .RS 4 .RE .IP "\fB\-provider\fR \fIname\fR" 4 .IX Item "-provider name" .PD 0 .IP "\fB\-provider\-path\fR \fIpath\fR" 4 .IX Item "-provider-path path" .IP "\fB\-provparam\fR \fI[name:]key=value\fR" 4 .IX Item "-provparam [name:]key=value" .IP "\fB\-propquery\fR \fIpropq\fR" 4 .IX Item "-propquery propq" .PD بخش "Provider Options" را در \fBopenssl\fR\|(1)، \fBprovider\fR\|(7) و \fBproperty\fR\|(7) ببینید. .IP \fIkdf_name\fR 4 .IX Item "kdf_name" نام یک الگوریتم KDF پشتیبانی‌شده مورد استفاده را مشخص می‌کند. نام الگوریتم‌های پشتیبانی‌شده شامل TLS1\-PRF، HKDF، SSKDF، PBKDF2، SSHKDF، X942KDF\-ASN1، X942KDF\-CONCAT، X963KDF و SCRYPT است. .SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" استفاده از TLS1\-PRF برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری و seed: .PP .Vb 2 \& openssl kdf \-keylen 16 \-kdfopt digest:SHA2\-256 \-kdfopt key:secret \e \& \-kdfopt seed:seed TLS1\-PRF .Ve .PP استفاده از HKDF برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، نمک (salt) و info: .PP .Vb 2 \& openssl kdf \-keylen 10 \-kdfopt digest:SHA2\-256 \-kdfopt key:secret \e \& \-kdfopt salt:salt \-kdfopt info:label HKDF .Ve .PP استفاده از SSKDF همراه با KMAC برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، نمک (salt) و info: .PP .Vb 3 \& openssl kdf \-keylen 64 \-kdfopt mac:KMAC\-128 \-kdfopt maclen:20 \e \& \-kdfopt hexkey:b74a149a161545 \-kdfopt hexinfo:348a37a2 \e \& \-kdfopt hexsalt:3638271ccd68a2 SSKDF .Ve .PP استفاده از SSKDF همراه با HMAC برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، نمک (salt) و info: .PP .Vb 3 \& openssl kdf \-keylen 16 \-kdfopt mac:HMAC \-kdfopt digest:SHA2\-256 \e \& \-kdfopt hexkey:b74a149a \-kdfopt hexinfo:348a37a2 \e \& \-kdfopt hexsalt:3638271c SSKDF .Ve .PP استفاده از SSKDF همراه با Hash برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، نمک (salt) و info: .PP .Vb 3 \& openssl kdf \-keylen 14 \-kdfopt digest:SHA2\-256 \e \& \-kdfopt hexkey:6dbdc23f045488 \e \& \-kdfopt hexinfo:a1b2c3d4 SSKDF .Ve .PP استفاده از SSHKDF برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، هش و session_id: .PP .Vb 5 \& openssl kdf \-keylen 16 \-kdfopt digest:SHA2\-256 \e \& \-kdfopt hexkey:0102030405 \e \& \-kdfopt hexxcghash:06090A \e \& \-kdfopt hexsession_id:01020304 \e \& \-kdfopt type:A SSHKDF .Ve .PP استفاده از PBKDF2 برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک گذرواژه و نمک (salt): .PP .Vb 2 \& openssl kdf \-keylen 32 \-kdfopt digest:SHA256 \-kdfopt pass:password \e \& \-kdfopt salt:salt \-kdfopt iter:2 PBKDF2 .Ve .PP استفاده از scrypt برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک گذرواژه و نمک (salt): .PP .Vb 3 \& openssl kdf \-keylen 64 \-kdfopt pass:password \-kdfopt salt:NaCl \e \& \-kdfopt n:1024 \-kdfopt r:8 \-kdfopt p:16 \e \& \-kdfopt maxmem_bytes:10485760 SCRYPT .Ve .SH "نکات (NOTES)" .IX Header "NOTES" سازوکارهای KDF در دسترس، به گزینه‌های استفاده‌شده در زمان ساخت OpenSSL بستگی خواهند داشت. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBopenssl\fR\|(1), \&\fBopenssl\-pkeyutl\fR\|(1), \&\fBEVP_KDF\fR\|(3), \&\fBEVP_KDF\-SCRYPT\fR\|(7), \&\fBEVP_KDF\-TLS1_PRF\fR\|(7), \&\fBEVP_KDF\-PBKDF2\fR\|(7), \&\fBEVP_KDF\-HKDF\fR\|(7), \&\fBEVP_KDF\-SS\fR\|(7), \&\fBEVP_KDF\-SSHKDF\fR\|(7), \&\fBEVP_KDF\-X942\-ASN1\fR\|(7), \&\fBEVP_KDF\-X942\-CONCAT\fR\|(7), \&\fBEVP_KDF\-X963\fR\|(7) .SH "تاریخچه (HISTORY)" .IX Header "HISTORY" در OpenSSL 3.0 اضافه شد. .SH "حق نشر (COPYRIGHT)" .IX Header "COPYRIGHT" کپی‌رایت ۲۰۱۹\-۲۰۲۳ نویسندگان پروژه OpenSSL. کلیه حقوق محفوظ است. .PP تحت مجوز آپاچی نسخه ۲.۰ («مجوز») منتشر شده است. شما مجاز به استفاده از این فایل نیستید مگر با رعایت شرایط این مجوز. می‌توانید نسخه‌ای از این مجوز را در فایل LICENSE در توزیع کد منبع یا در دریافت کنید.