Hi Jeff,
Hopefully I can allay your concerns that the project has been abandoned.
Comments inline:
On 25/10/2013 9:25 AM, Jeff Stedfast wrote:
Hello,
I've been lurking for the past 2 weeks or so and the list seems pretty
quiet for the most part. I've also noticed that the github repository
is more-or-less inactive and that makes me rather sad :-(
Yes, it makes us sad how little attention we've been able to give it
over the last 2 years.
Who are the developers that are actively still hacking on the project?
I've been the most active developer on the C# version in recent years,
but a full-time job occupies most of my time, and I've been working on
the Java build more of late. Some of that work is in the process of
being ported, as others have noted.
What can be done to help?
Is development taking place on github? Or is it happening elsewhere?
Yes, we've only recently moved to github, but that's the preferred place
to submit contributions.
I noticed that there is an outstanding bug filed for the C# version of
BouncyCastle to implement S/MIME support that is apparently waiting on
a javamail replacement on .NET.
If that is the case, then perhaps that is the best way that I can
contribute to this project.
I've currently implemented a C# MIME library called MimeKit on GitHub:
http://github.com/jstedfast/MimeKit
I have loads of experience writing MIME libraries/parsers spanning
back more than a decade and have implemented PGP/MIME in Evolution and
in my personal side-project, GMime (a MIME parser written in C). I
also contributed to and/or wrote the S/MIME support in both of those
products as well as implementing S/MIME support in MimeKit recently.
However, the problem I am now facing is that Mono's System.Security
does not implement all of the CMS APIs and is missing some of the meat
in the X509Certificate2 APIs as well, which is what has brought me to
BouncyCastle. Presently, MimeKit's implementation of S/MIME only works
on Windows, but I want it to work on Linux, Mac, iOS, and Android (for
those using Xamarin.iOS and/or Xamarin.Android). Windows Phone 8 would
also be nice, but I suspect that would be doable using Microsoft's APIs.
Since I'm also interested in adding PGP/MIME (rfc2015, 3156, and
whatever the latest update to those specs are), I've been trying to
find a nice and elegant way of doing that in C#. Sadly, C# APIs do not
provide a nice way to do IPC with programs like gnupg, so my options
are limited if I want portability... again leading me to BouncyCastle
for the OpenPGP implementation.
I guess what I want to know is:
1. Would this be something the Bouncy Castle development team would be
interested in?
Definitely. I had given up hope of ever being able to port the S/MIME
stuff from the Java build (or to provide equivalent functionality in
some way).
2. Is the Bouncy Castle development team even still around in any real
capacity? If the project is more-or-less dead, I'll probably just fork
Bouncy Castle to make whatever modifications I need and continue on my
way. If, at some later point, development starts back up again, they
are free to use MimeKit (and I highly recommend that you do, because
every other .NET MIME parser that exists currently is broken beyond
repair).
Oh yes, we're still around.
3. JavaMail is more than just a MIME library. MimeKit is not. Is this
a problem?
No, not a problem.
I am considering working on a "MailKit" library which would be built
on top of MimeKit in order to add IMAP, POP, and SMTP support but I
don't necessarily want to commit myself to doing that alone. I should
also note that MimeKit and my plans for MailKit are not an identical
API to JavaMail (I don't know if that matters or not), similar to an
extent, but based more on a C library I had been working on before I
threw my hands in the air and decided that even if I were to finish,
I'd never want to write another mail client in C/C++. (This is what
has led to the development of MimeKit which is loosely based on my
GMime library).
I'd say just leave the MailKit bit open and aim for the MimeKit bit
first. Ideally others will build on top of it, or help you to do so.
Please note that for substantial submissions we need an email explicitly
agreeing to release things under our license.
Regards,
Pete Dettman