Hilfe mit der Python GPGMe Wrapper Library.

Werner Koch wk at gnupg.org
Mi Feb 28 20:48:08 CET 2018


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         : <https://lists.gnupg.org/pipermail/gnupg-de/attachments/20180228/81cc8c6c/attachment.sig>


Mehr Informationen über die Mailingliste Gnupg-de