Skip to content

Replace vendored dkim with dkimpy package#205

Merged
lavr merged 2 commits intomasterfrom
fix/issue-196-replace-vendored-dkim
Mar 31, 2026
Merged

Replace vendored dkim with dkimpy package#205
lavr merged 2 commits intomasterfrom
fix/issue-196-replace-vendored-dkim

Conversation

@lavr
Copy link
Copy Markdown
Owner

@lavr lavr commented Mar 31, 2026

Summary

  • Remove emails/packages/dkim/ — vendored fork of dkimpy 0.5.3 (2015), ~1400 lines
  • Use upstream dkimpy package (1.1.8) from PyPI as a direct dependency
  • Update imports in signers.py, exc.py, test_dkim.py
  • Remove mypy exclusion for emails/packages/

Breaking change: emails.packages.dkim is no longer available. Use import dkim directly.

Closes #196

Test plan

  • All 87 tests pass locally
  • DKIM signing works with upstream dkimpy
  • DKIM verification works in tests
  • CI passes

lavr added 2 commits March 31, 2026 23:39
- Remove emails/packages/dkim/ (vendored fork of dkimpy 0.5.3)
- Use upstream dkimpy package (1.1.8) from PyPI
- Add dkimpy to install_requires in setup.py
- Update imports in signers.py, exc.py, test_dkim.py
- Pass PEM bytes instead of pre-parsed key dict to dkim.sign()
- Fix test dnsfunc lambda to accept timeout kwarg
- Remove mypy exclusion for emails/packages/

Closes #196
@lavr lavr merged commit 93bd58b into master Mar 31, 2026
10 checks passed
lavr added a commit that referenced this pull request Mar 31, 2026
- Add dkimpy to requirements/base.txt (was missing after #205)
- Remove thread-unsafe monkey-patch of dkim.parse_pem_private_key;
  PEM parse cost is negligible vs RSA (~0ms vs ~2.5ms per sign)
- Add test_dkim_sign_after_error for signer recovery after errors
lavr added a commit that referenced this pull request Mar 31, 2026
* Add dkimpy to requirements/base.txt, document key parse cost

* Add dkimpy to requirements, remove unsafe key-cache monkey-patch

- Add dkimpy to requirements/base.txt (was missing after #205)
- Remove thread-unsafe monkey-patch of dkim.parse_pem_private_key;
  PEM parse cost is negligible vs RSA (~0ms vs ~2.5ms per sign)
- Add test_dkim_sign_after_error for signer recovery after errors
@lavr lavr deleted the fix/issue-196-replace-vendored-dkim branch April 2, 2026 17:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace vendored dkim with dkimpy package

1 participant