Skip to content

Crashes on Some encrypted pdfs #16

Description

@maxkurze1
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/max.kurze/Projects/resignation/resignation/resignation.py", line 612, in <module>
    main()
    ~~~~^^
  File "/home/max.kurze/Projects/resignation/resignation/resignation.py", line 606, in main
    _main()
    ~~~~~^^
  File "/home/max.kurze/Projects/resignation/resignation/resignation.py", line 589, in _main
    ).sign_pdf(w, output=tmp_file)
      ~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/sign/signers/pdf_signer.py", line 1528, in sign_pdf
    result = asyncio.run(
        self.async_sign_pdf(
    ...<7 lines>...
        )
    )
  File "/nix/store/f8xmcwbyw8am8ybkdvzsj0ln6mlr559i-python3-3.13.11/lib/python3.13/asyncio/runners.py", line 195, in run
    return runner.run(main)
           ~~~~~~~~~~^^^^^^
  File "/nix/store/f8xmcwbyw8am8ybkdvzsj0ln6mlr559i-python3-3.13.11/lib/python3.13/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/nix/store/f8xmcwbyw8am8ybkdvzsj0ln6mlr559i-python3-3.13.11/lib/python3.13/asyncio/base_events.py", line 725, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/sign/signers/pdf_signer.py", line 1603, in async_sign_pdf
    prepared_br_digest, res_output = tbs_document.digest_tbs_document(
                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        in_place=in_place, chunk_size=chunk_size, output=output
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/sign/signers/pdf_signer.py", line 2608, in digest_tbs_document
    return self.cms_writer.send(
           ~~~~~~~~~~~~~~~~~~~~^
        SigIOSetup(
        ^^^^^^^^^^^
    ...<4 lines>...
        )
        ^
    )
    ^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/sign/signers/cms_embedder.py", line 495, in write_cms
    yield from sig_obj.fill(
    ...<5 lines>...
    )
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/sign/signers/pdf_byterange.py", line 278, in fill
    writer.write(output)
    ~~~~~~~~~~~~^^^^^^^^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/pdf_utils/incremental_writer.py", line 229, in write
    super().write(stream)
    ~~~~~~~~~~~~~^^^^^^^^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/pdf_utils/writer.py", line 626, in write
    self._write(stream)
    ~~~~~~~~~~~^^^^^^^^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/pdf_utils/writer.py", line 657, in _write
    self._write_objects(stream, object_positions)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/pdf_utils/writer.py", line 516, in _write_objects
    obj.write_to_stream(stream, handler, container_ref)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/pdf_utils/generic.py", line 1254, in write_to_stream
    value.write_to_stream(stream, handler, container_ref)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/pdf_utils/generic.py", line 2109, in write_to_stream
    self.decrypted.write_to_stream(stream, handler, container_ref)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/pdf_utils/generic.py", line 1254, in write_to_stream
    value.write_to_stream(stream, handler, container_ref)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/pdf_utils/generic.py", line 2109, in write_to_stream
    self.decrypted.write_to_stream(stream, handler, container_ref)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/pdf_utils/generic.py", line 1254, in write_to_stream
    value.write_to_stream(stream, handler, container_ref)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/pdf_utils/generic.py", line 2109, in write_to_stream
    self.decrypted.write_to_stream(stream, handler, container_ref)
    ^^^^^^^^^^^^^^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/pdf_utils/generic.py", line 2078, in decrypted
    decrypted = pdf_string(cf.decrypt(local_key, obj.original_bytes))
                           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/pdf_utils/crypt/filter_mixins.py", line 149, in decrypt
    return aes_cbc_decrypt(key, data, iv)
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/pdf_utils/crypt/_util.py", line 21, in aes_cbc_decrypt
    return _maybe_unpad(plaintext, use_padding=use_padding)
  File "/nix/store/c97gkw69d6rdmgaaafmr5pzzm83lhs4x-python3.13-pyhanko-0.31.0/lib/python3.13/site-packages/pyhanko/pdf_utils/crypt/_util.py", line 12, in _maybe_unpad
    return unpadder.update(plaintext) + unpadder.finalize()
                                        ~~~~~~~~~~~~~~~~~^^
ValueError: Invalid padding bytes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions