# گواهیِ عرضه — رخ v0.7.1 خانهٔ کارواره هر کد را فقط همراهِ این برگه بیرون می‌فرستد. | | | |---|---| | **نسخه** | `v0.7.1` | | **کامیت** | `2992fb03d647ed381ab49c1e7cc8b5493cb7e594` | | **تاریخِ کامیت** | 2026-09-02T03:15:05+03:30 | | **مالک** | صاحبِ خانه | | **پروانه** | MIT — متنِ کامل در `LICENSE` | | **زنجیرهٔ ساخت** | Go 1.26.4، `CGO_ENABLED=0`، `-trimpath -buildvcs=true` | | **شمارِ ساخته‌ها** | 27 دودویی — شش هدف × چهار فرمان، به‌علاوهٔ `rokh-chest` برای سه هدفِ لینوکس | ## چه چیزی تازه است - **صندوق — نمایهٔ دوم حامل.** پوشه هر رخداد را مهر می‌کند و نامِ پرونده‌ها را هم می‌پوشاند، ولی پوشه همچنان پوشه است: می‌گوید چند رخداد داری، هرکدام چند بایت، و کِی نوشته شده. حکمِ ۸٫۷ می‌گوید شکل **نمایه** است نه خودِ حامل و نمایهٔ دیگر رواست؛ این آن یکی است: **یک پرونده، به اندازه‌ای که صاحبش تعیین می‌کند، که پیش از هر چیز با بایتِ تصادفی پر می‌شود**، با LUKS2 و btrfs درونش. از بیرون نه چیزی خواندنی است نه چیزی شمردنی. - **پر کردن با تصادف، چرا.** ظرفی که با مصرف بزرگ شود می‌گوید چقدر در آن است، و ظرفی که فضای نارفته‌اش صفر باشد همان را به هرکه پرونده را بخواند می‌گوید. تصادف پیش از هر چیز یعنی پرونده از بایتِ اول تا آخر یکسان خوانده می‌شود، چه یک جمله در آن باشد چه ده‌هزارتا. اندازه هنگام ساختن ثابت می‌شود و ثابت می‌ماند. - **هیچ‌کس sudo نمی‌زند.** نگاشتِ دستگاهِ رمزشده کارِ device mapper است و امتیاز می‌خواهد — ولی نه از راهِ تایپ کردنِ sudo: میزکار همین حالا به udisks2 اعتماد دارد که این کار را برای کسی که پای دستگاه نشسته انجام دهد، و قاعده‌اش (`loop-setup`, `encrypted-unlock`, `filesystem-mount`, `modify-device`) به **نشستِ فعالِ محلی** بی هیچ رمزی اجازه می‌دهد. پس روی میزِ خودت هیچ لازم نیست. از راهِ ssh یا در اسکریپت چنین نشستی نیست و آنجا روت لازم است؛ همان گام‌ها به همان ترتیب اجرا می‌شوند و فقط «از که پرسیده می‌شود» فرق دارد. - **رمز هرگز آرگومان نمی‌شود.** به ورودیِ استانداردِ همان یک فرمانی می‌رود که لازمش دارد، و آزمونی هست که همین را می‌سنجد — چون فهرستِ آرگومان‌ها را هر چیزی که بتواند فرایندها را ببیند می‌خواند. `cryptsetup luksFormat` سرآیند را در پرونده‌ای می‌نویسد که صاحبش همین فرد است و هیچ امتیازی نمی‌خواهد؛ تنها نگاشت است که امتیاز می‌خواهد. - **دو راز، نه یکی.** صندوق رمزِ خودش را دارد و دفترِ درونش رمزِ خودش را. می‌توانند یک رشته باشند؛ چیزی اینجا آن‌ها را یکی نمی‌کند. - `rokh-chest` **فرمانِ جداست و فقط برای لینوکس ساخته می‌شود**؛ خودِ رخ از بودنش خبر ندارد: صندوق پوشه‌ای پدیدار می‌کند، و رخ همان را که می‌یابد می‌گشاید. - **دستورِ اندازه یک‌جا شد** (`size/`)، تا اندازهٔ صندوق و حجمِ رزروِ دفتر دربارهٔ «2G» با هم اختلاف پیدا نکنند. و پرونده‌های کد که هنوز نامِ فارسی داشتند نامِ انگلیسی گرفتند؛ اسنادِ فارسی نامِ فارسی‌شان را نگه داشتند. - **پیش از پر کردن، از ماشین می‌پرسد.** صندوق پرونده را به عنوانِ حجم به کرنل می‌سپارد و این نیازمندِ درایورِ loop است. اگر نباشد، `losetup` نامِ پرونده را می‌گوید و «چنین پرونده‌ای نیست» — که انگار عیب از پرونده است. نیست: درایور نیست. و روی ماشینی که به‌روز شده و از آن پس راه‌اندازی نشده، **هیچ درایوری که از پیش بار نشده باشد نیست**، چون ماژول‌های روی دیسک مالِ کرنلِ بعدی‌اند. حالا خودِ برنامه این را به زبانِ ماشین می‌گوید، و **پیش از نوشتنِ اولین بایت**. ## آنچه صندوق پنهان نمی‌کند اینکه یک ظرفِ LUKS2 آنجاست، اندازه‌اش، و اینکه پرونده کِی آخرین بار نوشته شده. رمز محتوا را پنهان می‌کند، نه بودنِ چیزی را و نه زمانِ دست‌زدن به آن (۷٫۶). ## راستی‌آزمایی ``` 7a8b042a8a53819bd7c7ac7e6cfaddcd53dbec5f65208245c7c6716ce8ca25a8 rokh-chest-linux-amd64 250bf30e7a14111cbcb20a68b93a4753af12d4cadc70c6188cc0d1c11bf4eaf9 rokh-darwin-arm64 a0fdcabe5a6bc96e9fd02483800b9866b6bbcabb8ef08ca6eda035ede403fc6e rokh-linux-amd64 ``` **بازتولیدپذیر:** همین کامیت با همان پرچم‌ها همین بایت‌ها را می‌دهد. ## آزمون هر بستهٔ Go سبز. آزمون‌های صندوق: ترتیبِ گام‌ها هنگام ساختن، اینکه صندوق **بسته** رها می‌شود، اینکه رمز در هیچ آرگومانی نیست، اینکه گامِ شکست‌خورده هیچ نیمه‌ساخته‌ای باقی نمی‌گذارد، و اینکه پرونده از سر تا ته تصادفی است (هر ۲۵۶ مقدارِ بایت پیدا می‌شود، صفرها زیرِ یک‌صدوبیست‌وهشتم). نقشهٔ انطباق: **۱۴۱ برآورده، صفر بدهکار** از ۱۵۴. ## آنچه هنوز حکم ندارد - بالا بردنِ رزرو پس از ساختن؛ چند نتیجه برای یک قصد؛ «بعداً دانستم» پس از نتیجهٔ «نامعلوم». - صندوق روی مک: LUKS مالِ کرنلِ لینوکس است. معادلِ مکی (تصویرِ رمزشدهٔ اسپارس) نمایهٔ سومی است و حکم نخورده. ## راهِ ابطال اگر این نسخه پس گرفته شود، `LATEST` به `v0.6.0` برمی‌گردد و همین‌جا نوشته می‌شود که چرا. پوشهٔ نسخه برداشته نمی‌شود.