class PDF::Reader::SecurityHandlerFactory
def self.standard_v5?(encrypt)
- AES-256 encryption defined in PDF 1.7 Extension Level 3 ('revision 5')
This handler supports both
def self.standard_v5?(encrypt) return false if encrypt.nil? filter = encrypt.fetch(:Filter, :Standard) version = encrypt.fetch(:V, 0) revision = encrypt.fetch(:R, 0) algorithm = encrypt.fetch(:CF, {}).fetch(encrypt[:StmF], {}).fetch(:CFM, nil) (filter == :Standard) && (encrypt[:StmF] == encrypt[:StrF]) && ((version == 5) && (revision == 5 || revision == 6) && (algorithm == :AESV3)) end