Class: Pdfrb::Model::Type::EncryptionStandard

Inherits:
Cos::Dictionary show all
Defined in:
lib/pdfrb/model/type/encryption_standard.rb

Overview

Standard security handler encryption dict (s7.6.3.4).

Instance Attribute Summary

Attributes inherited from Object

#document, #gen, #oid, #value

Instance Method Summary collapse

Methods inherited from Cos::Dictionary

#[], #[]=, arlington_available?, arlington_default, arlington_key_to_symbol, arlington_loaded_for?, arlington_mark_loaded, arlington_object, arlington_one_type_to_ruby, arlington_required?, arlington_types_to_ruby, arlington_version, define_field, define_field_from_arlington, #delete, #each, each_field, #each_raw, #empty?, field, #initialize, #key?, #keys, lookup_type, own_fields, #pdf_type, register_type, type_map, #validate

Methods inherited from Object

#==, define_type, #deref, #indirect?, #initialize, #must_be_indirect?, #pdf_type, pdf_type

Constructor Details

This class inherits a constructor from Pdfrb::Model::Cos::Dictionary

Instance Method Details

#aes?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 25

def aes?
  (version || 0) >= 4
end

#allow_annotations?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 58

def allow_annotations?
  permissions&.anybits?(32)
end

#allow_assemble?Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 70

def allow_assemble?
  permissions&.anybits?(1024)
end

#allow_copy?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 54

def allow_copy?
  permissions&.anybits?(16)
end

#allow_extract?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 66

def allow_extract?
  permissions&.anybits?(512)
end

#allow_fill_in?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 62

def allow_fill_in?
  permissions&.anybits?(256)
end

#allow_modify_contents?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 50

def allow_modify_contents?
  permissions&.anybits?(8)
end

#allow_print?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 46

def allow_print?
  permissions&.anybits?(4)
end

#allow_print_high_res?Boolean

Returns:

  • (Boolean)


74
75
76
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 74

def allow_print_high_res?
  permissions&.anybits?(2048)
end

#encrypt_metadata?Boolean

Returns:

  • (Boolean)


18
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 18

def encrypt_metadata?; self[:EncryptMetadata]; end

#filterObject



10
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 10

def filter; self[:Filter]; end

#key_length_bytesObject



21
22
23
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 21

def key_length_bytes
  ((length || 40) / 8)
end

#lengthObject



14
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 14

def length; self[:Length]; end

#metadata_encrypted?Boolean

Returns:

  • (Boolean)


41
42
43
44
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 41

def 
  value = encrypt_metadata?
  value.nil? || !!value
end

#owner_passwordObject



16
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 16

def owner_password; self[:O]; end

#permissionsObject



15
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 15

def permissions; self[:P]; end

#public_key?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 33

def public_key?
  filter&.to_sym == :AdobePubSec
end

#rc4?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 29

def rc4?
  (version || 0) < 4
end

#recipient_infoObject



19
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 19

def recipient_info; self[:Recipients]; end

#revisionObject



13
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 13

def revision; self[:R]; end

#standard?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 37

def standard?
  filter&.to_sym == :Standard
end

#sub_filterObject



11
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 11

def sub_filter; self[:SubFilter]; end

#user_passwordObject



17
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 17

def user_password; self[:U]; end

#versionObject



12
# File 'lib/pdfrb/model/type/encryption_standard.rb', line 12

def version; self[:V]; end