À propos du projet
Keep est une application Android pour la signature de seuil FROST (Flexible Round-Optimized Schnorr Threshold Signatures), conçue comme un signataire dédié d'événements Nostr. Elle permet aux utilisateurs de détenir des parts de clé FROST sur leur téléphone et de signer des événements Nostr sans qu'aucun appareil ne détienne jamais la clé privée complète. Elle implémente le protocole de signataire Android NIP-55 (intents et content provider) et la signature à distance NIP-46 (service bunker), afin que les clients Nostr compatibles puissent demander des signatures directement.
Capacités clés décrites dans le README :
- Signature de seuil FROST avec des schémas configurables tels que 2-sur-3 et 3-sur-5.
- Protocole de signataire Android NIP-55 et signature à distance NIP-46.
- Import et export de parts FROST via QR code ou texte, ainsi que l'import de clés nsec existantes.
- Prise en charge de plusieurs comptes avec des autorisations et politiques de signature par application.
- Historique de signature et journal d'audit.
- Authentification biométrique et par code PIN, avec stockage de clés adossé au matériel via Android Keystore.
- Un interrupteur d'arrêt d'urgence pour la suppression de clés.
- Prise en charge du proxy SOCKS (Tor) et épinglage de certificats pour les connexions aux relais.
- Chiffrement et déchiffrement NIP-44, ainsi que les opérations NIP-04.
- Signature en arrière-plan avec des limites de débit configurables.
- Sauvegarde et restauration chiffrées.
- Coordination de descripteurs de portefeuille Bitcoin pour le multisig.
Les opérations NIP-55 prises en charge listées incluent get_public_key, sign_event, nip04_encrypt, nip04_decrypt, nip44_encrypt, nip44_decrypt et decrypt_zap_event.
La distribution est proposée via Zapstore, Obtainium, les versions GitHub et F-Droid. La compilation nécessite des versions d'outillage épinglées : Rust 1.89.0, Android NDK 29.0.14206865, cargo-ndk 4.1.2 et JDK 17 ; la compilation échoue rapidement en cas de discordance. Gradle reconstruit automatiquement les bibliothèques Rust lorsque les sources changent. Un script permet de rafraîchir les liaisons Kotlin à partir d'une compilation hôte sans le NDK pour la vérification de types, bien que ces compilations échouent à l'exécution avec UnsatisfiedLinkError. Un autre script vérifie les versions épinglées dans les scripts de compilation et les flux CI.
Les contributions sont acceptées via les problèmes et demandes de tirage GitHub. Les traductions sont bienvenues, avec des locales de départ pour le portugais brésilien, l'espagnol, l'allemand et le japonais ; une plateforme de traduction gérée est notée comme arriéré, et la CI vérifie les écarts de locales. Le projet est sous licence MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.