bin/xor in emonti-rbkb-0.6.1.3 vs bin/xor in emonti-rbkb-0.6.2

- old
+ new

@@ -1,60 +1,5 @@ #!/usr/bin/env ruby -# Author Eric Monti (emonti at matasano) -# -# repeating string xor -# -# Usage: xor [options] -k|-s <key> <data | stdin> -# -h, --help Show this message -# -v, --version Show version and exit -# -f, --file FILENAME Input from FILENAME -# -# Key options (one of the following is required): -# -s, --strkey STRING xor against bare STRING -# -x, --hexkey HEXSTR xor against decoded HEXSTR -# -require 'rbkb' -require 'rbkb/command_line' +require "rbkb/cli/xor" -include RBkB::CommandLine - -#------------------------------------------------------------------------------- -# Init options and arg parsing -OPTS = {} -arg = bkb_stdargs(nil, OPTS) -arg = bkb_inputargs(arg, OPTS) - -arg.banner += " -k|-s <key> <data | stdin>" - -#------------------------------------------------------------------------------ -# Add local options -arg.separator "" -arg.separator " Key options (one of the following is required):" - -arg.on("-s", "--strkey STRING", "xor against bare STRING") do |s| - bail "only one key option can be specified with -s or -x" if OPTS[:key] - OPTS[:key] = s -end - -arg.on("-x", "--hexkey HEXSTR", "xor against decoded HEXSTR") do |x| - bail "only one key option can be specified with -s or -x" if OPTS[:key] - x.sub!(/^0[xX]/, '') - bail "Unable to parse hex string" unless OPTS[:key] = x.unhexify -end - -#------------------------------------------------------------------------------ -# Parse arguments -arg.parse!(ARGV) rescue bail "Error: #{$!}\n#{arg}" - -bail "You must specify a key with -s or -x\n#{arg}" unless OPTS[:key] - -OPTS[:indat] ||= ARGV.shift - -if ARGV.length != 0 - bail "Error: bad arguments - #{ARGV.join(' ')}\n-h|--help for more info." -end - -OPTS[:indat] ||= STDIN.read() - -STDOUT.write OPTS[:indat].xor(OPTS[:key]) - +Rbkb::Cli::Xor.run()