bin/haiti in haiti-hash-1.3.0 vs bin/haiti in haiti-hash-1.4.0

- old
+ new

@@ -8,17 +8,26 @@ # External require 'docopt' require 'paint' doc = <<~DOCOPT - HAITI (HAsh IdenTifIer) + HAITI (HAsh IdenTifIer) v#{HashIdentifier::VERSION} Usage: haiti [options] <hash> + haiti samples (<ref> | <name>) haiti -h | --help haiti --version + Commands: + samples Display hash samples for the given type + + Parameters: + <hash> Hash string to identify, read from STDIN if equal to "-" + <ref> hashcat or john the ripper reference + <name> Hash type name + Options: --no-color Disable colorized output -e, --extended List all possible hash algorithms including ones using salt --short Display in a short format: do not display hashcat and john the ripper references --hashcat-only Show only hashcat references @@ -28,18 +37,21 @@ --version Show version Examples: haiti -e d41d8cd98f00b204e9800998ecf8427e haiti --no-color --short d41d8cd98f00b204e9800998ecf8427e + b2sum /etc/os-release | awk '{print $1}' | haiti - + haiti samples crc32 DOCOPT begin args = Docopt.docopt(doc, version: HashIdentifier::VERSION) Paint.mode = 0 if args['--no-color'] pp args if args['--debug'] # use case 1, using the tool if args['<hash>'] + args['<hash>'] = $stdin.read.chomp if args['<hash>'] == '-' hi = HashIdentifier.new(args['<hash>']) if hi.type.empty? puts 'Unknown hash type' exit(0) end @@ -48,9 +60,15 @@ print Paint[type.name, :bold] print Paint[" [HC: #{type.hashcat}]", :blue] unless type.hashcat.nil? || args['--short'] || args['--john-only'] print Paint[" [JtR: #{type.john}]", :green] unless type.john.nil? || args['--short'] || args['--hashcat-only'] puts + end + elsif args['samples'] + input = args['<ref>'] || args['<name>'] + samples = HashIdentifier.samples(input) + samples.each do |sample| + puts sample end end # use case 2, help: already handled by docopt # use case 3, version: already handled by docopt rescue Docopt::Exit => e