Api has been refined and documented a bit but is still not considered mature and will change in future releases.
-
Mailet has been extracted back to james project
-
jDKIM API is still considered unstable and is likely to change in future releases
-
Default parsing is done using mime4j 0.8.12 parser.
-
MultiplexingPublicKeyRecordRetriever can no longer be instantiated without any methods
-
MultiplexingPublicKeyRecordRetriever#addRetriever is made private
-
dkimQuotedPrintableDecode
was moved fromSignatureRecordImpl
toorg.apache.james.jdkim.parser.DKIMQuotedPrintable
since it is not specific to SignatureRecordImpl.
While technically a public API I don’t expect many users of the lib to call this directly. Updating the static import should be acceptable for the few who do.
jDKIM is a DKIM implementation library written in Java. It provides both verification and signing and also provides Mailets for the Apache JAMES project.
The 0.2 release is the first release. It requires Java 1.5 at runtime and it requires the JVM running the library to support SHA256withRSA cypher suite. The default Sun Java 1.5 does support this suite. If your JVM doesn’t support it you can install a third party cryptography provider like BouncyCastle and configure it appropriately in your JVM.
The architecture is thought to handle multiple signatures with performance in mind: body hashing for multiple signatures is computed concurrently in a single stream run.
The whole internal verification/signing is done via OutputStream leaving much more flexibility than the use of InputStream. As the InputStream approach is easier from the user side the default implementation simply prepare the OutputStream and copy the supplied InputStream to the OutputStream.
In order to reduce depencencies and to not reinvent the wheel the resulting library includes a "shaded" version of the commons-codec 1.4 classes needed to do Base64 encoding/decoding.