.TH "dcmsign" 1 "Thu Jul 9 2026 18:43:40" "Version 3.7.0" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH "نام (NAME)" dcmsign \- امضا و اعتبارسنجی فایل‌های دایکام (DICOM) .PP .SH "خلاصه دستور (SYNOPSIS)" .PP .PP .nf dcmsign [options] dcmfile-in [dcmfile-out] .fi .PP .SH "توضیحات (DESCRIPTION)" .PP ابزار \fBdcmsign\fP یک فایل دایکام (\fIdcmfile-in\fP) را می‌خواند، عملیات امضای دیجیتال را روی آن انجام می‌دهد و در صورت اعمال هرگونه تغییر، شیء دایکام را در یک فایل خروجی (\fIdcmfile-out\fP) می‌نویسد. .PP پنج عملیات امضای دیجیتال پشتیبانی می‌شوند: .PP .IP "\(bu" 2 اعتبارسنجی تمام امضاهای موجود در فایل دایکام .IP "\(bu" 2 ایجاد یک امضای دیجیتال جدید در مجموعه داده اصلی .IP "\(bu" 2 ایجاد یک امضای دیجیتال جدید در یک آیتم از توالی تعبیه‌شده در مجموعه داده .IP "\(bu" 2 حذف یک امضای دیجیتال منفرد از فایل دایکام .IP "\(bu" 2 حذف تمام امضاهای دیجیتال از فایل دایکام. .PP .SH "پارامترها (PARAMETERS)" .PP .PP .nf dcmfile-in نام فایل ورودی دایکام برای پردازش ("-" برای ورودی استاندارد) dcmfile-out نام فایل خروجی دایکام ("-" برای خروجی استاندارد) .fi .PP .SH "گزینه‌ها (OPTIONS)" .PP .SS "گزینه‌های عمومی (general options)" .PP .nf -h --help چاپ این راهنما و خروج --version چاپ اطلاعات نسخه و خروج --arguments چاپ آرگومان‌های بسط‌یافته خط فرمان -q --quiet حالت بی‌صدا، عدم چاپ هشدارها و خطاها -v --verbose حالت پرگو، چاپ جزئیات پردازش -d --debug حالت اشکال‌زدایی، چاپ اطلاعات دیباگ -ll --log-level [l]evel: string constant (fatal, error, warn, info, debug, trace) استفاده از سطح l برای ثبت‌کننده وقایع -lc --log-config [f]ilename: string استفاده از فایل پیکربندی f برای ثبت‌کننده وقایع .fi .PP .SS "گزینه‌های ورودی (input options)" .PP .nf قالب فایل ورودی: +f --read-file خواندن قالب فایل یا مجموعه داده (پیش‌فرض) +fo --read-file-only فقط خواندن قالب فایل -f --read-dataset خواندن مجموعه داده بدون اطلاعات متای فایل نحو انتقال ورودی: -t= --read-xfer-auto تشخیص خودکار نحو انتقال (پیش‌فرض) -td --read-xfer-detect نادیده گرفتن نحو انتقال تعیین‌شده در هدر متای فایل -te --read-xfer-little خواندن با نحو انتقال صریح VR و little endian -tb --read-xfer-big خواندن با نحو انتقال صریح VR و big endian -ti --read-xfer-implicit خواندن با نحو انتقال ضمنی VR و little endian مدیریت عناصر UN با طول مشخص: -uc --retain-un نگه‌داشتن عناصر به عنوان UN (پیش‌فرض) +uc --convert-un تبدیل به VR واقعی در صورت شناخته‌شده بودن .fi .PP .SS "دستورات امضا (signature commands)" .PP .nf --verify اعتبارسنجی تمام امضاها (پیش‌فرض) +s --sign [p]rivate key file, [c]ertificate file: string ایجاد امضا در شیء اصلی +si --sign-item [k]eyfile, [c]ertfile, [i]tem location: string ایجاد امضا در آیتم توالی +t --insert-timestamp ts[q]file, ts[r]file [u]idfile: string درج برچسب زمانی تأییدشده از پاسخ r به پرس‌وجوی برچسب زمانی q با UID امضای u +r --remove [s]ignature UID: string حذف امضا +ra --remove-all حذف تمام امضاها از مجموعه داده .fi .PP .SS "گزینه‌های عمومی امضا (general signature options)" .PP .nf قالب فایل کلید و گواهی: -pem --pem-keys خواندن کلیدها/گواهی‌ها با قالب PEM (پیش‌فرض) -der --der-keys خواندن کلیدها/گواهی‌ها با قالب DER قالب امضا: -fn --format-new استفاده از قالب صحیح امضای دایکام (پیش‌فرض) -fo --format-old استفاده از قالب قدیمی امضای DCMTK (قبل از 3.5.4)؛ در صورتی که امضا شامل داده‌های پیکسل فشرده‌شده باشد، غیراستاندارد است. این گزینه تنها باید برای اعتبارسنجی امضاهای قالب قدیمی استفاده شود. .fi .PP .SS "گزینه‌های اعتبارسنجی امضا (فقط با --verify) (signature verification options)" .PP .nf اعتبارسنجی امضا: +rv --verify-if-present اعتبارسنجی امضاها در صورت وجود، و قبولی در غیر این صورت (پیش‌فرض) +rg --require-sig شکست عملیات در صورت عدم وجود هیچ‌گونه امضا +rc --require-creator شکست عملیات در صورت عدم وجود امضای RSA ایجادکننده +ru --require-auth شکست عملیات در صورت عدم وجود امضای RSA احراز هویت +rs --require-sr شکست عملیات در صورت عدم وجود امضای RSA گزارش ساختاریافته (SR) اعتبارسنجی برچسب زمانی: +tv --verify-ts اعتبارسنجی برچسب زمانی تأییدشده در صورت وجود (پیش‌فرض) -tv --ignore-ts نادیده گرفتن برچسب‌های زمانی تأییدشده +tr --require-ts شکست عملیات در صورت عدم وجود برچسب زمانی تأییدشده مرجع صدور گواهی (CA): +cf --add-cert-file [f]ilename: string افزودن فایل گواهی معتبر به مخزن گواهی‌ها +uf --add-ucert-file [f]ilename: string افزودن فایل گواهی میانی نامعتبر +cd --add-cert-dir [d]irectory: string افزودن گواهی‌های موجود در d به مخزن گواهی‌ها +cr --add-crl-file [f]ilename: string افزودن فایل فهرست ابطال گواهی (مستلزم --enable-crl-vfy) +cl --enable-crl-vfy فعال‌سازی بررسی فهرست ابطال گواهی (CRL) .fi .PP .SS "گزینه‌های ایجاد امضا (فقط با --sign یا --sign-item) (signature creation options)" .PP .nf رمز عبور کلید خصوصی: +ps --std-passwd درخواست رمز عبور از کاربر در ورودی استاندارد (پیش‌فرض) +pw --use-passwd [p]assword: string استفاده از رمز عبور مشخص‌شده -pw --null-passwd استفاده از رشته خالی به عنوان رمز عبور پروفایل امضای دیجیتال: -pf --profile-none عدم اعمال هیچ‌گونه پروفایل امضا (پیش‌فرض) +pb --profile-base اعمال پروفایل پایه امضای RSA +pc --profile-creator اعمال پروفایل امضای RSA ایجادکننده +pa --profile-auth اعمال پروفایل امضای احراز هویت +pr --profile-sr اعمال پروفایل امضای RSA گزارش ساختاریافته (SR) +pv --profile-srv اعمال پروفایل امضای RSA گزارش ساختاریافته (اعتبارسنجی) الگوریتم MAC: +mr --mac-ripemd160 استفاده از RIPEMD 160 (پیش‌فرض) +ms --mac-sha1 استفاده از SHA-1 +mm --mac-md5 استفاده از MD5 +m2 --mac-sha256 استفاده از SHA-256 +m3 --mac-sha384 استفاده از SHA-384 +m5 --mac-sha512 استفاده از SHA-512 هدف امضا: +lp --list-purposes نمایش لیست کدهای هدف امضا و خروج -sp --no-sig-purpose عدم افزودن هدف امضا (پیش‌فرض) +sp --sig-purpose [p]urpose code: integer (1..18) افزودن کد هدف امضای دیجیتال p انتخاب تگ: -t --tag [t]ag: "gggg,eeee" یا نام دیکشنری امضای تنها تگ تعیین‌شده (این گزینه می‌تواند چندین بار تکرار شود) -tf --tag-file [f]ilename: string خواندن لیست تگ‌ها از فایل متنی .fi .PP .SS "گزینه‌های ایجاد برچسب زمانی (فقط با --sign یا --sign-item) (timestamp creation options)" .PP .nf ایجاد برچسب زمانی: -ts --timestamp-off عدم ایجاد برچسب زمانی (پیش‌فرض) +ts --timestamp-file [t]sq-filename, [u]id-filename: string ایجاد فایل پرس‌وجوی برچسب زمانی t و فایل uid با نام u الگوریتم MAC برچسب زمانی (فقط همراه با --timestamp-file): +tm2 --ts-mac-sha256 استفاده از SHA-256 (پیش‌فرض) +tm3 --ts-mac-sha384 استفاده از SHA-384 +tm5 --ts-mac-sha512 استفاده از SHA-512 +tmr --ts-mac-ripemd160 استفاده از RIPEMD 160 +tms --ts-mac-sha1 استفاده از SHA-1 (توصیه نمی‌شود) +tmm --ts-mac-md5 استفاده از MD5 (توصیه نمی‌شود) گزینه‌های مقدار تصادفی (Nonce) برچسب زمانی (فقط همراه با --timestamp-file): +tn --ts-use-nonce گنجاندن مقدار تصادفی یکبارمصرف (پیش‌فرض) -tn --ts-no-nonce عدم گنجاندن مقدار تصادفی گزینه‌های گنجاندن گواهی برچسب زمانی (فقط همراه با --timestamp-file): +tc --ts-request-cert درخواست گواهی TSA در برچسب زمانی (پیش‌فرض) -tc --ts-no-cert عدم درخواست گواهی TSA در برچسب زمانی گزینه‌های خط‌مشی برچسب زمانی (فقط همراه با --timestamp-file): -tp --ts-no-policy عدم تعیین خط‌مشی برچسب زمانی (پیش‌فرض) +tp --ts-policy [p]olicy-OID: string درخواست خط‌مشی برچسب زمانی p .fi .PP .SS "گزینه‌های خروجی (output options)" .PP .nf نحو انتقال خروجی: +t= --write-xfer-same نوشتن با همان نحو انتقال ورودی (پیش‌فرض) +te --write-xfer-little نوشتن با نحو انتقال صریح VR و little endian +tb --write-xfer-big نوشتن با نحو انتقال صریح VR و big endian +ti --write-xfer-implicit نوشتن با نحو انتقال ضمنی VR و little endian کدگذاری طول در توالی‌ها و آیتم‌ها: +e --length-explicit نوشتن با طول‌های صریح (پیش‌فرض) -e --length-undefined نوشتن با طول‌های نامشخص سایر گزینه‌های خروجی: +d --dump [f]ilename: string تخلیه جریان بایتی ارسال‌شده به کدک MAC در فایل (تنها با --sign یا --sign-item) .fi .PP .SH "نکات (NOTES)" .PP .SS "فایل‌ها و پارامترها (Files and Parameters)" ابزار \fBdcmsign\fP تعدادی فایل و فرمت فایل را می‌خواند و می‌نویسد که در این بخش شرح داده شده‌اند. .PP گواهی‌های کلید عمومی با قالب X.509v3 با کدگذاری PEM یا DER مورد انتظار هستند. ابزار \fBdcmsign\fP در حال حاضر از کلیدهای عمومی RSA و DSA پشتیبانی می‌کند، هرچند تنها کلیدهای RSA در پروفایل‌های امنیتی استاندارد دایکام تعریف شده‌اند. .PP کلیدهای خصوصی با کدگذاری PEM یا DER مورد انتظارند. PEM توصیه می‌شود (و پیش‌فرض است) زیرا امکان نگه‌داری کلیدها به صورت رمزگذاری‌شده را فراهم می‌کند. به طور کلی توصیه نمی‌شود رمز عبور رمزگذاری در خط فرمان مشخص شود، زیرا خط فرمان ممکن است برای سایر فرآیندهای سیستم (مانند با دستور "ps -ef") قابل مشاهده باشد. .PP به طور پیش‌فرض، \fBdcmsign\fP امضایی ایجاد می‌کند که تمام عناصر داده در مجموعه داده یا آیتم را پوشش می‌دهد. این حالت پیش‌فرض را می‌توان با تعیین صریح فهرستی از عناصر داده (تگ‌های ویژگی) بازنویسی کرد. این لیست می‌تواند از یک فایل خوانده شود یا در خط فرمان مشخص شود یا هر دو. .PP در خط فرمان، تگ‌های ویژگی به این صورت مشخص می‌شوند: .PP .PP .nf --tag "gggg,eeee" که در آن gggg و eeee شماره‌های هگزادسیمال گروه و عنصر هستند --tag "Name" که در آن 'Name' یک نام ویژگی نمادین از دیکشنری دایکام است. .fi .PP .PP هنگامی که تگ‌های ویژگی از طریق گزینه \fI--tag-file\fP از فایل خوانده می‌شوند، یک فایل متنی ساده مورد انتظار است. تگ‌های درون فایل یا نام‌های نمادین از فرهنگ داده هستند یا قالب (gggg,eeee) (همراه با پرانتز) دارند. تگ‌ها با یک یا چند نویسه فاصله سفید از هم جدا می‌شوند. .PP پروفایل امضای دیجیتال انتخاب‌شده ممکن است تگ‌های ویژگی اضافی را که باید در امضا لحاظ شوند مشخص کند، که به طور خودکار اضافه خواهند شد. .PP عملیات \fI--sign-item\fP نیاز به یک رشته موقعیت مکانی دارد که مشخص می‌کند امضا در کدام آیتم توالی ایجاد شود. رشته موقعیت مکانی دارای قالب زیر است: .PP .PP .nf SequenceName[index]\&.SequenceName[index]\&.SequenceName[index](\&.\&.\&.) .fi .PP .PP که در آن SequenceName یا نام نمادین ویژگی از فرهنگ داده است یا یک تگ عددی در قالب (gggg,eeee)، و index یک عدد صحیح ده‌دهی بدون علامت برای شماره آیتم است که از صفر برای اولین آیتم آغاز می‌شود. برای نمونه، رشته موقعیت زیر: .PP .PP .nf ReferencedSeriesSequence[0]\&.ReferencedImageSequence[1] .fi .PP .PP موجب ایجاد امضای دیجیتال در دومین آیتم از ReferencedImageSequence (0008,1140) می‌شود که در نخستین آیتم ReferencedSeriesSequence (0008,1115) در مجموعه داده اصلی دایکام قرار دارد. .SS "برچسب‌های زمانی معتبر (Certified Timestamps)" از نسخه 3.6.6، ابزار \fBdcmsign\fP پشتیبانی از برچسب‌های زمانی معتبر بر اساس RFC 3161 را ارائه می‌دهد. این ابزار می‌تواند یک درخواست برچسب زمانی (TSQ) را هنگام ایجاد امضا بنویسد، و دستور جدید \fI--insert-timestamp\fP پاسخ برچسب زمانی (TSR) را از فایل خوانده و به امضای دیجیتال دایکام اضافه می‌کند. .PP در زمان اعتبارسنجی امضا، وجود برچسب زمانی تشخیص داده شده و اعتبارسنجی می‌شود مگر اینکه گزینه \fI--ignore-ts\fP استفاده شده باشد. اعتبارسنجی امضا و برچسب زمانی از یک مخزن گواهی مشترک استفاده می‌کنند. این مخزن می‌تواند با گزینه‌های \fI--add-cert-file\fP، \fI--add-cert-dir\fP، \fI--add-ucert-file\fP و \fI--add-crl-file\fP پر شود. .SS "دایرکتوری‌های گواهی درهم‌سازی‌شده (Hashed Certificate Directories)" به جای افزودن دستی گواهی‌های CA و فهرست‌های ابطال گواهی (CRL)، کاربر می‌تواند با استفاده از \fI--add-cert-dir\fP دایرکتوری ایجاد کند که \fBdcmsign\fP در صورت نیاز گواهی‌ها را از آنجا جستجو و بارگذاری کند. .PP این پوشه باید به ازای هر گواهی یا CRL یک فایل با فرمت PEM و با نامی به صورت hash.N برای گواهی یا hash.rN برای CRL داشته باشد. هش مقداری است که توسط دستورات زیر برگردانده می‌شود: .PP \fIopenssl x509 -hash -noout -in \fP (برای گواهی) \fIopenssl crl -hash -noout -in \fP (برای CRL) .PP پسوند .N یا .rN یک شماره ترتیبی است که از صفر شروع می‌شود و به ازای هر گواهی یا CRL با مقدار هش یکسان یکی اضافه می‌شود. وجود فاصله در شماره‌ها پشتیبانی نمی‌شود. .PP فهرست‌های CRL تنها زمانی بررسی می‌شوند که گزینه \fI--enable-crl-vfy\fP مشخص شده باشد. .SH "ثبت وقایع (LOGGING)" .PP سطح خروجی ثبت وقایع ابزارهای خط فرمان و کتابخانه‌های زیربنایی می‌تواند توسط کاربر مشخص شود. به طور پیش‌فرض، تنها خطاها و هشدارها در خروجی استاندارد خطا نوشته می‌شوند. با استفاده از گزینه \fI--verbose\fP پیام‌های اطلاع‌رسانی مانند جزئیات پردازش نیز گزارش می‌شوند. گزینه \fI--debug\fP برای دریافت جزئیات بیشتر درباره فعالیت‌های داخلی استفاده می‌شود. در حالت \fI--quiet\fP تنها خطاهای مهلک گزارش می‌شوند. .PP در صورتی که خروجی ثبت وقایع باید در فایل نوشته شود، گزینه \fI--log-config\fP می‌تواند استفاده شود. یک نمونه فایل پیکربندی در \fI/logger\&.cfg\fP ارائه شده است. .SH "خط فرمان (COMMAND LINE)" .PP تمام ابزارهای خط فرمان از نشانه‌گذاری زیر برای پارامترها استفاده می‌کنند: براکت‌های مربعی مقادیر اختیاری را احاطه می‌کنند (0-1)، سه نقطه پایانی نشان می‌دهد که مقادیر متعدد مجاز است (1-n)، و ترکیبی از هر دو به معنی 0 تا n مقدار است. .PP گزینه‌های خط فرمان با علامت پیشوند '+' یا '-' از پارامترها متمایز می‌شوند. معمولاً ترتیب و موقعیت گزینه‌ها اختیاری است. در صورت ناسازگاری گزینه‌ها، آخرین گزینه در سمت راست اعمال می‌شود. .PP علاوه بر این، می‌توان فایل‌های دستور را با پیشوند '@' تعیین کرد (مانند \fI@command\&.txt\fP). چنین آرگومانی با محتوای فایل متنی مربوطه جایگزین می‌شود. .SH "کدهای خروج (EXIT CODES)" .PP ابزار \fBdcmsign\fP هنگام خروج از کدهای زیر استفاده می‌کند: .SS "عمومی (general)" .PP .nf EXITCODE_NO_ERROR 0 EXITCODE_COMMANDLINE_SYNTAX_ERROR 1 EXITCODE_NOOPENSSL 5 .fi .PP .SS "خطاهای فایل ورودی (input file errors)" .PP .nf EXITCODE_CANNOT_READ_INPUT_FILE 20 EXITCODE_NO_INPUT_FILES 21 EXITCODE_CANNOT_READ_TAG_FILE 30 EXITCODE_CANNOT_READ_TSQ_FILE 31 EXITCODE_CANNOT_READ_TSR_FILE 32 EXITCODE_CANNOT_READ_UID_FILE 33 .fi .PP .SS "خطاهای فایل خروجی (output file errors)" .PP .nf EXITCODE_CANNOT_WRITE_OUTPUT_FILE 40 EXITCODE_CANNOT_WRITE_SUPPORT_FILE 46 .fi .PP .SS "خطاهای پردازش (processing errors)" .PP .nf EXITCODE_CANNOT_ACCESS_SIGNATURE 80 EXITCODE_CANNOT_ACCESS_TS 81 EXITCODE_CANNOT_INSERT_TS 82 EXITCODE_SIGNATURE_REMOVAL_FAILED 83 EXITCODE_SIGNATURE_UID_NOT_FOUND 84 EXITCODE_SIGNATURE_CREATION_FAILED 85 EXITCODE_SYNTAX_ERROR_IN_TAG_FILE 86 EXITCODE_TS_CONSISTENCY_CHECK_FAILED 87 .fi .PP .SS "خطاهای ویژه برنامه (application specific errors)" .PP .nf EXITCODE_NO_SIGNATURES_PRESENT 100 EXITCODE_SIGNATURE_VERIFICATION_FAILED 101 EXITCODE_SIGNATURE_VERIFICATION_POLICY 102 .fi .PP .SH "متغیرهای محیطی (ENVIRONMENT)" .PP ابزار \fBdcmsign\fP تلاش خواهد کرد فرهنگ‌های داده دایکام را که در متغیر محیطی \fIDCMDICTPATH\fP مشخص شده‌اند، بارگذاری کند. به طور پیش‌فرض، یعنی اگر متغیر محیطی \fIDCMDICTPATH\fP تنظیم نشده باشد، فایل \fI/dicom\&.dic\fP بارگذاری خواهد شد مگر اینکه فرهنگ داده درون برنامه ساخته شده باشد. .SH "حق نشر (COPYRIGHT)" .PP Copyright (C) 2000-2025 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&.