From marcelf at selfnet.de Wed Feb 28 15:16:02 2018 From: marcelf at selfnet.de (Marcel Fest) Date: Wed, 28 Feb 2018 15:16:02 +0100 Subject: Hilfe mit der Python GPGMe Wrapper Library. Message-ID: Hallo, ich benötige Hilfe mit der GPGMe Implementation für Python. Betriebssystem ArchLinux Library: gpg Python C Wrapper Library current version from Pypi Da es leider noch sehr wenig Dokumentation für die Library gibt, ich aber trotzdem gerne den CLI Wrapper python-gnupg durch die offizielle Library ersetzen möchte, hier meine Frage. Wie erhalte ich mehrere Keys mit folgender Funktion?                 keylist = gnupg.keylist(                     pattern=sudoer[1],                     mode=gpg.constants.keylist.mode.EXTERN) Kann ich als Pattern auch eine Liste übergeben, das wird nicht ganz ersichtlich aus der Dokumentation der Funktion. Falls man eine Liste an pattern übergeben kann, werden die keys dann in der Reihenfolge der pattern Liste zurückgegeben? Gibt es eine Möglichkeit, die Keys nur herunterzuladen, wenn der Key vom Server neuer ist, oder muss man so etwas selber implementieren? Im Moment schaue ich, ob es den Key schon in meinem temporären KeyRing gibt und wenn ja, dann lade ich ihn nicht vom Server. Geht das auch schöner? Wie kann ich den Keyserver in Python manuell setzen? Weitere Frage, kann ich so etwas wie     gpg --list-packets --list-only path/to/file mit der Library realisieren und wenn ja, wie? Gibt es eine Möglichkeit zu verschlüsseln ohne, dass man alle Key Objekte in Python vorhalten muss? Also verschlüsseln nach Fingerprints zum Beispiel? Danke Marcel Fest -------------- nächster Teil -------------- Ein Dateianhang mit Binärdaten wurde abgetrennt... Dateiname : signature.asc Dateityp : application/pgp-signature Dateigröße : 833 bytes Beschreibung: OpenPGP digital signature URL : From wk at gnupg.org Wed Feb 28 20:48:08 2018 From: wk at gnupg.org (Werner Koch) Date: Wed, 28 Feb 2018 20:48:08 +0100 Subject: Hilfe mit der Python GPGMe Wrapper Library. In-Reply-To: (Marcel Fest's message of "Wed, 28 Feb 2018 15:16:02 +0100") References: Message-ID: <87zi3sq4jr.fsf@wheatstone.g10code.de> On Wed, 28 Feb 2018 15:16, marcelf at selfnet.de said: > ich benötige Hilfe mit der GPGMe Implementation für Python. Ich bin nicht wirklich der Experte für unsere Python Bindings aner ein paar Fragen kann ich schon beantworten. > Library: gpg Python C Wrapper Library current version from Pypi Besser ware es die offiziele Version von gpgme 1.10.0 zu verwenden. Ich habe keine Ahnung ob und wer das jetzt noch nach Pypi hochlädt. >                 keylist = gnupg.keylist( >                     pattern=sudoer[1], >                     mode=gpg.constants.keylist.mode.EXTERN) > > Kann ich als Pattern auch eine Liste übergeben, das wird nicht ganz > ersichtlich aus der Dokumentation der Funktion. Ja, das entspricht der GnuPG Kommandozeile. > Falls man eine Liste an pattern übergeben kann, werden die keys dann in > der Reihenfolge der pattern Liste zurückgegeben? Nein, davon kannst Du nicht ausgehen. > Gibt es eine Möglichkeit, die Keys nur herunterzuladen, wenn der Key vom > Server neuer ist, oder muss man so etwas selber implementieren? gpg, als Backend, merged die Keys sowieso. Es wäre besser, wenn Du den Anwendungsfall schildern könntest. > Im Moment schaue ich, ob es den Key schon in meinem temporären KeyRing > gibt und wenn ja, dann lade ich ihn nicht vom Server. Geht das auch schöner? s.o. > Wie kann ich den Keyserver in Python manuell setzen? Gar nicht. Das wird in dirmngr.conf konfiguriert. Notfalls noch gpg.conf). Dirmngr hat aber sinnvolle Defaults. > kann ich so etwas wie > >     gpg --list-packets --list-only path/to/file > > mit der Library realisieren und wenn ja, wie? --list-packets ist eher zum debuggen und keine definierte Schnittstelle. Was willst Du machen? > Gibt es eine Möglichkeit zu verschlüsseln ohne, dass man alle Key > Objekte in Python vorhalten muss? Nein, die Keys müssen vorher festgelegt werden. > Also verschlüsseln nach Fingerprints zum Beispiel? c = gpg.Context() c.set_armor(True) source = gpg.Data("Hallo\n") sink = gpg.Data() keys = [] keys.append(c.get_key("A0FF4590BB6122EDEF6E3C542D727CC768697734", False)) keys.append(c.get_key("D695676BDCEDCC2CDD6152BCFE180B1DA9E3B0B2", False)) c.op_encrypt(keys, gpg.constants.ENCRYPT_ALWAYS_TRUST, source, sink) Ist das nicht einfach genug? Shalom-Salam, Werner -- # Please read: Daniel Ellsberg - The Doomsday Machine # Die Gedanken sind frei. Ausnahmen regelt ein Bundesgesetz. -------------- nächster Teil -------------- Ein Dateianhang mit Binärdaten wurde abgetrennt... Dateiname : nicht verfügbar Dateityp : application/pgp-signature Dateigröße : 227 bytes Beschreibung: nicht verfügbar URL :