bin/pdfdecrypt in origami-1.2.7 vs bin/pdfdecrypt in origami-2.0.0

- old
+ new

@@ -1,95 +1,91 @@ -#!/usr/bin/env ruby +#!/usr/bin/env ruby =begin -= Author: - Guillaume Delugré <guillaume/at/security-labs.org> += Info + Decrypts a PDF document. -= Info: - Decrypts a PDF document. += License + Copyright (C) 2016 Guillaume Delugré. -= License: - Origami is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + Origami is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Origami is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + Origami is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with Origami. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU Lesser General Public License + along with Origami. If not, see <http://www.gnu.org/licenses/>. =end begin - require 'origami' + require 'origami' rescue LoadError - ORIGAMIDIR = "#{File.dirname(__FILE__)}/../lib" - $: << ORIGAMIDIR - require 'origami' + $: << File.join(__dir__, '../lib') + require 'origami' end include Origami require 'optparse' class OptParser - BANNER = <<USAGE + BANNER = <<USAGE Usage: #{$0} [<PDF-file>] [-p <password>] [-o <output-file>] Decrypts a PDF document. Supports RC4 40 to 128 bits, AES128, AES256. -Bug reports or feature requests at: http://origami-pdf.googlecode.com/ +Bug reports or feature requests at: http://github.com/gdelugre/origami Options: USAGE - def self.parser(options) - OptionParser.new do |opts| - opts.banner = BANNER + def self.parser(options) + OptionParser.new do |opts| + opts.banner = BANNER - opts.on("-o", "--output FILE", "Output PDF file (stdout by default)") do |o| - options[:output] = o - end + opts.on("-o", "--output FILE", "Output PDF file (stdout by default)") do |o| + options[:output] = o + end - opts.on("-p", "--password PASSWORD", "Password of the document") do |p| - options[:password] = p - end + opts.on("-p", "--password PASSWORD", "Password of the document") do |p| + options[:password] = p + end - opts.on_tail("-h", "--help", "Show this message") do - puts opts - exit - end + opts.on_tail("-h", "--help", "Show this message") do + puts opts + exit + end + end end - end - def self.parse(args) - options = - { - :output => STDOUT, - :password => '' - } + def self.parse(args) + options = + { + output: STDOUT, + password: '' + } - self.parser(options).parse!(args) + self.parser(options).parse!(args) - options - end + options + end end begin - @options = OptParser.parse(ARGV) + @options = OptParser.parse(ARGV) - target = (ARGV.empty?) ? STDIN : ARGV.shift - params = - { - :verbosity => Parser::VERBOSE_QUIET, - :password => @options[:password] - } + target = (ARGV.empty?) ? STDIN : ARGV.shift + params = + { + verbosity: Parser::VERBOSE_QUIET, + password: @options[:password] + } - PDF.read(target, params).save(@options[:output], :decrypt => true, :noindent => true) -rescue SystemExit -rescue Exception => e - STDERR.puts "#{e.class}: #{e.message}" - exit 1 -end + PDF.read(target, params).save(@options[:output], decrypt: true, noindent: true) +rescue + abort "#{$!.class}: #{$!.message}" +end