I just released FatturaElettronica.NET v4. The major version bump is due to a minor breaking change introduced with this version.

After removing the BouncyCastle dependency (v3.4.16) for signature, content extraction, and encoding purposes, a few minor behavioral changes were introduced in the library.

  1. It was previously possible to extract content from documents with tampered signatures (if signature validation was flagged false)
  2. Signature exceptions were being misreported as Base64 FormatExceptions for non-base64 input files

After a lengthy analysis and troubleshooting, it was determined that System.Cryptography (which now replaces BouncyCastle) cannot support the successful decoding of tampered invoices. However, this is undesirable as a feature in the first place. The result is a breaking change: attempting to read tampered documents will now invariably throw SignatureException.

Many thanks to Paolo Manili, aka Delta-38, for contributing this remarkable update.