Just added four classes:
1) org.apache.james.transport.mailets.SMIMEAbstractSign is an abstract mailet providing common SMIME signature services. It can be subclassed to make authoring signing mailets simple.
2) org.apache.james.transport.mailets.SMIMESign is a mailet that puts a server-side SMIME signature on a message. It is a concrete subclass of SMIMEAbstractSign, with very few modifications to it.
3) org.apache.james.security.KeyHolder is a helper class dealing with all the cryptography related issues.
4) org.apache.james.security.SMIMEAttributeNames contains some SMIME related mail attribute names of general usage.
They seem to work fairly well; I just need to add some more javadoc to KeyHolder.
I found a solution (already of common use) to the Outlook Express problem reported in http://nagoya.apache.org/eyebrowse/ReadMsg?listNameemail@example.com&msgNo=9935, so I went on with the work I started in September 2003.
In a few days I will put something in the wiki about all this.
The classes I wrote (specifically KeyHolder) depend heavily on the Bouncy Castle libraries, and bcmail-jdk14-124.jar and bcprov-jdk14-124.jar must be in the
/lib directory both to compile and to run. I didn't do such CVS commit. Who should do this (including updating the build scripts)?
I choosed also to break the compatibility with jdk 1.3, as the crypto functionalities are heavily dependent on jdk 1.4+. I could anyhow (I tested it already) make it work also with 1.3, but compilation/deployment would be messy.
Next steps are to build an SMIMECheckSignature mailet, that sets some attributes to be used by other matchers and mailets. I plan to do it possibly in August.