aboutsummaryrefslogtreecommitdiffstats
path: root/lang (unfollow)
Commit message (Collapse)AuthorFilesLines
2018-06-28python bindings examples: three export scriptsBen McGinnes3-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]>
2018-06-28python bindings: import exampleBen McGinnes1-0/+91
* Added an example script for importing a key from a file (either ASCII armoured or not).
2018-06-28python bindings: export secret keysBen McGinnes1-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]>
2018-06-28python bindings: export public keysBen McGinnes1-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.
2018-06-28python bindings: export public keysBen McGinnes1-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]>
2018-06-20js: Demoextension updateMaximilian Krambach5-40/+99
-- * src/Signature: typo * src/gpgmejs.js: fixed wrong scope in verification * right now verify does not succeed in the DemoExtension. This is probably a problem in conversion or line ending.
2018-06-19Prepare build system for gpgme-js and dist itAndre Heinecke5-1/+134
* configure.ac: Add js as language. * lang/Makefile.am: Add js as dist language. * lang/js/BrowserTestExtension/Makefile.am, lang/js/DemoExtension/Makefile.am, lang/js/Makefile.am, lang/js/src/Makefile.am: Populate EXTRA_DIST variables. -- There is no actual build done yet as there seems to be no way to build it with debian stable tools. This needs clarification.
2018-06-19js: getDefaultKey and GenerateKey improvementsMaximilian Krambach3-36/+19
-- * src/Keyring.js: added more options for key generation. * src/Key.js: GetDefaultKey now relies on the info associated with the key, as the approach of relying on a secret subkey did not work as intended * DemoExtension: Added a button for retrieval of the subkey, to test this functionality.
2018-06-17python bindings: core import statementsBen McGinnes1-3/+3
* Fixed the bit I broke while fixing the PEP8 compliance issues.
2018-06-17python bindings: core — PEP8 complianceBen McGinnes1-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).
2018-06-17python bindings: core - key importgsoc/jacob-key-importBen McGinnes1-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]>
2018-06-16python bindings: core key importBen McGinnes2-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]>
2018-06-14js: import result feedbackMaximilian Krambach1-18/+36
-- * src/Keyring.js: Changed and documented the import result feedback towards the javascript side
2018-06-14js: add verify and signature parsingMaximilian Krambach4-10/+331
-- * src/gpgmejs.js: - Added verify method - Added verification results in decrypt (if signatures are present in the message) - Added a base64 option to decrypt * src/Signature.js: Convenience class for verification results. Used for e.g. converting timestamps to javascript time, quick overall validity checks * src/Keyring.js: removed debug code * src/Errors.js add two new Signature errors
2018-06-13js: getDefaultKey and verify fixMaximilian Krambach7-6/+147
-- * DemoExtension/maindemo.js - added a Demo for retrieving the default signing key * src/Errors.js - add a new Error if no default key can be determined * src/Key.js added documentation and a TODO marker for hasSecret. * src/Keyring.js implemented getDefaultKey * src/permittedOperations.js: Added missing entry for verify, added config_opt
2018-06-13js: less confusing icons for test/Demo extensionMaximilian Krambach2-0/+0
-- * The current test icon was just a generic pin. Changed that by the gnupg lock symbol with 'Demo'/'Tests' written on it. Original taken from gnupg artwork/icons/lock-wing.svg.
2018-06-11js: removed configMaximilian Krambach5-102/+7
-- * There is no use for a configuration at the moment, and it seems improbable that this use will arise.
2018-06-11js: Add key creation to KeyringMaximilian Krambach2-3/+80
-- * src/Keyring.js: Added method generateKey for new Keys Still TODO: Key length and some further testing. Automated testing does not work in this case, and gpgmejs will not be able to delete test keys again. * src/permittedOperations.js Added new method's definitions according to gpgme-json
2018-06-10script: groups.pyBen McGinnes1-1/+7
* Added check for if it is run on a Windows system so that the correct binary filename is invoked.
2018-06-08js: change chunksize handling and decodingMaximilian Krambach7-197/+170
-- * the nativeApp now sends all data in one base64-encoded string, which needs reassembly, but in a much easier way now. * there are some new performance problems now, especially with decrypting data
2018-06-08cpp: Add proper gpgme_op_createkeyAndre Heinecke2-0/+25
* lang/cpp/src/context.cpp, lang/cpp/src/context.h (Context::createKeyEx): New. -- The createKeyEx function follows the usual pattern that the synchronous call returns a result directly while for the async an extra call is neccessary.
2018-06-07examples: python howtoBen McGinnes3-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.
2018-06-06js: change Keyinfo timestamps into javascript dateMaximilian Krambach1-3/+14
-- * src/Key.js
2018-06-06js: code cleanup (eslint)Maximilian Krambach27-498/+595
-- * trying to stick to eslint from now on for readability * As some attribution was lost in previous git confusions, I added my name into some of the licence headers
2018-06-06js: implement import/delete Key, some fixesMaximilian Krambach12-94/+511
-- * Keyring.js - implemented importKey: importing one or more armored public key blocks. - implemented deleteKey: deleting a public Key from gpg. * Key.js renamed property Key.armor to Key.armored * Helpers.js: toKeyIDArray does not complain anymore if there are no keys. Not having Keys in e.g. signing keys in encrypt is legitimate and common, the complaints were getting spammy * Errors.js: gpgme_errors now always pass an optional additional message, for easier debugging in minified code * Connection.js: Fix in gpgme-json responses containing objects * eslintrc.json: Start using eslint. A cleanup to conform to it is not done yet * Added further tests for the new functionality
2018-06-02docs: python bindings howtoBen McGinnes1-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.
2018-06-01cpp: Add gpgme_(get)set_ctx_flagAndre Heinecke2-0/+14
* NEWS: Mention API extensions. * lang/cpp/src/context.cpp, lang/cpp/src/context.h (Context::setFlag, Context::getFlag): New.
2018-06-01cpp: Add legacy_cipher_nomdcAndre Heinecke2-0/+8
* lang/cpp/src/decryptionresult.cpp, lang/cpp/src/decryptionresult.h (DecryptionResult::isLegacyCipherNoMDC): New. --
2018-05-30js: more Keyring/Key handlingMaximilian Krambach4-104/+227
-- * src/Keys.js - made setKeyData more consistent with other methods - added convenience methods (Key.armored, Key.hasSecret) - Added a Key delete function * src/Keyring.js: - added a getkeysArmored which allows for bulk export of public Keys gpgmejs: - removed deleteKey. It is now a method of the Key itself - Encrypt: Added some common options as parameter, and the possibility to set all allowed flags via an additional Object
2018-05-29cpp: Add gpgme_data_rewind to cpp APIAndre Heinecke3-0/+27
* lang/cpp/src/data.h, lang/cpp/src/data.cpp (Data::rewind): New. * lang/qt/tests/t-various.cpp (testDataRewind): Test it. -- The advantage of this convieniance function in GPGME is that it avoids the messiness that are declarations with off_t. GnuPG-Bug-Id: T3996
2018-05-28js: Keyring listing keysMaximilian Krambach6-185/+286
-- * implementing Keyring methods: - Keyring.getKeys: has an additional option that retrieves the armor and secret state once at the beginning. This is power hungry, but allows for Keys to be used directly (without querying gpgme-json each call) * permittedOperations.js: reflect recent changes in the native counterpart, adding more options * Key: adding two methods for retrieving the armored Key block and for finding out if the Key includes a secret subkey.
2018-05-28js: Treat a connection as a gpgme ContextMaximilian Krambach12-171/+59
-- * After an operation a connection should be disconnected again. The "end of operation" is now assumed to be either an error as answer, or a message not including a "more" * GPGME, GPGME_Key, GPGME_Keyring don't require a connection anymore * Message.js: The Message.post() method will open a connection as required
2018-05-25js: implement Key handling (1)Maximilian Krambach7-178/+448
-- * Keys can now be queried for information. Onne version queries gnug directly (asynchronous Promise in javascript terms), the cached version refreshes on demand. * Small fixes: src/Connection.js joins answers that stay json properly now
2018-05-25js: use version operation for connection checksMaximilian Krambach8-108/+162
-- * src/Connection.js: isConnected was renamed to checkConnection, that returns a promise with either version information or Boolean * Connection checks have been adapted to reflect that checkConnection returns a Promise * BrowsertestExtension: tests/signTest.js was missing from my last commit
2018-05-24examples: mutt crypt-hooks generatorBen McGinnes1-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).
2018-05-24docs: python bindings howtoBen McGinnes2-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.
2018-05-24doc: python bindings howtoBen McGinnes1-3/+2
* Fixed org-mode python source indenting. ** Note: nested indented blocks do not indent correctly when exported to [X]HTML.
2018-05-24js: adding sign methodMaximilian Krambach3-1/+82
-- * src/gpgmejs.js: method, update in src/permittedOperations * basic testing in BrowsertestExtension
2018-05-23js: remove openpgp modeMaximilian Krambach12-578/+9
-- * After discussion, that mode is not required, and can result in being quite misleading and a maintenance hassle later on.
2018-05-23docs and examples: python howtoBen McGinnes2-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.
2018-05-22js: transfer encoding changesMaximilian Krambach7-106/+173
-- * Uint8Arrays are not supported for now there are unsolved issues in conversion, and they are lower priority * encrypt gains a new option to indicate that input values are base64 encoded * as decrypted values are always base64 encoded, the option base64 will not try to decode the result into utf, but leave it as it is
2018-05-22cpp: Expose sessionKey and symkeyAlgoAndre Heinecke2-0/+15
* lang/cpp/decryptionresult.cpp, lang/cpp/decryptionresult.h (DecryptionResult::symkeyAlgo, DecryptionResult::sessionKey): New.
2018-05-14js: Testing lare messagesMaximilian Krambach3-29/+51
-- * Some assumption on messages were wrong. Now the tests use more reasonable sizes. * bigString now uses the full utf8-extent, with the exception of U+0000. This code gets dropped during the encryption-decryption process.
2018-05-14js: remove non-browser testsMaximilian Krambach6-264/+0
-- * The majority of tests needs to be run in a nativeMessaging context. Offering the few tests that don't need this context at two places introduces issues with maintainability. All tests now removed can be found in ./unittests.js
2018-05-14js: Tests and improvements for openpgp modeMaximilian Krambach10-161/+346
-- * Added openpgp - Mode tests to the browsertest Extension. These tests require openpgp, which should not be a hard dependency for the main project. Packing openpgpjs into the extension is still TODO * Fixes: - openpgp mode API now correctly handles parameters as an object, similar to openpgpjs - proper check and parsing of openpgpjs Message Objects
2018-05-09js: more testing of nativeMessaging connectionMaximilian Krambach12-162/+328
-- * There were some inconsistencies between utf-8, transfer and browsers' utf16, which broke characters that were split between individual messages. src/Connection now contains a workaround that reassembles javascripts' format from passed base64 strings. This needs someone more experienced looking. * Added several new tests which were failing during initial debugging of this issue * reorganized BrowsertestExtension to avoid cluttering.
2018-05-08js: more testingMaximilian Krambach7-19/+342
-- * Tests: Under certain circumstances, some data change during encrypt-decrypt. Committing the current state so the problem can be discussed. * Fixes: - disconnecting the test ports after tests are complete - fixed passing of the error message from gpgme-json
2018-05-07js: fixing errors found by testing: encrypt/decryptMaximilian Krambach7-23/+219
-- * Key.js: Error code for wrong parameter in createKey should be "PARAM_WRONG" * Helpers.js: The property openpgpjs-like Objects were checked for in toKeyIdArray was not defined. * src/permittedOperations.js: updated more expectations and assumptions for the native API * new Problems: - There seems to be a message size limit of about 21 MB for nativeMessaging, much lower than the documented 4GB. - Some bytes are lost with random data in an encrypt-decrypt roundtrip. The culprit is unclear.
2018-05-05python: key expiration datetime stamp testsBen McGinnes1-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.
2018-05-04js: fixing errors found by testingMaximilian Krambach4-23/+66
-- * Key.js: Error code for wrong parameter in createKey should be "PARAM_WRONG" * Helpers.js: The property openpgpjs-like Objects were checked for in toKeyIdArray was not defined. * src/permittedOperations.js: updated more expectations and assumptions for the native API