class PDF::Reader::SecurityHandlerFactory
def self.build_standard_handler(encrypt, doc_id, password)
def self.build_standard_handler(encrypt, doc_id, password) encmeta = !encrypt.has_key?(:EncryptMetadata) || encrypt[:EncryptMetadata].to_s == "true" key_builder = StandardKeyBuilder.new( key_length: (encrypt[:Length] || 40).to_i, revision: encrypt[:R], owner_key: encrypt[:O], user_key: encrypt[:U], permissions: encrypt[:P].to_i, encrypted_metadata: encmeta, file_id: doc_id.first, ) cfm = encrypt.fetch(:CF, {}).fetch(encrypt[:StmF], {}).fetch(:CFM, nil) if cfm == :AESV2 AesV2SecurityHandler.new(key_builder.key(password)) else Rc4SecurityHandler.new(key_builder.key(password)) end end