diff options
author | Jack Lloyd <[email protected]> | 2015-12-19 15:36:40 -0500 |
---|---|---|
committer | Jack Lloyd <[email protected]> | 2015-12-19 15:36:40 -0500 |
commit | b48e6fb097c62bb246629ee7a182c57e497e4130 (patch) | |
tree | 0cb8ea2d05a89f5e90467f323ae56268d4d3480e /src/cli/base64.cpp | |
parent | d774a9edc46ffcebb28205a678058f083ea75c28 (diff) |
CLI rewrite
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.
Diffstat (limited to 'src/cli/base64.cpp')
-rw-r--r-- | src/cli/base64.cpp | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/src/cli/base64.cpp b/src/cli/base64.cpp deleted file mode 100644 index d2a9a1853..000000000 --- a/src/cli/base64.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/* -* Encode/decode base64 strings -* (C) 2009 Jack Lloyd -* -* Botan is released under the Simplified BSD License (see license.txt) -*/ - -#include "apps.h" - -#if defined(BOTAN_HAS_CODEC_FILTERS) - -#include <fstream> -#include <iostream> -#include <string> -#include <vector> -#include <cstdlib> -#include <botan/b64_filt.h> -#include <botan/pipe.h> - -namespace { - -int base64(const std::vector<std::string> &args) - { - if(args.size() < 2) - { - std::cout << "Usage: " << args[0] << " [-w] [-c n] [-e|-d] files...\n" - " -e : Encode input to base64 strings (default)\n" - " -d : Decode base64 input\n" - " -w : Wrap lines\n" - " -c n: Wrap lines at column n, default 78" << std::endl; - return 1; - } - - u32bit column = 78; - bool wrap = false; - bool encoding = true; - std::vector<std::string> files; - - for(int j = 1; j < args.size(); j++) - { - const std::string this_arg = args[j]; - - if(this_arg == "-w") - wrap = true; - else if(this_arg == "-e"); - else if(this_arg == "-d") - encoding = false; - else if(this_arg == "-c") - { - if(j+1 < args.size()) - { - column = to_u32bit(args[j+1]); - j++; - } - else - { - std::cout << "No argument for -c option" << std::endl; - return 1; - } - } - else files.push_back(args[j]); - } - - for(unsigned int j = 0; j != files.size(); j++) - { - std::istream* stream; - if(files[j] == "-") stream = &std::cin; - else stream = new std::ifstream(files[j]); - - if(!*stream) - { - std::cout << "ERROR, couldn't open " << files[j] << std::endl; - continue; - } - - Botan::Filter* f = nullptr; - - if(encoding) - f = new Botan::Base64_Encoder(wrap, column); - else - f = new Botan::Base64_Decoder; - - Botan::Pipe pipe(f); - pipe.start_msg(); - *stream >> pipe; - pipe.end_msg(); - pipe.set_default_msg(j); - std::cout << pipe; - if(files[j] != "-") delete stream; - } - return 0; - } - -REGISTER_APP(base64); - -} -#endif // BOTAN_HAS_CODEC_FILTERS |