Class: Pdfrb::Model::Type::EncryptionPublicKey

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

Overview

Public-key security handler encryption dict (s7.6.5.1).

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)


44
45
46
# File 'lib/pdfrb/model/type/encryption_public_key.rb', line 44

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

#encrypt_metadata?Boolean

Returns:

  • (Boolean)


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

def encrypt_metadata?; truthy?(self[:EncryptMetadata]); end

#filterObject



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

def filter; self[:Filter]; end

#key_length_bytesObject



40
41
42
# File 'lib/pdfrb/model/type/encryption_public_key.rb', line 40

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

#lengthObject



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

def length; self[:Length]; end

#public_key?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/pdfrb/model/type/encryption_public_key.rb', line 17

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

#recipient_countObject



33
34
35
36
37
38
# File 'lib/pdfrb/model/type/encryption_public_key.rb', line 33

def recipient_count
  return 0 unless recipients

  arr = recipients.is_a?(Pdfrb::Model::PdfArray) ? recipients.to_a : recipients
  arr.is_a?(Array) ? arr.size : 0
end

#recipientsObject



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

def recipients; self[:Recipients]; end

#s2?Boolean

Returns:

  • (Boolean)


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

def s2?
  sub_filter&.to_sym == :S2
end

#s3?Boolean

Returns:

  • (Boolean)


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

def s3?
  sub_filter&.to_sym == :S3
end

#s4?Boolean

Returns:

  • (Boolean)


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

def s4?
  sub_filter&.to_sym == :S4
end

#sub_filterObject



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

def sub_filter; self[:SubFilter]; end

#versionObject



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

def version; self[:V]; end