summaryrefslogtreecommitdiff
path: root/testing/tests/client
AgeCommit message (Collapse)Author
2017-09-17[refactor] move tests to root of repositorydrebs
Tests entrypoint was in a testing/ subfolder in the root of the repository. This was made mainly because we had some common files for tests and we didn't want to ship them (files in testing/test_soledad, which is itself a python package. This sometimes causes errors when loading tests (it seems setuptools is confused with having one python package in a subdirectory of another). This commit moves the tests entrypoint to the root of the repository. Closes: #8952
2017-09-11[tests] fix test_unarmored_blob_encrypt flakinessVictor Shyba
AES can generate base64 valid strings, making this test flaky. Try to decrypt using armor=False instead.
2017-08-07[tests] use assert_has_calls instead of has_callsVictor Shyba
2017-08-07[bug] skip processing if no consumers to avoid data lossVictor Shyba
2017-08-07[docs] fix typos and improve text from code reviewVictor Shyba
2017-08-03[feature] incoming processing flowVictor Shyba
This class implements a process flow between the ones defined at #8881 and #8874. It uses a LoopingCall to keep running in a loop and accepts IIncomingBoxConsumers defined by soledad users, such as leap mail. - Resolves: #8874
2017-07-21[refactor] creates a common.blobs with preambleVictor Shyba
Refactor suggested from !105 review.
2017-07-18[style] fix naming from reviewVictor Shyba
2017-07-18[refactor] move preamble module to commonVictor Shyba
This move allows server to use it on #8868 as described in #8890 -- Relates: #8890
2017-07-18[refactor] move preamble to a new moduleVictor Shyba
Extracted preamble code for making space to #8890 changes. -- Related: #8890
2017-07-08[feat] use OpenSSL backend for scrypt if availableKali Kaneko
This needs OpenSSL >= 1.1, otherwise it will keep using the scrypt dependency. We should think about deprecating scrypt as a dependency when we can be sure that the adoption of libssl 1.1 is wide enough. I think that at some point (soledad 0.11 or so) we can drop the scrypt dependency, which was being somehow problematic at times (the _scrypt.so was not appearing when installing with pip, needed workarounds). From that moment on, we can raise an error if an old libssl is found and no scrypt can be imported - leaving that to the user/packager. In debian stretch and afterwards, you can get that version by installing libssl-dev - Related: #8472
2017-07-07[test] mark tests that depend on couchdb serverdrebs
2017-05-08[refactor] _database -> _dbVictor Shyba
2017-05-04[refactor] improve readability on _documentVictor Shyba
2017-05-01[refactor] create client _database moduledrebs
2017-05-01[feat] add attachments apidrebs
2017-04-04[feature] incremental decrypterVictor Shyba
2017-04-04[feature] ascii armor disable optionVictor Shyba
2017-04-04[bug] fix loose ends on _crypto and testsVictor Shyba
2017-03-23[feature] generate recovery codeAnike Arni
with @tayane
2017-03-17[test] Prepare tests for python3 compatibilityefkin
2017-03-09[bug] secrets version defaults to v1Tulio Casagrande
2017-03-09[bug] add default version when decrypting secretsTulio Casagrande
Resolves: https://0xacab.org/leap/soledad/issues/8788
2017-02-25[refactor] pass soledad object to client secrets apidrebs
In order to be able to change passphrase, token and offline status of soledad from the bitmask client api, the secrets api also has to be able to use up-to-date values when encrypting/decrypting secrets and uploading/downloading them to the server. This commit makes public some soledad attributes that were previously "private" (i.e. used to start with "_" and were not meant to be accessed from outside), and passes the whole soledad object to the client secrets api. This makes the code cleaner and also allows for always getting newest values of soledad attributes.
2017-02-16[style] add deprecation warning on legacy decoderVictor Shyba
2017-02-16[feature] add doc size to preambleVictor Shyba
That's necessary for blobs-io. Current code includes backwards compatibility branching and tests, which shall be removed on next releases.
2017-02-15[tests] add tests for preamble encodingVictor Shyba
2017-02-09[refactor] remove leftover code from previous wsgi authdrebs
2017-02-09[feat] use twisted web http auth and credsdrebs
2017-02-09[test] move client secrets tests to its own filedrebs
2017-02-09[bug] use derived key for local storagedrebs
2017-02-09[refactor] improve secrets generation and storage codedrebs
2016-12-12[feature] Change CTR to GCM on secrets.pyVictor Shyba
Current implementation can allow tampering and the CTR->GCM exchange can help to avoid it. This commits also alters a behaviour where we moved ahead after failing to decrypt a recovery document. IMHO we can't move ahead as this is a fatal error. Signed-off-by: Victor Shyba <victor1984@riseup.net>
2016-12-12[feature] Add retro compat on secrets.py ciphersVictor Shyba
Integrated the secrets's JSON key that specifies ciphers into _crypto and added optional GCM. Also added a test to check if both cipher types can be imported. Resolves: #8680 Signed-off-by: Victor Shyba <victor1984@riseup.net>
2016-12-12[feature] use GCM instead of CTR+HMACVictor Shyba
Resolves: #8668 - client: substitute usage of CTR mode + HMAC by GCM cipher mode Signed-off-by: Victor Shyba <victor1984@riseup.net>
2016-12-12[refactor] improve blob signature magic usageVictor Shyba
Our magic value wasn't being used and were represented as a string. Refactored it to a constant, increased it's size to 2 bytes and optimzed is_symmetrically_encrypted to look for the magic and symmetrically encrypted flag under base64 encoding. Most file types will use this feature to help identifying themselves, so it got refactored to serve the purpose it was created.
2016-12-12[refactor] introduces a GenericWriterVictor Shyba
AESWriter and HMACWriter are just applying hmac or aes into a flow of data. Abstracted the application of those operations into a super class and highlighted just the difference on each implementation.
2016-12-12[refactor] simplify _cryptoVictor Shyba
After adding the streaming decrypt, some classes were doing almost the same thing. Unified them. Also fixed some module level variables to upper case and some class name to camel case.
2016-12-12[feature] make _crypto stream on decryptionVictor Shyba
We are already doing this on encryption, now we can stream also from decryption. This unblocks the reactor and will be valuable for blobs-io.
2016-12-12[feature] delimit preamble from ciphertextVictor Shyba
We now encode preamble and ciphertext+hmac in two distinct payloads separated by a space. This allows metadata to be extracted and used before decoding the whole document. It also introduces a single packer for packing and unpacking of data instead of reads and writes. Downside: doc_id and rev are limited to 255 chars now.
2016-12-12[refactor] Hide IV, simplify some callsVictor Shyba
IV was being set during tests and this required some defensive coding to avoid IV being set in production. This commits makes the test use the generated IV and "hides" it using a read-only property to let it clear this should never happen. Also refactored out some parameters that are generated automatically to reduce some lines of code and enhance readability.
2016-12-12[tests] migrate pytest to trialVictor Shyba
test_deprecated_crypto was using pytest, which unfortunately doesnt work when mixed with trial. Migrated back. Also added norecursedirs option back, as it is necessary for parallel testing mode.
2016-12-12[test] add test for deprecated crypto format updatedrebs
2016-12-12[style] fix pep8 and confsVictor Shyba
Fixes setup.cfg, adding current exclude rules, simplified tox.ini to use setup.cfg and fixed all.
2016-12-12[tests] adapt testsKali Kaneko
2016-12-12[feature] blob encryptor / decryptorKali Kaneko
2016-12-12[refactor] remove encryption poolKali Kaneko
2016-09-30[test] use pytest tmpdir fixture in all testsdrebs
Tests that were imported from u1db or created on top of that structure were leaving temporary directories behind. This could cause problems in test servers, either by filling the partition or by extrapolating the maximum amount of files in a directory. This commit replaces all usages of temporary directories in the old test structure by pytest tmpdir fixture, which properly cares for removing temporary directories.
2016-07-12[test] refactor test filesdrebs
2016-07-12[refactor] make u1db connection pool args explicitdrebs