XMLSEC1(1) User Commands XMLSEC1(1)

xmlsec1 - امضا، اعتبارسنجی، رمزنگاری و رمزگشایی اسناد XML

xmlsec <command> [<options>] [<files>]

ابزار xmlsec یک ابزار خط فرمانی برای امضا، اعتبارسنجی، رمزنگاری و رمزگشایی اسناد XML است. مقادیر مجاز برای <command> عبارتند از:

نمایش این اطلاعات راهنما و خروج
نمایش اطلاعات راهنما برای تمام دستورها/گزینه‌ها و خروج
نمایش اطلاعات راهنما برای دستور <cmd> و خروج
چاپ اطلاعات نسخه و خروج
دستکاری فایل XML کلیدها
امضای داده‌ها و تولید سند خروجی XML
اعتبارسنجی سند امضاشده
رمزنگاری داده‌ها و تولید سند خروجی XML
رمزگشایی داده‌ها از سند XML

--ignore-manifests

عناصر <dsig:Manifest> پردازش نشوند

--store-references

ذخیره و چاپ نتیجه پردازش عنصر <dsig:Reference/> درست پیش از محاسبه چکیده (digest)

--store-signatures

ذخیره و چاپ نتیجه پردازش <dsig:Signature> درست پیش از محاسبه امضا

--enabled-reference-uris <list>

فهرستی از مقادیر زیر که با کاما از هم جدا شده‌اند: "empty"،‏ "same-doc"،‏ "local"،‏ "remote" برای محدود کردن مقادیر مجاز ویژگی URI برای عنصر <dsig:Reference>

--enable-visa3d-hack

فعال‌سازی ترفند مختص پروتکل Visa3D برای پردازش ویژگی‌های URI در حالتی که تلاش می‌شود از موتور XPath/XPointer استفاده نشود؛ این یک ترفند موقت است و مشخص نیست چه موارد دیگری در برنامه شما با استفاده از آن دچار اختلال شود (همچنین گزینه "--id-attr" را بررسی کنید، چرا که ممکن است به آن نیاز داشته باشید)

--enable-asn1-signatures-hack

فعال‌سازی پشتیبانی از مقادیر امضای ASN1 که توسط برخی پیاده‌سازی‌های XMLDsig تولید شده‌اند.

--hmac-min-out-len <bits>

تنظیم حداقل طول خروجی HMAC به اندازه <bits>

--binary-data <file>

فایل باینری <file> برای رمزنگاری

--xml-data <file>

فایل XML با نام <file> برای رمزنگاری

--enabled-cipher-reference-uris <list>

فهرستی از مقادیر زیر که با کاما از هم جدا شده‌اند: "empty"،‏ "same-doc"،‏ "local"،‏ "remote" برای محدود کردن مقادیر مجاز ویژگی URI برای عنصر <enc:CipherReference>

--session-key <keyKlass>-<keySize>

تولید کلید نشست (session key) جدید از نوع <keyKlass> به اندازه <keySize> بیت (برای نمونه، "--session des-192" یک کلید جدید ۱۹۲ بیتی DES برای رمزنگاری DES3 تولید می‌کند)

--output <filename>

نوشتن سند خروجی در فایل <filename>؛ مقدار <filename> می‌تواند یک الگو باشد و شامل '{inputfile}' باشد که با نام فایل ورودی جایگزین خواهد شد

--print-debug

چاپ اطلاعات اشکال‌زدایی در stdout

--print-xml-debug

چاپ اطلاعات اشکال‌زدایی در stdout به قالب xml

--dtd-file <file>

بارگذاری فایل مشخص‌شده به عنوان DTD

--node-id <id>

تنظیم نقطه شروع عملیات بر روی گره با شناسه <id> داده‌شده

--node-name [<namespace-uri>:]<name>

تنظیم نقطه شروع عملیات بر روی اولین گره با <name> و URI فضای‌نام <namespace> مشخص‌شده

--node-xpath <expr>

تنظیم نقطه شروع عملیات بر روی نخستین گره انتخاب‌شده توسط عبارت XPath داده‌شده

--id-attr[:<attr-name>] [<node-namespace-uri>:]<node-name>

افزودن ویژگی‌های <attr-name> (مقدار پیش‌فرض "id") از تمام گره‌های دارای <node-name> و فضای‌نام <node-namespace-uri> به فهرست ویژگی‌های شناسه (ID) شناخته‌شده؛ این یک ترفند است و در صورت امکان به جای آن از DTD یا schema برای تعریف ویژگی‌های ID استفاده کنید (گزینه "--dtd-file" را ببینید)

--add-id-attr <id-attribute-name>

افزودن ویژگی <id-attribute-name> به تمام گره‌های سند؛ این یک ترفند است و در صورت امکان به جای آن از DTD یا schema برای تعریف ویژگی‌های ID استفاده کنید (گزینه "--dtd-file" را ببینید)

--enabled-key-data <list>

فهرست جداشده با کاما از انواع key-data برای فعال‌سازی. مثال:
-> عنصر <RSAKeyValue> را پر کرده و <X509Data> را نگه می‌دارد
هنگامی که جای‌نگهدارنده‌های <KeyValue/> و <X509Data/>
در الگو موجود باشند.
برای دیدن فهرست کامل کلاس‌های ثبت‌شده key data از "--list-key-data" استفاده کنید. به طور پیش‌فرض، تمام داده‌های کلید ثبت‌شده فعال هستند.

--enabled-retrieval-method-uris <list>

فهرستی از مقادیر زیر که با کاما از هم جدا شده‌اند: "empty"،‏ "same-doc"،‏ "local"،‏ "remote" برای محدود کردن مقادیر مجاز ویژگی URI برای عنصر <dsig:RetrievalMethod>.

--enabled-key-info-reference-uris <list>

فهرستی از مقادیر زیر که با کاما از هم جدا شده‌اند: "empty"،‏ "same-doc"،‏ "local"،‏ "remote" برای محدود کردن مقادیر مجاز ویژگی URI برای عنصر <dsig11:KeyInfoReference>.

--gen-key[:<name>] <keyKlass>-<keySize>

تولید یک کلید جدید <keyKlass> به اندازه <keySize> بیت، تنظیم نام کلید به <name> و افزودن نتیجه به مدیر کلیدها (برای نمونه، "--gen:MyKeyName rsa-1024" یک کلید جدید ۱۰۲۴ بیتی RSA تولید کرده و نام آن را "MyKeyName" می‌گذارد)

--keys-file <file>

بارگذاری کلیدها از فایل XML

--privkey-pem[:<name>] <file>[,<cafile>[,<cafile>[...]]]

بارگذاری کلید خصوصی از فایل PEM و گواهی‌هایی که این کلید را تأیید می‌کنند

--privkey-der[:<name>] <file>[,<cafile>[,<cafile>[...]]].IP بارگذاری کلید خصوصی از فایل DER و گواهی‌هایی که این کلید را تأیید می‌کنند

--pkcs8-pem[:<name>] <file>[,<cafile>[,<cafile>[...]]]

بارگذاری کلید خصوصی از فایل PKCS8 PEM و گواهی‌های PEM که این کلید را تأیید می‌کنند

--pkcs8-der[:<name>] <file>[,<cafile>[,<cafile>[...]]]

بارگذاری کلید خصوصی از فایل PKCS8 DER و گواهی‌های DER که این کلید را تأیید می‌کنند

--privkey-openssl-store[:<name>] <uri>

بارگذاری کلید خصوصی و گواهی‌ها از طریق رابط ossl_store در OpenSSL (برای نمونه از HSM)

--privkey-openssl-engine[:<name>] <openssl-engine>;<openssl-key-id>[,<crtfile>[,<crtfile>[...]]]

بارگذاری کلید خصوصی از طریق رابط ENGINE در OpenSSL؛ تعیین نام موتور (مانند پارامترهای -engine)، مشخصات کلید (مانند پارامترهای -inkey یا -key) و در صورت تمایل گواهی‌هایی که این کلید را تأیید می‌کنند

--pubkey-pem[:<name>] <file>

بارگذاری کلید عمومی از فایل PEM

--pubkey-der[:<name>] <file>

بارگذاری کلید عمومی از فایل DER

--pubkey-openssl-store[:<name>] <uri>

بارگذاری کلید عمومی و گواهی‌ها از طریق رابط ossl_store در OpenSSL (برای نمونه از HSM)

--pubkey-openssl-engine[:<name>] <openssl-engine>;<openssl-key-id>[,<crtfile>[,<crtfile>[...]]]

بارگذاری کلید عمومی از طریق رابط ENGINE در OpenSSL؛ تعیین نام موتور (مانند پارامترهای -engine)، مشخصات کلید (مانند پارامترهای -inkey یا -key) و در صورت تمایل گواهی‌هایی که این کلید را تأیید می‌کنند

--pwd <password>

گذرواژه مورد استفاده برای خواندن کلیدها و گواهی‌ها

--lax-key-search

فعال‌سازی جست‌وجوی آسان‌گیرانهٔ کلید (برای نمونه بر پایهٔ نوع کلید مانند "rsa") در برابر حالت پیش‌فرضِ جست‌وجوی سخت‌گیرانه با استفادهٔ صرف از اطلاعات گره <dsig:KeyInfo/> (برای نمونه نام کلید)

--verify-keys

اجبار به اعتبارسنجی کلیدهای عمومی/خصوصی بارگذاری‌شده از دستور: کلیدها باید دارای یک گواهی کلید باشند که در برابر گواهی‌های موجود در مخزن کلید اعتبارسنجی خواهد شد

--aes-key[:<name>] <file>

بارگذاری کلید AES از فایل باینری <file>

--camellia-key[:<name>] <file>

بارگذاری کلید Camellia از فایل باینری <file>

--chacha20-key[:<name>] <file>

بارگذاری کلید ChaCha20 از فایل باینری <file>

--concatkdf-key[:<name>] <file>

بارگذاری کلید ConcatKDF از فایل باینری <file>

--des-key[:<name>] <file>

بارگذاری کلید DES از فایل باینری <file>

--hmac-key[:<name>] <file>

بارگذاری کلید HMAC از فایل باینری <file>

--pbkdf2-key[:<name>] <file>

بارگذاری کلید Pbkdf2 از فایل باینری <file>

--hkdf-key[:<name>] <file>

بارگذاری کلید HKDF‏ (IKM) از فایل باینری <file>

--pkcs12[:<name>] <file>

بارگذاری کلید خصوصی از فایل pkcs12 <file>

--pkcs12-persist

ماندگار کردن کلید خصوصی بارگذاری‌شده

--pubkey-cert-pem[:<name>] <file>

بارگذاری کلید عمومی از فایل گواهی PEM

--pubkey-cert-der[:<name>] <file>

بارگذاری کلید عمومی از فایل گواهی DER

--trusted-pem <file>

بارگذاری گواهی معتمد (ریشه) از فایل PEM <file>

--untrusted-pem <file>

بارگذاری گواهی نامعتمد از فایل PEM <file>

--trusted-der <file>

بارگذاری گواهی معتمد (ریشه) از فایل DER <file>

--untrusted-der <file>

بارگذاری گواهی نامعتمد از فایل DER <file>

--crl-pem <file>

بارگذاری CRLها از فایل PEM <file>

--crl-der <file>

بارگذاری CRLها از فایل DER <file>

--verify-crls

اجبار به اعتبارسنجی CRLهای بارگذاری‌شده: CRLها باید امضای معتبری از گواهی صادرکننده در مخزن گواهی‌های معتمد یا نامعتمد داشته باشند و باید در دورهٔ اعتبار خود (thisUpdate/nextUpdate) باشند

--verification-time <time>

زمان محلی در قالب "YYYY-MM-DD HH:MM:SS" مورد استفاده برای اعتبارسنجی گواهی‌ها

--verification-gmt-time <time>

زمان GMT در قالب "YYYY-MM-DD HH:MM:SS" مورد استفاده برای اعتبارسنجی گواهی‌ها

--X509-skip-time-checks

صرف‌نظر کردن از بررسی زمانی گواهی‌های X509 و CRLها

--depth <number>

بیشینهٔ عمق زنجیرهٔ گواهی‌ها

--X509-skip-strict-checks

صرف‌نظر کردن از بررسی دقیق داده‌های X509

--insecure

عدم اعتبارسنجی گواهی‌ها یا CRLها

--crypto <name>

نام موتور رمزنگاری مورد استفاده از فهرست روبرو: openssl، mscrypto، nss، gnutls، gcrypt (اگر هیچ موتور رمزنگاری مشخص نشده باشد، از گزینهٔ پیش‌فرض استفاده می‌شود)

--crypto-config <path>

مسیر پیکربندی موتور رمزنگاری

--verbose

چاپ پیام‌های خطای مفصل

--print-crypto-library-errors

چاپ خطاهای کتابخانهٔ رمزنگاری (تنها برای OpenSSL)

--repeat <number>

تکرار عملیات به تعداد <number> بار

--base64-line-size <size>.IP حداکثر اندازه خط را برای کدگذاری‌های base64 روی <size> تنظیم می‌کند.

--transform-binary-chunk-size <size>

اندازه تکه (chunk) پردازش دودویی تبدیلات را روی <size> تنظیم می‌کند؛ افزایش اندازه تکه ممکن است کارایی را به بهای افزایش مصرف حافظه بهبود بخشد.

--transform-max-depth <depth>

حداکثر عمق را برای اجرای تبدیلات روی <depth> تنظیم می‌کند؛ برای غیرفعال کردن بررسی بیشینه عمق، آن را روی 0 قرار دهید.

--xxe

تفکیک موجودیت‌های خارجی (External Entity resolution) را فعال می‌کند. هشدار: این کار ممکن است امکان خواندن فایل‌ها و نشانی‌های دلخواه را تحت کنترل سند XML ورودی فراهم کند. با احتیاط استفاده شود!

--url-map:<url> <file>

یک <url> مشخص را برای بارگیری منابع خارجی به <file> تعیین‌شده نگاشت می‌کند.

--help

اطلاعات راهنما پیرامون دستور را چاپ می‌کند.

نوشته‌شده توسط Aleksey Sanin <aleksey@aleksey.com>.

گزارش باگ‌ها به http://www.aleksey.com/xmlsec/bugs.html

حق نشر © 2002-2026 Aleksey Sanin <aleksey@aleksey.com>. تمامی حقوق محفوظ است.
این نرم‌افزار آزاد است: برای اطلاعات نسخه‌برداری کد منبع را ببینید.

June 2026 xmlsec1 1.3.12 (openssl)