BouncyCastle is a group of cyberpunks from Australia, that have created a really kick ass cryptography library for Java and C# (or any other language on the .Net platform).
It’s a kick ass quality piece of work, with tons of features, supporting most standards out there in regards to cryptography. And I freakin’ love it! However, I must admit, that it suffers from an extreme lack of good documentation. You’ll find some information about it over at StackOverflow.com. However, in general terms, you’re basically “on your own” when trying to understand the thing. If you have a lot of spare time though, you could probably dissect its unit tests, to at least get a basic understanding of some of its features, but that’s clearly not for the faint at heart.
Phosphorus Five is using a lot of the features from BouncyCastle. In fact, for the most parts “indirectly” through MimeKit, where Jeffrey Steadfast has done an incredible job at abstracting away the gory details of BC. And I have even gone further to take away the pains, on top of MimeKit again.
Cryptography is one of those things you really should not create yourselves. The reasons are, that a simple bug, might literally mean the difference between life and death for your customers. Hence, instead of using BouncyCastle directly, which is a real pain – I encourage you to at least use it indirectly through MimeKit, or even preferably even through Phosphorus Five. That way, you’ll get a flying start, being capable of easily creating, at the very least some PGP encrypted emails, and creating your own PGP keys, etc – Without running the risk of messing everything up …
Check out the docs for how to get started here – (scroll a little bit down to see how to create your first encrypted email) – Below is a small video I created, that should get you started, within 5 minutes. So what are you waiting for?
Let’s Encrypt!! 😀