Permalink
Commits on Aug 15, 2017
  1. Merge pull request #250 from ioanatia/private_methods_cleanup

    Private methods cleanup
    committed on GitHub Aug 15, 2017
Commits on Aug 10, 2017
  1. Remove unused private method

    ioanatia committed Aug 10, 2017
  2. Use private_class_method for create_new_string

    ioanatia committed Aug 10, 2017
Commits on Jul 9, 2017
  1. Merge pull request #246 from yob/text-at-zero-zero

    ensure text at 0,0 is rendered to the page
    committed on GitHub Jul 9, 2017
  2. ensure text at 0,0 is rendered to the page

    The PDF in the integration spec is sourced from
    https://brendanzagaeski.appspot.com/0004.html
    committed Jul 9, 2017
  3. Merge pull request #233 from bcoles/read_pdf

    Add read-pdf.rb test script
    committed on GitHub Jul 9, 2017
Commits on Jul 8, 2017
  1. Add read-pdf.rb test script

    bcoles committed Jul 8, 2017
Commits on Mar 14, 2017
  1. Merge pull request #208 from gyuchang/AES256-encryption-support

    Aes256 encryption support
    committed on GitHub Mar 14, 2017
  2. fix password size limit

     - we need first 127 bytes, not first 127 characters
    gyuchang committed Mar 14, 2017
Commits on Mar 13, 2017
  1. update integrity.yml

     - add hashed for two new encryption sample PDF files
     - trivial edit: remove unnecessary quotes
    gyuchang committed Mar 13, 2017
  2. address ABC complexity issue

     - split `build_standard_key` into `auth_owner_pass` and `auth_user_pass` (much like `StandardSecurityHandler`)
    gyuchang committed Mar 13, 2017
Commits on Mar 12, 2017
  1. AESV3 (AES-256) encryption support

     - introduce `StandardSecurityHandlerV5` for revision 5 encryption
    gyuchang committed Mar 12, 2017
  2. minor fixes

     - update comment about `StandardSecurityHandler.supported?` method
     - fix `doc_strings_to_utf8` - info hash may have a referenced object as a value
    gyuchang committed Mar 12, 2017
  3. Merge pull request #207 from gyuchang/AESV2-encryption-support

    add AESv2 encryption (PDF 1.6 spec) support
    committed on GitHub Mar 12, 2017
Commits on Mar 10, 2017
  1. add AESv2 encryption (PDF 1.6 spec) support

     - add extra check (encrypt[:StmF] == encrypt[:StrF])
     - pass :CFM value to StandardSecurityHandler constructor
     - implement test case for AES128 encrypted files
    gyuchang committed Mar 10, 2017
Commits on Mar 5, 2017
  1. add extra debugging info for pending spec

    * The new data was generated via inspection in Acrobat 10 with pitstop
      pro
    committed Mar 5, 2017
Commits on Feb 25, 2017
  1. prepare for release

    committed Feb 25, 2017
  2. Merge pull request #203 from yob/direct-kids

    Support PDFs that use direct objects in a Kids array
    committed on GitHub Feb 25, 2017
  3. Support PDFs that use direct objects in a Kids array

    Normally the Kids array in a Pages object contains only indirect
    objects. It seems a few PDF producing apps violate that rule and make
    Kids an Array of direct Page(s) objects.
    
    This is against spec, but Acrobat supports it and it's trivial to fix.
    committed Feb 25, 2017
  4. Merge pull request #202 from yob/improve-crypt-specs

    Return an descriptive error when opening PDF with an unsupported encryption algorithm
    committed on GitHub Feb 25, 2017
  5. require each security handler to determine what style of encryption t…

    …hey support
    committed Feb 25, 2017
  6. Ensure that a security handler is always initialised

    For now, we have three handlers:
    
    * NullSecurityHandler for unencrypted files
    * StandardSecurityHandler for files encrypted with pdf-spec compatible RC4 encryption
    * UnimplementedSecurityHandler for files encrypted with unsupported
      algorithms, including PDF-spec compatible AES, and any proprietary
      algorithm (adobe ebooks, etc).
    committed Feb 25, 2017
  7. raise a clear exception when opening a PDF with unsupported encryption

    This method is ugly, but it works and gets the specs green. I'll
    refactor it shortly.
    committed Feb 19, 2017
Commits on Feb 19, 2017
  1. simplify StandardSecurityHandler

    * remove unused instance variables, and require the calling code to deal
      with the raw Encrypt dict
    committed Feb 19, 2017
  2. add NullSecurityHandler

    committed Feb 19, 2017
  3. add some failing specs for encrypted files we don't yet support

    We already had some sample files generated with Adbobe Acrobat, but had
    no implemented specs to confirm how we handled them.
    
    Turns out we raise cryptic errors that don't make it obvious to the user
    that we don't support some types of encryption yet. I'll address that in
    the next commit.
    committed Feb 18, 2017
Commits on Feb 18, 2017
  1. use correct filenames in these specs

    committed Feb 18, 2017
Commits on Feb 14, 2017
  1. Merge pull request #200 from yob/type3-font-with-rare-font-matrix

    add a pending integration spec for a file we could handle better
    committed on GitHub Feb 14, 2017
  2. fix some gemspec errors

    * The README has been renamed, and pdf_list_callbacks has been removed
    committed Feb 14, 2017
  3. prepare release

    committed Feb 14, 2017
  4. add a missing update to integrity.yml

    this should've been included in a8ef5e3
    committed Feb 14, 2017
  5. add a pending integration spec for a file we could handle better

    Most type3 fonts have a FontMatrix entry of [ 0.001 0 0 0.001 0 0 ],
    which matches the glyph scale factor of 1000 that non-type3 fonts use.
    It's permitted for type3 fonts to use other FontMatrix values though,
    and we should do a better job of extracting the text.
    
    Thanks to pdf.js for this sample file, it was originally
    (test/pdfs/issue5896.pdf) in their repo, and is a simpler test case of a
    private PDF I was sent.
    committed Feb 14, 2017