aboutsummaryrefslogtreecommitdiffstats
path: root/src/cli/compress.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix error - testing input file instead of output fileJack Lloyd2018-06-291-1/+1
|
* Print a command description for cli helpRené Korthaus2018-01-041-0/+20
|
* Refactor option parsing in cli and test codeJack Lloyd2017-10-241-6/+7
| | | | Allows cleaning up header includes, also somewhat smaller binaries.
* Fix missing binary mode flag on compression ofstreamsVolker Aßmann2017-06-061-2/+2
|
* Added std::ios::binary option for istream open in compression. WithoutVolker Aßmann2017-06-051-2/+2
| | | | | this the compress/uncompress methods may produce corrupted files on Windows.
* Reformat code with astyle + fix code styleTomasz Frydrych2017-05-011-10/+18
|
* Remove Transform base classJack Lloyd2016-04-211-39/+47
| | | | | | | | | | | | | | | | | | | | | | With sufficient squinting, Transform provided an abstract base interface that covered both cipher modes and compression algorithms. However it mapped on neither of them particularly well. In addition this API had the same problem that has made me dislike the Pipe/Filter API: given a Transform&, what does it do when you put bits in? Maybe it encrypts. Maybe it compresses. It's a floor wax and a dessert topping! Currently the Cipher_Mode interface is left mostly unchanged, with the APIs previously on Transform just moved down the type hierarchy. I think there are some definite improvements possible here, wrt handling of in-place encryption, but left for a later commit. The compression API is split into two types, Compression_Algorithm and Decompression_Algorithm. Compression_Algorithm's start() call takes the compression level, allowing varying compressions with a single object. And flushing the compression state is moved to a bool param on `Compression_Algorithm::update`. All the nonsense WRT compression algorithms having zero length nonces, input granularity rules, etc as a result of using the Transform interface goes away.
* Add final attribute to many classesJack Lloyd2016-01-101-2/+2
| | | | | | | In some cases this can offer better optimization, via devirtualization. And it lets the user know the class is not intended for derivation. Some discussion in GH #402
* Fixes for compress cli utilJack Lloyd2016-01-041-5/+4
| | | | Missing . in compression extension, wrong name for buf-size option
* Avoid having Command* objects be created until requested.Jack Lloyd2015-12-301-2/+2
| | | | Avoids various static init and destruction hassles.
* CLI rewriteJack Lloyd2015-12-191-72/+100
| | | | | | | | | | | | | | | | | | The command line tools' origin as a collection of examples and test programs glued together led to some unfortunate problems; lots of hardcoded values, missing parameters, and obsolete crypto. Adds a small library for writing command line programs of the sort needed here (cli.h), which cuts the length of many of the commands in half and makes commands more pleasant to write and extend. Generalizes a lot of the commands also, eg previously only signing/verification with DSA/SHA-1 was included! Removes the fuzzer entry point since that's fairly useless outside of an instrumented build. Removes the in-library API for benchmarking.
* Improve some argument checks and usage messages of cli appsSimon Warta2015-12-121-1/+1
| | | | See also #354
* Rename cmd/app -> cliSimon Warta2015-12-091-0/+126