Hi Jeff,
Not exactly an answer to your questions, but fwiw we recently ported to C# the current TLS and DTLS implementations from Java, both server and client side, and contributed them to the BC team. I expect they will be made public in the next few weeks. We also plan to give an occasional helping hand to BC on the C# side of things, especially transport-related stuff. Just fyi, so that you know that there is both interest and activity here. Cheers, Alexander From: Jeff Stedfast [mailto:j...@xamarin.com] Sent: Friday 25 October 2013 05:26 To: Bouncy Castle Developer List Subject: [dev-crypto-csharp] PGP/MIME, S/MIME and the future of Bouncy Castle for C# 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 :-( Who are the developers that are actively still hacking on the project? What can be done to help? Is development taking place on github? Or is it happening elsewhere? 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? 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). 3. JavaMail is more than just a MIME library. MimeKit is not. Is this 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). Hoping to hear back, Jeff