'\" t .\" Title: pkcs11-tool .\" Author: [see the "Authors" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 06/02/2026 .\" Manual: OpenSC Tools .\" Source: opensc .\" Language: English .\" .TH "PKCS11\-TOOL" "1" "06/02/2026" "opensc" "OpenSC Tools" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" pkcs11-tool \- ابزاری برای مدیریت و استفاده از توکن‌های امنیتی PKCS #11 .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBpkcs11\-tool\fR\ 'u \fBpkcs11\-tool\fR [\fIگزینه‌ها\fR] .SH "توضیحات (DESCRIPTION)" .PP ابزار \fBpkcs11\-tool\fR برای مدیریت اشیاء داده روی کارت‌های هوشمند و توکن‌های امنیتی مشابه PKCS #11 استفاده می‌شود\&. کاربران می‌توانند PINها، کلیدها و گواهی‌های ذخیره‌شده بر روی توکن را فهرست کرده و بخوانند\&. احراز هویت با PIN کاربر برای آن دسته از عملیات‌هایی که به آن نیاز دارند انجام می‌شود\&. .SH "گزینه‌ها (OPTIONS)" .PP .PP \fB\-\-attr\-from\fR \fIfilename\fR .RS 4 استخراج اطلاعات از \fIfilename\fR (فایل گواهی با کدگذاری DER) و ایجاد ویژگی‌های متناظر در هنگام نوشتن یک شیء روی توکن\&. مثال: نام موضوع (subject) گواهی برای ایجاد ویژگی CKA_SUBJECT استفاده می‌شود\&. .RE .PP \fB\-\-change\-pin\fR, \fB\-c\fR .RS 4 تغییر دادن PIN کاربر بر روی توکن .RE .PP \fB\-\-unlock\-pin\fR .RS 4 رفع مسدودی PIN کاربر (بدون \fB\-\-login\fR رفع مسدودی در نشست واردشده انجام می‌شود؛ در غیر این صورت \fB\-\-login\-type\fR باید \*(Aqcontext\-specific\*(Aq باشد)\&. .RE .PP \fB\-\-hash\fR, \fB\-h\fR .RS 4 درهم‌سازی (هش کردن) مقداری داده\&. .RE .PP \fB\-\-hash\-algorithm\fR \fImechanism\fR .RS 4 مشخص کردن الگوریتم هش مورد استفاده در امضای RSA\-PKCS\-PSS یا رمزگشایی RSA\-OAEP\&. مقادیر مجاز عبارتند از "SHA\-1"، "SHA256"، "SHA384"، "SHA512" و برخی توکن‌ها ممکن است "SHA224" را نیز مجاز بدانند\&. مقدار پیش‌فرض "SHA\-1" است\&. .sp توجه داشته باشید که ورودی به RSA\-PKCS\-PSS باید طولی برابر با الگوریتم هش مشخص‌شده داشته باشد\&. به عنوان مثال، برای SHA256 ورودی امضا باید دقیقاً ۳۲ بایت طول داشته باشد (برای سازوکارهای SHA256\-RSA\-PKCS\-PSS چنین محدودیتی وجود ندارد)\&. برای RSA\-OAEP، اندازه ورودی متن آشکار mLen حداکثر باید keyLen \- 2 \- 2*hashLen باشد\&. به عنوان مثال، برای کلید ۳۰۷۲ بیتی RSA و SHA384، طولانی‌ترین متن آشکار برای رمزگذاری با RSA\-OAEP (با تمام اندازه‌ها به بایت) عبارت است از: 384 \- 2 \- 2*48 = 286، یعنی ۲۸۶ بایت\&. .RE .PP \fB\-\-id\fR \fIid\fR, \fB\-d\fR \fIid\fR .RS 4 مشخص کردن شناسه شیء مورد نظر برای عملیات\&. .RE .PP \fB\-\-init\-pin\fR .RS 4 مقداردهی اولیه PIN کاربر\&. این گزینه با \fB\-\-change\-pin\fR تفاوت دارد زیرا PIN کاربر را برای نخستین بار تنظیم می‌کند\&. پس از تنظیم، می‌توان PIN کاربر را با استفاده از \fB\-\-change\-pin\fR تغییر داد\&. .RE .PP \fB\-\-init\-token\fR .RS 4 مقداردهی اولیه یک توکن: تنظیم برچسب توکن و همچنین PIN افسر امنیت (SO-PIN) (برچسب باید با استفاده از \fB\-\-label\fR مشخص شود)\&. .RE .PP \fB\-\-input\-file\fR \fIfilename\fR, \fB\-i\fR \fIfilename\fR .RS 4 مشخص کردن مسیر فایل ورودی\&. .RE .PP \fB\-\-keypairgen\fR, \fB\-k\fR .RS 4 تولید یک جفت‌کلید جدید (جفت کلید عمومی و خصوصی)\&. .RE .PP \fB\-\-keygen\fR .RS 4 تولید یک کلید جدید\&. .RE .PP \fB\-\-key\-type\fR \fIspecification\fR .RS 4 مشخص کردن نوع و گونه (نه همیشه الزامی) کلید برای ساخت (مانند طول بایتی کلید متقارن، طول بیتی کلید نامتقارن، شناسه منحنی بیضوی و غیره)\&. به عنوان مثال RSA:2048، EC:prime256v1، EC:ED25519، EC:X448، GOSTR3410\-2012\-256:B، DES:8، DES3:24، AES:16، AES:، CHACHA20، POLY1305 یا GENERIC:64\&. اگر نوع کلید به طور ناقص مشخص شده باشد، مقادیر ممکن فهرست می‌شوند\&. .RE .PP \fB\-\-usage\-sign\fR .RS 4 تعیین فلگ کاربرد کلید برای \*(Aqsign\*(Aq (امضا) (تنظیم SIGN در privkey، تنظیم VERIFY در pubkey)\&. .RE .PP \fB\-\-usage\-decrypt\fR .RS 4 تعیین فلگ کاربرد کلید برای \*(Aqdecrypt\*(Aq (رمزگشایی)\&. .sp برای کلیدهای RSA، مقدار DECRYPT را در privkey و ENCRYPT را در pubkey تنظیم می‌کند\&. برای کلیدهای محرمانه، هر دو مقدار DECRYPT و ENCRYPT را تنظیم می‌نماید\&. .RE .PP \fB\-\-usage\-derive\fR .RS 4 تعیین فلگ کاربرد کلید برای \*(Aqderive\*(Aq (اشتقاق) (فقط برای EC)\&. .RE .PP \fB\-\-usage\-wrap\fR .RS 4 تعیین فلگ کاربرد کلید برای \*(Aqwrap\*(Aq (بسته‌بندی)\&. .RE .PP \fB\-\-usage\-encapsulate\fR .RS 4 تعیین فلگ کاربرد کلید برای \*(Aqencapsulate\*(Aq (کپسوله‌سازی) (تنظیم DECAPSULATE در privkey، تنظیم ENCAPSULATE در pubkey)\&. .RE .PP \fB\-\-label\fR \fIname\fR, \fB\-a\fR \fIname\fR .RS 4 مشخص کردن نام شیء مورد نظر برای عملیات (یا برچسب توکن هنگام استفاده از \fB\-\-init\-token\fR)\&. .RE .PP \fB\-\-list\-mechanisms\fR, \fB\-M\fR .RS 4 نمایش فهرست سازوکارهای (mechanisms) پشتیبانی‌شده توسط توکن\&. .RE .PP \fB\-\-list\-objects\fR, \fB\-O\fR .RS 4 نمایش فهرستی از اشیاء\&. .sp گزینه‌های \fB\-\-keytype\fR، \fB\-\-label\fR، \fB\-\-id\fR یا \fB\-\-application\-id\fR می‌توانند برای فیلتر کردن اشیاء فهرست‌شده استفاده شوند\&. .RE .PP \fB\-\-list\-slots\fR, \fB\-L\fR .RS 4 نمایش فهرستی از اسلات‌های در دسترس روی توکن\&. .RE .PP \fB\-\-list\-token\-slots\fR, \fB\-T\fR .RS 4 فهرست کردن اسلات‌های دارای توکن\&. .RE .PP \fB\-\-list\-interfaces\fR .RS 4 فهرست کردن رابط‌های کتابخانه PKCS #11 3\&.0\&. .RE .PP \fB\-\-session\-rw\fR, .RS 4 اجبار به باز کردن نشست PKCS#11 با CKF_RW_SESSION\&. .RE .PP \fB\-\-login\fR, \fB\-l\fR .RS 4 احراز هویت در توکن پیش از انجام سایر عملیات‌ها\&. در صورتی که یک PIN در خط فرمان ارائه شده باشد، نیازی به این گزینه نیست\&. .RE .PP \fB\-\-login\-type\fR .RS 4 مشخص کردن نوع ورود (\*(Aqso\*(Aq، \*(Aquser\*(Aq، \*(Aqcontext\-specific\*(Aq؛ پیش‌فرض: \*(Aquser\*(Aq)\&. .RE .PP \fB\-\-mechanism\fR \fImechanism\fR, \fB\-m\fR \fImechanism\fR .RS 4 استفاده از سازوکار (mechanism) مشخص‌شده برای عملیات‌های توکن\&. برای مشاهده فهرست سازوکارهای پشتیبانی‌شده توسط توکن خود، \fB\-M\fR را ببینید\&. سازوکار را می‌توان در قالب هگزادسیمال نیز مشخص کرد، مانند \fI0x80001234\fR\&. .RE .PP \fB\-\-mgf\fR \fIfunction\fR .RS 4 استفاده از تابع تولید پیام (MGF) مشخص‌شده در \fIfunction\fR برای امضاهای RSA\-PKCS\-PSS یا رمزگشایی‌های RSA\-OAEP\&. آرگومان‌های پشتیبانی‌شده از MGF1\-SHA1 تا MGF1\-SHA512 در صورت پشتیبانی درایور هستند\&. مقدار پیش‌فرض بر اساس انتخاب تابع هش تعیین می‌شود\&. .RE .PP \fB\-\-module\fR \fImod\fR .RS 4 مشخص کردن ماژول (یا کتابخانه) PKCS#11 برای بارگذاری\&. .RE .PP \fB\-\-moz\-cert\fR \fIfilename\fR, \fB\-z\fR \fIfilename\fR .RS 4 آزمایش تولید جفت‌کلید و درخواست گواهی به شیوه موزیلا\&. مسیر \fIfilename\fR را برای فایل گواهی مشخص کنید\&. .RE .PP \fB\-\-output\-file\fR \fIfilename\fR, \fB\-o\fR \fIfilename\fR .RS 4 مشخص کردن مسیر فایل خروجی\&. .RE .PP \fB\-\-pin\fR \fIpin\fR, \fB\-p\fR \fIpin\fR .RS 4 استفاده از \fIpin\fR داده‌شده برای عملیات‌های توکن\&. اگر روی env:\fIVARIABLE\fR تنظیم شود، مقدار متغیر محیطی \fIVARIABLE\fR استفاده می‌شود\&. هشدار: در استفاده از این گزینه محتاط باشید زیرا سایر کاربران ممکن است بتوانند خط فرمان را از سیستم بخوانند یا در صورتی که در یک اسکریپت جاسازی شده باشد آن را مشاهده نمایند\&. .sp این گزینه همچنین گزینه \fB\-\-login\fR را تنظیم خواهد کرد\&. .RE .PP \fB\-\-public\-key\-info\fR .RS 4 خواندن کلید عمومی از ماژول با استفاده از "CKA_PUBLIC_KEY_INFO" (همراه با \fB\-\-read\-object \-\-type public\fR استفاده شود)\&. خروجی یک "SubjectPublicKeyInfo" است، یعنی همان ساختاری که در گواهی‌ها و openssl استفاده می‌شود\&. .RE .PP \fB\-\-puk\fR \fIpuk\fR .RS 4 ارائه PUK کاربر در خط فرمان\&. .RE .PP \fB\-\-new\-pin\fR \fIpin\fR .RS 4 ارائه PIN جدید کاربر در خط فرمان\&. .RE .PP \fB\-\-sensitive\fR .RS 4 تنظیم ویژگی CKA_SENSITIVE (شیء نمی‌تواند به‌صورت متن آشکار فاش شود)\&. .RE .PP \fB\-\-extractable\fR .RS 4 تنظیم ویژگی CKA_EXTRACTABLE (شیء قابل استخراج است)\&. .RE .PP \fB\-\-undestroyable\fR .RS 4 تنظیم ویژگی CKA_DESTROYABLE روی false (شیء قابل نابود کردن نیست)\&. .RE .PP \fB\-\-set\-id\fR \fIid\fR, \fB\-e\fR \fIid\fR .RS 4 تنظیم CKA_ID برای شیء\&. .RE .PP \fB\-\-show\-info\fR, \fB\-I\fR .RS 4 نمایش اطلاعات عمومی توکن\&. .RE .PP \fB\-\-sign\fR, \fB\-s\fR .RS 4 امضا کردن مقداری داده\&. .RE .PP \fB\-\-decrypt\fR, .RS 4 رمزگشایی مقداری داده\&. .RE .PP \fB\-\-encrypt\fR, .RS 4 رمزگذاری مقداری داده\&. .RE .PP \fB\-\-unwrap\fR, .RS 4 باز کردن (unwrap) کلید\&. .RE .PP \fB\-\-wrap\fR, .RS 4 بسته‌بندی (wrap) کلید\&. .RE .PP \fB\-\-derive\fR, .RS 4 اشتقاق یک کلید محرمانه با استفاده از یک کلید دیگر و مقداری داده\&. .RE .PP \fB\-\-derive\-pass\-der\fR, .RS 4 اشتقاق کلید عمومی کدگذاری‌شده با DER برای ECDHpass جهت سازگاری با برخی پیاده‌سازی‌های PKCS#11\&. .RE .PP \fB\-\-salt\-len\fR \fIbytes\fR .RS 4 مشخص کردن تعداد بایت‌های salt مورد استفاده در امضاهای RSA\-PSS\&. دو مقدار ویژه را می‌پذیرد: "\-1" به معنای برابر بودن طول salt با طول digest است؛ "\-2" یا "\-3" به معنای استفاده از حداکثر طول مجاز است\&. برای عملیات اعتبارسنجی (verify)، مقدار "\-2" به این معناست که طول salt به‌طور خودکار از امضا بازیابی می‌شود\&. مقدار "\-2" برای عملیات اعتبارسنجی فقط برای ماژول opensc pkcs#11 پشتیبانی می‌شود\&. مقدار پیش‌فرض، طول digest (\-1) است\&. .RE .PP \fB\-\-slot\fR \fIid\fR .RS 4 مشخص کردن شناسه اسلات مورد استفاده (قالب HEX با پیشوند 0x یا عدد ده‌دهی را می‌پذیرد)\&. .RE .PP \fB\-\-slot\-description\fR \fIdescription\fR .RS 4 مشخص کردن توضیحات اسلات مورد استفاده\&. .RE .PP \fB\-\-slot\-index\fR \fIindex\fR .RS 4 مشخص کردن نمایه (index) اسلات مورد استفاده\&. .RE .PP \fB\-\-object\-index\fR \fIindex\fR .RS 4 مشخص کردن نمایه (index) شیء مورد استفاده\&. .RE .PP \fB\-\-use\-locking\fR .RS 4 اعلام به ماژول pkcs11 برای استفاده از قفل‌گذاری ریسمان‌های سیستم‌عامل\&. .RE .PP \fB\-\-test\-threads\fR \fIoptions\fR .RS 4 آزمایش کاربرد ریسمان ماژول pkcs11\&. (کد منبع را ببینید)\&. .RE .PP \fB\-\-token\-label\fR \fIlabel\fR .RS 4 مشخص کردن برچسب توکن\&. نخستین اسلاتی که توکن واردشده با این برچسب را داشته باشد استفاده خواهد شد\&. .RE .PP \fB\-\-so\-pin\fR \fIpin\fR .RS 4 استفاده از \fIpin\fR داده‌شده به عنوان PIN افسر امنیت (SO-PIN) برای برخی عملیات‌های توکن (مقداردهی اولیه توکن، مقداردهی اولیه PIN کاربر و غیره)\&. اگر روی env:\fIVARIABLE\fR تنظیم شود، مقدار متغیر محیطی \fIVARIABLE\fR استفاده می‌شود\&. همان هشدار ذکرشده برای \fB\-\-pin\fR در اینجا نیز صدق می‌کند\&. .RE .PP \fB\-\-test\fR, \fB\-t\fR .RS 4 انجام برخی آزمایش‌ها بر روی توکن\&. این گزینه بیشترین کاربرد را در هنگام استفاده همراه با \fB\-\-login\fR یا \fB\-\-pin\fR دارد\&. .RE .PP \fB\-\-test\-hotplug\fR .RS 4 آزمایش قابلیت‌های اتصال گرم (C_GetSlotList + C_WaitForSlotEvent)\&. .RE .PP \fB\-\-private\fR .RS 4 تنظیم ویژگی CKA_PRIVATE (شیء فقط پس از ورود قابل مشاهده است)\&. .RE .PP \fB\-\-always\-auth\fR .RS 4 تنظیم ویژگی CKA_ALWAYS_AUTHENTICATE روی یک شیء کلید خصوصی\&. در صورت تنظیم، کاربر باید برای هر بار استفاده (امضا یا رمزگشایی) از کلید، PIN را وارد کند\&. .RE .PP \fB\-\-allowed\-mechanisms\fR \fImechanisms\fR .RS 4 تنظیم ویژگی CKA_ALLOWED_MECHANISMS روی اشیاء کلید هنگام وارد کردن یک شیء یا تولید کلیدها\&. این آرگومان فهرستی از الگوریتم‌های جداشده با کاما را می‌پذیرد که می‌توانند با کلید داده‌شده استفاده شوند\&. .RE .PP \fB\-\-test\-ec\fR .RS 4 آزمایش EC (بهتر است همراه با گزینه \fB\-\-login\fR یا \fB\-\-pin\fR استفاده شود)\&. .RE .PP \fB\-\-test\-fork\fR .RS 4 آزمایش فرآیند fork و فراخوانی C_Initialize() در فرآیند فرزند\&. .RE .PP \fB\-\-type\fR \fItype\fR, \fB\-y\fR \fItype\fR .RS 4 مشخص کردن نوع شیء مورد نظر برای عملیات\&. مقادیر معتبر عبارتند از cert، privkey، pubkey، secrkey و data\&. .RE .PP \fB\-\-verbose\fR, \fB\-v\fR .RS 4 موجب افزایش جزئیات خروجی \fBpkcs11\-tool\fR می‌شود\&. .sp توجه: این مورد تأثیری بر سطح اشکال‌زدایی OpenSC ندارد! برای قرار دادن ماژول OpenSC PKCS#11 در حالت اشکال‌زدایی، متغیر محیطی \fIOPENSC_DEBUG\fR را روی یک عدد غیر صفر تنظیم کنید\&. .RE .PP \fB\-\-verify\fR, .RS 4 اعتبارسنجی امضای مقداری داده\&. .RE .PP \fB\-\-read\-object\fR, \fB\-r\fR .RS 4 دریافت ویژگی CKA_VALUE شیء (همراه با \fB\-\-type\fR استفاده شود)\&. .RE .PP \fB\-\-delete\-object\fR, \fB\-b\fR .RS 4 حذف یک شیء\&. .RE .PP \fB\-\-application\-label\fR \fIlabel\fR .RS 4 مشخص کردن برچسب برنامه شیء داده (همراه با \fB\-\-type\fR data استفاده شود)\&. .RE .PP \fB\-\-application\-id\fR \fIid\fR .RS 4 مشخص کردن شناسه برنامه شیء داده (همراه با \fB\-\-type\fR data استفاده شود)\&. .RE .PP \fB\-\-issuer\fR \fIdata\fR .RS 4 مشخص کردن صادرکننده در قالب هگزادسیمال (همراه با \fB\-\-type\fR cert استفاده شود)\&. .RE .PP \fB\-\-subject\fR \fIdata\fR .RS 4 مشخص کردن موضوع (subject) در قالب هگزادسیمال (همراه با \fB\-\-type\fR cert/privkey/pubkey استفاده شود)\&. .RE .PP \fB\-\-signature\-file\fR \fIfilename\fR .RS 4 مسیر فایل امضا برای اعتبارسنجی امضا .RE .PP \fB\-\-signature\-format\fR \fIformat\fR .RS 4 قالب امضای ECDSA: مقادیر \*(Aqrs\*(Aq (پیش‌فرض)، \*(Aqsequence\*(Aq، \*(Aqopenssl\*(Aq\&. .RE .PP \fB\-\-write\-object\fR \fIfilename\fR, \fB\-w\fR \fIfilename\fR .RS 4 نوشتن یک شیء کلید یا گواهی بر روی توکن\&. \fIfilename\fR به فایل گواهی یا کلید با کدگذاری DER اشاره دارد\&. .RE .PP \fB\-\-generate\-random\fR \fInum\fR .RS 4 دریافت \fInum\fR بایت داده تصادفی\&. .RE .PP \fB\-\-allow\-sw\fR .RS 4 اجازه استفاده از سازوکارهای نرم‌افزاری که فلگ CKF_HW برای آن‌ها تنظیم نشده است\&. ممکن است هنگام استفاده از توکن‌های نرم‌افزاری و شبیه‌سازها مورد نیاز باشد\&. .RE .PP \fB\-\-iv\fR \fIdata\fR .RS 4 بردار مقداردهی اولیه (IV) برای رمزهای متقارن\&. مقدار \fIdata\fR یک عدد هگزادسیمال است، مانند "000013aa7bffa0"\&. .RE .PP \fB\-\-mac\-general\-param\fR \fInum\fR .RS 4 تنظیم طول MAC برای سازوکارهای طول عمومی MAC به \fInum\fR بایت\&. .RE .PP \fB\-\-aad\fR \fIdata\fR .RS 4 داده‌های احراز هویت شده اضافی (AAD) برای رمزهای AEAD\&. مقدار \fIdata\fR یک عدد هگزادسیمال است\&. .RE .PP \fB\-\-tag\-bits\-len\fR \fInum\fR .RS 4 تنظیم طول برچسب (tag) برای رمزهای AEAD به \fInum\fR بیت\&. .RE .PP \fB\-\-salt\-file\fR \fIfilename\fR .RS 4 مشخص کردن فایل حاوی salt برای HKDF (اختیاری) .RE .PP \fB\-\-info\-file\fR \fIfilename\fR .RS 4 مشخص کردن فایل حاوی اطلاعات (info) برای HKDF (اختیاری) .RE .PP \fB\-\-uri\fR \fIvalue\fR .RS 4 مشخص کردن شناسه PKCS#11 URI برای ماژول، اسلات، توکن یا شیء .RE .PP \fB\-\-uri\-with\-slot\-id\fR .RS 4 گنجاندن SlotId در PKCS#11 URI .RE .SH "مثال‌ها (EXAMPLES)" .PP انجام آزمایش پایه‌ای از عملکرد کارت: .sp .if n \{\ .RS 4 .\} .nf pkcs11\-tool \-\-test \-\-login .fi .if n \{\ .RE .\} .sp فهرست کردن تمام گواهی‌های موجود بر روی کارت هوشمند: .sp .if n \{\ .RS 4 .\} .nf pkcs11\-tool \-\-list\-objects \-\-type cert .fi .if n \{\ .RE .\} .sp خواندن گواهی با شناسه \fICERT_ID\fR در قالب DER از کارت هوشمند و تبدیل آن به PEM از طریق OpenSSL: .sp .if n \{\ .RS 4 .\} .nf pkcs11\-tool \-\-read\-object \-\-id $CERT_ID \-\-type cert \e \-\-output\-file cert\&.der openssl x509 \-inform DER \-in cert\&.der \-outform PEM > cert\&.pem .fi .if n \{\ .RE .\} .sp نوشتن یک گواهی بر روی توکن: .sp .if n \{\ .RS 4 .\} .nf pkcs11\-tool \-\-login \-\-write\-object certificate\&.der \-\-type cert .fi .if n \{\ .RE .\} .sp تولید جفت‌کلید RSA جدید: .sp .if n \{\ .RS 4 .\} .nf pkcs11\-tool \-\-login \-\-keypairgen \-\-key\-type RSA:2048 .fi .if n \{\ .RE .\} .sp تولید جفت‌کلید RSA جدید با قابلیت استخراج: .sp .if n \{\ .RS 4 .\} .nf pkcs11\-tool \-\-login \-\-keypairgen \-\-key\-type RSA:2048 \-\-extractable .fi .if n \{\ .RE .\} .sp تولید یک جفت‌کلید منحنی بیضوی با OpenSSL و وارد کردن آن به کارت با شناسه \fI$ID\fR: .sp .if n \{\ .RS 4 .\} .nf openssl genpkey \-out EC_private\&.der \-outform DER \e \-algorithm EC \-pkeyopt ec_paramgen_curve:P\-521 pkcs11\-tool \-\-write\-object EC_private\&.der \-\-id "$ID" \e \-\-type privkey \-\-label "EC private key" \-p "$PIN" openssl pkey \-in EC_private\&.der \-out EC_public\&.der \e \-pubout \-inform DER \-outform DER pkcs11\-tool \-\-write\-object EC_public\&.der \-\-id "$ID" \e \-\-type pubkey \-\-label "EC public key" \-p $PIN .fi .if n \{\ .RE .\} .sp فهرست کردن کلیدهای خصوصی: .sp .if n \{\ .RS 4 .\} .nf pkcs11\-tool \-\-login \-\-list\-objects \-\-type privkey .fi .if n \{\ .RE .\} .sp امضا کردن مقداری داده ذخیره‌شده در فایل data با استفاده از کلید خصوصی با شناسه \fIID\fR و با استفاده از سازوکار RSA\-PKCS: .sp .if n \{\ .RS 4 .\} .nf pkcs11\-tool \-\-sign \-\-id $ID \-\-mechanism RSA\-PKCS \e \-\-input\-file data \-\-output\-file data\&.sig .fi .if n \{\ .RE .\} .sp همچنین ارسال داده‌ها از طریق لوله‌کشی (pipe) از stdin به جای تعیین فایل ورودی امکان‌پذیر است: .sp .if n \{\ .RS 4 .\} .nf dd if=data bs=128 count=1 \e | pkcs11\-tool \-\-sign \-\-id $ID \-\-mechanism RSA\-PKCS \e > data\&.sig .fi .if n \{\ .RE .\} .sp اعتبارسنجی داده‌های امضاشده: .sp .if n \{\ .RS 4 .\} .nf pkcs11\-tool \-\-id ID \-\-verify \-m RSA\-PKCS \e \-\-input\-file data \-\-signature\-file data\&.sig .fi .if n \{\ .RE .\} .sp برای رمزگذاری یک فایل با استفاده از کلید AES با شناسه ۸۵ و با استفاده از سازوکار AES\-CBC با padding: .sp .if n \{\ .RS 4 .\} .nf pkcs11\-tool \-\-login \-\-encrypt \-\-id 85 \-m AES\-CBC\-PAD \e \-\-iv "00000000000000000000000000000000" \e \-i file\&.txt \-o encrypted_file\&.data .fi .if n \{\ .RE .\} .sp رمزگشایی فایل رمزگذاری‌شده: .sp .if n \{\ .RS 4 .\} .nf pkcs11\-tool \-\-login \-\-decrypt \-\-id 85 \-m AES\-CBC\-PAD \e \-\-iv "00000000000000000000000000000000" \e \-\-i encrypted_file\&.data \-o decrypted\&.txt .fi .if n \{\ .RE .\} .sp استفاده از کلید با شناسه ۷۵ و سازوکار AES\-CBC\-PAD با بردار مقداردهی اولیه "00000000000000000000000000000000" جهت بسته‌بندی (wrap) کلید با شناسه ۷۶ در فایل خروجی exported_aes\&.key: .sp .if n \{\ .RS 4 .\} .nf pkcs11\-tool \-\-login \-\-wrap \-\-id 75 \-\-mechanism AES\-CBC\-PAD \e \-\-iv "00000000000000000000000000000000" \e \-\-application\-id 76 \e \-\-output\-file exported_aes\&.key .fi .if n \{\ .RE .\} .sp استفاده از کلید با شناسه ۲۲ و سازوکار RSA\-PKCS جهت باز کردن (unwrap) کلید از فایل aes_wrapped\&.key\&. پس از یک عملیات unwrap موفق، یک کلید AES جدید روی توکن ایجاد می‌شود\&. شناسه این کلید روی ۹۰ و برچسب آن روی unwrapped\-key تنظیم می‌شود\&. نکته: برای کارت MyEID، اندازه کلید AES باید در مشخصات کلید وجود داشته باشد، یعنی AES:16\&. .sp .if n \{\ .RS 4 .\} .nf pkcs11\-tool \-\-login \-\-unwrap \-\-mechanism RSA\-PKCS \-\-id 22 \e \-i aes_wrapped\&.key \-\-key\-type AES: \e \-\-application\-id 90 \-\-application\-label unwrapped\-key .fi .if n \{\ .RE .\} .sp استفاده از SO\-PIN برای مقداردهی اولیه یا بازنشانی مجدد PIN: .sp .if n \{\ .RS 4 .\} .nf pkcs11\-tool \-\-login \-\-login\-type so \-\-init\-pin .fi .if n \{\ .RE .\} .sp .SH "نویسندگان (AUTHORS)" .PP \fBpkcs11\-tool\fR توسط Olaf Kirch نوشته شده است\&.