P11-KIT(8) دستورات سیستمی P11-KIT(8)

p11-kit - ابزار مدیریت ماژولهای PKCS#11

p11-kit list-modules

p11-kit list-tokens ...

p11-kit list-objects ...

p11-kit import-object ...

p11-kit export-object ...

p11-kit delete-object ...

p11-kit generate-keypair ...

p11-kit list-profiles ...

p11-kit add-profile ...

p11-kit delete-profile ...

p11-kit list-mechanisms ...

p11-kit print-config

p11-kit extract ...

p11-kit server ...

دستور p11-kit یک ابزار خط فرمان است که می‌توان از آن برای انجام عملیات روی ماژول‌های PKCS#11 پیکربندی‌شده روی سیستم استفاده کرد.

زیردستورهای گوناگون در ادامه آورده شده‌اند. گزینه‌های عمومی زیر را می‌توان به کار برد:

-v, --verbose

اجرا در حالت پرگو همراه با خروجی رفع اشکال (debug).

-q, --quiet

اجرا در حالت ساکت بدون پیام‌های هشدار یا خطا.

فهرست کردن ماژول‌های PKCS#11 پیکربندی‌شده روی سیستم.

$ p11-kit list-modules

ماژول‌ها، اطلاعات مربوط به آن‌ها و توکن‌های موجود در ماژول‌های PKCS#11 نمایش داده خواهند شد.

فهرست کردن تمام توکن‌های موجود در ماژول‌های PKCS#11 پیکربندی‌شده روی سیستم.

$ p11-kit list-tokens pkcs11:token

این دستور تمام توکن‌ها را بازیابی کرده و برخی از ویژگی‌های مشترک آن‌ها را نمایش می‌دهد.

این زیردستور گزینه‌های زیر را می‌پذیرد:

--only-uris

تنها چاپ کردن URIهای توکن منطبق.

--provider=<module_path>

بارگذاری تنها ماژول PKCS#11 داده‌شده به جای برشمردن ماژول‌های نصب‌شده روی سیستم. اگر module_path یک مسیر نسبی باشد، ماژول از مسیر پیش‌فرض ماژول‌ها بارگذاری می‌شود. این مسیر را می‌توان با اجرای دستور زیر مشخص کرد:
$ pkg-config p11-kit-1 --variable p11_module_path
/usr/lib64/pkcs11

فهرست کردن اشیاء منطبق با PKCS#11 URI داده‌شده.

$ p11-kit list-objects pkcs11:object_on_token

این دستور تمام اشیایی را که با PKCS#11 URI داده‌شده تطابق دارند بازیابی کرده و برخی از ویژگی‌های مشترک آن‌ها را نمایش می‌دهد. اشیاء ذخیره‌سازی نیز PKCS#11 URI آن‌ها نمایش داده می‌شود.

این زیردستور گزینه‌های زیر را می‌پذیرد:

--login

احراز هویت در توکن پیش از برشمردن اشیاء. مقدار PIN از مشخصه pin-value در URI یا از ترمینال خوانده می‌شود.

--provider=<module_path>

بارگذاری تنها ماژول PKCS#11 داده‌شده به جای برشمردن ماژول‌های نصب‌شده روی سیستم. اگر module_path یک مسیر نسبی باشد، ماژول از مسیر پیش‌فرض ماژول‌ها بارگذاری می‌شود. این مسیر را می‌توان با اجرای دستور زیر مشخص کرد:
$ pkg-config p11-kit-1 --variable p11_module_path
/usr/lib64/pkcs11

وارد کردن شیء به توکن PKCS#11.

$ p11-kit import-object --file=file.pem [--label=label] [--id=object_id] pkcs11:token

یک گواهی X.509 یا یک کلید عمومی را در قالب یک فایل PEM دریافت کرده و آن را به نخستین توکن منطبق با PKCS#11 URI داده‌شده وارد می‌کند.

گزینه‌های زیر الزامی هستند:

--file=<file.pem>

فایل حاوی یک گواهی X.509 یا یک کلید عمومی در قالب PEM.

این زیردستور همچنین گزینه‌های زیر را می‌پذیرد:

--label=<label>

اختصاص برچسب به شیء واردشده.

--id=<object_id>

اختصاص شناسه به شیء واردشده. شناسه باید در قالب هگزادسیمال بدون پیشوند '0x' مشخص شود.

--login

احراز هویت در توکن پیش از برشمردن اشیاء. مقدار PIN از مشخصه pin-value در URI یا از ترمینال خوانده می‌شود.

--provider=<module_path>

بارگذاری تنها ماژول PKCS#11 داده‌شده به جای برشمردن ماژول‌های نصب‌شده روی سیستم. اگر module_path یک مسیر نسبی باشد، ماژول از مسیر پیش‌فرض ماژول‌ها بارگذاری می‌شود. این مسیر را می‌توان با اجرای دستور زیر مشخص کرد:
$ pkg-config p11-kit-1 --variable p11_module_path
/usr/lib64/pkcs11

صادر کردن شیء منطبق با PKCS#11 URI.

$ p11-kit export-object pkcs11:object_on_token

محتوای با قالب PEM نخستین شیء منطبق با PKCS#11 URI داده‌شده را نمایش می‌دهد. شیء منطبق باید یا یک گواهی X.509 یا یک کلید عمومی باشد.

این زیردستور گزینه‌های زیر را می‌پذیرد:

--login

احراز هویت در توکن پیش از برشمردن اشیاء. مقدار PIN از مشخصه pin-value در URI یا از ترمینال خوانده می‌شود.

--provider=<module_path>

بارگذاری تنها ماژول PKCS#11 داده‌شده به جای برشمردن ماژول‌های نصب‌شده روی سیستم. اگر module_path یک مسیر نسبی باشد، ماژول از مسیر پیش‌فرض ماژول‌ها بارگذاری می‌شود. این مسیر را می‌توان با اجرای دستور زیر مشخص کرد:
$ pkg-config p11-kit-1 --variable p11_module_path
/usr/lib64/pkcs11

حذف شیء منطبق با PKCS#11 URI.

$ p11-kit delete-object pkcs11:object_on_token

نخستین شیء منطبق با PKCS#11 URI داده‌شده را حذف می‌کند.

این زیردستور گزینه‌های زیر را می‌پذیرد:

--login

احراز هویت در توکن پیش از برشمردن اشیاء. مقدار PIN از مشخصه pin-value در URI یا از ترمینال خوانده می‌شود.

--provider=<module_path>

بارگذاری تنها ماژول PKCS#11 داده‌شده به جای برشمردن ماژول‌های نصب‌شده روی سیستم. اگر module_path یک مسیر نسبی باشد، ماژول از مسیر پیش‌فرض ماژول‌ها بارگذاری می‌شود. این مسیر را می‌توان با اجرای دستور زیر مشخص کرد:
$ pkg-config p11-kit-1 --variable p11_module_path
/usr/lib64/pkcs11

تولید جفت‌کلید روی یک توکن PKCS#11.

$ p11-kit generate-keypair --type=algorithm {--bits=n|--curve=name} [--label=label] [--id=object_id] pkcs11:token

تولید جفت‌کلید خصوصی-عمومی از نوع داده‌شده روی نخستین توکن منطبق با PKCS#11 URI داده‌شده. این دستور باید همراه با گزینه --type و یکی از گزینه‌های --bits یا --curve استفاده شود.

گزینه‌های زیر الزامی هستند:

--type=<algorithm>

تعیین نوع کلیدها جهت تولید. مقادیر پشتیبانی‌شده عبارتند از rsa، ecdsa و eddsa.

--bits=<n>

تعیین تعداد بیت‌ها برای تولید جفت‌کلید. نمی‌توان همزمان با گزینه --curve استفاده شود.

--curve=<name>

تعیین منحنی بیضوی برای تولید جفت‌کلید. مقادیر پشتیبانی‌شده عبارتند از secp256r1، secp384r1، secp521r1، ed25519 و ed448. نمی‌توان همزمان با گزینه --bits استفاده شود.

این زیردستور همچنین گزینه‌های زیر را می‌پذیرد:

--label=<label>

اختصاص برچسب به اشیاء جفت‌کلید تولیدشده.

--id=<object_id>

اختصاص شناسه به اشیاء جفت‌کلید تولیدشده. شناسه باید در قالب هگزادسیمال بدون پیشوند '0x' مشخص شود.

--login

احراز هویت در توکن پیش از برشمردن اشیاء. مقدار PIN از مشخصه pin-value در URI یا از ترمینال خوانده می‌شود.

--provider=<module_path>

بارگذاری تنها ماژول PKCS#11 داده‌شده به جای برشمردن ماژول‌های نصب‌شده روی سیستم. اگر module_path یک مسیر نسبی باشد، ماژول از مسیر پیش‌فرض ماژول‌ها بارگذاری می‌شود. این مسیر را می‌توان با اجرای دستور زیر مشخص کرد:
$ pkg-config p11-kit-1 --variable p11_module_path
/usr/lib64/pkcs11

فهرست کردن پروفایل‌های PKCS#11 پشتیبانی‌شده توسط توکن.

$ p11-kit list-profiles pkcs11:token

شناسه‌های پروفایل نخستین توکن منطبق با PKCS#11 URI داده‌شده را در قالبی خوانا برای انسان نمایش می‌دهد.

این زیردستور گزینه‌های زیر را می‌پذیرد:

--login

احراز هویت در توکن پیش از برشمردن اشیاء. مقدار PIN از مشخصه pin-value در URI یا از ترمینال خوانده می‌شود.

--provider=<module_path>

بارگذاری تنها ماژول PKCS#11 داده‌شده به جای برشمردن ماژول‌های نصب‌شده روی سیستم. اگر module_path یک مسیر نسبی باشد، ماژول از مسیر پیش‌فرض ماژول‌ها بارگذاری می‌شود. این مسیر را می‌توان با اجرای دستور زیر مشخص کرد:
$ pkg-config p11-kit-1 --variable p11_module_path
/usr/lib64/pkcs11

افزودن پروفایل PKCS#11 به یک توکن.

$ p11-kit add-profile --profile=profile pkcs11:token

یک شیء پروفایل جدید با شناسه پروفایل داده‌شده روی نخستین توکن منطبق با PKCS#11 URI داده‌شده ایجاد می‌کند. در صورتی که شناسه پروفایل از قبل روی توکن وجود داشته باشد، این دستور شکست می‌خورد.

گزینه‌های زیر الزامی هستند:

--profile=<profile>

شناسه پروفایل جهت افزودن. مقدار می‌تواند عددی یا متنی باشد.

این زیردستور همچنین گزینه‌های زیر را می‌پذیرد:

--login

احراز هویت در توکن پیش از برشمردن اشیاء. مقدار PIN از مشخصه pin-value در URI یا از ترمینال خوانده می‌شود.

--provider=<module_path>

بارگذاری تنها ماژول PKCS#11 داده‌شده به جای برشمردن ماژول‌های نصب‌شده روی سیستم. اگر module_path یک مسیر نسبی باشد، ماژول از مسیر پیش‌فرض ماژول‌ها بارگذاری می‌شود. این مسیر را می‌توان با اجرای دستور زیر مشخص کرد:
$ pkg-config p11-kit-1 --variable p11_module_path
/usr/lib64/pkcs11

حذف پروفایل PKCS#11 از یک توکن.

$ p11-kit delete-profile --profile=profile pkcs11:token

تمامی اشیاء پروفایل با شناسه پروفایل داده‌شده را از نخستین توکن منطبق با PKCS#11 URI داده‌شده حذف می‌کند.

گزینه‌های زیر الزامی هستند:

--profile=<profile>

شناسه پروفایل جهت حذف. مقدار می‌تواند عددی یا متنی باشد.

این زیردستور همچنین گزینه‌های زیر را می‌پذیرد:

--login

احراز هویت در توکن پیش از برشمردن اشیاء. مقدار PIN از مشخصه pin-value در URI یا از ترمینال خوانده می‌شود.

--provider=<module_path>

بارگذاری تنها ماژول PKCS#11 داده‌شده به جای برشمردن ماژول‌های نصب‌شده روی سیستم. اگر module_path یک مسیر نسبی باشد، ماژول از مسیر پیش‌فرض ماژول‌ها بارگذاری می‌شود. این مسیر را می‌توان با اجرای دستور زیر مشخص کرد:
$ pkg-config p11-kit-1 --variable p11_module_path
/usr/lib64/pkcs11

فهرست کردن سازوکارهای PKCS#11 پشتیبانی‌شده توسط توکن.

$ p11-kit list-mechanisms pkcs11:token

این دستور تمامی سازوکارهای موجود برای یک توکن PKCS#11 را فهرست می‌کند.

چاپ پیکربندی ادغام‌شده.

$ p11-kit print-config

ابزار P11-kit سه سطح پیکربندی ارائه می‌دهد: سراسری در سطح سیستم (system wide)، برای هر ماژول (per-module)، و برای هر کاربر (per-user). در زمان اجرا هر سه سطح در یک پیکربندی واحد ادغام می‌شوند. این دستور پیکربندی ادغام‌شده را نمایش می‌دهد.

استخراج گواهی‌ها از ماژول‌های PKCS#11 پیکربندی‌شده.

این عملیات به دستور جداگانه trust extract منتقل شده است. برای اطلاعات بیشتر

را ببینید.

اجرای یک فرآیند سرور که ماژول PKCS#11 را از راه دور ارائه می‌دهد.

$ p11-kit server pkcs11:token1 pkcs11:token2 ...
$ p11-kit server --provider /path/to/pkcs11-module.so pkcs11:token1 pkcs11:token2 ...

این دستور سروری را راه‌اندازی می‌کند که توکن‌های PKCS#11 داده‌شده را روی یک سوکت محلی ارائه می‌دهد. توکن‌ها باید به یک ماژول یکسان تعلق داشته باشند. برای دسترسی به سوکت، از ماژول p11-kit-client.so استفاده کنید. آدرس سرور و شناسه فرآیند (PID) به‌صورت یک قطعه اسکریپت شل چاپ می‌شوند که متغیر محیطی مناسب را تنظیم می‌کند: P11_KIT_SERVER_ADDRESS و P11_KIT_SERVER_PID.

استخراج فایل‌های استاندارد اطلاعات اعتبارسنجی (trust).

این عملیات به دستور جداگانه trust extract-compat منتقل شده است. برای اطلاعات بیشتر trust(1) را ببینید.

اجرای یک ماژول PKCS#11 از راه دور.

$ p11-kit remote /path/to/pkcs11-module.so
$ p11-kit remote pkcs11:token1 pkcs11:token2 ...

این دستور برای اجرا به صورت مستقیم از یک ترمینال در نظر گرفته نشده است؛ بلکه درون گزینه remote در یک فایل pkcs11.conf(5) به کار می‌رود.

این دستور ماژول یا توکن‌های PKCS#11 داده‌شده را از طریق ورودی و خروجی استاندارد ارائه می‌دهد. این دو حالت، یعنی ارائه یک ماژول یا ارائه توکن‌ها، مانعه‌الجمع هستند و در صورت استفاده از حالت دوم، توکن‌ها باید به یک ماژول یکسان تعلق داشته باشند.

لطفاً گزارش باگ‌ها را به سامانه پیگیری باگ توزیع یا سامانه پیگیری باگ بالادستی در نشانی زیر ارسال کنید: https://github.com/p11-glue/p11-kit/issues.

pkcs11.conf(5)

جزئیات بیشتر در مستندات برخط p11-kit در نشانی زیر در دسترس است: https://p11-glue.github.io/p11-glue/p11-kit/manual.

p11-kit