class PDF::Reader::AesV3SecurityHandler
Decrypts data using the AESV3 algorithim defined in the PDF
1.7, Extension Level 3 spec. Requires a decryption key, which is usually generated by PDF::Reader::KeyBuilderV5
Public Class Methods
Source
# File lib/pdf/reader/aes_v3_security_handler.rb, line 15 def initialize(key) @encrypt_key = key @cipher = "AES-256-CBC" end
Public Instance Methods
Source
# File lib/pdf/reader/aes_v3_security_handler.rb, line 29 def decrypt( buf, ref ) cipher = OpenSSL::Cipher.new(@cipher) cipher.decrypt cipher.key = @encrypt_key.dup cipher.iv = buf[0..15] cipher.update(buf[16..-1]) + cipher.final end
7.6.2 General Encryption Algorithm
Algorithm 1: Encryption of data using the RC4 or AES algorithms
used to decrypt RC4/AES encrypted PDF
streams (buf)
buf - a string to decrypt ref - a PDF::Reader::Reference
for the object to decrypt