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