jstedfast/MimeKit

Consider removing BouncyCastle in latest versions of .net and use .net native libraries for crypto

nlionis-eg opened this issue · 3 comments

There is always a problem with different libraries using different versions of BouncyCastle that ends in versions mismatches.

Consider removing BouncyCastle in latest versions of .net (.net6 .net8 etc) and use .net native libraries for crypto

Even the latest versions of dotnet don't have all of the crypto needed.

Similar to issue #820

Just transferred this from MailKit to MimeKit because MailKit itself barely depends at all on BouncyCastle.

MimeKit depends on BouncyCastle for:

  • Some S/MIME functionality (.net6/7/8 are not fully cross-platform for their X.509 implementation)
  • All PGP functionality (.net6/7/8 do not have ANY of the needed support for this)
  • Some DKIM functionality (namely the Ed25519 digital signature algorithm)

MailKit depends on BouncyCastle for:

  • IMAP COMPRESS support - while technically, .net6/7/8 contain a ZlibStream, it's not really usable because I need it to reset state after each command sent/received, so I had to write my own stream based on the Zlib API in BouncyCastle.