forked from thestick613/dkimpy
-
Notifications
You must be signed in to change notification settings - Fork 0
Mirror of Dkimpy Launchpad project
License
agaridata/dkimpy
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
dkimpy - DKIM (DomainKeys Identified Mail) https://launchpad.net/dkimpy/ Friendly fork of: http://hewgill.com/pydkim/ INTRODUCTION dkimpy is a library that implements DKIM (DomainKeys Identified Mail) email signing and verification. VERSION This is dkimpy 0.6.1 REQUIREMENTS - Python 2.x >= 2.7, or Python 3.x >= 3.5. For use with DKIM, earlier python3 versions will work. ARC tests fail with python3.4. Recent versions have not been tested on python < 2.7 or python3 < 3.4, but may still work on python2.6 and python 3.1 - 3.3. - dnspython or pydns. dnspython is preferred if both are present. INSTALLATION To build and install dkimpy: python setup.py install DOCUMENTATION An online version of the package documentation can be found at: https://gathman.org/pydkim/ TESTING To run dkimpy's test suite: PYTHONPATH=. python dkim or python test.py or PYTHONPATH=. python -m unittest dkim.tests.test_suite Alternatively, if you have testrepository installed: testr init testr run The included ARC tests are very limited. The primary testing method for ARC is using the ARC test suite: https://github.com/ValiMail/arc_test_suite As of 0.6.0, all tests except as_fields_b_512 pass for both python2.7 and python3.5. The test suite ships with test runners for dkimpy. After downloading the test suite, you can run the signing and validation tests like this: python2.7 ./testarc.py sign runners/arcsigntest.py python2.7 ./testarc.py validate runners/arcverifytest.py The reason for the test failure is that the ARC specification (as of 20170120) sets the minimum key size to 512 bits. This is operationally inappropriate, so dkimpy sets the default minkey=1024, the same as is used for DKIM. This can be overridden, but that is not recommended. USAGE The dkimpy library offers one module called dkim. The sign() function takes an RFC822 formatted message, along with some signing options, and returns a DKIM-Signature header line that can be prepended to the message. The verify() function takes an RFC822 formatted message, and returns True or False depending on whether the signature verifies correctly. There is also a DKIM class which can be used to perform these functions in a more modern way. Two helper programs are also supplied: dkimsign.py and dkimverify.py. dkimsign.py is a filter that reads an RFC822 message on standard input, and writes the same message on standard output with a DKIM-Signature line prepended. The signing options are specified on the command line: dkimsign.py selector domain privatekeyfile [identity] The identity is optional and defaults to "@domain". dkimverify.py reads an RFC822 message on standard input, and returns with exit code 0 if the signature verifies successfully. Otherwise, it returns with exit code 1. As of version 0.6.0, dkimpy provides experimental support for ARC (Authenticated Received Chain): https://tools.ietf.org/html/draft-ietf-dmarc-arc-protocol-01 This new functionality is marked experimental because the protocol is still under development. There are no guarantees about API stability or compatibility. In addition to arcsign.py and arcverify.py, the dkim module now provides arc_sign and arc_verify functions as well as an ARC class. FEEDBACK Bug reports may be submitted to the bug tracker for the dkimpy project on launchpad.
About
Mirror of Dkimpy Launchpad project
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Python 100.0%