aboutsummaryrefslogtreecommitdiffstats
path: root/lang/python (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Python bindings examplesBen McGinnes2018-08-193-1/+251
| | | | | | | * import-key.py: fixed a minor typo. * pmkey-import.py: locates and imports keys from the ProtonMail keyserver. * pmkey-import-alt.py: the same as the previous except with setting an alternative $GNUPGHOME directory.
* Python bindings setup fileBen McGinnes2018-08-181-2/+11
| | | | | | * Moved the build import back up where it belongs. * Included comments indicating how to build and install for multiple Python versions beyond the first 2 on the same system.
* Python bindings tests: Near PEP8 complianceBen McGinnes2018-08-1831-500/+773
| | | | * PEP8 compliance for the vast majoeity of the tests.
* Python bindings examples: PEP8 conplianceBen McGinnes2018-08-1812-35/+49
| | | | * Appears to be complete compliance.
* Python bindings setup: Near PEP8 complianceBen McGinnes2018-08-182-89/+119
| | | | | | * lang/python/version.py.in: Fixed most things, but there's still an issue near the build portion with the existing Python bugs referenced. * lang/python/setup.py.in: Now PEP8 compliant.
* Python bindings constants: PEP8 compliance (almost)Ben McGinnes2018-08-1819-35/+29
| | | | | | * PEP8 compliance for all constants except the globals in src/constants/__init__.py depending on whether the import sequence affects the globals themselves.
* Python bindings src: PEP8 complianceBen McGinnes2018-08-185-13/+18
| | | | | * import namespace clearance for src/*.py. * Fixed a handful of is/is not None checks as well.
* Symmetric exampleBen McGinnes2018-08-131-2/+2
| | | | | | | | * lang/python/examples/howto/symcrypt-file.py: *sigh*; passphrase was right the first time, just the error check that wasn't. * I really should stop second guessing myself one of these days ... Signed-off-by: Ben McGinnes <[email protected]>
* Symmetric encryption exampleBen McGinnes2018-08-131-4/+4
| | | | | * lang/python/examples/howto/symcrypt-file.py: Fixed the error code and the passphrase key word arg.
* Symmetric encryption example.Ben McGinnes2018-08-131-0/+63
| | | | | * lang/python/examples/howto/symcrypt-file.py: A variation on standard key based encryption.
* PEP8 compliance and other code fixesBen McGinnes2018-08-1010-130/+220
| | | | | | | | | | | * Ran all the .py files in src/ and below through Yapf. * Included some manual edits of core.py, this time successfully making two notorious sections a bit more pythonic than scheming. * Left the module imports as is. * This will be committed if it passes the most essential test: compiling, installing and running it. Signed-off-by: Ben McGinnes <[email protected]>
* Link fixesBen McGinnes2018-08-092-18/+18
| | | | * lang/python/README: Fixed links in both versions of the README.
* Make GNUPGHOME for tests overridableAndre Heinecke2018-08-061-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lang/python/tests/Makefile.am, lang/qt/tests/Makefile.am, tests/Makefile.am, tests/gpg/Makefile.am, tests/gpgsm/Makefile.am, tests/opassuan/Makefile.am (GNUPGHOME): Make variable explict. -- If the build directory has too long path, gpgme could fail. This is similar to https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=847206 In order to fix that, this patch extracts the GNUPGHOME variable to be presented directly in the Makefile and thus overridable by command line option. A build system can then create a symlink to the GNUPGHOME directory in /tmp and use that symlink as the GNUPGHOME directory thus making the path very short. GnuPG-Bug-Id: T4091 Patch provided by vlmarek
* docs: python bindings howtoBen McGinnes2018-07-221-170/+169
| | | | | | | | | | | | | | | | | | * Fixed and tested the changes necessary for org-mode to correctly parse pythonic (Python 3) indentation. * Updated the source blocks to recommended upper case for BEGIN_SRC and END_SRC. * Tested and confirmed XHTML output matches correct examples. * Tested against pseudo-control output via exporting from org-mode to org-mode and then exporting that to XHTML. Remaining differences appear to be discarding the custom tags used to provide X[HT]ML id elements to each section which does not appear to offer any benefit. * Exporting directly to XHTML or other HTML output should no longer cause problems, but if there are any then the first step should be exporting from org-to-org and then exporting that to XHTML. Tested-by: Ben McGinnes <[email protected]> Signed-off-by: Ben McGinnes <[email protected]>
* doc: python bindings howtoBen McGinnes2018-07-221-624/+623
| | | | | | * Another retrofitting of the HOWTO Python example code, this time following adjustments to python-mode configuration and having trawled through the org-mode mailing lists for clues.
* doc: python bindings howtoBen McGinnes2018-07-221-0/+1
| | | | * Added org-mode byline.
* python bindings: example scriptsBen McGinnes2018-07-132-2/+2
| | | | | | * Fixed incorrect mention of output prompt referencing secret keys when the scripts are only for exporting public keys in whole or minimised forms.
* example scripts: python work-aroundsBen McGinnes2018-07-101-3/+3
| | | | * fixed three typos which were guaranteed to break said script.
* docs: python bindings howtoBen McGinnes2018-07-091-1251/+1235
| | | | | | | | | | | * Complete typographic overhaul. * Removed all section level indentation since it does not affect output formatting, but might affect source code examples. * In text-mode stripped out all tabs which had crept in and replaced them with four spaces. * Updated all code examples (again) to conform with Python-mode. * Bumped version number in preparation for next release of GPG 2.2.9 and corresponding GPGME release.
* python bindings: howto examplesBen McGinnes2018-07-0713-67/+71
| | | | | * Made sure all example scripts meet PEP8 compliance. * Required fixing approx. a dozen of them in minor ways.
* python bindings: scheming serpentsBen McGinnes2018-07-011-69/+17
| | | | | | * Apparently I am wrong and Scheme is the new Python after all. * Non-import related PEP8 compliance must wait for another day, though the other PEP8 fixes remain.
* python bindings: gpg.coreBen McGinnes2018-07-011-27/+79
| | | | | | | | | * Changed id/else statements to a more pythonic form from scheme masquerading as python - sorry Justus, it had to go ;). * With the added bonus of enabling PEP8 compliance in those sections. * Fixed remaining PEP8 compliance issues with the exception of the imports at the beginning of the file (changing those will break the entire module, so we'll cope with it as it is).
* python bindings: python 3.7Ben McGinnes2018-06-294-6/+11
| | | | | | | | * Bindings confirmed to work with the newly released 3.7.0. * Updated M4 file to reflect this change and correct the Python binary search order (3.7 is not yet given priority, but will still be found first via the more generic python3 executable). * Updated setup.py.in, bindings documentation and README to reflect this.
* whitespace police:Ben McGinnes2018-06-281-2/+2
| | | | * There's always one or, in this case, two.
* docs: python bindings howtoBen McGinnes2018-06-281-0/+358
| | | | | * Updated official doc (the org-mode file) with the instructions on importing and exporting both public and secret keys.
* python bindings examplesBen McGinnes2018-06-281-0/+110
| | | | | | * Added a secret key export variant which saves output as both GPG binary and ASCII armoured, plus saves in $GNUPGHOME and uses multiple methods of determining what that location is.
* python bindings examplesBen McGinnes2018-06-281-0/+73
| | | | | * Added a key import variant which accesses the SKS keyservers in a RESTful fashion and then imports or attempts to import the response.
* python bindings examples: three export scriptsBen McGinnes2018-06-283-0/+223
| | | | | | | | * Example of default exporting keys. * Example of exporting minimised keys. * Example of exporting secret keys to a file with correct permissions. Signed-off-by: Ben McGinnes <[email protected]>
* python bindings: import exampleBen McGinnes2018-06-281-0/+91
| | | | | * Added an example script for importing a key from a file (either ASCII armoured or not).
* python bindings: export secret keysBen McGinnes2018-06-281-1/+42
| | | | | | | | | | | | | | * The holy grail: a function to export secret keys. * GPGME will still invoke pinentry and gpg-agent as usual to authorise the export. * Mostly similar to the two previous export functions for public keys except that it will return None if the result had a length of zero bytes. Meaning that the difference between the specified pattern (if any) not matching available keys and an incorrect passphrase is not able to be determined from this function (or the underlying one for that matter). Signed-off-by: Ben McGinnes <[email protected]>
* python bindings: export public keysBen McGinnes2018-06-281-6/+18
| | | | | | * Updated key_export and key_export_minimal to return None where a pattern matched no keys in a manner simnilar to the possible result of key_export_secret.
* python bindings: export public keysBen McGinnes2018-06-281-1/+58
| | | | | | | | | | | | * Added functions for exporting public keys to gpg.core in both complete form and in minimised form. * Rather than letting people need to worry about the export modes we are simply separating the functions as people would be more familiar with from the command line usage anyway. * Functions added for Context are: ctx.key_export_minimal and ctx.key_export as the default or full export. Signed-off-by: Ben McGinnes <[email protected]>
* python bindings: core import statementsBen McGinnes2018-06-171-3/+3
| | | | * Fixed the bit I broke while fixing the PEP8 compliance issues.
* python bindings: core — PEP8 complianceBen McGinnes2018-06-171-77/+101
| | | | | | | | * Fixed most of the PEP8 errors in core.py * Those remaining may need more than little edits and are a bit strange (too clearly the result of a programmer who has spent far too much time dealing with Lisp so that for Python it looks ... strange).
* python bindings: core - key importgsoc/jacob-key-importBen McGinnes2018-06-171-9/+37
| | | | | | | | | | * Wrapped the key import function in the try/exception statements needed to catch at least the most likely unsuccessful import attempt errors. * Mostly draws on the file error and no data import statuses for errors, with a couple of exceptions. Signed-off-by: Ben McGinnes <[email protected]>
* python bindings: core key importBen McGinnes2018-06-162-5/+28
| | | | | | | | | | | | * The foundation of a pythonic key import function authored by Jacob Adams. * A unit testing script for the same function originally authored by Tobias Mueller * Added DCO reference for Jacob Adams to the GPGME AUTHORS file. * Additional details regarding this patch are available here: https://dev.gnupg.org/T4001 Signed-off-by: Ben McGinnes <[email protected]>
* script: groups.pyBen McGinnes2018-06-101-1/+7
| | | | | * Added check for if it is run on a Windows system so that the correct binary filename is invoked.
* examples: python howtoBen McGinnes2018-06-073-0/+262
| | | | | | | | | | | | | * Uses the groups module to prepare a list of recipients and encrypt to those. * The main version (encrypt-to-group.py) tries to check for invalid recipients, but still falls back to always trust for the second encryption attempt. * The gullible version doesn't try pruning the recipient list at all, it just tries to encrypt and if it fails, switches straight to always trust. * The trustno1 version doesn't use the always trust model at all and only attempts pruning the list of invalid recipients.
* docs: python bindings howtoBen McGinnes2018-06-021-66/+73
| | | | | | | | | * Another attempt at fixing the org-mode version. * A proof reader ascertained there were tabs in it instead of whitespace. * Stripped the lot out and replaced with standard 4 spaces, fixed every incorrect example ... and it still breaks upon save and/or export. * Added the reference to the mutt-groups.py script to demonstrate the groups.py module/code.
* examples: mutt crypt-hooks generatorBen McGinnes2018-05-241-0/+64
| | | | | | | * Added a script which demonstrates how the groups module works. * Script generates Mutt/Neomutt crypt-hooks for every group entry in gpg.conf, including those entries for multiple keys (Mutt handles that differently).
* docs: python bindings howtoBen McGinnes2018-05-242-9/+13
| | | | | | | * Fixed the groups.py script so it really does what is described (the old code had the same result for groups, group_lines and group_lists). * Updated the corresponding example in the doc to match.
* doc: python bindings howtoBen McGinnes2018-05-241-3/+2
| | | | | | * Fixed org-mode python source indenting. ** Note: nested indented blocks do not indent correctly when exported to [X]HTML.
* docs and examples: python howtoBen McGinnes2018-05-232-8/+22
| | | | | | | | * Updated the decryption example code in the HOWTO and the corresponding decrypt-file.py script to gracefully handle a decryption failure. This error will always be triggered when GPGME is used to try to decrypt an old, MDC-less encrypted message or file.
* python: key expiration datetime stamp testsBen McGinnes2018-05-051-1/+1
| | | | | | | | | * Changed the expiration date for the generated test key to NYE this century, rather than the NYE this millennium as originally suggested in job #3815. * This covers the lifetimes of current users (except, maybe, some very healthy millennials) as well as the 32-bit clock end date in 2038; without falling foul of OpenPGP's 2106 expiration.
* doc: Update copyright years and change two URLs.Werner Koch2018-04-182-11/+10
| | | | | | -- Signed-off-by: Werner Koch <[email protected]>
* python: Fix crash by leaving struct members intactTobias Mueller2018-04-171-18/+1
| | | | | | | | | | | | | | | | | | | | | * lang/python/setup.py.in: Copy gpgme.h instead of parsing it. -- The python bindings tried to parse deprecated functions out of gpgme.h. This fails for the current gpgme.h in that it removes an entire field in the key sig struct (_obsolete_class). Hence, the fields were off by an int and the bindings accessed struct members via the wrong offset. That caused python program to crash. At least on 32bit platforms, the crash can be easily triggered by accessing key.uids[0].signatures. On 64bit platforms the compiler probably aligns the struct so that the missing 4 bytes are not noticed. With this change, the python bindings will expose all functions that gpgme exposes, including the deprecated ones. Credits go to Justus Winter for debugging and identying the issue. Signed-off-by: Tobias Mueller <[email protected]> GnuPG-bug-id: 3892
* Merge branch 'master' of ssh+git://playfair.gnupg.org/git/gpgmeBen McGinnes2018-03-296-52/+496
|\ | | | | | | | | * Also fixed a small grammatical error highlighted by a merge conflict (in the python bindings howto).
| * example: revoke UIDben/howto-update-02Ben McGinnes2018-03-281-0/+62
| | | | | | | | * Script to revoke a UID on an existing key.
| * docs: python bindings howtoBen McGinnes2018-03-281-25/+53
| | | | | | | | * Added section on revoking UIDs.
| * example: key signingBen McGinnes2018-03-281-0/+63
| | | | | | | | * Added script for signing or certifying keys.