.\" Automatically generated by Pandoc 3.6.1 .\" .TH "tpm2_print" "1" "" "tpm2\-tools" "General Commands Manual" .SH "نام (NAME)" tpm2_print \- چاپ ساختارهای داده TPM .SH "خلاصه دستور (SYNOPSIS)" \f[B]tpm2_print\f[R] [\f[I]گزینه‌ها\f[R]] [\f[I]آرگومان\f[R] یا \f[I]STDIN\f[R]] .SH "توضیحات (DESCRIPTION)" دستور \f[B]tpm2_print\f[R](1) یک ساختار داده TPM را رمزگشایی کرده و عناصر درون آن را به صورت YAML در خروجی استاندارد (stdout) چاپ می‌کند\&. می‌توان یک مسیر فایل شامل یک شیء TPM یا یک کلید خصوصی TSS2 در قالب PEM را به عنوان آرگومان مسیر تعیین کرد\&. در صورت عدم تعیین، داده‌ها از stdin خوانده می‌شوند\&. .SH "گزینه‌ها (OPTIONS)" .IP \[bu] 2 \f[B]\-t\f[R]، \f[B]\-\-type\f[R]: .RS 2 .PP الزامی است\&. نوع ساختار داده\&. این گزینه از آرگومان‌های زیر پشتیبانی می‌کند: .IP \[bu] 2 \f[B]TPMS_ATTEST\f[R] .IP \[bu] 2 \f[B]TPMS_CONTEXT\f[R] .IP \[bu] 2 \f[B]TPM2B_PUBLIC\f[R] .IP \[bu] 2 \f[B]TPMT_PUBLIC\f[R] .IP \[bu] 2 \f[B]TSSPRIVKEY_OBJ\f[R] .IP \[bu] 2 \f[B]ESYS_TR\f[R] .RE .IP \[bu] 2 \f[B]ARGUMENT\f[R]: آرگومان خط فرمان، مسیر داده TPM را مشخص می‌کند\&. .IP \[bu] 2 \f[B]\-f\f[R]، \f[B]\-\-format\f[R]: .RS 2 .PP انتخاب قالب برای فایل خروجی کلید عمومی\&. مقدار «tss» (پیش‌فرض) یک حباب دودویی (binary blob) را مطابق با مشخصات TPM 2.0 در خروجی تولید می‌کند\&. مقدار «pem» یک کلید عمومی کدگذاری‌شده PEM سازگار با OpenSSL تولید می‌کند\&. مقدار «der» یک کلید عمومی کدگذاری‌شده DER سازگار با OpenSSL تولید می‌کند\&. مقدار «tpmt» یک حباب دودویی از ساختار TPMT_PUBLIC ارجاع‌شده در مشخصات TPM 2.0 تولید می‌کند\&. .PP قالب کلید عمومی\&. این گزینه تنها زمانی کار می‌کند که گزینه \f[CR]\-\-type/\-t\f[R] روی TPM2B_PUBLIC یا TPMT_PUBLIC تنظیم شده باشد\&. .RE .SS "مراجع (References)" .SH "قالب شیء بافتار (Context Object Format)" نوع یک شیء بافتار، چه یک دستگیره (handle) باشد یا نام فایل، بر اساس منطق زیر \f[I]به‌ترتیب\f[R] تعیین می‌شود: .IP \[bu] 2 اگر آرگومان مسیر یک فایل باشد، فایل به عنوان یک شیء گذرا (transient object) بازیابی‌شدهٔ TPM بارگذاری می‌شود\&. .IP \[bu] 2 اگر آرگومان تطابق \f[I]پیشوندی\f[R] با یکی از موارد زیر باشد: .RS 2 .IP \[bu] 2 owner: سلسله‌مراتب مالک (owner hierarchy) .IP \[bu] 2 platform: سلسله‌مراتب پلتفرم (platform hierarchy) .IP \[bu] 2 endorsement: سلسله‌مراتب تایید (endorsement hierarchy) .IP \[bu] 2 lockout: شیء پایدار کنترل قفل (lockout control persistent object) .RE .IP \[bu] 2 اگر آرگومان بتواند به‌صورت یک عدد بارگذاری شود، به عنوان یک دستگیره در نظر گرفته خواهد شد (مانند 0x81010013) و مستقیماً استفاده می‌شود\&._OBJECT_. .SH "قالب‌بندی احراز اصالت (Authorization Formatting)" مجوز برای استفاده از یک شیء در TPM 2.0 می‌تواند به ۳ شکل مختلف ارائه شود: 1. گذرواژه (Password) 2. کد HMAC 3. نشست‌ها (Sessions) .PP \f[B]نکته:\f[R] \[lq]در صورت مشخص نشدن، مجوزها به‌طور پیش‌فرض برابر با \f[B]گذرواژه خالی (EMPTY PASSWORD)\f[R] در نظر گرفته می‌شوند\[rq]\&. .PP برای احراز اصالت با مقادیر auth، دستورات ابزار به‌طور ضمنی یک نشست HMAC ایجاد می‌کنند\&. بنابراین گذرواژه‌ها به‌صورت رمزنشده منتقل نمی‌شوند\&. این موضوع در مورد گذرواژه‌های تعریف‌شده برای اشیاء صدق نمی‌کند\&. در این حالت، باید از یک نشست HMAC استفاده شود (دستور \f[B]tpm2_startauthsession\f[R](1) را ببینید)\&. .SS "گذرواژه‌ها (Passwords)" گذرواژه‌ها در اشکال زیر با استفاده از شناسه‌های پیشوندی تفسیر می‌شوند\&. .PP \f[B]نکته\f[R]: به‌طور پیش‌فرض هنگامی که گذرواژه‌ها پیشوندی نداشته باشند، در قالب رشته (string) در نظر گرفته می‌شوند\&. .SS "رشته (String)" یک گذرواژه رشته‌ای، مشخص‌شده با پیشوند \[lq]str:\[rq] یا عدم وجود آن (رشته خام بدون پیشوند)، تفسیر نمی‌شود و مستقیماً برای احراز مجوز استفاده می‌گردد\&. .SS "مثال‌ها (Examples)" .IP .EX foobar str:foobar .EE .SS "رشته هگز (Hex\-string)" یک گذرواژه رشته هگز، مشخص‌شده با پیشوند \[lq]hex:\[rq]، از قالب هگزادسیمال به یک آرایه بایتی تبدیل می‌شود؛ بنابراین امکان استفاده از گذرواژه‌هایی با نویسه‌های غیرقابل‌چاپ یا نامناسب برای ترمینال را فراهم می‌کند\&. .SS "مثال (Example)" .IP .EX hex:1122334455667788 .EE .SS "فایل (File)" یک گذرواژه مبتنی بر فایل، مشخص‌شده با پیشوند \[lq]file:\[rq]، باید مسیر فایلی حاوی گذرواژه برای خوانده شدن توسط ابزار باشد، یا \[lq]\-\[rq] برای استفاده از stdin\&. ذخیره گذرواژه‌ها در فایل از نشت اطلاعات جلوگیری می‌کند؛ زیرا گذرواژه‌های ارائه‌شده به‌صورت گزینه‌ها می‌توانند از طریق فهرست فرآیندها یا قابلیت‌های متداول تاریخچه پوسته خوانده شوند\&. .SS "مثال‌ها (Examples)" .IP .EX # برای استفاده از stdin و درخواست اعلان ورود: file:\- # برای استفاده از یک فایل از یک مسیر: file:path/to/password/file # برای ارسال گذرواژه از طریق stdin با echo: echo foobar | tpm2_tool \-p file:\- # برای استفاده از here\-string بش از طریق stdin: tpm2_tool \-p file:\- <<< foobar .EE .SS "نشست‌ها (Sessions)" هنگام استفاده از یک نشست خط‌مشی برای مجاز کردن استفاده از یک شیء، آرگومان گزینه را با کلمه کلیدی \f[I]session\f[R] پیشوندگذاری کنید\&. سپس مسیری را به یک فایل نشست که با \f[B]tpm2_startauthsession\f[R](1) ایجاد شده است مشخص نمایید\&. در صورت تمایل، اگر نشست نیازمند ارسال مقدار auth به همراه دستگیره نشست باشد (مانند گذرواژه خط‌مشی)، یک + و یک رشته را همان‌طور که در بخش \f[B]گذرواژه‌ها (Passwords)\f[R] شرح داده شد اضافه کنید\&. .SS "مثال‌ها (Examples)" برای استفاده از یک فایل بافتار نشست به نام \f[I]session.ctx\f[R]: .IP .EX session:session.ctx .EE .PP برای استفاده از یک فایل بافتار نشست به نام \f[I]session.ctx\f[R] \f[B]و\f[R] ارسال مقدار auth با مقدار mypassword: .IP .EX session:session.ctx+mypassword .EE .PP برای استفاده از یک فایل بافتار نشست به نام \f[I]session.ctx\f[R] \f[B]و\f[R] ارسال مقدار auth از نوع \f[I]HEX\f[R] با مقدار 0x11223344: .IP .EX session:session.ctx+hex:11223344 .EE .SS "احراز اصالت‌های PCR (PCR Authorizations)" می‌توانید یک خط‌مشی PCR را با استفاده از پیشوند \[lq]pcr:\[rq] و ریززبان PCR برآورده کنید\&. ریززبان PCR به شرح زیر است: \f[CR]=\f[R] .PP مشخصات PCR در بخش \[lq]مشخص‌کننده‌های بانک PCR (PCR bank specifiers)\[rq] مستند شده است\&. .PP آرگومان \f[CR]raw\-pcr\-file\f[R] یک آرگومان \f[B]اختیاری\f[R] است که شامل خروجی محتویات خام PCR برگردانده‌شده توسط \f[I]tpm2_pcrread\f[R](1) است\&. .PP مشخص‌کننده‌های بانک PCR\&. .SS "مثال‌ها (Examples)" برای برآورده کردن یک خط‌مشی PCR با sha256 روی بانک‌های 0، 1، 2 و 3 از یک مشخص‌کننده به صورت زیر استفاده کنید: .IP .EX pcr:sha256:0,1,2,3 .EE .PP مشخص کردن \f[I]AUTH\f[R]\&. .SH "گزینه‌های عمومی (COMMON OPTIONS)" این مجموعه گزینه‌ها بین بسیاری از برنامه‌ها مشترک هستند و اطلاعاتی را ارائه می‌دهند که بسیاری از کاربران انتظار دارند\&. .IP \[bu] 2 \f[B]\-h\f[R]، \f[B]\-\-help=[man|no\-man]\f[R]: نمایش صفحه راهنمای ابزار\&. به‌طور پیش‌فرض، تلاش می‌کند تا صفحه‌بند man را برای ابزار فراخوانی کند؛ اما در صورت عدم موفقیت، خلاصه کوتاهی از ابزار را نمایش می‌دهد\&. این رفتار مشابه زمانی است که آرگومان گزینه \[lq]man\[rq] مشخص شده باشد؛ اما اگر \[lq]man\[rq] به‌طور صریح درخواست شود، ابزار خطاهای man را در stderr ارائه می‌دهد\&. اگر گزینه \[lq]no\-man\[rq] مشخص شود، یا فراخوانی صفحه‌بند man با شکست مواجه گردد، گزینه‌های کوتاه در stdout نمایش داده می‌شوند\&. .RS 2 .PP استفاده موفقیت‌آمیز از ویژگی صفحات راهنما نیازمند آن است که این صفحات نصب شده باشند یا در \f[I]MANPATH\f[R] قرار داشته باشند؛ برای جزئیات بیشتر به \f[B]man\f[R](1) مراجعه کنید\&. .RE .IP \[bu] 2 \f[B]\-v\f[R]، \f[B]\-\-version\f[R]: نمایش اطلاعات نسخه این ابزار، TCTIهای پشتیبانی‌شده و خروج\&. .IP \[bu] 2 \f[B]\-V\f[R]، \f[B]\-\-verbose\f[R]: افزایش اطلاعاتی که ابزار در طول اجرای خود در کنسول چاپ می‌کند\&. هنگام استفاده از این گزینه، نام فایل و شماره خط چاپ می‌شوند\&. .IP \[bu] 2 \f[B]\-Q\f[R]، \f[B]\-\-quiet\f[R]: بی‌صدا کردن خروجی عادی ابزار در stdout\&. .IP \[bu] 2 \f[B]\-Z\f[R]، \f[B]\-\-enable\-errata\f[R]: فعال‌سازی اعمال اصلاحات اشتباه‌نامه (errata fixups)\&. زمانی مفید است که لازم باشد یک اصلاح اشتباه‌نامه بر روی دستورات ارسالی به TPM اعمال شود\&. تعریف متغیر محیطی TPM2TOOLS_ENABLE_ERRATA نیز معادل این گزینه است\&. .IP \[bu] 2 \f[B]\-z\f[R]، \f[B]\-\-pwd\-session\f[R]: استفاده از نشست گذرواژه به جای نشست HMAC برای احراز اصالت\&. یک گذرواژه متنی آشکار (clear text) به TPM ارسال می‌شود تا اقدام مورد نظر مجاز شود\&. این گزینه می‌تواند برای جلوگیری از مشکلاتی که هنگام استفاده از نشست‌های بدون نمک (unsalted) در حالت OpenSSL FIPS رخ می‌دهد، استفاده شود\&. اگر مقادیر auth استفاده می‌شوند، باید از یک نشست با نمک (salted) برای احراز اصالت استفاده گردد\&. .IP \[bu] 2 \f[B]\-R\f[R]، \f[B]\-\-autoflush\f[R]: فعال‌سازی تخلیه خودکار (autoflush) برای اشیاء گذرای ایجادشده توسط دستور\&. اگر یک شیء والد از یک فایل بافتار بارگذاری شود، شیء والد گذرا نیز تخلیه خواهد شد\&. تخلیه خودکار همچنین می‌تواند با تنظیم متغیر محیطی TPM2TOOLS_AUTOFLUSH بر روی yes یا true فعال شود\&. اطلاعاتی که بسیاری از کاربران ممکن است انتظار داشته باشند\&. .SH "پیکربندی TCTI (TCTI Configuration)" رابط TCTI یا \[lq]رابط انتقال (Transmission Interface)\[rq] مکانیزم ارتباط با TPM است\&. رابط‌های TCTI را می‌توان برای ارتباط با TPM از طریق بسترهای مختلف تغییر داد\&. .PP برای کنترل TCTI، ابزارها موارد زیر را رعایت می‌کنند: .IP "1." 3 گزینه خط فرمان \f[B]\-T\f[R] یا \f[B]\-\-tcti\f[R] .IP "2." 3 متغیر محیطی: \f[I]TPM2TOOLS_TCTI\f[R]\&. .PP \f[B]نکته:\f[R] گزینه خط فرمان همواره بر متغیر محیطی اولویت دارد\&. .PP رابط‌های TCTI شناخته‌شده فعلی عبارتند از: .IP \[bu] 2 tabrmd \- مدیر منابع، تحت عنوان \c .UR https://github.com/tpm2-software/tpm2-abrmd tabrmd .UE \c \&. توجه داشته باشید که tabrmd و abrmd به عنوان نام tcti مترادف یکدیگرند\&. .IP \[bu] 2 mssim \- معمولاً برای برقراری ارتباط با شبیه‌ساز نرم‌افزاری TPM استفاده می‌شود\&. .IP \[bu] 2 device \- برای ارتباط مستقیم با فایل دستگاه TPM استفاده می‌شود\&. .IP \[bu] 2 none \- اتصالی با TPM برقرار نمی‌کند\&. برخی ابزارها امکان استفاده از گزینه‌های خارج از TPM را دارند و بنابراین از عدم استفاده از TCTI پشتیبانی می‌کنند\&. ابزارهایی که از آن پشتیبانی نمی‌کنند، در صورت تلاش برای استفاده بدون اتصال TCTI با خطا مواجه می‌شوند\&. این حالت از \f[I]هیچ\f[R] گزینه‌ای پشتیبانی نمی‌کند و \f[I]باید حتماً\f[R] دقیقاً به صورت عبارت \[lq]none\[rq] ارائه شود\&. .PP آرگومان‌های گزینه خط فرمان یا متغیر محیطی به قالب زیر هستند: .PP \f[CR]:\f[R] .PP مشخص کردن یک رشته خالی برای هر یک از بخش‌های \f[CR]\f[R] یا \f[CR]\f[R] باعث می‌شود که برای آن بخش به ترتیب مقدار پیش‌فرض استفاده شود\&. .SS "پیش‌فرض‌های TCTI (TCTI Defaults)" هنگامی که TCTI مشخص نشده باشد، TCTI پیش‌فرض با استفاده از قواعد معنایی \f[I]dlopen(3)\f[R] جستجو می‌شود\&. ابزارها TCTIهای \f[I]tabrmd\f[R]، \f[I]device\f[R] و \f[I]mssim\f[R] را \f[B]به همین ترتیب\f[R] جستجو کرده و از \f[B]اولین موردی که یافت شود استفاده می‌کنند\f[R]\&. می‌توانید با استفاده از گزینه \f[B]\-v\f[R] برای چاپ اطلاعات نسخه، بررسی کنید که کدام TCTI به عنوان پیش‌فرض انتخاب خواهد شد\&. جفت کلید\-مقدار \[lq]default\-tcti\[rq] نشان می‌دهد که کدام یک از TCTIهای یادشده پیش‌فرض است\&. .SS "TCTIهای سفارشی (Custom TCTIs)" هر TCTI که رابط پویای TCTI را پیاده‌سازی کند می‌تواند بارگذاری شود\&. ابزارها در داخل از \f[I]dlopen(3)\f[R] استفاده می‌کنند و مقدار خام \f[I]tcti\-name\f[R] برای جستجو به کار می‌رود\&. بنابراین، این مقدار می‌تواند مسیری به کتابخانه مشترک یا نام کتابخانه‌ای باشد که بر اساس قواعد معنایی \f[I]dlopen(3)\f[R] قابل درک است\&. .SH "گزینه‌های TCTI (TCTI OPTIONS)" این مجموعه گزینه‌ها برای پیکربندی ماژول‌های مختلف و شناخته‌شده TCTI موجود به کار می‌روند: .IP \[bu] 2 \f[B]device\f[R]: برای رابط TCTI از نوع device، می‌توان فایل دستگاه نویسه‌ای TPM را برای استفاده توسط این رابط تعیین کرد\&. مقدار پیش‌فرض \f[I]/dev/tpm0\f[R] است\&. .RS 2 .PP مثال: \f[B]\-T device:/dev/tpm0\f[R] یا \f[B]export \f[BI]TPM2TOOLS_TCTI\f[B]=\[lq]device:/dev/tpm0\[rq]\f[R] .RE .IP \[bu] 2 \f[B]mssim\f[R]: برای رابط TCTI از نوع mssim، می‌توان نام دامنه یا آدرس IP و شماره درگاه مورد استفاده شبیه‌ساز را تعیین کرد\&. مقادیر پیش‌فرض 127.0.0.1 و 2321 هستند\&. .RS 2 .PP مثال: \f[B]\-T mssim:host=localhost,port=2321\f[R] یا \f[B]export \f[BI]TPM2TOOLS_TCTI\f[B]=\[lq]mssim:host=localhost,port=2321\[rq]\f[R] .RE .IP \[bu] 2 \f[B]abrmd\f[R]: برای رابط TCTI از نوع abrmd، قالب رشته پیکربندی مجموعه‌ای از جفت‌های کلید\-مقدار ساده است که با نویسه «,» از هم جدا شده‌اند\&. رشته‌های کلید و مقدار با نویسه «=» از یکدیگر تفکیک می‌شوند\&. .RS 2 .IP \[bu] 2 رابط abrmd TCTI از دو کلید پشتیبانی می‌کند: .RS 2 .IP "1." 3 «bus_name» : نام سرویس tabrmd بر روی گذرگاه (یک رشته)\&. .IP "2." 3 «bus_type» : نوع نمونه dbus (یک رشته) محدود به «session» و «system»\&. .RE .PP تعیین نام tabrmd tcti و یک رشته پیکربندی با \f[CR]bus_name=com.example.FooBar\f[R]: .IP .EX \[rs]\-\-tcti=tabrmd:bus_name=com.example.FooBar .EE .PP تعیین tcti پیش‌فرض (abrmd) و یک رشته پیکربندی با \f[CR]bus_type=session\f[R]: .IP .EX \[rs]\-\-tcti:bus_type=session .EE .PP \f[B]نکته:\f[R] abrmd و tabrmd مترادف یکدیگرند\&. ماژول‌های مختلف TCTI شناخته‌شده\&. .RE .SS "مراجع (References)" .SH "گزینه‌های عمومی (COMMON OPTIONS)" این مجموعه گزینه‌ها بین بسیاری از برنامه‌ها مشترک هستند و اطلاعاتی را ارائه می‌دهند که بسیاری از کاربران انتظار دارند\&. .IP \[bu] 2 \f[B]\-h\f[R]، \f[B]\-\-help=[man|no\-man]\f[R]: نمایش صفحه راهنمای ابزار\&. به‌طور پیش‌فرض، تلاش می‌کند تا صفحه‌بند man را برای ابزار فراخوانی کند؛ اما در صورت عدم موفقیت، خلاصه کوتاهی از ابزار را نمایش می‌دهد\&. این رفتار مشابه زمانی است که آرگومان گزینه \[lq]man\[rq] مشخص شده باشد؛ اما اگر \[lq]man\[rq] به‌طور صریح درخواست شود، ابزار خطاهای man را در stderr ارائه می‌دهد\&. اگر گزینه \[lq]no\-man\[rq] مشخص شود، یا فراخوانی صفحه‌بند man با شکست مواجه گردد، گزینه‌های کوتاه در stdout نمایش داده می‌شوند\&. .RS 2 .PP استفاده موفقیت‌آمیز از ویژگی صفحات راهنما نیازمند آن است که این صفحات نصب شده باشند یا در \f[I]MANPATH\f[R] قرار داشته باشند؛ برای جزئیات بیشتر به \f[B]man\f[R](1) مراجعه کنید\&. .RE .IP \[bu] 2 \f[B]\-v\f[R]، \f[B]\-\-version\f[R]: نمایش اطلاعات نسخه این ابزار، TCTIهای پشتیبانی‌شده و خروج\&. .IP \[bu] 2 \f[B]\-V\f[R]، \f[B]\-\-verbose\f[R]: افزایش اطلاعاتی که ابزار در طول اجرای خود در کنسول چاپ می‌کند\&. هنگام استفاده از این گزینه، نام فایل و شماره خط چاپ می‌شوند\&. .IP \[bu] 2 \f[B]\-Q\f[R]، \f[B]\-\-quiet\f[R]: بی‌صدا کردن خروجی عادی ابزار در stdout\&. .IP \[bu] 2 \f[B]\-Z\f[R]، \f[B]\-\-enable\-errata\f[R]: فعال‌سازی اعمال اصلاحات اشتباه‌نامه (errata fixups)\&. زمانی مفید است که لازم باشد یک اصلاح اشتباه‌نامه بر روی دستورات ارسالی به TPM اعمال شود\&. تعریف متغیر محیطی TPM2TOOLS_ENABLE_ERRATA نیز معادل این گزینه است\&. .IP \[bu] 2 \f[B]\-z\f[R]، \f[B]\-\-pwd\-session\f[R]: استفاده از نشست گذرواژه به جای نشست HMAC برای احراز اصالت\&. یک گذرواژه متنی آشکار (clear text) به TPM ارسال می‌شود تا اقدام مورد نظر مجاز شود\&. این گزینه می‌تواند برای جلوگیری از مشکلاتی که هنگام استفاده از نشست‌های بدون نمک (unsalted) در حالت OpenSSL FIPS رخ می‌دهد، استفاده شود\&. اگر مقادیر auth استفاده می‌شوند، باید از یک نشست با نمک (salted) برای احراز اصالت استفاده گردد\&. .IP \[bu] 2 \f[B]\-R\f[R]، \f[B]\-\-autoflush\f[R]: فعال‌سازی تخلیه خودکار (autoflush) برای اشیاء گذرای ایجادشده توسط دستور\&. اگر یک شیء والد از یک فایل بافتار بارگذاری شود، شیء والد گذرا نیز تخلیه خواهد شد\&. تخلیه خودکار همچنین می‌تواند با تنظیم متغیر محیطی TPM2TOOLS_AUTOFLUSH بر روی yes یا true فعال شود\&. اطلاعاتی که بسیاری از کاربران ممکن است انتظار داشته باشند\&. .SH "پیکربندی TCTI (TCTI Configuration)" رابط TCTI یا \[lq]رابط انتقال (Transmission Interface)\[rq] مکانیزم ارتباط با TPM است\&. رابط‌های TCTI را می‌توان برای ارتباط با TPM از طریق بسترهای مختلف تغییر داد\&. .PP برای کنترل TCTI، ابزارها موارد زیر را رعایت می‌کنند: .IP "1." 3 گزینه خط فرمان \f[B]\-T\f[R] یا \f[B]\-\-tcti\f[R] .IP "2." 3 متغیر محیطی: \f[I]TPM2TOOLS_TCTI\f[R]\&. .PP \f[B]نکته:\f[R] گزینه خط فرمان همواره بر متغیر محیطی اولویت دارد\&. .PP رابط‌های TCTI شناخته‌شده فعلی عبارتند از: .IP \[bu] 2 tabrmd \- مدیر منابع، تحت عنوان \c .UR https://github.com/tpm2-software/tpm2-abrmd tabrmd .UE \c \&. توجه داشته باشید که tabrmd و abrmd به عنوان نام tcti مترادف یکدیگرند\&. .IP \[bu] 2 mssim \- معمولاً برای برقراری ارتباط با شبیه‌ساز نرم‌افزاری TPM استفاده می‌شود\&. .IP \[bu] 2 device \- برای ارتباط مستقیم با فایل دستگاه TPM استفاده می‌شود\&. .IP \[bu] 2 none \- اتصالی با TPM برقرار نمی‌کند\&. برخی ابزارها امکان استفاده از گزینه‌های خارج از TPM را دارند و بنابراین از عدم استفاده از TCTI پشتیبانی می‌کنند\&. ابزارهایی که از آن پشتیبانی نمی‌کنند، در صورت تلاش برای استفاده بدون اتصال TCTI با خطا مواجه می‌شوند\&. این حالت از \f[I]هیچ\f[R] گزینه‌ای پشتیبانی نمی‌کند و \f[I]باید حتماً\f[R] دقیقاً به صورت عبارت \[lq]none\[rq] ارائه شود\&. .PP آرگومان‌های گزینه خط فرمان یا متغیر محیطی به قالب زیر هستند: .PP \f[CR]:\f[R] .PP مشخص کردن یک رشته خالی برای هر یک از بخش‌های \f[CR]\f[R] یا \f[CR]\f[R] باعث می‌شود که برای آن بخش به ترتیب مقدار پیش‌فرض استفاده شود\&. .SS "پیش‌فرض‌های TCTI (TCTI Defaults)" هنگامی که TCTI مشخص نشده باشد، TCTI پیش‌فرض با استفاده از قواعد معنایی \f[I]dlopen(3)\f[R] جستجو می‌شود\&. ابزارها TCTIهای \f[I]tabrmd\f[R]، \f[I]device\f[R] و \f[I]mssim\f[R] را \f[B]به همین ترتیب\f[R] جستجو کرده و از \f[B]اولین موردی که یافت شود استفاده می‌کنند\f[R]\&. می‌توانید با استفاده از گزینه \f[B]\-v\f[R] برای چاپ اطلاعات نسخه، بررسی کنید که کدام TCTI به عنوان پیش‌فرض انتخاب خواهد شد\&. جفت کلید\-مقدار \[lq]default\-tcti\[rq] نشان می‌دهد که کدام یک از TCTIهای یادشده پیش‌فرض است\&. .SS "TCTIهای سفارشی (Custom TCTIs)" هر TCTI که رابط پویای TCTI را پیاده‌سازی کند می‌تواند بارگذاری شود\&. ابزارها در داخل از \f[I]dlopen(3)\f[R] استفاده می‌کنند و مقدار خام \f[I]tcti\-name\f[R] برای جستجو به کار می‌رود\&. بنابراین، این مقدار می‌تواند مسیری به کتابخانه مشترک یا نام کتابخانه‌ای باشد که بر اساس قواعد معنایی \f[I]dlopen(3)\f[R] قابل درک است\&. .SH "گزینه‌های TCTI (TCTI OPTIONS)" این مجموعه گزینه‌ها برای پیکربندی ماژول‌های مختلف و شناخته‌شده TCTI موجود به کار می‌روند: .IP \[bu] 2 \f[B]device\f[R]: برای رابط TCTI از نوع device، می‌توان فایل دستگاه نویسه‌ای TPM را برای استفاده توسط این رابط تعیین کرد\&. مقدار پیش‌فرض \f[I]/dev/tpm0\f[R] است\&. .RS 2 .PP مثال: \f[B]\-T device:/dev/tpm0\f[R] یا \f[B]export \f[BI]TPM2TOOLS_TCTI\f[B]=\[lq]device:/dev/tpm0\[rq]\f[R] .RE .IP \[bu] 2 \f[B]mssim\f[R]: برای رابط TCTI از نوع mssim، می‌توان نام دامنه یا آدرس IP و شماره درگاه مورد استفاده شبیه‌ساز را تعیین کرد\&. مقادیر پیش‌فرض 127.0.0.1 و 2321 هستند\&. .RS 2 .PP مثال: \f[B]\-T mssim:host=localhost,port=2321\f[R] یا \f[B]export \f[BI]TPM2TOOLS_TCTI\f[B]=\[lq]mssim:host=localhost,port=2321\[rq]\f[R] .RE .IP \[bu] 2 \f[B]abrmd\f[R]: برای رابط TCTI از نوع abrmd، قالب رشته پیکربندی مجموعه‌ای از جفت‌های کلید\-مقدار ساده است که با نویسه «,» از هم جدا شده‌اند\&. رشته‌های کلید و مقدار با نویسه «=» از یکدیگر تفکیک می‌شوند\&. .RS 2 .IP \[bu] 2 رابط abrmd TCTI از دو کلید پشتیبانی می‌کند: .RS 2 .IP "1." 3 «bus_name» : نام سرویس tabrmd بر روی گذرگاه (یک رشته)\&. .IP "2." 3 «bus_type» : نوع نمونه dbus (یک رشته) محدود به «session» و «system»\&. .RE .PP تعیین نام tabrmd tcti و یک رشته پیکربندی با \f[CR]bus_name=com.example.FooBar\f[R]: .IP .EX \[rs]\-\-tcti=tabrmd:bus_name=com.example.FooBar .EE .PP تعیین tcti پیش‌فرض (abrmd) و یک رشته پیکربندی با \f[CR]bus_type=session\f[R]: .IP .EX \[rs]\-\-tcti:bus_type=session .EE .PP \f[B]نکته:\f[R] abrmd و tabrmd مترادف یکدیگرند\&. ماژول‌های مختلف TCTI شناخته‌شده\&. .RE .SH "مثال‌ها (EXAMPLES)" .SS "چاپ یک نقل‌قول (Quote) در TPM" .SS "راه‌اندازی کلید برای تولید نقل‌قول" .IP .EX tpm2_createprimary \-C e \-c primary.ctx tpm2_create \-C primary.ctx \-u key.pub \-r key.priv tpm2_load \-C primary.ctx \-u key.pub \-r key.priv \-c key.ctx tpm2_quote \-c key.ctx \-l 0x0004:16,17,18+0x000b:16,17,18 \-g sha256 \-m msg.dat .EE .SS "چاپ یک نقل‌قول (Quote)" .IP .EX tpm2_print \-t TPMS_ATTEST msg.dat .EE .SS "چاپ یک فایل عمومی (public)" .IP .EX tpm2_print \-t TPM2B_PUBLIC key.pub .EE .SS "چاپ یک فایل عمومی tpmt" .IP .EX tpm2_readpublic \-c key.ctx \-f tpmt \-o key.tpmt tpm2_print \-t TPMT_PUBLIC key.tpmt .EE .SS "چاپ یک فایل TPM2B_PUBLIC و تبدیل آن به قالب PEM" .IP .EX tpm2 print \-t TPM2B_PUBLIC \-f pem key.pub .EE .SS "چاپ بخش عمومی فایل TSSPRIVKEY PEM و تبدیل آن به قالب PEM" .IP .EX tpm2 print \-t TSSPRIVKEY_OBJ tssprivkey.pem tpm2 print \-t TSSPRIVKEY_OBJ tssprivkey.pem \-f pem > publickey.pem .EE .SS "چاپ نام یک دستگیره سریالی‌شده ESYS_TR" دستگیره‌های سریالی‌شدهٔ ESYS_TR توسط ابزارهایی مانند گزینهٔ \f[CR]\-o\f[R] در \f[CR]tpm2_evictcontrol\f[R] و گزینهٔ \f[CR]\-t\f[R] در \f[CR]tpm2_readpublic\f[R] برگردانده می‌شوند\&. .IP .EX tpm2_createprimary \-c primary.ctx tpm2_evictcontrol \-c primary.ctx \-o primary.tr tpm2 print \-t ESYS_TR primary.tr .EE .SH "کدهای بازگشتی (RETURNS)" ابزارها می‌توانند هر یک از کدهای زیر را بازگردانند: .IP \[bu] 2 0 \- موفقیت\&. .IP \[bu] 2 1 \- خطای کلی و نامشخص\&. .IP \[bu] 2 2 \- خطای مدیریت گزینه‌ها\&. .IP \[bu] 2 3 \- خطای احراز اصالت\&. .IP \[bu] 2 4 \- خطای مربوط به TCTI\&. .IP \[bu] 2 5 \- طرح پشتیبانی‌نشده\&. قابل اعمال بر \f[B]tpm2_testparams\f[R]\&. .SH "همچنین ببینید (SEE ALSO)" \f[B]tpm2_readpublic\f[R](1)، \f[B]tpm2_quote\f[R](1)، \f[B]tpm2_evictcontrol\f[R](1)، \f[B]tpm2_startauthsession\f[R](1) .SH "اشکالات (BUGS)" \c .UR https://github.com/tpm2-software/tpm2-tools/issues گزارش اشکالات در گیت‌هاب (Github Issues) .UE \c .SH "راهنما (HELP)" مشاهده \c .UR https://lists.linuxfoundation.org/mailman/listinfo/tpm2 فهرست پستی (Mailing List) .UE \c .SH "مجوز (LICENSE)" این اثر تحت \c .UR https://creativecommons.org/licenses/by/4.0 مجوز بین‌المللی کریتیو کامنز ارجاع ۴.۰ (CC BY 4.0) .UE \c \&.