aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * js: use version operation for connection checksMaximilian Krambach2018-05-258-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
| * js: adding sign methodMaximilian Krambach2018-05-243-1/+82
| | | | | | | | | | | | | | -- * src/gpgmejs.js: method, update in src/permittedOperations * basic testing in BrowsertestExtension
| * Merge branch 'master' into javascript-bindingMaximilian Krambach2018-05-249-22/+479
| |\
| * | js: remove openpgp modeMaximilian Krambach2018-05-2312-578/+9
| | | | | | | | | | | | | | | | | | | | | -- * After discussion, that mode is not required, and can result in being quite misleading and a maintenance hassle later on.
| * | js: transfer encoding changesMaximilian Krambach2018-05-227-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
| * | js: Testing lare messagesMaximilian Krambach2018-05-143-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.
| * | js: remove non-browser testsMaximilian Krambach2018-05-146-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
| * | js: Tests and improvements for openpgp modeMaximilian Krambach2018-05-1410-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
| * | js: more testing of nativeMessaging connectionMaximilian Krambach2018-05-0912-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.
| * | Merge branch 'master' into javascript-bindingMaximilian Krambach2018-05-095-14/+35
| |\ \
| * | | js: more testingMaximilian Krambach2018-05-087-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
| * | | js: fixing errors found by testing: encrypt/decryptMaximilian Krambach2018-05-077-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.
| * | | js: fixing errors found by testingMaximilian Krambach2018-05-044-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
| * | | js: Added browser testing for unit testsMaximilian Krambach2018-05-0311-16/+436
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * Added unittests to be run inside a Browser. To be able to access the non-exposed functions and classes, a testing bundle will be created, containing the tests (unittests.js) and the items to be tested. * src/Helpelpers, src/Key, src/Keyring: fixed some errors found during testing.
| * | | js: changed Key class stubMaximilian Krambach2018-05-035-68/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * src/Key.js: A Key object cannot offer more than basic functionality outside a connection, so it now requires a connection to be present.
| * | | js: more testingMaximilian Krambach2018-04-2716-114/+416
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * Tests: initialization of the two modes, encryption * gpgme.js: reintroduced message check before calling Connection.post() * gpgmejs_openpgp.js: Fixed openpgp mode not passing keys * index.js: fixed some confusion in parseconfig() * Inserted some TODO stubs for missing error handling
| * | | js: fixed empty operation setter in MessageMaximilian Krambach2018-04-271-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * src/Message.js Messages failed because they were not assigned operations
| * | | js: fixed wrong paths in DemoExtensionMaximilian Krambach2018-04-263-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | -- * Some forgotten internal links after the move to a subdir and cleaning
| * | | js: created TestExtension and smaller fixesMaximilian Krambach2018-04-2628-143/+429
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * Extensions: - Moved testapplication to Demoextension - Created BrowserTestExtension. Includes mocha and chai. For running tests that cannot be run outside a WebExtension Both Extensions can be found zipped in build/extensions after running build_extensions.sh * Code changes: - src/Config: Place for the configuration - small fixes raised during testing in Keyring.js, Message.js, - src/gpgmejs_openpgpjs.js don't offer direct GpgME object to the outside, as it only causes confusion - index.js init() now checks the config for validity * Tests: - Reordered tests in test/. - Input values are now in a separate file which may be of use for bulk testing * moved the build directory from dist to build
| * | | js: First testing and improvementsMaximilian Krambach2018-04-2512-56/+227
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * Introduced Mocha/chai as testsuite. After development build 'npm test' should run the unit tests. Functionality exclusive to Browsers/WebExtensions cannot be run this way, so some other testing is still needed. - package.json: Added required development packages - .babelrc indirect configuration for mocha. ES6 transpiling needs some babel configuration, but mocha has no setting for it. - test/mocha.opts Vonfiguration for mocha runs * Fixed errors: - Helpers.js toKeyIdArray; isLongId is now exported - Key.js Key constructor failed - Message.js will not throw an Error during construction, a new message is now created with createMessage, which can return an Error or a GPGME_Message object * Tests: - test/Helpers: exports from Helpers.js, GPGME_Error handling - test/Message: first init test with bad parameters
| * | | js: Configuration and Error handlingMaximilian Krambach2018-04-2510-207/+309
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * gpgmejs_openpgpjs - unsuported values with no negative consequences can now reject, warn or be ignored, according to config.unconsidered_params - cleanup of unsupported/supported parameters and TODOS * A src/index.js init() now accepts a configuration object * Errors will now be derived from Error, offering more info and a stacktrace. * Fixed Connection.post() timeout triggering on wrong cases * Added comments in permittedOperations.js, which gpgme interactions are still unimplemented and should be added next
| * | | js: reactivate timeout on connectionMaximilian Krambach2018-04-254-12/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * A timeout of 5 seconds is activated for functions that do not require a pinentry. This definition is written to src/permittedOperations.js * testapplication.js now alerts the proper error codes and messages. * src/Errors.js fixed two typos in error handling
| * | | js: change in Error behaviourMaximilian Krambach2018-04-258-156/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * Error objects will now return the error code if defined as error type in src/Errors.js, or do a console.log if it is a warning. Errors from the native gpgme-json will be marked as GNUPG_ERROR.
| * | | js: allow openpgp-like Message objects as DataMaximilian Krambach2018-04-251-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * src/gpgmejs.js: If a message offers a getText, consider it as the message's content
| * | | js: Key object adjustments after discussionMaximilian Krambach2018-04-243-15/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * src/aKey.js changed fingerprint to setter (to avoid overwrites) * src/gpgmejs_openpgpjs.js - Added a class GPGME_Key_openpgpmode, which allows for renaming and deviation from GPGME. - renamed classes *_openPGPCompatibility to *_openpgpmode. They are not fully compatible, but only offer a subset of properties. Also, the name seems less clunky
| * | | js: change in initialization ancd connection handlingMaximilian Krambach2018-04-246-114/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * The Connection will now be started before an object is created, to better account for failures. * index.js: now exposes an init(), which returns a Promise of configurable <GpgME | gpgmeGpgME_openPGPCompatibility> with an established connection. * TODO: There is currently no way to recover from a "connection lost" * Connection.js offers Connection.isConnected, which toggles on port closing.
| * | | js: don't allow message operation changesMaximilian Krambach2018-04-233-30/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | -- Once an operation is changed, their set of allowed/required parameters will change. So we shouldn't set/change the operation later.
| * | | js: Key handling stubs, Error handling, refactoringMaximilian Krambach2018-04-238-131/+756
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- * Error handling: introduced GPGMEJS_Error class that handles errors at a more centralized and consistent position * src/Connection.js: The nativeMessaging port now opens per session instead of per message. Some methods were added that reflect this change - added methods disconnect() and reconnect() - added connection status query * src/gpgmejs.js - stub for key deletion - error handling - high level API for changing connection status * src/gpgmejs_openpgpjs.js - added stubs for Key/Keyring handling according to current state of discussion. It is still subject to change * src/Helpers.js - toKeyIdArray creates an array of KeyIds, now accepting fingerprints, GPGMEJS_Key objects and openpgp Key objects. * Key objects (src/Key.js) Querying information about a key directly from gnupg. Currently a stub, only the Key.fingerprint is functional. * Keyring queries (src/Keyring.js): Listing and searching keys. Currently a stub.
| * | | js: encrypt improvement and decrypt methodMaximilian Krambach2018-04-2018-306/+887
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Compatibility class gpgme_openpgpjs offers an API that should accept openpgpjs syntax, throwing errors if a parameter is unexpected/not implemented * tried to be more generic in methods * waiting for multiple answers if 'more' is in the answer * more consistency checking on sending and receiving * updated the example extension --
| * | | Merge branch 'master' into javascript-bindingMaximilian Krambach2018-04-2037-535/+1993
| |\ \ \
| * | | | js: Initial commit for JavaScript Native Messaging API[email protected]2018-04-1014-1/+472
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- Note this code misses all the legal boilerplate; please add this as soon as possible and provide a DCO so we can merge it into master. I also removed the dist/ directory because that was not source code.
* | | | | json: Add proper decrypt_result_t handlingAndre Heinecke2018-08-211-7/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/gpgme-json.c (recipient_to_json, decrypt_result_to_json): New. (op_decrypt, hlp_decrypt): Update. -- The op_decrypt as one of the first operations did not yet match the current 1 <> 1 mapping of gpgme types to json dictonaries. info and dec_info are bad names but used for compatibility reasons.
* | | | | json: Add subkey_algo and defaults to createkeyAndre Heinecke2018-08-201-4/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/gpgme-json.c (op_createkey, hlp_createkey): Add subkey_algo handling. (hlp_createkey): Fix documentation of expiry. -- Due to the funny quick-gen-key interface generating a key with an explicit algo would result in bad defaults (only an SC key), without a subkey. This adds handling that should probably be in GnuPG proper to fix the semantics of createkey by adding default subkey_algo handling.
* | | | | 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.
* | | | | json: Wipe memory in cJSON_DeleteAndre Heinecke2018-08-081-2/+8
| | | | | | | | | | | | | | | | | | | | * src/cJSON.c (cJSON_Delete): Wipe memory on deletion.
* | | | | json: Only use calloc instead of mallocAndre Heinecke2018-08-082-8/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/cJSON.c, src/gpgme-json.c (CALLOC_ONLY): New define to change xmalloc / xtrymalloc to use calloc. -- Some people consider malloc dangerous as it might allow an information leak.
* | | | | json: Add checks when skipping byteAndre Heinecke2018-08-081-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/cJSON.c (parse_string, cJSON_Minify): Check for terminating NULL byte when skipping the byte after a an escaped quote.
* | | | | json: Don't error out if chunksize is omittedAndre Heinecke2018-08-081-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/gpgme-json.c (encode_and_chunk): Don't error out if no chunksize is provided. -- This fixes 82e4b900a96c837392259469a9a5821a95e7a707 which caused every call without chunksize to error out.
* | | | | cpp: Fix use after free in gencardkeyinteractorAndre Heinecke2018-08-081-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lang/cpp/src/gpggencardkeyinteractor.cpp (GpgGenCardKeyInteractor::Private::keysize): Change to string. -- The value is only required as string so we can save it this way to avoid the need to convert it for the action command. GnuPG-Bug-Id: T4094