Mono(sn) Mono(sn)

sn - امضای دیجیتال، اعتبارسنجی و مقایسه نام‌های قوی (strongname) در اسمبلی‌های CLR.

sn [-q | -quiet] [options] [parameters]

امضای دیجیتال، اعتبارسنجی یا مقایسه اسمبلی‌های CLR با استفاده از نام‌های قوی (strongname).

می‌توانید از دستور sn برای ایجاد «فایل‌های snk» با استفاده از گزینه -k که در ادامه توضیح داده شده است، استفاده کنید.

گزینه‌های پیکربندی در فایل پیکربندی machine.config زیر مسیر /configuration/strongNames ذخیره می‌شوند.

تغییر CSP (ارائه‌دهنده خدمات رمزنگاری) پیش‌فرض. در حال حاضر در Mono پشتیبانی نمی‌شود.
استفاده از مخزن کلید سیستمی [y] یا مخزن کلید کاربری [n]. در حال حاضر در Mono پشتیبانی نمی‌شود.
فهرست کردن گزینه‌های اعتبارسنجی. این فهرست در machine.config زیر مسیر /configuration/strongNames/verificationSettings نگه‌داری می‌شود.
معاف کردن اسمبلی مشخص‌شده از اعتبارسنجی برای فهرست کاربران مشخص‌شده. در حال حاضر توسط sn پشتیبانی نمی‌شود. اگر به این قابلیت نیاز دارید، باید machine.config را به‌طور دستی ویرایش کنید.
حذف مدخل معافیت برای اسمبلی مشخص‌شده. در حال حاضر توسط sn پشتیبانی نمی‌شود؛ در صورت نیاز به این قابلیت، باید machine.config را به‌طور دستی ویرایش کنید.
حذف تمام مدخل‌های معافیت. در حال حاضر توسط sn پشتیبانی نمی‌شود؛ در صورت نیاز به این قابلیت، باید machine.config را به‌طور دستی ویرایش کنید.

حذف جفت‌کلید موجود در مخزن کلید مشخص‌شده.
وارد کردن فایل نام قوی مشخص‌شده به مخزن کلید مشخص‌شده.
صادر کردن کلید عمومی از مخزن CSP مشخص‌شده به فایل مشخص‌شده.

صادر کردن کلید عمومی اسمبلی به فایل خروجی مشخص‌شده.
صادر کردن کلید عمومی از فایل کلید نام قوی (SNK) مشخص‌شده یا از یک فایل محافظت‌شده با گذرواژه PKCS#12/PFX به فایل خروجی مشخص‌شده.
تبدیل فایل ورودی به یک فایل CSV (با استفاده از اعداد ده‌دهی).
تبدیل فایل ورودی به یک فایل CSV (با استفاده از اعداد شانزده‌شانزدهی).

مقایسه اینکه آیا assembly1 و assembly2 به جز در امضایشان یکسان هستند یا خیر. این کار با مقایسه هش متادیتای هر دو اسمبلی انجام می‌شود.
ایجاد یک جفت‌کلید نام قوی جدید در فایل مشخص‌شده. طول پیش‌فرض کلید ۱۰۲۴ بیت است و هنگام امضای اسمبلی‌های 1.x همواره باید استفاده شود. هر مقداری از ۳۸۴ تا ۱۶۳۸۴ بیت (با گام‌های ۸ بیتی) یک طول کلید معتبر برای امضای اسمبلی‌های 2.x است. برای اطمینان از بیشترین سازگاری، ممکن است بخواهید به استفاده از کلیدهای ۱۰۲۴ بیتی ادامه دهید. توجه داشته باشید که حتی در صورت امکان‌پذیر بودن، هیچ دلیل موجهی برای استفاده از طول کمتر از ۱۰۲۴ بیت وجود ندارد.
امضای مجدد اسمبلی مشخص‌شده با استفاده از فایل جفت‌کلید نام قوی (SNK) مشخص‌شده یا یک فایل محافظت‌شده با گذرواژه PKCS#12/PFX. شما تنها می‌توانید یک اسمبلی را با کلید خصوصی متناظر با کلید عمومی درون اسمبلی امضا کنید (مگر اینکه توکن کلید عمومی آن در machine.config بازنگاشت شده باشد).
امضای مجدد اسمبلی مشخص‌شده با استفاده از مخزن نام قوی مشخص‌شده.
نمایش توکن کلید عمومی از فایل مشخص‌شده.
نمایش کلید عمومی و توکن کلید عمومی از فایل مشخص‌شده.
نمایش توکن کلید عمومی از اسمبلی مشخص‌شده.
نمایش کلید عمومی و توکن کلید عمومی از اسمبلی مشخص‌شده.
اعتبارسنجی امضای اسمبلی مشخص‌شده.
اعتبارسنجی امضای اسمبلی مشخص‌شده (حتی در صورت غیرفعال بودن).

نمایش راهنمای پایه درباره این ابزار.
نمایش راهنمای مربوط به پیکربندی درباره این ابزار.
نمایش راهنمای مربوط به ارائه‌دهنده خدمات رمزنگاری (CSP) درباره این ابزار.
نمایش راهنمای مربوط به تبدیل درباره این ابزار.
نمایش راهنمای مربوط به نام قوی (strongname) درباره این ابزار.

پیکربندی نام‌های قوی در فایل "machine.config" نگه‌داری می‌شود. در حال حاضر دو قابلیت را می‌توان پیکربندی کرد.
/configuration/strongNames/pubTokenMapping
این سازوکار به Mono امکان می‌دهد تا یک توکن کلید عمومی، مانند توکن ECMA را برای اعتبارسنجی به کلید عمومی دیگری بازنگاشت کند. این قابلیت در دو سناریو مفید است. نخست، اسمبلی‌های امضاشده با «کلید ECMA» باید توسط کلید «زمان اجرا» (runtime) اعتبارسنجی شوند (زیرا کلید ECMA یک کلید عمومی نیست). دوم، بسیاری از اسمبلی‌ها با کلیدهای خصوصی امضا شده‌اند که Mono نمی‌تواند از آن‌ها استفاده کند (برای نمونه اسمبلی System.Security.dll). نمی‌توان از کلید جدیدی استفاده کرد زیرا نام قوی را تغییر می‌دهد (یک جفت‌کلید جدید دارای کلید عمومی جدیدی خواهد بود که توکن جدیدی تولید می‌کند). بازنگاشت توکن کلید عمومی راه‌حلی برای هر دو مسئله است. هر توکن باید در یک مدخل "map" شبیه به این نمونه پیکربندی شود: <map Token="b77a5c561934e089" PublicKey="00..." />
/configuration/strongNames/verificationSettings
اغلب در طول فرایند توسعه، استفاده از اسمبلی‌های امضاشده با تأخیر (delay-signed) مفید است. در حالت عادی* زمان اجرا اجازه بارگذاری اسمبلی‌های delay-signed را نمی‌دهد. این قابلیت به برخی از اسمبلی‌های delay-signed (بر اساس توکن کلید عمومی‌شان، و در صورت نیاز نام اسمبلی و نام کاربری) اجازه می‌دهد به گونه‌ای استفاده شوند که گویی اسمبلی‌هایی کاملاً امضاشده هستند. [*] توجه داشته باشید که زمان اجرای Mono 1.0 امضاهای نام قوی را اعتبارسنجی نمی‌کند، بنابراین در اکثر سناریوها به این گزینه نیازی نخواهد بود.

نگاشته شده توسط Sebastien Pouliot.

Copyright (C) 2003 Motus Technologies.
Copyright (C) 2004 Novell.
تحت مجوز BSD منتشر شده است.

برای جزئیات بیشتر به http://lists.ximian.com/mailman/listinfo/mono-list مراجعه کنید.

برای جزئیات بیشتر به http://www.mono-project.com مراجعه کنید.

secutil(1)