
توفر وظائف مكتبة لـ FIDO2، بما في ذلك التواصل مع جهاز عبر USB أو NFC.
== libfido2
image:https://github.com/yubico/libfido2/workflows/linux/badge.svg["Linux Build Status (github actions)", link="https://github.com/Yubico/libfido2/actions"] image:https://github.com/yubico/libfido2/workflows/macos/badge.svg["macOS Build Status (github actions)", link="https://github.com/Yubico/libfido2/actions"] image:https://github.com/yubico/libfido2/workflows/windows/badge.svg["Windows Build Status (github actions)", link="https://github.com/Yubico/libfido2/actions"] image:https://github.com/yubico/libfido2/workflows/fuzzer/badge.svg["Fuzz Status (github actions)", link="https://github.com/Yubico/libfido2/actions"] image:https://oss-fuzz-build-logs.storage.googleapis.com/badges/libfido2.svg["Fuzz Status (oss-fuzz)", link="https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:libfido2"]
libfido2 يوفر وظائف مكتبة وأدوات سطر أوامر للتواصل مع جهاز FIDO عبر USB أو NFC، وللتحقق من توقيعات الإثبات (attestation) والتأكيد (assertion).
يدعم libfido2 بروتوكولي FIDO U2F (CTAP 1) وFIDO2 (CTAP 2).
للاستخدام، راجع دليل examples/.
=== الترخيص
libfido2 مرخّص بموجب رخصة BSD ذات البندين. راجع ملف LICENSE للحصول على النص الكامل للترخيص.
=== المنصات المدعومة
من المعروف أن libfido2 يعمل على Linux وmacOS وWindows وOpenBSD وFreeBSD.
=== التوثيق
التوثيق متاح بتنسيقي troff وHTML. كما تتوفر https://developers.yubico.com/libfido2/Manuals/[مرآة عبر الإنترنت لوثائق libfido2].
=== ارتباطات لغات البرمجة
=== الإصدارات
الإصدار الحالي من libfido2 هو 1.17.0. تتوفر أرشيفات الإصدارات الموقّعة على https://developers.yubico.com/libfido2/Releases[صفحة الإصدارات] الخاصة بـ Yubico.
=== التبعيات
يعتمد libfido2 على https://github.com/pjk/libcbor[libcbor] وhttps://www.openssl.org[OpenSSL] الإصدار 3.0 أو أحدث، وhttps://zlib.net[zlib]. كما أن libudev (جزء من https://www.freedesktop.org/wiki/Software/systemd[systemd]) مطلوب أيضًا على Linux.
=== التثبيت
==== Fedora 34 والإصدارات الأحدث
$ sudo dnf install libfido2 libfido2-devel fido2-tools
==== Ubuntu 20.04 (Focal) والإصدارات الأحدث
$ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools
بدلاً من ذلك، تتوفر إصدارات أحدث من libfido2 في PPA الخاص بـ Yubico. اتبع التعليمات الخاصة بـ Ubuntu 18.04 (Bionic) أدناه.
==== Ubuntu 18.04 (Bionic)
$ sudo apt install software-properties-common $ sudo apt-add-repository ppa:yubico/stable $ sudo apt update $ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools
على Linux، قد تحتاج إلى إضافة قاعدة udev لتتمكن من الوصول إلى جهاز FIDO. على سبيل المثال، قد تحتوي قاعدة udev على ما يلي:
#udev rule for allowing HID access to Yubico devices for FIDO support.
==== macOS
$ brew install libfido2
==== Windows
يُرجى مراجعة https://developers.yubico.com/libfido2/Releases[صفحة الإصدارات] الخاصة بـ Yubico للحصول على القطع البرمجية الخاصة بـ ARM وARM64 وWin32 وWin64.
يفترض الاستخدام الآمن لمكتباتنا أن يتم فك ضغط القطع البرمجية في دليل موثوق وغير قابل للكتابة، مع وضع ملفات DLL بجوار الملف التنفيذي. يُرجى الرجوع إلى التوثيق الرسمي من Microsoft للحصول على إرشادات عامة حول نشر DLL وتقنيات التغليف الآمنة. لاحظ أن القطع البرمجية المرتبطة ديناميكيًا مبنية باستخدام /MD وقد تتطلب توفر مكتبات وقت تشغيل Visual C++ المقابلة.
=== البناء من المصدر
على الأنظمة الشبيهة بـ UNIX:
$ cmake -B build $ make -C build $ sudo make -C build install
اعتمادًا على المنصة، قد يلزم تثبيت https://www.freedesktop.org/wiki/Software/pkg-config/[pkg-config] أو تعيين متغير البيئة PKG_CONFIG_PATH. للحصول على تعليمات بناء كاملة خاصة بنظام التشغيل، يُرجى الرجوع إلى دليلي .actions/ (Linux وmacOS وBSD) وwindows/.
=== تخصيص وقت البناء
يدعم libfido2 عددًا من خيارات CMake. تتطلب بعض الخيارات تبعيات إضافية. الخيارات المعطّلة افتراضيًا غير مدعومة رسميًا.
[%autowidth.stretch] |=== |الخيار |الوصف |الافتراضي | BUILD_EXAMPLES | بناء البرامج النموذجية | ON | BUILD_MANPAGES | بناء صفحات الدليل | ON | BUILD_SHARED_LIBS | بناء مكتبة مشتركة | ON | BUILD_STATIC_LIBS | بناء مكتبة ثابتة | ON | BUILD_TOOLS | بناء الأدوات المساعدة | ON | FUZZ | تمكين أدوات الاختبار العشوائي (fuzzing) | OFF | NFC_LINUX | تمكين دعم netlink لـ NFC على Linux | ON | USE_HIDAPI | استخدام hidapi كنهاية خلفية لـ HID | OFF | USE_PCSC | تمكين الدعم التجريبي لـ PCSC | OFF | USE_WINHELLO | تجريد Windows Hello كجهاز FIDO | ON |===
يتطلب خيار USE_HIDAPI https://github.com/libusb/hidapi[hidapi]. ويتطلب خيار USE_PCSC https://github.com/LudovicRousseau/PCSC[pcsc-lite] على Linux.
=== التطوير
يُرجى استخدام https://github.com/Yubico/libfido2/discussions[مناقشات GitHub] لطرح الأسئلة واقتراح الميزات، وhttps://github.com/Yubico/libfido2/pulls[طلبات السحب في GitHub] للمساهمات البرمجية.
=== الإبلاغ عن الأخطاء
يُرجى استخدام https://github.com/Yubico/libfido2/issues[مشكلات GitHub] للإبلاغ عن الأخطاء. للإبلاغ عن مشكلات أمنية، يُرجى الاتصال بـ [email protected]. يمكن العثور على مفتاح عام PGP على https://www.yubico.com/support/security-advisories/issue-rating-system/.