عن المشروع
# PGPony Desktop
OpenPGP لنظامي **macOS وLinux وWindows** — العضو المكتبي من عائلة [PGPony](https://pgpony.app).
شفّر وفكّ التشفير ووقّع وتحقق من الرسائل والملفات، وأدر حلقة مفاتيحك، واستخدم مفتاح أمان عتادي عبر USB — كل ذلك على الجهاز. مثل الهواتف: لا حسابات، لا إعلانات، لا تحليلات، لا تتبع.
## ليس إعادة كتابة
يجمع هذا التطبيق **نفس** محرك OpenPGP الذي يوفره تطبيق PGPony لنظام Android — معالجة الحزم، مفاتيح v4 + v6 (RFC 9580)، طبقة المركّبات ما بعد الكمومية (كلا صيغتي النقل)، حزمة بروتوكول البطاقة الذكية OpenPGP، MIME — منسوخة حرفيًا تحت [`vendor/`](vendor/) من مستودع PGPonyAndroid، على نفس إصدار Bouncy Castle. تطبيق واحد مُختبَر يعني توافقًا مضمونًا بين كل الأجهزة، وكودًا أقل بكثير يمكن أن ينحرف. فقط `com.pgpony.desktop` تحت [`src/`](src/) خاص بسطح المكتب (واجهة Compose، سطر الأوامر، مخازن مدعومة بالملفات)، بالإضافة إلى ثلاث طبقات صغيرة موصوفة في [`vendor/README.md`](vendor/README.md).
## البناء والتشغيل
يتطلب JDK 17 أو أحدث.
```sh
./gradlew run # launch the GUI
./gradlew run --args="selftest" # verify the engine runs on this JVM (keygen + round-trips)
./gradlew run --args="list-keys" # the pgpony CLI — shares the app's keyring
./gradlew test # unit suite
```
الملف التنفيذي نفسه هو كل من الواجهة الرسومية وواجهة سطر الأوامر `pgpony`: التشغيل المجرد (أو وسيطة ملف) يفتح التطبيق؛ وفعل (`encrypt`، `decrypt`، `sign`، `verify`، `import`، `export`، `list-keys`، `gen-key`، `card-info`) يشغّل سطر الأوامر. `pgpony <verb>` بدون خيارات يطبع طريقة استخدامه.
على **Windows** يكون سطر الأوامر ملفًا تنفيذيًا ثانيًا، `pgpony-cli.exe`، يُثبَّت بجانب الواجهة الرسومية. يحتاج Windows إلى ملف تنفيذي بنظام console الفرعي ليكتب إلى طرفية على الإطلاق، ولا يمكن تسميته `pgpony.exe` لأن نظام الملفات غير حساس لحالة الأحرف وهذا الاسم مستخدم بالفعل لـ `PGPony.exe`.
## مثبّتات أصلية
```sh
./gradlew packageDmg # macOS → build/compose/binaries/main/dmg/
./gradlew packageDeb # Linux → build/compose/binaries/main/deb/
./gradlew packageMsi # Windows → build/compose/binaries/main/msi/ (WiX 3.x required)
```
يبني jpackage مثبّتًا فقط لنظام التشغيل الذي يعمل عليه. وقت تشغيل Java مضمّن — لا يحتاج المستخدمون إلى JDK منفصل. المثبّتات الصادرة موقّعة، وبناء macOS موثّق؛ الإجراء الكامل في [`RELEASING.md`](RELEASING.md).
## الحالة
**1.0.0 — صادر.** `.dmg` موقّع وموثّق (macOS، arm64)، و`.deb` (Linux، amd64)، و`.msi` (Windows، x64)، كل منها بتوقيع PGP منفصل و`SHA256SUMS` موقّع. التنزيلات والمجاميع الاختبارية: [pgpony.app/desktop](https://pgpony.app/desktop).
كل ما يلي مكتمل ومغطى بمجموعة الاختبارات:
| | |
| --- | --- |
| **حلقة المفاتيح** | مخطط `PGPDatabase` الخاص بتطبيق Android على SQLite المضمّن. توليد المفاتيح بما في ذلك كلا مركّبي PQC، قدرات المفاتيح الفرعية، الثقة/الملاحظات/الانتهاء/الإبطال، الدمج عند الاستيراد، البحث والفرز. |
| **واجهات التشفير** | التشفير وفك التشفير والتوقيع والتحقق عبر النصوص والملفات، على واجهات البث، مع السحب والإفلات، والتوقيعات المنفصلة، ومخرجات لا تُستبدل أبدًا. PGP/MIME في الاتجاهين، إنشاء `.eml`، فك تشفير منظّم مع المرفقات. |
| **ما بعد الكمومية** | مركّبات ML-KEM في كل من صيغتي النقل IETF (v6) وGnuPG/LibrePGP، متقاطعة التحقق مع gpg وsq. |
| **النسخ الاحتياطي** | تصدير واستعادة `.pgpony` مع إعادة إدخال رمز الاسترداد الإلزامية، تقرير دمج بخمس نتائج، استعادة OpenKeychain. |
| **خوادم المفاتيح** | بحث WKD → directory → Hagrid مع نسب المصدر، نشر VKS/HKP لكل خادم، خط أنابيب التحديث بخمس خطوات، إدارة directory مرتبة، Tor/SOCKS مع مرآة onion. |
| **مفاتيح العتاد** | حزمة بطاقة OpenPGP المنسوخة عبر USB PC/SC — القراءة/الاقتران، توليد المفاتيح على البطاقة، دورة حياة PW1/PW3، فك التشفير، التوقيع والتوقيع والتشفير، ذاكرة PIN مؤقتة مع TTL. |
| **مخزن كلمات المرور** | `pass` للقراءة فقط عبر `java.nio` — `.gpg-id` الأقرب أولًا، التصفح والبحث دون فك التشفير، حافظة تُفرَّغ تلقائيًا، TOTP مباشر وفق RFC 6238. |
| **تكامل سطح المكتب** | توجيه فتح الملفات على غرار `IntentHandler` في Android، تمرير النسخة الواحدة، شريط قوائم أصلي، علبة النظام، تذكيرات الانتهاء، عرض واستيراد QR، ارتباطات ملفات نظام التشغيل. |
| **سطر الأوامر** | `pgpony` يتشارك حلقة مفاتيح التطبيق: encrypt/decrypt/sign/verify/import/export/list-keys/gen-key، بث stdin·stdout، عبارة المرور عبر env/fd/prompt، رموز خروج ثابتة. |
| **التعريب** | ست لغات — en/de/es/fr/ja/pt-BR — عبر طبقتَي نصوص، قابلة للتبديل دون إعادة تشغيل. |
السجلات مرحلة بمرحلة، بما في ذلك المنطق وراء القرارات غير الواضحة من الكود، موجودة في [`docs/phases/`](docs/phases/). الخطة المعتمدة هي `PLANNING_DESKTOP_1_0_0.md` في مستودع PGPonyAndroid. تُصدر الإصدارات وفق [`RELEASING.md`](RELEASING.md).
في انتظار التحقق اليدوي: مصفوفة YubiKey 5 / Token2 عبر أنظمة التشغيل الثلاثة، ومثلث الاستعادة المتقاطعة للنسخ الاحتياطي (هاتف ↔ سطح مكتب ↔ iOS)، وعمليات التثبيت على أجهزة نظيفة في Linux وWindows.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.