tpm2tss-genkey(1) General Commands Manual tpm2tss-genkey(1)

tpm2tss-genkey - تولید کلیدهای TPM برای tpm2-tss-engine

tpm2tss-genkey [گزینه‌ها] <نام_فایل>

دستور tpm2tss-genkey یک کلید در داخل TPM 2.0 که از طریق پشته نرم‌افزاری tpm2tss متصل است ایجاد می‌کند. این کلیدها می‌توانند یک کلید RSA برای رمزگشایی یا امضا، یا یک کلید ECC برای امضاهای ECDSA باشند.

این ابزار از گزینه OPENSSL_CONF برای تعیین پارامترهای کنترلی ویژه موتور پشتیبانی می‌کند. برای جزئیات درباره فایل‌های پیکربندی openssl به man(5) config مراجعه کنید.

دستور tpm2tss-genkey برای ذخیره اطلاعات کلید TPM حاصل، انتظار یک نام فایل را دارد. سپس این فایل می‌تواند با استفاده از دستور زیر در OpenSSL بارگذاری شود: openssl pkeyutl -engine tpm2tss -keyform engine -inkey <filename>.

•
-a <algorithm>, --alg <algorithm>: الگوریتم کلید عمومی (rsa، ecdsa) (پیش‌فرض: rsa)
•
-c <curve>, --curve <curve>: در صورت انتخاب الگوریتم ecdsa، منحنی برای ecc (پیش‌فرض: nist_p256)
•
-u <file>, --public <file>: کلید عمومی (TPM2B_PUBLIC) برای وارد کردن. نیازمند -r است.
•
-r <file>, --private <file>: کلید خصوصی (رمزگذاری‌شده) (TPM2B_PRIVATE) برای وارد کردن. نیازمند -u است.
•
-e <exponent>, --exponent <exponent>: در صورت انتخاب الگوریتم rsa، توان برای rsa (پیش‌فرض: 65537)
•
-h, --help: چاپ پیام راهنما
•
-o <password>, --ownerpw <password>: گذرواژه برای سلسله‌مراتب مالک (پیش‌فرض: هیچ)؛ دستور کنترلی پیکربندی OpenSSL: SET_OWNERAUTH
•
-p <password>, --password <password>: گذرواژه برای کلید ایجاد‌شده (پیش‌فرض: هیچ)
•
-P <handle>, --parent <handle>: هندل مشخص برای کلید والد (پیش‌فرض: هیچ)
•
-s <keysize>, --keysize <keysize>: در صورت انتخاب الگوریتم rsa، اندازه کلید به بیت (پیش‌فرض: 2048)
•
-v, --verbose: چاپ پیام‌ها با جزئیات کامل
•
-W <password>, --parentpw <password>: گذرواژه برای کلید والد (پیش‌فرض: هیچ)؛ دستور کنترلی پیکربندی OpenSSL: SET_PARENTAUTH
•
-t <tcti-conf>, --tcti <tcti-conf>: رشته پیکربندی TCTI (پیش‌فرض: هیچ)؛ دستور کنترلی پیکربندی OpenSSL: SET_TCTI

اطلاعات موتور را می‌توان با دستور زیر دریافت کرد:

$ openssl engine -t -c tpm2tss

توالی دستورات زیر با استفاده از TPM یک کلید RSA ایجاد می‌کند، کلید عمومی را صادر می‌نماید، یک فایل داده را رمزگذاری کرده و با استفاده از TPM آن را رمزگشایی می‌کند:

$ tpm2tss-genkey -a rsa -s 2048 mykey
$ openssl rsa -engine tpm2tss -inform engine -in mykey -pubout -outform pem -out mykey.pub
$ openssl pkeyutl -pubin -inkey mykey.pub -in mydata -encrypt -out mycipher
$ openssl pkeyutl -engine tpm2tss -keyform engine -inkey mykey -decrypt -in mycipher -out mydata

توالی دستورات زیر با استفاده از TPM یک کلید RSA ایجاد می‌کند، کلید عمومی را صادر می‌نماید، یک فایل داده را با استفاده از TPM امضا کرده و امضا را اعتبارسنجی می‌کند:

$ tpm2tss-genkey -a rsa -s 2048 mykey
$ openssl rsa -engine tpm2tss -inform engine -in mykey -pubout -outform pem -out mykey.pub
$ openssl pkeyutl -engine tpm2tss -keyform engine -inkey mykey -sign -in mydata -out mysig
$ openssl pkeyutl -engine tpm2tss -keyform engine -inkey mykey -verify -in mydata -sigfile mysig

توالی دستورات زیر با استفاده از TPM یک کلید ECDSA ایجاد می‌کند، کلید عمومی را صادر می‌نماید، یک فایل داده را با استفاده از TPM امضا کرده و امضا را اعتبارسنجی می‌کند:

$ tpm2tss-genkey -a ecdsa -c nist_p256 mykey
$ openssl pkeyutl -engine tpm2tss -keyform engine -inkey mykey -sign -in mydata -out mysig
$ openssl pkeyutl -engine tpm2tss -keyform engine -inkey mykey -verify -in mydata -sigfile mysig

۰ در صورت موفقیت یا ۱ در صورت شکست.

نوشته‌شده توسط Andreas Fuchs.

حق نشر tpm2tss متعلق به (C) 2017-2018 Fraunhofer SIT است و توسط Infineon Technologies AG حمایت مالی شده است.

مجوز BSD 3-clause.

openssl(1)

OCTOBER 2020 tpm2-tss-engine