aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* python bindings: estreams fixben/estreams-fixBen McGinnes2018-08-303-9/+9
| | | | | | | | | | | | * lang/python/src/core.py: Adjusted new_from_estream function to alias new_from_stream instead of fd. * fixed the _gpgme import errors introduced in commit 08cd34afb762975b0273575035dacf69449ef241 by changing the exported functions/types to match the inner module where all the work is done, rather than the outer one(s). Tested-by: Ben McGinnes <[email protected]> Signed-off-by: Ben McGinnes <[email protected]>
* js: return base64 after encrypt with armor=falseMaximilian Krambach2018-08-292-3/+7
| | | | | | | | | -- * src/gpgmejs.js/encrypt: the encrypted data were converted back to a (incorrect) string, whereas they should be data with no encoding specified. Returning base64 data is the expected way. * DemoExtension: caught yet another usage of old syntax.
* python bindings: coreBen McGinnes2018-08-291-6/+7
| | | | * lang/python/src/core.py: expanded gpgme_error check lists.
* python bindings: coreBen McGinnes2018-08-291-0/+1
| | | | | * lang/python/src/core.py: added gpgme_data_set_flag to the errorcheck funtion.
* python bindings: coreBen McGinnes2018-08-291-1/+7
| | | | | * lang/python/src/core.py: added new function new_from_estream to wrap new_from_fd just like new_from_stream does and for the same reason.
* json: Fix detached verifyAndre Heinecke2018-08-291-20/+23
| | | | | | | | | * src/gpgme-json.c (op_verify): Only create output and use it for clearsigned and opaque signed. -- Just passing output to gpgme_op_verify changes the behavior to no longer do a verify of the signature.
* docs: python bindings - protonmail examplesBen McGinnes2018-08-293-1/+17
| | | | | | | | * lang/python/docs/GPGMEpythonHOWTOen.org: Updated links to the ProtonMail keyserver import scripts and added a warning regarding being unable to update third party keys. * lang/python/examples/howto/pmkey-import-alt.py: added usage. * lang/python/examples/howto/pmkey-import.py: added usage.
* Merge branch 'master' of ssh+git://playfair.gnupg.org/git/gpgmeBen McGinnes2018-08-281-4/+23
|\
| * json: Delete primary key if subkey gen failsAndre Heinecke2018-08-281-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | * src/gpgme-json.c (op_delete): Delete primary key on subkey gen error. -- This can happen for example if the user cancels the pinentry to unlock the primary key when adding the subkey. To avoid an artifact of a pimary key without an encryption capable subkey we delete the created key and treat the whole operation as failed.
| * json: Allow NULL request in encode and chunkAndre Heinecke2018-08-281-2/+1
| | | | | | | | | | | | | | | | | | | | | | * src/gpgme-json.c (encode_and_chunk): Don't error on NULL request. -- This fixes the error that is passed when parthing the json object failed and request would be NULL. Instead of the JSON parser error it would otherwise report that encode and chunk failed.
* | docs: python bindings HOWTOBen McGinnes2018-08-281-13/+24
| | | | | | | | | | | | * Finished CFFI vs SWIG bit in known issues. * tidied up some of the structure. * Fixed some minor errors and links.
* | docs: python bindingsBen McGinnes2018-08-281-3/+22
| | | | | | | | * Added section on why no CFFI.
* | docs: python howtoBen McGinnes2018-08-281-0/+94
| | | | | | | | * Added another key import example using ProtonMail's new keyserver.
* | docs: python bindingsBen McGinnes2018-08-271-1/+157
|/ | | | * Added details on installation troubleshooting.
* js: small documentation updateMaximilian Krambach2018-08-271-1/+2
| | | | --
* js: make non-payload data more encoding-tolerantMaximilian Krambach2018-08-271-1/+8
| | | | | | | | | | | | -- * src/Helpers.js: As non-payload data might come in different encodings, a conversion has been introduced that worked in most cases. Data like the userid might come in different encodings, which we don't know of. For now, a try..catch returns the data as they are if the utf-8 decoding fails. Sometimes this yields the correct result, sometimes it may not work, but it won't stop the whole operation anymore.
* js: typecheck destructured parametersMaximilian Krambach2018-08-273-20/+40
| | | | | | | | | | | | | | -- * destructuring just takes the input argument and treats it as object. In cases like in src/Keyring/generateKey, where I forgot to change the old syntax, the fingerprint as string was destructured into an object without "pattern", which caused all Keys to be retrieved. So, methods with a destructuring now check if the first argument is an object and get a default empty object if no parameter is submitted. This allows the further use of destructured parameters, while still ensuring nothing vastly incorrect is used. * src/Kering.js, unittsets.js: fixed old syntax in method usage
* json: Do not put FILE_NAME into the verify result.Werner Koch2018-08-271-2/+1
| | | | | | | | | | | | | | | | | | | | * src/gpgme-json.c (verify_result_to_json): Remove "file_name". -- Having the file name in the verify result may lead developers to assume that the file name is covered by the signature. This is not the case and can easily be checked by hex-editing a signed message. We better don't output it at all. The same is true for the is_mime flag but that is anyway only an advisory and I can't see damage from a faulty one. Note that we keep file_name in gpgme's output for ABI stability and because some tools want to display meta information even if they are subject to tampering. This is similar to the non-encrypted subject in mails. Signed-off-by: Werner Koch <[email protected]>
* doc: Add warning that FILE_NAME is not part of the signed data.Werner Koch2018-08-272-3/+12
| | | | --
* js: extend information on decoding in decryptMaximilian Krambach2018-08-272-3/+9
| | | | | | | | | | | | -- * src/Connection.js: resulting data, if not pure ascii, is base64 encoded in the result message. A further decoding attempt into javascript 'string' will be attempted by default, unless specified at the decrypt() method. The return value 'format' now shows which of the possibilities has been applied. The old boolean 'base64' now turns into format:'base64' if the returned payload is a base64 string after decryption.
* js: fix file_name return on decryptMaximilian Krambach2018-08-271-17/+17
| | | | | | -- * src/gpgmejs: Line 228 checked the wrong variable. To avoid further confusion, _result was renamed to returnValue in the whole file
* core: Export gpgme_data_new_from_estream function.Jasper Spaans2018-08-272-0/+5
| | | | Signed-off-by: Werner Koch <[email protected]>
* js: add new options to permittedOperationsMaximilian Krambach2018-08-241-0/+6
| | | | | | | | -- * reflecting the new optional strings accepted by the backend. 'file_name' and 'sender' can be used via the 'additional' parameter in encrypt operations
* json: Add sender and file name to encryptAndre Heinecke2018-08-231-0/+21
| | | | | * src/gpgme-json.c (hlp_encrypt, op_encrypt): Support sender and file_name.
* js: fix syntax inside Keyring methodsMaximilian Krambach2018-08-231-1/+2
| | | | | | | | -- * recent changes in parameter calling led to a forgotten internal call in getDefaultKey using old syntax (and failing in case a default key is configured)
* js: offer an always-trust parameter on encryptMaximilian Krambach2018-08-231-1/+7
| | | | | | | | | | -- * src/gpgmejs.js: Setting the default to 'always trust' assumes that most api users will already have made their internal checks, but may not have the gnupg web-of-trust model implemented, thus trusting the key themselves, without gnupg having full or even any information. Still it should stay an option to have gnupg decide.
* js: use destructured option parametersMaximilian Krambach2018-08-233-107/+66
| | | | | | | -- * Adds to f0409bbdafcbd4f8b0be099a6b3ce0d5352c9bcd and makes use of destructuring, allowing for defaults, and cleaning up the validation.
* js: update getDefaultKey to more precise logicMaximilian Krambach2018-08-231-1/+6
| | | | | | | | | | | | | | | | | -- * src/Keyring.js: Adapted Keyring.getDefaultKey() to my current understanding of a default signing key: either the default key set in the gpg config, or 'the first usable private key' - usability meaning 'not invalid, expired, revoked, and can be used for signing'. It should be the same key used as in command line when doing a --sign operation. In case the user has a smartcard plugged in, we currently won't know of this here, so our choice may differ. But as we do all javascript-binding sign operations with the key fingerprint explicitly set, this should not be a real problem. This method is seen more as a convenience to tell using librarys which key represents the main user.
* js: add decrypt result optionsMaximilian Krambach2018-08-224-12/+44
| | | | | | | | | | | -- * As a decrypt result cannot be known beforehand, the decrypt operation may add an 'expect' property, taking either 'uint8' or 'base64', which will return the decrypted data in the appropiate formats. the return property 'format' will give a feedback on which option was taken. A test was added to reflect these changes.
* js: make method parameters objectsMaximilian Krambach2018-08-2211-309/+385
| | | | | | | | | | | | -- * As requested by using parties, the options to be passed into the methods are now objects, with the objects' properties better describing what they do, and to avoid the need to type several nulls in a method call if one wants the last parameter. - src/Keyring.js, src/gpgme.js: Changed parameters and their validations - BrowserTest/*.js Had to adapt quite some calls to the new format
* js: improve decryption performanceMaximilian Krambach2018-08-225-19/+100
| | | | | | | | | | | | | | | | | | -- * src/Connection.js, src/Helpers.js: performance of decoding incoming base64 data was improved to about 4 times the speed by introducing two more efficient functions (thanks to [email protected] for finding and testing them) * src/gpgmejs.js: Decrypted data will now return as Uint8Array, if the caller does not wish for a decoding. Decoding binary data will return invalid data, and a Uint8Array may be desired. This can be indicated by using the (new) 'binary' option in decrypt. * src/Errors.js A new error in case this decoding fails * src/Message.js, src/Connection.js: expected is change from base64 to binary, to avoid confusion later on.
* js: Return error if signature has no fingerprintMaximilian Krambach2018-08-221-1/+4
| | | | | | | | -- * src/Signature.js/get fingerprint: A signature with no fingerprint should not happen, but if it does, we should throw an error here, as the method is a getter.
* Merge branch 'javascript-binding'Andre Heinecke2018-08-2261-3/+5796
|\ | | | | | | | | | | | | | | | | | | | | This adds a new language binding "gpgme.js" to GPGME. It serves as a bridge between the native-messaging service "gpgme-json" and JavaScript Applications. The first user of this binding will be Mailvelope which will see GnuPG integration in the near future. GnuPG-Bug-Id: T4107
| * js: changed verify signature result infosjavascript-bindingMaximilian Krambach2018-08-222-21/+28
| | | | | | | | | | | | | | -- * the resulting information of verify now are as documented, and the same as in a decrypt callback
| * js: throw errors in sync functionsMaximilian Krambach2018-08-226-61/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * synchronous functions should throw errors if something goes wrong, Promises should reject. This commit changes some error cases that returned Error objects instead of throwing them - src/Key.js: createKey() and sync Key.get() throw errors - src/Error.js: Exporting the list of errors to be able to test and compare against these strings - src/Keyring.js: Setting a null value in pattern is not useful, and now caused an error with the new changes. - src/Message.js: createMessage and Message.setParameter now throw errors
| * js: update decrypt/verify resultsMaximilian Krambach2018-08-214-12/+49
| | | | | | | | | | | | | | | | | | | | -- * src/gpgmejs.js: Decrypt now parses additional optional dec_info information, as well as any verify information, if present * src/permittedOperations: Now decrypt also expect the new return object dec_inf (containing info such as is_mime and file_name)
| * js: remove outdated checklistsMaximilian Krambach2018-08-213-36/+0
| | | | | | | | | | | | -- * They are heavily outdated and offer no more useful information
| * js: Fix library name mentioned in js MakefilesAndre Heinecke2018-08-214-15/+15
| | | | | | | | --
| * js: Update extra_dist filesAndre Heinecke2018-08-212-2/+4
| | | | | | | | | | * lang/js/BrowserTestExtension/Makefile.am, lang/js/Makefile.am (EXTRA_DIST): Update.
| * Add example manifests for gpgme-jsonAndre Heinecke2018-08-213-1/+20
| | | | | | | | | | | | | | | | * doc/examples/gpgme-chrome.json, doc/examples/gpgme-mozilla.json: New. * doc/Makefile.am (EXTRA_DIST): Include them. -- The id contained in the examples is the ID of Mailvelope.
| * js: Improve READMEAndre Heinecke2018-08-211-9/+36
| | | | | | | | * lang/js/README: Clarify structure at the beginning.
| * Remove js as language from configure.acAndre Heinecke2018-08-211-23/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac: Remove js language. -- It does not make much sense to integrate gpgme-js into the GPGME build system. gpgme-js will be distrbuted by it's users as part of the web extensions / their distribution as that is the JavaScript way. So they can use their tools etc. to compile gpgme-js JavaScript style, which is documented in the lang/js folder.
| * js: set expiry of generatedKey to seconds from nowMaximilian Krambach2018-08-211-6/+4
| | | | | | | | | | | | | | | | -- * src/Keyring.js: Changed key ecpiration from Date to seconds from creation, as in gpgme. The Date parameter used before was due to a misunderstanding in documentation and requests from potential users.
| * js: add option "subkey-algo" to generateKeyMaximilian Krambach2018-08-202-2/+14
| | | | | | | | | | | | | | -- * The option was recently added to gpgme-json; this reflects this on javascript side
| * js: set expiry date on generateKeyMaximilian Krambach2018-08-201-1/+2
| | | | | | | | | | | | | | -- * on the javascript side a Date is expected, gpggme-json expects seconds from 'now'
| * js: add and apply eslint rulesMaximilian Krambach2018-08-2025-397/+421
| | | | | | | | | | | | -- * mainly spacing, see .eslintrc.json for details
| * js: revert changes to class read/write restrictionMaximilian Krambach2018-08-209-1255/+1164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * undoes 94ee0988d4eaac27785de6efb7c19ca9976e1e9c and e16a87e83910ebb6bfdc4148369165f121f0997e. I do not fully understand why my approach was bad, but I am not in a position to argue. This revert was requested to me after a review, and I'm doing it in the assumption that more experienced people know better than me. * unittests: Also changed some outdated tests that stopped working since 754e799d35fd62d7a979452f44342934659908c7 (as GPGME_Key is not exported, one cannot check for instanceof in the tests anymore)
| * js: decode arriving gpg message stringsMaximilian Krambach2018-08-174-4/+76
| | | | | | | | | | | | | | | | | | -- * Arriving strings (i.e. user id names, error messages) are not always in javascript encoding. This is an attempt to go through the whole gpgme answer (with the exception of payload data) and to fix the encoding of these
| * js: correct decrypt result info (2)Maximilian Krambach2018-08-171-3/+3
| | | | | | | | | | | | | | -- * the permittedOperation from last commit ended up in the wrong place. sign does not return an additional 'info' object.
| * js: expect additional 'info' to arrive on decrypt, tooMaximilian Krambach2018-08-171-1/+2
| | | | | | | | | | | | | | -- * src/permittedOperations.js: if decrypt includes a verification, this info needs to pass, too.